Inttegro.FinancialAccounts.WalletRequestWallet (inttegro v0.2.0)

Copy Markdown View Source

Parameters for Wallet Request Wallet in the FinancialAccounts API.

Build this struct with new!/1 and pass it to the corresponding function on Inttegro.FinancialAccounts. Required keys are enforced immediately; optional values left as nil are omitted from the request sent to Inttegro.

Creates, connects, and controls the accounts an application uses to move money.

A financial account represents a wallet, Ghana bank account, or Dosh account. The account owns its identity and verification state; push and pull are separate capabilities layered on top:

  • Push allows Inttegro to send payouts and other supported transfers to the account.
  • Pull allows supported payments to collect funds from the account. Enabling it records a mandate using the payer's real IP address and user agent.

Use create/3 when Inttegro should provision or manage the account and connect/3 when the account already exists outside Inttegro. Both accept one of the concrete request types linked from Inttegro.FinancialAccounts.CreateRequest.t/0. Connecting an account does not imply that every money-movement capability is enabled; inspect push_configuration, pull_configuration, and verification on the returned account.

Typical lifecycle

create or connect
  -> complete any required verification
  -> enable push, pull, or both
  -> use the account for supported activity
  -> disable a capability or disconnect the account

disconnect/3 stops new activity without erasing the account's history. reconnect/3 restores the relationship, but callers should still inspect which capabilities are active afterward.

All state-changing calls accept request options as their last argument. Supply a stable :idempotency_key when retrying the same logical change after a timeout or connection failure.

Summary

Types

t()

A validated wallet request wallet request.

Functions

Builds a Inttegro.FinancialAccounts.WalletRequestWallet and raises KeyError when a required field is missing.

Types

t()

@type t() :: %Inttegro.FinancialAccounts.WalletRequestWallet{
  mobile_money: Inttegro.FinancialAccounts.WalletRequestWalletMobileMoney.t(),
  type: Inttegro.Wallets.Type.t()
}

A validated wallet request wallet request.

Functions

new!(attrs \\ %{})

@spec new!(map() | keyword()) :: t()

Builds a Inttegro.FinancialAccounts.WalletRequestWallet and raises KeyError when a required field is missing.