Skip to content

Create On-Us Transfer

Request

Initiates an On-Us Transfer between two Pockets.

On-Us Transfers can be made in four directions (defined by type):

  1. PARTNER_CUSTOMER_FUNDING: From a Partner’s Pocket to a Customer’s Pocket
  2. PARTNER_CUSTOMER_DEFUNDING: From a Customer’s Pocket to a Partner’s Pocket
  3. INTERNAL_REALLOCATION: Between two Pockets belonging to the same Customer
  4. PEER_TO_PEER: From a Customer’s Pockets to Customer’s On-Us Counterparty

On-Us Transfer amounts can be specified two ways (defined by amount.type):

  1. REQUESTED_AMOUNT: Transfer a specified dollar amount
  2. FULL_WITHDRAWAL: Transfer the Pocket's total available balance (net of fees). amount.type cannot be FULL_WITHDRAWAL when type is PARTNER_CUSTOMER_FUNDING.

On-Us Transfers can be processed asynchronously or synchronously. We strongly recommend processing On-Us Transfers asynchronously (setting async_mode to true). Asynchronous transfers will be created in a PENDING state and status updates will be delivered via Webhooks.

Security
HTTPBearer
Headers
x-jiko-idempotencystring, (uuid)(X-Jiko-Idempotency)required
x-jiko-signaturestring(X-Jiko-Signature)required
Bodyapplication/jsonrequired
transfer_idstring or null(Transfer Id)
Example:"cbb6cfce-f207-45e7-a6b3-1055ab43db51"
Any of:

The ID for this transfer, auto-generated if not provided.

string (uuid)
descriptionstring or null(Description)
Example:"Moving funds between accounts belonging to the same customer"
Any of:

A description of the transfer, visible on statements.

<= 100 characters
string
end_to_end_identificationstring or null(End To End Identification)
Any of:

Unique identification assigned by the initiating party to unambiguously identify the transaction. This identification is passed on, unchanged, throughout the entire end-to-end chain.

<= 35 characters
string
from_accountobject(OnUsJikoAccountCounterparty)required
Example:
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "type": "JIKO_ACCOUNT" }
to_accountobject(OnUsJikoAccountCounterparty)required
Example:
{ "id": "991dd8b5-f103-4158-8c6b-84480cb43652", "type": "JIKO_ACCOUNT" }
typestring(Type)required

Move funds between accounts belonging to the same customer.

Enum:"INTERNAL_REALLOCATION""PARTNER_CUSTOMER_DEFUNDING""PARTNER_CUSTOMER_FUNDING""PEER_TO_PEER"
Example:"INTERNAL_REALLOCATION"
Discriminator
Value:"INTERNAL_REALLOCATION"
transfer_typestring or null(Transfer Type)
Any of:

Type of internal reallocation transfer. BANK_TRANSFER (default): sells the CUSIP from the origin pocket and buys new CSIP for the destination pocket. Settlement is T+1. SECURITY_TRANSFER: no bank transaction occurs; CUSIPs are moved directly between pockets. This is instant but currently only allowed for jiko_net pockets.

string
Enum:"BANK_TRANSFER""SECURITY_TRANSFER"
amount_usdcinteger or null(Amount USDC)
Any of:

The amount, in USD cents. Deprecated, use amount instead.

> 0
integer
amountany or null(Amount)
Example:
{ "amount_usdc": 10000, "type": "REQUESTED_AMOUNT" }
Any of:
async_modeboolean(Async Mode)

Using asynchronous processing is strongly recommended. Status updates will be delivered via Webhooks.

Default:false
curl -i -X POST \
  https://your-partner-name.partner-api.jikoservices.com/api/v1/transfers/on-us/ \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'x-jiko-idempotency: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'x-jiko-signature: string' \
  -d '{
    "amount": {
      "amount_usdc": 10000,
      "type": "REQUESTED_AMOUNT"
    },
    "description": "Moving funds between accounts belonging to the same customer",
    "from_account": {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "type": "JIKO_ACCOUNT"
    },
    "to_account": {
      "id": "991dd8b5-f103-4158-8c6b-84480cb43652",
      "type": "JIKO_ACCOUNT"
    },
    "transfer_id": "cbb6cfce-f207-45e7-a6b3-1055ab43db51",
    "type": "INTERNAL_REALLOCATION"
  }'

Responses

Successful Response

Bodyapplication/json
idstring, (uuid)(Id)required
statusstring(Status)required
Enum:"PENDING""COMPLETED""REJECTED"
reasonstring or null(Reason)required
Any of:
string
Enum:"ACCOUNT_UNAVAILABLE""CANCELED""INSUFFICIENT_FUNDS""INVALID_CURRENCY""INVALID_TRANSFER""SANCTION_SCREEN_FAILED"
transferany(OnUsTransferDetails)required
feesArray of objects(Fees)required
object_typestring(Object Type)read-onlyrequired
Response
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "status": "PENDING", "transfer": { "transfer_id": "d4a2d8dd-7def-4545-a062-761683b9aa05", "description": "Disbursing funds from partner to customer", "from_account": {}, "to_account": {}, "type": "PARTNER_CUSTOMER_FUNDING", "source": "123456789", "amount": {} }, "fees": [ {} ], "object_type": "OnUsTransfer" }