Skip to main content

Endpoint

  • Method: POST
  • URL: {{LIQUIDITY_URL}}/v1/ext/linked-accounts/:currency/:linkedAccountId/withdrawal
  • Auth: Bearer {{accessToken}} (scope external.apis)
  • Rate limit: 1 withdrawal per minute per user (and IP). Returns 429 if exceeded.

Path Parameters

Headers

Request Body

Note: MFA is not required. Do not send mfaCode.

Request

To request a real-time payment instead of a standard bank transfer:

Response (200)

Response Fields

Transaction Statuses

Error (4xx / 5xx)

Error Cases

Payout Types

The payout method is determined by the type of linked account. For bank accounts, you can optionally override to real-time payment by passing routingType: "RTP".

Validation Rules

  • amount — Required. Number greater than 0.
  • walletType — Required. Must be "SPEND" (uppercase).
  • reason — Optional. String.
  • routingType — Optional. If provided, must be one of: ACH, RTP, WIRE, BANK. Omit for default bank transfer behaviour.
  • currency — From path parameter. Must be USD.
  • linkedAccountId — From path parameter. Must be a valid UUID of a linked account for the authenticated entity.
  • MFA — Not required. Do not include mfaCode.
If the request is made in the context of a payment link with withdrawalSource === 'MERCHANT_WALLET':
  • The amount in the body must exactly match the amount on the application token; otherwise returns 400 "Malformed request".
  • On success, the application token is invalidated immediately and cannot be reused.

Notes

  • The linked account must be associated with the authenticated entity’s SPEND wallet.
  • A success response means the payout has been queued or dispatched. Final settlement may be asynchronous — use the transaction status endpoint or webhooks to confirm.
  • No idempotency keys are supported. Implement client-side deduplication if needed.
  • Rate limited to 1 request per minute per user.