Skip to main content
POST
Create a payout

Authorizations

Authorization
string
header
required

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

Headers

Idempotency-Key
string
required

A random key provided by the customer, per unique payout. The purpose for the Idempotency key is to allow safe retrying without the operation being performed multiple times.

Body

application/json

Request body containing information to create a payout

amount
integer
required

The payout amount, in the minor unit of the currency

confirm
boolean
required

If true, the payout is immediately submitted for processing. If false, the payout is created in CREATED status and must be confirmed via POST /payouts/{payoutId}/confirm before it is processed.

currency
string
required

ISO 4217 currency code of the payout

payment_details
object
required
recipient_account
object
required
sender_account
object
required
metadata
object

Up to 20 metadata key-value pairs

Response

ok

live
boolean
required

Flag to indicate whether the payment is a test transaction (i.e. from/to a test bank, live=false) or a live transaction (i.e. from/to a real bank, live=true).

amount
integer

Amount of the payout (in minor currency unit)

created_at
string<date-time>

Timestamp when the payout was first created

currency
string

Currency of the payout (e.g. HKD)

error
object

Details on why the payout failed (returned when status = FAILED). Note: this is used to detail any asynchronous e errors occuring after payout creation; any synchronous errors (e.g. API validation errors, real-time payout errors) will instead be returned directly during POST /payouts.

fees
object[]

Details on the fee(s) to be charged

metadata
object

Customer-supplied attributes in key:value format. E.g. employer_name: Apple Inc

payment_details
object

Details on the payout

payout_id
string

Finverse Payout ID for this payout. Always unique. Creating a payout with different idempotency keys will result in two payouts with different IDs.

recipient
object

Details on the recipient of the payout Note: In some cases when the payout has been executed by a 3rd party payment gateway, the recipient may not be known.

recipient_account
object

Details on the account receiving the payout Note: In some cases when the payout has been executed by a 3rd party payment gateway, the recipient account may not be known.

sender
object

Details on the sender of the payout

sender_account
object

Details on the Sender's account at Finverse (i.e. the Customer App's settlement account at Finverse)

status
enum<string>

Current status of the payout. Possible values: CREATED, FUNDED, PROCESSING, SUBMITTED, EXECUTED, CANCELLED, FAILED

Available options:
EXECUTED,
CREATED,
PROCESSING,
PROCESSING_FUNDS,
CANCELLED,
FAILED,
FUNDED,
SUBMITTED
transaction_date
string

[DEPRECATED] Transaction date

transaction_time
string<date-time> | null

Date/time at which the payout was confirmed as executed. The actual settlement date/time of the payout may be different. In addition, a payout may be recorded at different times on the bank accounts of the sender vs. the recipient. Note: in some cases, the transaction date will be known, but the specific transaction time may not be known. In these cases, the transaction time will be listed as YYYY-MM-DDT00:00:00Z (or another fixed time value).

Example:

"2025-08-22T12:00:00Z"

type
enum<string>

Specified payout type. Possible values: MANUAL, SCHEDULED, SETTLEMENT

Available options:
MANUAL,
SCHEDULED,
SETTLEMENT
updated_at
string<date-time>

Timestamp of the last update to the payout's record