Skip to content

Jiko Partner API (Version: fd60d28d)

Introduction

Welcome to the Jiko API Reference! Jiko enables you to integrate money storage and movement, backed by the safety and security of US Treasury Bills. Use the Partner API if you are building an application that embeds Jiko’s services and offers Jiko products to your own customers. The Partner API will then enable your application to interact with Jiko on behalf of your customers.


At the core of our platform is the Jiko Pocket: a pair consisting of a bank account and a brokerage account. When money is deposited into a Pocket, the funds are automatically invested in T-bills. When a payment or withdrawal is made, T-bills are immediately liquidated and used as cash. Customers can have multiple Pockets, and each Pocket is associated with a single T-bill maturity: 4-week, 13-week, 26-week or 52-week.


The API Reference covers everything you need to build a full application leveraging the Jiko platform:


  • Onboarding customers
  • Funding Pockets via ACH or Wire
  • Viewing and managing Pockets (including monthly statements and trade confirmations)
  • Making payments and transfers via ACH, Wire, On-Us (Book) Transfer or Debit Card

When you’re ready to start building, please contact us at partner.support@jiko.io to request sandbox access.

Download OpenAPI description
Languages
Servers
Production server
https://{partner}.partner-api.jikoservices.com
Sandbox server
https://{partner}.sandbox-api.jikoservices.com

Accounts

Use these endpoints to view Account information. Jiko Accounts (also known as Pockets) consist of a bank account and a brokerage account. When funds are deposited into a Pocket, they’re immediately invested in T-bills.


In the API interface, the Account object encapsulates both accounts and can be treated as a single account to deposit to or withdraw from.

Operations

Customers

Use these endpoints to view and manage personal details for a Customer.

Operations

Transactions

Use these endpoints to view Transactions of funds moving in and out of Jiko Accounts, specifically the bank account component (cash deposits and withdrawals). For viewing information regarding the brokerage account component (buying and selling of T-bills), use Trades.

Operations

Trades

Use these endpoints to view Trades, or transactions related to the buying and selling of T-bills, within the brokerage account component of Jiko Pockets.

Operations

Statements

Use these endpoints to retrieve monthly statements for bank and brokerage accounts.

Operations

Manage Cards

Use these endpoints to view and manage Card information.

Operations

Physical Cards

Use these endpoints to create, view, and manage Physical Debit Cards.

Operations

Virtual Cards

Use these endpoints to create, view, and manage Virtual Debit Cards.

Operations

Businesses

Use these endpoints to initiate, manage, and complete KYB for Businesses. When an application has status: “APPROVED”, a Customer is created for the Business. Customers can have multiple Pockets.

Operations

Individuals

Use these endpoints to initiate, manage, and complete KYC for Individuals. When an application has status: “APPROVED”, a Customer is created for the Individual. Customers can have multiple Pockets.

Operations

Events

Use these endpoints to view Events.

Operations

Health

Use these endpoints to setup automatic health checks for the Partner API.

Operations

Sandbox

Use these endpoints to initiate sandbox functionality.

Operations

Security

Use these endpoints to authenticate requests to the Jiko API.

Operations

Subscriptions

Use these endpoints to create, view, and manage Subscriptions. Subscriptions provide Partners with the ability to subscribe to Events. Once subscribed, Events will be sent to the specified URL.

Operations

Webhooks

Webhooks

Reports

⚠️ Experimental ⚠️ These endpoints are subject to change.

Use these endpoints to interact with Reports.

Operations

ACH

Use these endpoints to create, view, and manage ACH Transfers.

Operations

Counterparties

Use these endpoints to view Counterparties. Counterparties represent external accounts when moving funds in or out of a Jiko Account. Jiko will only transfer funds between accounts where the Counterparty has status: “VERIFIED”, meaning ownership of the account has been confirmed.

Operations

On-Us Transfers

Use these endpoints to create and view On-Us (Book) Transfers between Jiko accounts.

Operations

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_idTransfer Id (string) or Transfer Id (null)(Transfer Id)

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

Example: "cbb6cfce-f207-45e7-a6b3-1055ab43db51"
Any of:

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

string(uuid)(Transfer Id)
descriptionDescription (string) or Description (null)(Description)

A description of the transfer, visible on statements.

Example: "Moving funds between accounts belonging to the same customer"
Any of:

A description of the transfer, visible on statements.

<= 100 characters
string(Description)<= 100 characters
end_to_end_identificationEnd To End Identification (string) or End To End Identification (null)(End To End Identification)

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.

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(End To End Identification)<= 35 characters
from_accountobject(OnUsJikoAccountCounterparty)required
Example: {"id":"497f6eca-6276-4993-bfeb-53cbbbba6f08","type":"JIKO_ACCOUNT"}
from_account.​idstring(uuid)(Id)required
Example: "497f6eca-6276-4993-bfeb-53cbbbba6f08"
from_account.​typeany(Type)required
Example: "JIKO_ACCOUNT"
Value "JIKO_ACCOUNT"
to_accountobject(OnUsJikoAccountCounterparty)required
Example: {"id":"991dd8b5-f103-4158-8c6b-84480cb43652","type":"JIKO_ACCOUNT"}
to_account.​idstring(uuid)(Id)required
Example: "991dd8b5-f103-4158-8c6b-84480cb43652"
to_account.​typeany(Type)required
Example: "JIKO_ACCOUNT"
Value "JIKO_ACCOUNT"
typeany(Type)required

Move funds between accounts belonging to the same customer.

Example: "INTERNAL_REALLOCATION"
Discriminator
Value "INTERNAL_REALLOCATION"
amountAmount (any) or Amount (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
amount_usdcAmount USDC (integer) or Amount USDC (null)(Amount USDC)Deprecated

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

Any of:
Deprecated

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

> 0
integer(Amount USDC)> 0
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"
reasonReason (string) or Reason (null)(Reason)required
Any of:
string(Reason)
Enum"ACCOUNT_UNAVAILABLE""CANCELED""INSUFFICIENT_FUNDS""INVALID_CURRENCY""INVALID_TRANSFER""SANCTION_SCREEN_FAILED"
transferPartner-Customer Funding (object) or Partner-Customer Defunding (object) or Internal Reallocation (object) or Peer To Peer Transfer (object)(OnUsTransferDetails)required
One of:
transfer.​transfer_idTransfer Id (string) or Transfer Id (null)(Transfer Id)

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

Any of:

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

string(uuid)(Transfer Id)
transfer.​descriptionDescription (string) or Description (null)(Description)

A description of the transfer, visible on statements.

Any of:

A description of the transfer, visible on statements.

<= 100 characters
string(Description)<= 100 characters
transfer.​end_to_end_identificationEnd To End Identification (string) or End To End Identification (null)(End To End Identification)

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.

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(End To End Identification)<= 35 characters
transfer.​from_accountobject(OnUsJikoAccountCounterparty)required
transfer.​from_account.​idstring(uuid)(Id)required
transfer.​from_account.​typeany(Type)required
Value "JIKO_ACCOUNT"
transfer.​to_accountobject(OnUsJikoAccountCounterparty)required
transfer.​to_account.​idstring(uuid)(Id)required
transfer.​to_account.​typeany(Type)required
Value "JIKO_ACCOUNT"
transfer.​typeany(Type)required
Value "PARTNER_CUSTOMER_FUNDING"
transfer.​sourcestring(Source)<= 200 charactersrequired

The source of customer funds at the Partner institution.

transfer.​amountobject(Amount)required
transfer.​amount.​valueinteger(Value)required

USD values are always in cents.

transfer.​amount.​currencystring(Currency)required
transfer.​amount.​formattedstring(Formatted)
Default ""
feesArray of objects(Fees)required
fees[].​typeany(Type)required
Value "AUM_FEE"
fees[].​amountobject(Amount)required
fees[].​amount.​valueinteger(Value)required

USD values are always in cents.

fees[].​amount.​currencystring(Currency)required
fees[].​amount.​formattedstring(Formatted)
Default ""
object_typestring(Object Type)read-onlyrequired
Response
application/json
{ "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" }

Get On-Us Transfer

Request

Gets a single on-us transfer by ID.

Security
HTTPBearer
Path
transfer_idstring(uuid)(Transfer Id)required
Headers
x-jiko-idempotencystring(uuid)(X-Jiko-Idempotency)required
x-jiko-signaturestring(X-Jiko-Signature)required
curl -i -X GET \
  'https://your-partner-name.partner-api.jikoservices.com/api/v1/transfers/on-us/{transfer_id}/' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'x-jiko-idempotency: 497f6eca-6276-4993-bfeb-53cbbbba6f08' \
  -H 'x-jiko-signature: string'

Responses

Successful Response

Bodyapplication/json
idstring(uuid)(Id)required
statusstring(Status)required
Enum"PENDING""COMPLETED""REJECTED"
reasonReason (string) or Reason (null)(Reason)required
Any of:
string(Reason)
Enum"ACCOUNT_UNAVAILABLE""CANCELED""INSUFFICIENT_FUNDS""INVALID_CURRENCY""INVALID_TRANSFER""SANCTION_SCREEN_FAILED"
transferPartner-Customer Funding (object) or Partner-Customer Defunding (object) or Internal Reallocation (object) or Peer To Peer Transfer (object)(OnUsTransferDetails)required
One of:
transfer.​transfer_idTransfer Id (string) or Transfer Id (null)(Transfer Id)

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

Any of:

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

string(uuid)(Transfer Id)
transfer.​descriptionDescription (string) or Description (null)(Description)

A description of the transfer, visible on statements.

Any of:

A description of the transfer, visible on statements.

<= 100 characters
string(Description)<= 100 characters
transfer.​end_to_end_identificationEnd To End Identification (string) or End To End Identification (null)(End To End Identification)

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.

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(End To End Identification)<= 35 characters
transfer.​from_accountobject(OnUsJikoAccountCounterparty)required
transfer.​from_account.​idstring(uuid)(Id)required
transfer.​from_account.​typeany(Type)required
Value "JIKO_ACCOUNT"
transfer.​to_accountobject(OnUsJikoAccountCounterparty)required
transfer.​to_account.​idstring(uuid)(Id)required
transfer.​to_account.​typeany(Type)required
Value "JIKO_ACCOUNT"
transfer.​typeany(Type)required
Value "PARTNER_CUSTOMER_FUNDING"
transfer.​sourcestring(Source)<= 200 charactersrequired

The source of customer funds at the Partner institution.

transfer.​amountobject(Amount)required
transfer.​amount.​valueinteger(Value)required

USD values are always in cents.

transfer.​amount.​currencystring(Currency)required
transfer.​amount.​formattedstring(Formatted)
Default ""
feesArray of objects(Fees)required
fees[].​typeany(Type)required
Value "AUM_FEE"
fees[].​amountobject(Amount)required
fees[].​amount.​valueinteger(Value)required

USD values are always in cents.

fees[].​amount.​currencystring(Currency)required
fees[].​amount.​formattedstring(Formatted)
Default ""
object_typestring(Object Type)read-onlyrequired
Response
application/json
{ "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" }

Portals

Use these endpoints to create and view Portals. Portals allow third-party financial institutions to initiate ACH and wire transfers. A Portal consists of a routing and an account number. Multiple Portals can be created for a single Pocket.

Operations

Wires

Use this endpoint to initiate Wire Transfers.

Operations

Pockets

Operations

Trading Strategies

Operations

Transactions V2

Operations

Health

Use these endpoints to setup automatic health checks for the Partner API.

Operations

Counterparties V2

Operations