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

Create a transfer

Create a new transfer to send funds from your Omise account balance to a verified recipient's bank account. Transfers can be made to your default recipient or to specific recipients.


๐Ÿ”‘API Credentials

Request Parametersโ€‹

Recommended - 3 fieldsRecommended Parameters
โ–ผ
`amount`INTEGER(optional)
Amount in smallest currency unit (satangs for THB, cents for USD, yen for JPY). If not provided, defaults to your full transferable balance.
Example:100000
Constraints:Minimum: 1 (smallest unit)
`recipient`STRING(optional)
Recipient ID (e.g., recp_test_...). If not provided, uses your account's default recipient.
Example:"recp_test_5xuy4w91xqz7d1w9u0t"
`metadata`OBJECT(optional)
Custom key-value pairs (max 15,000 characters total). Useful for storing transfer references or any custom data.
Example:{"payout_id":"1234","batch":"monthly_payouts"}
Additional - 2 fieldsAdditional Parameters

Responsesโ€‹

200

Successful transaction

Transfer created successfully. Check the sent and paid fields to determine transfer status.

Transfer status indicators:
  • sendable: true - Transfer can be initiated.
  • sent: true - Transfer has been sent to the bank.
  • paid: true - Transfer completed, funds received.
  • failure_code - Present if transfer failed (see error codes below).

400

Bad request

Request validation failed. Check the error message for details.

Common causes:
  • Invalid recipient ID
  • Invalid amount (exceeds available balance)
  • Missing bank account information
  • Malformed metadata

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

402

Payment required

Transfer processing failed.

Common causes:
  • Insufficient balance
  • Recipient not verified
  • Transfers suspended on your account
  • Invalid bank account details

Code samplesโ€‹

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

Error and result codesโ€‹

Common Error Codesโ€‹

CodeDescriptionResolution
insufficient_balanceNot enough funds to complete transferWait for charges to clear or reduce amount
invalid_recipientRecipient ID not found or invalidVerify recipient exists and is active
transfers_suspendedTransfers disabled on accountContact Omise support
transfer_deletedTransfer was deletedCannot process deleted transfers
transfer_sentTransfer already sentCannot modify sent transfers
transfer_failedTransfer processing failedCheck failure_message for details

Transfer Status Indicatorsโ€‹

IndicatorDescription
sendable: trueTransfer ready to be sent
sent: trueTransfer dispatched to bank
paid: trueFunds successfully received
failure_codeError occurred (see codes above)

Try it outโ€‹

Recommended - 3 fields
Additional - 2 fields