Skip to main content
POST
Wallet → Wallet (internal transfer)

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Body

application/json

Move funds to another wallet on your platform (intent_type=transfer).

Address the destination one of two ways — send exactly one:

  • destination_wallet_id — a wallet UUID you already know.
  • destination_payee_id — a payee (addressed by email). Funds route to the matching user's wallet, or to a held inbound-only wallet (a ghost recipient is provisioned) until that person is added — see recipient_status in the response.
wallet_id
string<uuid>
required

Source wallet UUID — the tenant's master wallet or one of the user's wallets. Server validates tenant ownership and currency and resolves the owner from it.

Example:

"a1b2c3d4-e5f6-7890-abcd-ef1234567890"

amount
number
required

Amount in major currency units (e.g. dollars).

Example:

100.5

idempotency_key
string
required

Unique key to ensure idempotent payment creation.

Required string length: 1 - 120
Example:

"pay_req_20260604_abc123"

user_id
string<uuid> | null

Optional safety cross-check — when sent, must match the owner of wallet_id.

Example:

"b3a9b622-cc63-4d3c-aad6-2d8e29e6f9d4"

currency
string
default:USD

ISO 4217 currency code.

Required string length: 3
Example:

"USD"

metadata
Metadata · object

Arbitrary key-value metadata to attach to the payment.

Example:
destination_wallet_id
string<uuid> | null

Destination wallet UUID to credit. Server validates tenant ownership and currency and resolves the owner from it. Mutually exclusive with destination_payee_id — send one.

Example:

"c3d4e5f6-a7b8-9012-3456-7890abcdef01"

destination_payee_id
string<uuid> | null

UUID of the payee to send to. The payee must have an email; funds route to the matching user's wallet, or a held inbound-only wallet until that person is added. Mutually exclusive with destination_wallet_id — send one.

Example:

"c8d9e0f1-a2b3-4567-89ab-cdef01234567"

notify_recipient
boolean
default:false

Payee transfers only. Records a preference to notify the recipient that funds arrived. Outbound notification delivery is not yet active.

Example:

false

Response

Successful Response

Standard response wrapper for single-object responses and errors.

Generic over the payload type. A route that declares CommonResponse[SomeModel] gets the real data schema rendered in OpenAPI/Swagger; a bare CommonResponse leaves data untyped.

status_code
integer
required

HTTP status code for the response.

data
any
required

Payload or error details.

query_generated_time
integer
required

UTC timestamp (milliseconds since epoch) when response was generated.