Documentation
¶
Overview ¶
Package railsr is a production-grade Go client for the Railsr Embedded Finance API.
Quick Start ¶
rails, err := railsgo.New("client_id", "client_secret",
railsgo.WithEnvironment(railsgo.EnvironmentLive),
)
if err != nil { log.Fatal(err) }
ctx := context.Background()
// Create an enduser
eu, err := rails.Endusers.Create(ctx, &railsgo.CreateEnduserParams{
Person: &railsgo.Person{
Name: &railsgo.PersonName{FamilyName: "Smith", GivenName: "Alice"},
Email: "alice@example.com",
DateOfBirth: "1990-01-15",
Nationality: "GB",
},
})
// Create a GBP ledger
ledger, err := rails.Ledgers.Create(ctx, &railsgo.CreateLedgerParams{
HolderID: eu.EnduserID,
LedgerType: "standard-gbp",
AssetClass: "currency",
AssetType: "gbp",
})
Architecture ¶
The SDK is structured as independent service objects hanging off a root Railsr struct. Each service corresponds to one Railsr API domain:
- Railsr.Endusers — v2 enduser CRUD + KYC
- Railsr.Ledgers — ledger CRUD + entries + virtual credit/debit
- Railsr.Transactions — send, inter-ledger, FX, quarantine
- Railsr.Beneficiaries — CRUD + CoP verification
- Railsr.Cards — full card lifecycle + rules + Labs tokens
- Railsr.Mandates — BACS Direct Debit mandates
- Railsr.Payments — DD payment collection
- Railsr.Firewall — compliance rules + datasets
- Railsr.Webhooks — config + history + HMAC verification
- Railsr.Customer — self account + products
Index ¶
- Constants
- Variables
- type APIError
- type Address
- type Beneficiary
- type Card
- type CardProgramme
- type CardRule
- type Company
- type ConfigureParams
- type CreateBeneficiaryParams
- type CreateCardParams
- type CreateCardRuleParams
- type CreateDatasetParams
- type CreateEnduserParams
- type CreateKYCCheckParams
- type CreateLedgerParams
- type CreateMandateParams
- type CreatePaymentParams
- type CreatePaymentTokenParams
- type Customer
- type Enduser
- type Environment
- type FXParams
- type FirewallDataset
- type FirewallRule
- type FirewallRules
- type InterLedgerParams
- type KYCCheck
- type Ledger
- type LedgerEntry
- type ListBeneficiariesParams
- type ListCardsParams
- type ListEndusersParams
- type ListEntriesParams
- type ListHistoryParams
- type ListLedgersParams
- type ListMandatesParams
- type ListPaymentsParams
- type ListTransactionsParams
- type Mandate
- type Option
- type PatchEnduserParams
- type Payment
- type Person
- type PersonName
- type Railsr
- type ReplaceCardParams
- type RequestOption
- type ResolveQuarantineParams
- type SendMoneyParams
- type SetRulesParams
- type Token
- type Transaction
- type UpdateBeneficiaryParams
- type UpdateCustomerParams
- type UpdateDatasetParams
- type UpdateEnduserParams
- type UpdateLedgerParams
- type VerifyBeneficiaryParams
- type VirtualCreditParams
- type VirtualDebitParams
- type WaitForLedgerActiveOpts
- type WaitForMandateActiveOpts
- type WaitForStatusOpts
- type WaitForTerminalOpts
- type WebhookConfig
- type WebhookEvent
Constants ¶
const ( EnvironmentPlay = client.EnvironmentPlay EnvironmentPlayLive = client.EnvironmentPlayLive EnvironmentLive = client.EnvironmentLive )
Variables ¶
var ( WithEnvironment = client.WithEnvironment WithTimeout = client.WithTimeout WithMaxRetries = client.WithMaxRetries WithBaseBackoff = client.WithBaseBackoff WithRateLimitRPS = client.WithRateLimitRPS WithHTTPClient = client.WithHTTPClient WithUserAgent = client.WithUserAgent )
Re-export option constructors.
var ( WithIdempotencyKey = client.WithIdempotencyKey WithQuery = client.WithQuery )
var ( ErrNotFound = types.ErrNotFound ErrRateLimited = types.ErrRateLimited ErrCircuitOpen = types.ErrCircuitOpen ErrInvalidSignature = resources.ErrInvalidSignature )
Re-export error sentinels.
var EventTypes = resources.EventTypes
EventTypes is re-exported for single-import convenience.
var VerifySignature = resources.VerifySignature
VerifySignature is re-exported for single-import convenience.
Functions ¶
This section is empty.
Types ¶
type Beneficiary ¶
type Beneficiary = types.Beneficiary
Re-export types for single-import convenience.
type CardProgramme ¶
type CardProgramme = types.CardProgramme
Re-export types for single-import convenience.
type ConfigureParams ¶
type ConfigureParams = resources.ConfigureParams
Re-export types for single-import convenience.
type CreateBeneficiaryParams ¶
type CreateBeneficiaryParams = resources.CreateBeneficiaryParams
Re-export types for single-import convenience.
type CreateCardParams ¶
type CreateCardParams = resources.CreateCardParams
Re-export types for single-import convenience.
type CreateCardRuleParams ¶
type CreateCardRuleParams = resources.CreateCardRuleParams
Re-export types for single-import convenience.
type CreateDatasetParams ¶
type CreateDatasetParams = resources.CreateDatasetParams
Re-export types for single-import convenience.
type CreateEnduserParams ¶
type CreateEnduserParams = resources.CreateEnduserParams
Request param types.
type CreateKYCCheckParams ¶
type CreateKYCCheckParams = resources.CreateKYCCheckParams
Re-export types for single-import convenience.
type CreateLedgerParams ¶
type CreateLedgerParams = resources.CreateLedgerParams
Re-export types for single-import convenience.
type CreateMandateParams ¶
type CreateMandateParams = resources.CreateMandateParams
Re-export types for single-import convenience.
type CreatePaymentParams ¶
type CreatePaymentParams = resources.CreatePaymentParams
Re-export types for single-import convenience.
type CreatePaymentTokenParams ¶
type CreatePaymentTokenParams = resources.CreatePaymentTokenParams
Re-export types for single-import convenience.
type FirewallDataset ¶
type FirewallDataset = types.FirewallDataset
Re-export types for single-import convenience.
type FirewallRule ¶
type FirewallRule = types.FirewallRule
Re-export types for single-import convenience.
type FirewallRules ¶
type FirewallRules = types.FirewallRules
Re-export types for single-import convenience.
type InterLedgerParams ¶
type InterLedgerParams = resources.InterLedgerParams
Re-export types for single-import convenience.
type LedgerEntry ¶
type LedgerEntry = types.LedgerEntry
Re-export types for single-import convenience.
type ListBeneficiariesParams ¶
type ListBeneficiariesParams = resources.ListBeneficiariesParams
Re-export types for single-import convenience.
type ListCardsParams ¶
type ListCardsParams = resources.ListCardsParams
Re-export types for single-import convenience.
type ListEndusersParams ¶
type ListEndusersParams = resources.ListEndusersParams
Re-export types for single-import convenience.
type ListEntriesParams ¶
type ListEntriesParams = resources.ListEntriesParams
Re-export types for single-import convenience.
type ListHistoryParams ¶
type ListHistoryParams = resources.ListHistoryParams
Re-export types for single-import convenience.
type ListLedgersParams ¶
type ListLedgersParams = resources.ListLedgersParams
Re-export types for single-import convenience.
type ListMandatesParams ¶
type ListMandatesParams = resources.ListMandatesParams
Re-export types for single-import convenience.
type ListPaymentsParams ¶
type ListPaymentsParams = resources.ListPaymentsParams
Re-export types for single-import convenience.
type ListTransactionsParams ¶
type ListTransactionsParams = resources.ListTransactionsParams
Re-export types for single-import convenience.
type PatchEnduserParams ¶
type PatchEnduserParams = resources.PatchEnduserParams
Re-export types for single-import convenience.
type Railsr ¶
type Railsr struct {
// Endusers manages person and company endusers (v2 API).
Endusers *resources.EndusersService
// Ledgers manages GBP, EUR, and virtual ledgers.
Ledgers *resources.LedgersService
// Transactions manages all money movements.
Transactions *resources.TransactionsService
// Beneficiaries manages external payees.
Beneficiaries *resources.BeneficiariesService
// Cards manages virtual and physical cards, rules, and programmes.
Cards *resources.CardsService
// Mandates manages BACS Direct Debit mandates.
Mandates *resources.MandatesService
// Payments manages Direct Debit payment collections.
Payments *resources.PaymentsService
// Firewall manages compliance rules and datasets.
Firewall *resources.FirewallService
// Webhooks manages webhook configuration, history, and verification.
Webhooks *resources.WebhooksService
// Customer provides access to the authenticated customer account.
Customer *resources.CustomerService
// contains filtered or unexported fields
}
Railsr is the root SDK client holding all service groups.
func New ¶
New constructs a Railsr SDK client with the given credentials and options.
Example:
r, err := railsgo.New(os.Getenv("RAILSR_CLIENT_ID"), os.Getenv("RAILSR_CLIENT_SECRET"),
railsgo.WithEnvironment(railsgo.EnvironmentLive),
railsgo.WithMaxRetries(3),
)
func NewWithTelemetry ¶
func NewWithTelemetry(clientID, clientSecret string, hook telemetry.Hook, opts ...Option) (*Railsr, error)
NewWithTelemetry constructs a Railsr SDK client with a custom telemetry hook. Pass nil to use the default no-op hook.
func (*Railsr) HTTP ¶
func (r *Railsr) HTTP() *client.HTTPClient
HTTP returns the underlying HTTPClient for advanced use (e.g. custom endpoints or direct request construction).
type ReplaceCardParams ¶
type ReplaceCardParams = resources.ReplaceCardParams
Re-export types for single-import convenience.
type ResolveQuarantineParams ¶
type ResolveQuarantineParams = resources.ResolveQuarantineParams
Re-export types for single-import convenience.
type SendMoneyParams ¶
type SendMoneyParams = resources.SendMoneyParams
Re-export types for single-import convenience.
type SetRulesParams ¶
type SetRulesParams = resources.SetRulesParams
Re-export types for single-import convenience.
type Transaction ¶
type Transaction = types.Transaction
Re-export types for single-import convenience.
type UpdateBeneficiaryParams ¶
type UpdateBeneficiaryParams = resources.UpdateBeneficiaryParams
Re-export types for single-import convenience.
type UpdateCustomerParams ¶
type UpdateCustomerParams = resources.UpdateCustomerParams
Re-export types for single-import convenience.
type UpdateDatasetParams ¶
type UpdateDatasetParams = resources.UpdateDatasetParams
Re-export types for single-import convenience.
type UpdateEnduserParams ¶
type UpdateEnduserParams = resources.UpdateEnduserParams
Re-export types for single-import convenience.
type UpdateLedgerParams ¶
type UpdateLedgerParams = resources.UpdateLedgerParams
Re-export types for single-import convenience.
type VerifyBeneficiaryParams ¶
type VerifyBeneficiaryParams = resources.VerifyBeneficiaryParams
Re-export types for single-import convenience.
type VirtualCreditParams ¶
type VirtualCreditParams = resources.VirtualCreditParams
Re-export types for single-import convenience.
type VirtualDebitParams ¶
type VirtualDebitParams = resources.VirtualDebitParams
Re-export types for single-import convenience.
type WaitForLedgerActiveOpts ¶
type WaitForLedgerActiveOpts = resources.WaitForLedgerActiveOpts
Re-export types for single-import convenience.
type WaitForMandateActiveOpts ¶
type WaitForMandateActiveOpts = resources.WaitForMandateActiveOpts
Re-export types for single-import convenience.
type WaitForStatusOpts ¶
type WaitForStatusOpts = resources.WaitForStatusOpts
Re-export types for single-import convenience.
type WaitForTerminalOpts ¶
type WaitForTerminalOpts = resources.WaitForTerminalOpts
Re-export types for single-import convenience.
type WebhookConfig ¶
type WebhookConfig = types.WebhookConfig
Re-export types for single-import convenience.
type WebhookEvent ¶
type WebhookEvent = types.WebhookEvent
Re-export types for single-import convenience.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package auth provides OAuth 2.0 client-credentials token management.
|
Package auth provides OAuth 2.0 client-credentials token management. |
|
Package client provides the core HTTP client, configuration, and transport for the Railsr SDK.
|
Package client provides the core HTTP client, configuration, and transport for the Railsr SDK. |
|
internal
|
|
|
idempotency
Package idempotency generates cryptographically random idempotency keys.
|
Package idempotency generates cryptographically random idempotency keys. |
|
retry
Package retry provides full-jitter exponential back-off logic.
|
Package retry provides full-jitter exponential back-off logic. |
|
Package middleware provides HTTP middleware for the Railsr SDK: circuit breaker and client-side rate limiter.
|
Package middleware provides HTTP middleware for the Railsr SDK: circuit breaker and client-side rate limiter. |
|
Package resources implements all Railsr API resource groups.
|
Package resources implements all Railsr API resource groups. |
|
Package telemetry provides structured observability hooks for the Railsr SDK.
|
Package telemetry provides structured observability hooks for the Railsr SDK. |
|
Package testutil provides shared test helpers for the railsr-go SDK.
|
Package testutil provides shared test helpers for the railsr-go SDK. |
|
Package types defines all Railsr domain structs used across the SDK.
|
Package types defines all Railsr domain structs used across the SDK. |