Skip to main content
POST
Create a transfer-out request

Authorizations

Authorization
string
header
required

API token authentication using format <api token id>:<api client secret>

Headers

Idempotency-Key
string

A unique identifier for the request. If the same key is sent multiple times, the server will return the same response as the first request.

Maximum string length: 255
Example:

"550e8400-e29b-41d4-a716-446655440000"

Body

application/json
source
object
required

Source internal account details

destination
object
required

Destination external account details

amount
integer<int64>

Amount in the smallest unit of the currency (e.g., cents for USD/EUR, satoshis for BTC)

Example:

12550

remittanceInformation
string

Free-form information about the payment that travels with it to the recipient. The field this populates depends on the payment rail: for ACH it populates the Addenda record, for FedNow and RTP it populates the remittanceInformation field, and for wires it populates the OBI (Originator to Beneficiary Information) / beneficiary information.

Maximum string length: 80
Example:

"12345"

purposeOfPayment
enum<string>

The purpose of the payment. This may be required when sending to certain geographies (e.g. India).

Some destinations accept only certain purposes. A business payout to China must use one of the purposes listed in Supporting Documents, and each needs its own supporting documents.

Available options:
GIFT,
SELF,
GOODS_OR_SERVICES,
EDUCATION,
HEALTH_OR_MEDICAL,
REAL_ESTATE_PURCHASE,
TAX_PAYMENT,
LOAN_PAYMENT,
UTILITY_BILL,
DONATION,
TRAVEL,
FAMILY_SUPPORT,
SALARY_PAYMENT,
EXPORTED_GOODS_PREPAYMENT,
EXPORTED_GOODS_POSTPAYMENT,
SERVICE_CHARGES,
OFFICE_EXPENSES,
DELIVERY_FEES,
HOTEL_ACCOMMODATION,
COMMISSION_ON_GOODS,
COMMISSION_ON_SERVICES,
ACCOUNTING_SERVICES,
EXHIBITION_SERVICES,
OTHER

Response

Transfer-out request created successfully.

id
string
required

Unique identifier for the transaction

Example:

"Transaction:019542f5-b3e7-1d02-0000-000000000004"

status
enum<string>
required

Status of a payment transaction.

Available options:
CREATED,
PENDING,
PENDING_AUTHORIZATION,
PROCESSING,
COMPLETED,
REJECTED,
FAILED,
REFUNDED,
EXPIRED
type
enum<string>
required

Type of transaction

Available options:
INCOMING
direction
enum<string>
required

Whether this transaction credits or debits the customer's account.

Available options:
CREDIT,
DEBIT
destination
Account Destination · object
required

Destination account details

customerId
string
required

System ID of the customer this transaction belongs to

Example:

"Customer:019542f5-b3e7-1d02-0000-000000000001"

platformCustomerId
string
required

Platform-specific ID of the customer this transaction belongs to

Example:

"18d3e5f7b4a9c2"

pendingReason
enum<string>

Present when compliance review or required customer action is delaying settlement.

Available options:
COUNTERPARTY_DECLARATION_REQUIRED,
WALLET_VERIFICATION_REQUIRED,
COUNTERPARTY_INFORMATION_REQUIRED,
COMPLIANCE_REVIEW
ruleBasedAccountId
string

The RULE_BASED internal account whose deposit this transaction sweeps. Present only on sweep transactions. For these, source describes the party that made the deposit when it is known, and is this account otherwise.

Example:

"InternalAccount:019542f5-b3e7-1d02-0000-000000000011"

settledAt
string<date-time>

When the payment was or will be settled

Example:

"2025-08-15T14:30:00Z"

createdAt
string<date-time>

When the transaction was created

Example:

"2025-08-15T14:25:18Z"

updatedAt
string<date-time>

When the transaction was last updated

Example:

"2025-08-15T14:30:00Z"

receiptDeliveryConfirmedAt
string<date-time>

The time at which the platform confirmed delivery of the receipt to their customer.

Example:

"2025-08-15T14:31:00Z"

agentId
string

If this transaction was initiated by an agent, the system-generated ID of that agent. Absent for platform-initiated transactions.

Example:

"Agent:019542f5-b3e7-1d02-0000-000000000042"

description
string

Optional memo or description for the payment

Example:

"Payment for invoice #1234"

sentAmount
object

Amount sent in the sender's currency

exchangeRate
number

Number of sending currency units per receiving currency unit. The rate is fee-exclusive: Grid deducts fees from the sending amount before converting at this rate.

Example:

1.08

quoteId
string

The ID of the quote that was used to trigger this payment

Example:

"Quote:019542f5-b3e7-1d02-0000-000000000006"

refund
object

The refund if transaction was refunded.

counterpartyInformation
object

Additional information about the counterparty, if available and relevant to the transaction and platform.

Example:
source
Account Source · object

Source account details

receivedAmount
object

Amount received in the recipient's currency. This is only absent for rule-based account sweeps if the sweep couldn't be quoted. It's always present otherwise.

fees
integer<int64>

The total fees available from the receive quote in the smallest unit of the sending currency (eg. cents).

Required range: x >= 0
Example:

10

reconciliationInstructions
object

Included for all transactions except those with "CREATED" status

failureReason
enum<string>

If the transaction failed, this field provides the reason for failure.

Available options:
LNURLP_FAILED,
PAY_REQUEST_FAILED,
PAYMENT_APPROVAL_WEBHOOK_ERROR,
PAYMENT_APPROVAL_TIMED_OUT,
OFFRAMP_FAILED,
MISSING_MANDATORY_PAYEE_DATA,
QUOTE_EXPIRED,
QUOTE_EXECUTION_FAILED,
COMPLIANCE_REJECTED,
COLLECTION_FAILED,
SWEEP_AMOUNT_OUT_OF_RANGE,
SWEEP_QUOTE_FAILED