Skip to main content
POST
cURL

Authorizations

Authorization
string
header
required

Basic authentication using the partner API keys from https://console.grainfinance.co/keys

Body

application/json

Request body for POST /v1/payouts (review). Creates a pending, time-limited payout proposal that must be submitted via POST /v1/payouts/{id}/submit before it expires.

externalVendorId
string
required

Your own reference id for the vendor receiving the payout.

Pattern: ^[A-Za-z0-9_.\-]{1,64}$
Example:

"vendor_001"

externalPayoutId
string
required

Your own reference number for this payout.

Pattern: ^[A-Za-z0-9_.\-]{1,64}$
Example:

"inv_2026_001"

currency
string
required

The alpha-3 ISO 4217 currency code of the payout.

Pattern: ^[A-Z]{3}$
Example:

"USD"

amount
number<double>
required

The payout amount, denoted in currency.

Example:

5000

reason
enum<number>
required

The compliance reason categorising this payout, as a numeric code:

1 - Intercompany Payment 2 - Purchase of Good(s) 3 - Purchase of Service(s) 4 - Transferring to Own Accounts 5 - Valid Vendor Purchases

Available options:
1,
2,
3,
4,
5
Example:

2

description
string

Optional free-form description for the payout.

Example:

"Payment for services"

Response

Payout created

A pending payout proposal, returned by POST /v1/payouts (review). Submit it via POST /v1/payouts/{id}/submit to execute the payout.

id
string<uuid>
required

The id of the payout proposal within the Grain platform.

Pattern: [0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}
Example:

"8173b9a7-ee61-413e-b9e3-7c04b2a067c5"

externalPayoutId
string
required

The payout id, as identified within your system.

Pattern: ^[A-Za-z0-9_.\-]{1,64}$
Example:

"inv_2026_001"

currency
string
required

The alpha-3 ISO 4217 currency code of the payout.

Pattern: ^[A-Z]{3}$
Example:

"USD"

amount
number<double>
required

The payout amount, denoted in currency.

Example:

5000

fee
number<double>
required

The fee applied to this payout, denoted in currency.

Example:

1.5

totalAmount
number<double>
required

Total amount that will leave the wallet (amount + fee), denoted in currency.

Example:

5001.5

reason
enum<number>
required

The compliance reason categorising this payout, as a numeric code:

1 - Intercompany Payment 2 - Purchase of Good(s) 3 - Purchase of Service(s) 4 - Transferring to Own Accounts 5 - Valid Vendor Purchases

Available options:
1,
2,
3,
4,
5
Example:

2

description
string | null
required

Free-form description supplied when initiating the payout.

validUntilTs
number<double>
required

When the proposal expires if not submitted, as a Unix timestamp in seconds.

Example:

1779805920

payoutMethod
enum<string>
required

The payment method that will be used to send the payout.

Available options:
SWIFT,
SEPA,
WIRE,
ACH,
FPS,
CA ACSS,
NPP,
IBG,
BECS,
CCASS,
TEF,
UAEFTS,
SIC,
CERTIS,
DKSMC,
NICS,
SORBNET,
RIX,
SAMOS,
ZAHAV,
SARIE,
QPS
Example:

"SEPA"

vendorDetails
object
required

The vendor receiving the payout, including their bank account details.