Skip to main content
POST
finance.transfer.create

Authorizations

Authorization
string
header
required

API key: sk_live_…

Headers

Idempotency-Key
string
required

Required: this capability has an external effect.

Maximum string length: 255
Pramaan-Account
string

Optional. One of your account ids (GET /v1/accounts): run on that account, whatever your routing rules say. The response header X-Pramaan-Account names the account that ran.

Pramaan-End-User
string

Optional. Your own tag for your end user: a sticky: end_user rule keeps them on the account that first served them.

Maximum string length: 256
Pramaan-End-User-Group
string

Optional. Your end user's group, matched by rules with endUserGroup.

Maximum string length: 64

Body

application/json
amount
object
required

Principal in whole minor units of an explicit currency; by default what the recipient receives.

transferId
string

Your own ID for the transfer. Accounts that assign their own IDs decline it; accounts that need yours decline its absence.

Required string length: 1 - 128
Pattern: ^[A-Za-z0-9_-]+$
beneficiaryId
string

Your saved beneficiary record ID.

Required string length: 1 - 128
Pattern: ^[A-Za-z0-9_-]+$
beneficiary
object

Recipient details to use once, instead of a saved beneficiary.

fixedSide
enum<string>

Whether amount is what the recipient receives (default) or what leaves your account.

Available options:
receive,
send
sourceCurrency
string

With the default fixedSide, the currency taken from your account; defaults to the currency of amount.

Required string length: 1 - 3
Pattern: ^[A-Z]{3}$
receiveCurrency
string

With fixedSide send, the currency the recipient receives.

Required string length: 1 - 3
Pattern: ^[A-Z]{3}$
mode
enum<string>

Transfer rail; bank lets the account select a bank rail.

Available options:
bank,
imps,
neft,
rtgs,
upi
note
string

Reference shown to the recipient.

Required string length: 1 - 200
reason
string

Business reason for the transfer.

Required string length: 1 - 200
remarks
string

Internal transfer remarks.

Required string length: 1 - 500
accountId
string

Connected sub-account to pay from; omit to use your own account.

Required string length: 1 - 128
Pattern: ^[A-Za-z0-9_-]+$
payerId
string

Saved payer record ID.

Required string length: 1 - 128
Pattern: ^[A-Za-z0-9_-]+$
payer
object

Explicit payer details; omit to use the account's default payer.

quoteId
string

Quote to make the transfer from. The transfer then uses that quote's rate and amounts: a source refuses an amount or currency that differs from the quote.

Required string length: 1 - 128
Pattern: ^[A-Za-z0-9_-]+$
profileId
string

Sending profile in your connected account, where quotes belong to a profile.

Required string length: 1 - 128
Pattern: ^[A-Za-z0-9_-]+$
transferDate
string<date>

Calendar date, YYYY-MM-DD.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
transferMethod
enum<string>

Local bank network or international bank transfer.

Available options:
local,
swift
feePaidBy
enum<string>

Who bears the transfer fees.

Available options:
payer,
beneficiary
swiftChargeOption
enum<string>

Who bears SWIFT charges.

Available options:
shared,
payer
lockRateOnCreate
boolean

Whether a scheduled currency conversion locks its rate on creation.

applicationFeeOptions
object[]

Optional additional fees; never added by default.

Maximum array length: 10

Explicit additional fee charged to the connected account; omit for no additional fee.

Response

Job started; poll GET /v1/jobs/{id}

job_id
string
required
status
enum<string>
required
Available options:
running
held_micro
integer
required

The credit set aside for the job (its estimate), micro-USD; 0 when it takes none. Not a price: what the job is charged reads on GET /v1/jobs/{id} once it is settled.