Skip to main content
Version: 2019-05-29 (Current)

Create a transfer with chain

Create a transfer with merchant_id parameter to link it to a charge chain. This enables manual marketplace transfers with full control over timing and amount.


๐Ÿ”‘API Credentials

Request Parametersโ€‹

Required - 2 fieldsRequired Parameters
โ–ผ
`amount`INTEGER(required)
Transfer amount in smallest currency unit (satangs for THB, cents for USD, yen for JPY).
Example:85000
Constraints:Minimum: 1 (smallest unit)
`recipient`STRING(required)
Recipient ID to receive the transfer. Must be a verified recipient.
Example:"recp_test_5xuy4w91xqz7d1w9u0t"
Recommended - 1 fieldRecommended Parameters
Additional - 1 fieldAdditional Parameters

Responsesโ€‹

200

Successful creation

Transfer created successfully. The transfer will be sent to the recipient's bank account within 24 hours.

Response includes:
  • id - Transfer ID
  • amount - Transfer amount
  • recipient - Recipient ID
  • sent - Whether transfer has been sent to bank
  • paid - Whether recipient has received funds

400

Bad request

Request validation failed. Check the error message for details.

Common causes:
  • Missing required fields (amount, recipient)
  • Invalid amount (negative or zero)
  • Invalid recipient ID format
  • Invalid merchant_id (charge ID) format

401

Unauthorized

Authentication failed. Invalid or missing API key.

Common causes:
  • Missing Authorization header
  • Invalid secret key
  • Using public key instead of secret key
  • Incorrect HTTP Basic Auth format

422

Unprocessable entity

Transfer cannot be processed due to business logic constraints.

Common causes:
  • Insufficient balance for transfer
  • Recipient not verified
  • Recipient inactive or revoked
  • Transfer amount exceeds limits

Code samplesโ€‹

curl https://api.omise.co/transfers \
-u skey_test_5xuy4w91xqz7d1w9u0t: \
-d "amount=85000" \
-d "recipient=recp_test_5xuy4w91xqz7d1w9u0t" \
-d "merchant_id=chrg_test_5xuy4w91xqz7d1w9u0t"

Error and result codesโ€‹

Common Error Codesโ€‹

CodeDescriptionResolution
bad_requestMissing or invalid parametersCheck all required fields are provided
authentication_failureInvalid API keyVerify your secret key is correct
insufficient_balanceNot enough balance for transferCheck account balance
recipient_not_verifiedRecipient not verifiedRecipient must be verified before receiving transfers
recipient_inactiveRecipient is inactiveCheck recipient status

Transfer Status Fieldsโ€‹

FieldDescription
sentWhether transfer has been sent to bank (false = pending, true = sent)
paidWhether recipient has received funds (false = in transit, true = completed)
sent_atTimestamp when transfer was sent to bank
paid_atTimestamp when recipient received funds

Try it outโ€‹

Required - 2 fields
โ–ผ
Recommended - 1 fields
Additional - 1 fields