Documentation ¶
Index ¶
- Constants
- Variables
- type APIErr
- type APIKey
- type AccountBalance
- type AuthUser
- type AuthUserStatus
- type BearerToken
- type Client
- func (c *Client) APIKeys(ctx context.Context, options ...RequestOption) (*PageInfo, []APIKey, error)
- func (c *Client) AccountBalance(ctx context.Context, accountID uuid.UUID) (*AccountBalance, error)
- func (c *Client) DelAPIKey(ctx context.Context, apiKeyID uuid.UUID) error
- func (c *Client) DisableAPIKey(ctx context.Context, apiKeyID uuid.UUID) error
- func (c *Client) EnableAPIKey(ctx context.Context, apiKeyID uuid.UUID) error
- func (c *Client) MakePayment(ctx context.Context, paymentOrder PaymentOrder) (*PaymentResult, error)
- func (c *Client) Me(ctx context.Context) (*AuthUser, error)
- func (c *Client) NewAPIKey(ctx context.Context) (*APIKey, error)
- func (c *Client) Transactions(ctx context.Context, options ...RequestOption) (*PageInfo, []Transaction, error)
- func (c *Client) WebhookHandler(handler WebhookHandler) func(http.ResponseWriter, *http.Request)
- type ClientOptions
- type Credentials
- type PageInfo
- type PaymentOrder
- type PaymentResult
- type RequestOption
- func WithFilterAccountIDs(accountID ...uuid.UUID) RequestOption
- func WithFilterInDateRange(startDate, endDate time.Time) RequestOption
- func WithFilterIncomingTransactions() RequestOption
- func WithFilterOutgoingTransactions() RequestOption
- func WithPageNum(pageNum int) RequestOption
- func WithPageSize(pageSize int) RequestOption
- type Transaction
- type TransactionAccount
- type TransactionParticipant
- type TrxDirection
- type TrxTransferMethod
- type WebhookHandler
Constants ¶
const ( AuthUserStatusActive AuthUserStatus = "ACTIVE" AuthUserStatusSuspended AuthUserStatus = "SUSPENDED" AuthUserStatusPaused AuthUserStatus = "PAUSED" AuthUserStatusNotActivated AuthUserStatus = "WAITING_FOR_ACTIVATION" TrxDirectionIncoming TrxDirection = "INCOMING" TrxDirectionOutgoing TrxDirection = "OUTGOING" TrxTransferMethodHavale TrxTransferMethod = "HAVALE" TrxTransferMethodEFT TrxTransferMethod = "EFT" TrxTransferMethodFAST TrxTransferMethod = "FAST" )
Variables ¶
var ErrCurrencyMismatch = errors.New("payment error: currency mismatch")
var ErrIncorrectRecipientData = errors.New("payment error: incorrect recipient data")
var ErrInsufficientBalance = errors.New("payment error: insufficient balance")
var ErrInvalidRecipientID = errors.New("payment error: recipient id")
var ErrOutOfEFTHours = errors.New("payment error: out of eft hours")
Functions ¶
This section is empty.
Types ¶
type AccountBalance ¶
type AuthUser ¶
type AuthUser struct { Email string `json:"accountIdentifier"` FirstName string `json:"firstName"` LastName string `json:"lastName"` Status AuthUserStatus `json:"accountStatus"` }
type AuthUserStatus ¶
type AuthUserStatus string
type BearerToken ¶
func (*BearerToken) Pack ¶
func (t *BearerToken) Pack() (string, error)
func (*BearerToken) Sign ¶
func (t *BearerToken) Sign(apiKeySecret, contentToSign []byte) error
func (*BearerToken) Unpack ¶
func (t *BearerToken) Unpack(packed string) error
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶
func NewClient(apiCreds Credentials, clientOpts *ClientOptions) (*Client, error)
func (*Client) APIKeys ¶
func (c *Client) APIKeys(ctx context.Context, options ...RequestOption) (*PageInfo, []APIKey, error)
APIKeys returns the list of API keys.
func (*Client) AccountBalance ¶
AccountBalance returns the balance information for the given account ID.
func (*Client) DisableAPIKey ¶
EnableAPIKey de-activate the API key by the given ID.
func (*Client) EnableAPIKey ¶
EnableAPIKey activate the API key by the given ID.
func (*Client) MakePayment ¶
func (c *Client) MakePayment(ctx context.Context, paymentOrder PaymentOrder) (*PaymentResult, error)
MakePayment sends payment order to the bank and returns the bank response.
func (*Client) Transactions ¶
func (c *Client) Transactions(ctx context.Context, options ...RequestOption) (*PageInfo, []Transaction, error)
Transactions returns the list of bank transactions. The list can be filtered by the given list of RequestOption.
func (*Client) WebhookHandler ¶
func (c *Client) WebhookHandler(handler WebhookHandler) func(http.ResponseWriter, *http.Request)
type ClientOptions ¶
type Credentials ¶
type PaymentOrder ¶
type PaymentResult ¶
type RequestOption ¶
type RequestOption interface {
// contains filtered or unexported methods
}
func WithFilterAccountIDs ¶
func WithFilterAccountIDs(accountID ...uuid.UUID) RequestOption
WithFilterAccountIDs filters the list of bank transactions for the given list of account ID.
func WithFilterInDateRange ¶
func WithFilterInDateRange(startDate, endDate time.Time) RequestOption
WithPageSize filters the list of bank transactions by the given date range
func WithFilterIncomingTransactions ¶
func WithFilterIncomingTransactions() RequestOption
WithFilterIncomingTransactions filters the list of bank transactions for only incoming transfers.
func WithFilterOutgoingTransactions ¶
func WithFilterOutgoingTransactions() RequestOption
WithFilterOutgoingTransactions filters the list of bank transactions for only outgoing transfers.
func WithPageNum ¶
func WithPageNum(pageNum int) RequestOption
WithPageNum allows customizing the requested page number.
func WithPageSize ¶
func WithPageSize(pageSize int) RequestOption
WithPageSize allows customizing the requested page size.
type Transaction ¶
type Transaction struct { ID uuid.UUID `json:"id"` Date time.Time `json:"date"` Account TransactionAccount `json:"account"` Amount decimal.Decimal `json:"amount"` Currency string `json:"currency"` Direction TrxDirection `json:"direction"` Description string `json:"description"` ReceivedAt time.Time `json:"received_at"` RefCode string `json:"reference_code"` TransferMethod TrxTransferMethod `json:"transfer_type"` Sender *TransactionParticipant `json:"sender"` Recipient *TransactionParticipant `json:"recipient"` PaymentID *uuid.UUID `json:"payment_id"` }
type TransactionAccount ¶
type TransactionParticipant ¶
type TrxDirection ¶
type TrxDirection string
type TrxTransferMethod ¶
type TrxTransferMethod string
type WebhookHandler ¶
type WebhookHandler func(context.Context, Transaction) error