📡 Subscribe to this changelog via RSS — copy the feed URL into your reader, or run /feed subscribe with it in Slack. Opening it in a browser just shows the raw feed.
- Deprecated the
USDCvalue oftypeon the on-chain funding instruction returned by Get Funding Instructions. Its replacement isON_CHAIN, matching Create On-Chain Transfer; theaddressandchainfields are unchanged. The endpoint still returnsUSDCtoday and will switch toON_CHAINno earlier than 2027-01-21. Update your integration to accept both values now.
- Card transactions now include
merchant_code, the merchant category code (MCC) reported by the card network.merchant_typeremains the human-readable name of that code.
- Create Counterparty now returns a specific error type when it refuses a
crypto_wallet_addresscounterparty:- A
wallet_addressthat is not valid for thechainreturns422InvalidWalletAddressError. - A customer who is not eligible for crypto returns
422CustomerNotEligibleForCryptoError. Only business customers whose identification number has an issuing country are eligible. - A customer that cannot be found returns
404NotFoundErrorinstead of422InputValidationError. - A
counterparty_namelonger than 200 characters is rejected with422InputValidationError; previously it failed with a500.
- A
- Update Counterparty now returns
412CounterpartyUnlinkNotAllowedErrorwhenstatusis set toUNLINKEDon a counterparty that is notLINKED. Thedetailnames the counterparty's current status. Previously this412had no type or detail.
- Incoming ACH transactions now include
remittance_information.
- Added Create On-Chain Transfer to the API reference. It sends USDC from a pocket to a verified
crypto_wallet_addresscounterparty, and status updates are delivered astransfers.crypto.withdrawal.successandtransfers.crypto.withdrawal.rejectedevents. A request that repeats thetransfer_idof a withdrawal that was refused returnsstatusREJECTED. This endpoint is experimental and must be enabled for your account before use; contact your Jiko representative to request it. Requests made without it enabled are rejected with a403.
- Subscriptions can now subscribe to
transfers.crypto.deposit.rejected, sent once when Jiko will not credit a crypto deposit to the receiving Jiko Account, with the same payload as the other crypto transfer events. It is also returned by List Events.transfers.crypto.withdrawal.rejectedis now also sent when Jiko stops a withdrawal after processing began, not only when it is refused before the account is debited. Each crypto transfer ends with at most one success or rejected event. - Create Wire now rejects a
descriptionthat contains characters the Fedwire Funds Service does not accept. Only printable ASCII (letters, digits, space and standard punctuation) is allowed; an accented letter, a line break or a tab is rejected with a422InputValidationErrorwhosefieldsentry hasloc["body", "description"]. Previously such a description was accepted, and the wire could later be rejected.
- Create Counterparty now rejects
wireandinternational_wirecounterparties whose name, address,identifier,routing_numberorwire_instructionscontain characters the Fedwire Funds Service does not accept. Only printable ASCII (letters, digits, space and standard punctuation) is allowed; an accented letter, a line break or a tab is rejected with a422InputValidationErrorthat lists each offending field infields, for example["body", "address", "city"]. Previously such values were accepted, and a wire to the counterparty could later be rejected.display_nameis not restricted.
- Update Customer accepts a new
closure_reasonvalue,DECEASED, when closing a customer account.
- Added
POST /token/, an OAuth 2.0 token endpoint (RFC 7523 JWT bearer grant). Register a public key in the partner portal, sign a short-lived JWT assertion with the private key, and exchange it for a bearer token — no password is sent. This is now the recommended way to authenticate; see the updated Authentication guide.POST /api/v1/login/keeps working, and request signing withx-jiko-signatureis unchanged.
- Published our versioning and deprecation policy. In short: deprecations are announced in this changelog, deprecated endpoints remain callable for at least three months, and we contact every partner we can see calling an endpoint before it is removed.
- Endpoints deprecated more than six months ago are now hidden from the API reference. They remain fully callable — this is a documentation change only, so no integration breaks today. Hidden in this pass:
GET /api/v1/customers/{customer_id}/jiko-accounts/— use List Pockets for CustomerGET /api/v1/jiko-accounts/{account_id}/— use Get PocketGET /api/v1/customers/{customer_id}/transactions/— use List Customer TransactionsGET /api/v1/jiko-accounts/{account_id}/transactions/— use List Pocket TransactionsGET /api/v1/jiko-accounts/{account_id}/transactions/{transaction_id}/— use Get TransactionGET /api/v1/customers/{customer_id}/counterparties/— use List CounterpartiesGET /api/v1/customers/{customer_id}/counterparties/{counterparty_id}/— use Get CounterpartyGET /api/v1/jiko-accounts/{account_id}/statements/— use List Customer Statements
- Subscriptions can now subscribe to crypto transfer events:
transfers.crypto.deposit.success,transfers.crypto.withdrawal.successandtransfers.crypto.withdrawal.rejected. The payload carries thecrypto_transfer_idof the transfer and thejiko_account_idit settled against. These events are also returned by List Events.
- ACH originations can now be created with the
CCDStandard Entry Class code, for use when the counterparty is a business rather than a consumer.CCDmust be enabled for your account before use; contact your Jiko representative to request it. Requests using it without it being enabled are rejected with a403. Whensec_codeisCCD,company_entry_descriptionis required. - Added a required
wire_typefield toWIREtransaction activities on the transactions endpoints. It distinguishes an ordinary wire (PAYMENT) from the reversal of a wire booked (REVERSAL) and a wire returned by the counterparty bank (RETURN). - Added an optional
original_wire_idfield toWIREtransaction activities. It holds the ID of the wire that was returned, and is only populated forRETURNwires.
- Added a new endpoint to fetch earnings for all of a customer's pockets in a single call. The response contains one entry per pocket plus their exact field-wise aggregate. By default it covers every pocket that is not closed (at most 30 per call); the
pocket_id[]filter narrows the request, and is also the way to include a closed pocket explicitly. Like the single-pocket variant, it supports thewtd,mtd,ytdandall-timeperiods.
- Added an optional
display_namefield to counterparties. It can be set when creatingach,wire,international_wire, andon_uscounterparties, or when updating a counterparty'sdisplay_namevia the update counterparty endpoint, and is returned on all counterparty responses when listing. Use it to assign a custom name that distinguishes counterparties belonging to the same legal entity.
- Added new endpoints for fetching wires:
- List Wires for fetching wires, optionally filtered by
pocket_id(a single pocket) and/orcustomer_id(all of a customer's pockets). - Get Wire for fetching a single wire, optionally scoped to a
customer_id.
- List Wires for fetching wires, optionally filtered by
- The list endpoint supports filtering by
direction(INCOMINGorOUTGOING).
- Added new optional fields
pricing_timestampandappreciation_per_secondto the Portfolio response on the Pockets endpoints. These are populated for pockets backed by accounts with thereal_time_yieldattribute, and allow consumers to interpolatetotal_valueforward between server-side price updates astotal_value + appreciation_per_second × (now - pricing_timestamp).
- Added new endpoint for fetching all customer ACH originations Listing customer ach originations
- Added new endpoint for fetching all customer cards Listing customer cards
- Added pocket_id as part of the Card result, to determine what pocket the card is associated with.
- Added new endpoint for fetching all customer card orders Listing customer card orders
- Added new optional field
magstripe_statusto Set Card Status. Supported values areONandOFF(default). Thecard_statusmust be set toONLINEfor the magstripe_status update to take effect.
- Introduced V2 of the Portals API, now with support for on-chain crypto deposit addresses alongside the existing virtual bank account portals.
- Added List Portals API endpoint.
- Added List Customer Portals API endpoint.
- Added Get Portal API endpoint.
- Added Create Portal API endpoint.
- Added Update Portal API endpoint.
- Added Get Funding Instructions API endpoint, returning funding instructions for all payment rails supported by a portal.
- Added a new
CRYPTO_DEPOSIT_ADDRESS_PORTALportal type withchainandwallet_addressfields, available to query via thetype[]filter on the list endpoints.
- Added new optional field
transfer_typeto Internal Reallocation transfers. Supported values areBANK_TRANSFER(default) andSECURITY_TRANSFER.BANK_TRANSFERsells the CSIP from the origin pocket and buys new CSIP for the destination pocket (T+1 settlement).SECURITY_TRANSFERmoves QCIPs directly between pockets instantly.
- Added new field
identifier_typetoInternationalWireCounterpartyV2andCreateInternationalWireCounterpartyRequestmodels to allow for IBAN account numbers when creating and fetching International Wire Counterparties.
Subscriptions can now subscribe to incoming wire events:
transfers.wire.in.successandtransfers.wire.in.rejected. The payload carries thewire_idof the wire and thejiko_account_idit settled against, matching the shape of the existingtransfers.wire.out.*events. These events are also returned by List Events. No polling is required to observe an inbound wire.Added to this changelog on 2026-09-10; the events have been available since the date above.
- Added new optional field
identification_number_issuing_countryto Retail and Business applications, that refers to the country that issued the identification number. This field will be made mandatory in the future for identification numbers that aren't a US SSN or EIN.
- Added support for filtering by time_settled in Listing pocket transactions, Listing customer transactions and Listing partner transactions.
- Added support for including sweeps in Listing pocket transactions, Listing customer transactions and Listing partner transactions.
- Added a new way of getting a Single Pocket
- Added a new an endpoint to fetch the earnings for a single pocket
- Deprecated the
all_time_earningsfield of the Pockets/accounts endpoint response models. This field will be removed after 2026-08-01.
- Added a
wire_instructionsfield to theWireCounterpartyV2andInternationalWireCounterpartyV2models.
- Added a new
liquidation_value_t0field to thePocketmodel. - Added a new
liquidation_value_t1field to thePocketmodel.
- Added support for filtering by multiple types for Listing customer counterparties.
- Added support for creating an international wire counterparty Creating a counterparty.
- Added support for creating an unverified wire counterparty Creating a counterparty.
- Added new transactions endpoints. Endpoint to fetch transactions for a pocket, endpoint to fetch transactions for a customer and an endpoint to fetch transactions for a partner across all customers.
- Added List Customer Portals API endpoint.
- Added a new endpoint to Update a Counterparty
- Added a new
payment_railsfield to thePortalmodel.
- Added a new enum value
ALL_TIME_EARNINGSto theomitrequest field for List all pockets, Listing customer pockets and Getting a pocket. - The
all_time_earningsfield is now optional the forPortfoliomodel
- Added support for filtering by wire id and ON-US transfer id to the List Customer Transactions (V1), List Account Transactions (V1) API endpoints.
- Added support for specifying retry policies for webhook subscriptions in case Jiko encounters HTTP errors calling a subscription URL with a webhook. Subscriptions will by default not have a defined retry policy. See Create Subscription for more information.
- Added
counterpartyfield toon_us_transactiondetail model for List Customer Transactions (V1), List Account Transactions (V1) and Get Account Transaction (V1) endpoints.
- Added a new
feesfield to thePocketmodel.
- Added a new
attributesfield to thePocketmodel.
- Added support for filtering by status for Listing customer counterparties.
- Added support for On Us counterparties for Listing customer counterparties.
- Added new Peer To Peer option to Create On-Us Transfer API endpoint.
- Added new return type to on-us transfer representing Peer To Peer transfers
- Updated the
PATCHCustomer endpoint, for the ability to close an approved customer that has no funds in their accounts.
- Added new Business Document Types
ORG_CHARTandBUSINESS_DESCRIPTION, that may be requested for a Business Application in Manual review via a Document Request.
- Added
ach_id,ach_directionandportal_idfields to the ACH transaction details object of the List Customer Transactions (V1), List Account Transactions (V1) and Get Account Transaction (V1) endpoints. - Added support for filtering cards by card type to the List Account Cards endpoint
- Added support for filtering cards by time created to the List Account Cards endpoint
- Added new field 'creation_time' to List Account Cards endpoint response model
- Added Get Beneficial Owners API endpoint.
- Added support for creating pre approved ACH counterparty Creating a counterparty.
- Added a
PreVerifiedVerificationoption for Creating a counterparty.
- Added Update Customer Data API endpoint.
- Added new
async_modeoption when creating on-us transfers
- Added
tradable_idfield to List Customer Trades and List Customer Transactions (V1) API endpoint. - Added support for filtering by trade date to and from to List Customer Trades and List Customer Transactions (V1) API endpoints.
- Added support for filtering by types, timestamp_from and timestamp_to to the List Customer Transactions (V1), List Account Transactions (V1) API endpoints.
- Added a way for partners to close pockets via the API. You can now close a pocket by supplying a
{ "status": "CLOSED", "closure_reason": "<ClosureReasonType>" }object to the Update Pocket endpoint.
- Added a
descriptionfield to the Security model returned by the pockets endpoints. - Added support for filtering by status and direction to the List ACH Originations API endpoint
- Added support for filtering by portal id and card id to the List Customer Transactions (V1), List Account Transactions (V1) API endpoints.
- Added support for filtering by status and direction to the List ACH Originations API endpoint
- Added support for filtering by card status to the List Account Cards endpoint.
- Added support for full withdrawals when performing on-us transfers by using the new
amountfield. - Added support for listing fees deducted when performing on-us transfers.
- Added a new
yield_to_maturityanddiscount_yieldfields to thePocketConfigurationmodel.
- Added a new endpoint to List all pockets
- Added Get Health Check API endpoint.
- Business Application additions:
- Added Create Application API endpoint.
- Added Get Application API endpoint.
- Added Update Application API endpoint.
- Added Apply API endpoint.
- Related Party Application additions:
- Added List Related Party API endpoint.
- Added Create Related Party API endpoint.
- Added Delete Related Party API endpoint.
- Added Update Related Party API endpoint.
- Document Upload additions:
- Added List Document Requests API endpoint.
- Added Upload Document API endpoint.
- Wire additions:
- Added Create Wire API endpoint.
- Added a new optional field
micro_depositto V1ACHCounterpartymodel that includes an indication of number of verification attempts for ACH Counterparties verified via Micro Deposits - Added Close Portal API endpoint.
- Added Update Portal API endpoint.
- Added enum value
PENDINGto the Get Customer Dataaccount_statusfield, signalling that a customer has no open pocket.
- Added a new endpoint for Updating a Pocket
- Added a new endpoint for Listing customer pockets.
- Added a new endpoint for Getting a pocket.
- Added Get Account Portal API endpoint.
- Added a new endpoint for Creating a pocket.
- Added a new endpoint for Listing pocket configurations (Now called
List Trading Strategies). - The response from uploading documents now includes a
document_idfield for future reference.
- Added a new endpoint for Creating a counterparty.
- Added a new endpoint for Listing customer counterparties.
- Added a new endpoint for Getting a single counterparty.
- Added Create Portal API endpoint.
- Added a new
categorytype E-SIGN for the Electronic Communications Disclosure Statement and Consent which was previously in the GENERAL category.
- Added a new
WIRE_COUNTERPARTY_VERIFICATIONdocument type. - File size limits raised to 50 MB for files other than
ID_FRONT,ID_BACK,SELFIEandPASSPORTwhen uploading documents to a customer or application. - Updated documentation for both file upload endpoints.
- Adds a new
categoryfield for agreements returned by the List Agreements endpoint. Thiscategoryfield groups all agreements into 3 categories, BANK, BROKERAGE, or GENERAL.
- Added a new sandbox endpoint for simulating webhook calls, Trigger Webhook.
- Added a new
yield_to_maturityfield to theTrademodel.
- Added a new
namefield to thePortalmodel.
- Added a sandbox endpoint to fund accounts via ACH portals.
- Added a new disclosure type,
FORM_CRS, for Customer Relationship Summary Forms.
- Added
wire_fee_transactionandWIRE_FEEtransaction type to the List Customer Transactions (V1), List Account Transactions (V1) and Get Account Transaction (V1) endpoints.
- Added Create On-Us Transfer API endpoint.
- Added Get On-Us Transfer API endpoint.
- Added two optional filtering query parameters to the List Customer Statements endpoint:
- The
type[]query parameter makes it possible to filter by different types of statements, e.g.?type[]=BANK&type[]=BROKERAGE - The
keyquery parameter makes it possible to filter by either a specific month or a year, e.g.?key=2023-01or?key=2022
- The
- Marked the List Account Statements (V1) endpoint as deprecated. Please use the List Customer Statements in future integrations.
- Added a new transaction type and corresponding details object,
on_us_transactionto the response model in List Customer Transactions (V1).
- Added optional field
originally_onboarded_atto request body in Create Application
- New counterparty type
WIREwith awirefield, returned in Get Counterparty (V1) and List Counterparties (V1)
- Added List Customer Statements API endpoint.
- Added Get Customer Data API endpoint.
- Added List Customer Trades API endpoint.
- Added List Customer Transactions (V1) API endpoint.
- Added
namefield to the List Customer Accounts (V1) and Get Customer Account (V1) API endpoints
- Added Get Account Transaction (V1) API endpoint
- Added List ACH Originations API endpoint