77 lines
2.7 KiB
Go
77 lines
2.7 KiB
Go
package srequest
|
|
|
|
// Asset represents a chain/token pair for blockchain endpoints.
|
|
type Asset struct {
|
|
Chain ChainNetwork `json:"chain"`
|
|
TokenSymbol string `json:"token_symbol"`
|
|
ContractAddress string `json:"contract_address,omitempty"`
|
|
}
|
|
|
|
// LedgerEndpoint represents a ledger account payload.
|
|
type LedgerEndpoint struct {
|
|
LedgerAccountRef string `json:"ledger_account_ref"`
|
|
ContraLedgerAccountRef string `json:"contra_ledger_account_ref,omitempty"`
|
|
}
|
|
|
|
// ManagedWalletEndpoint represents a managed wallet payload.
|
|
type ManagedWalletEndpoint struct {
|
|
ManagedWalletRef string `json:"managed_wallet_ref"`
|
|
Asset *Asset `json:"asset,omitempty"`
|
|
}
|
|
|
|
// ExternalChainEndpoint represents an external chain address payload.
|
|
type ExternalChainEndpoint struct {
|
|
Asset *Asset `json:"asset,omitempty"`
|
|
Address string `json:"address"`
|
|
Memo string `json:"memo,omitempty"`
|
|
}
|
|
|
|
// CardEndpoint represents a card payout payload (PAN or network token).
|
|
type CardEndpoint struct {
|
|
Pan string `json:"pan"`
|
|
FirstName string `json:"firstName"`
|
|
LastName string `json:"lastName"`
|
|
ExpMonth uint32 `json:"exp_month,omitempty"`
|
|
ExpYear uint32 `json:"exp_year,omitempty"`
|
|
Country string `json:"country,omitempty"`
|
|
}
|
|
|
|
// CardTokenEndpoint represents a vaulted card token payout payload.
|
|
type CardTokenEndpoint struct {
|
|
Token string `json:"token"`
|
|
MaskedPan string `json:"masked_pan"`
|
|
}
|
|
|
|
// WalletEndpoint represents a Sendico wallet payout payload.
|
|
type WalletEndpoint struct {
|
|
WalletID string `json:"walletId"`
|
|
}
|
|
|
|
// BankAccountEndpoint represents a domestic bank account payout payload.
|
|
type BankAccountEndpoint struct {
|
|
RecipientName string `json:"recipientName"`
|
|
Inn string `json:"inn"`
|
|
Kpp string `json:"kpp"`
|
|
BankName string `json:"bankName"`
|
|
Bik string `json:"bik"`
|
|
AccountNumber string `json:"accountNumber"`
|
|
CorrespondentAccount string `json:"correspondentAccount"`
|
|
}
|
|
|
|
// IBANEndpoint represents an international bank account payout payload.
|
|
type IBANEndpoint struct {
|
|
IBAN string `json:"iban"`
|
|
AccountHolder string `json:"accountHolder"`
|
|
BIC string `json:"bic,omitempty"`
|
|
BankName string `json:"bankName,omitempty"`
|
|
}
|
|
|
|
// LegacyPaymentEndpoint mirrors the previous bag-of-pointers DTO for backward compatibility.
|
|
type LegacyPaymentEndpoint struct {
|
|
Ledger *LedgerEndpoint `json:"ledger,omitempty"`
|
|
ManagedWallet *ManagedWalletEndpoint `json:"managed_wallet,omitempty"`
|
|
ExternalChain *ExternalChainEndpoint `json:"external_chain,omitempty"`
|
|
Card *CardEndpoint `json:"card,omitempty"`
|
|
Metadata map[string]string `json:"metadata,omitempty"`
|
|
}
|