# Jiko Customer API

## Introduction

Welcome to the Jiko Customer API Reference! Jiko enables you to integrate money storage and movement, backed by the safety and security of US Treasury Bills. Use the Customer API if you are a Jiko customer integrating Jiko directly into your internal systems.

**For questions regarding authorization for the Customer API, please visit [our OAuth guide](/products/customer-api/guides/oauth/getting-started)**


Version: Version: cf52545e

## Servers

Production server
```
https://api.business.jiko.io
```

Sandbox server
```
https://customer-api.sandbox-api.jikoservices.com
```

## Security

### CodeBearer

Type: oauth2
Authorization URL: https://auth.jiko.io/api/oauth2/authorize
Token URL: https://auth.jiko.io/api/oauth2/token
Scopes:
- `openid`: OpenID scope
- `profile`: Read information for current logged in user
- `email`: Read email for current logged in user
- `phone`: Read phone number for current logged in user
- `pockets.read`: Read pocket information for given customer
- `pockets.write`: Manage pocket information for given customer
- `transfers.read`: Read transfer and transfers request information for given customer
- `transfers.write`: Manage transfer requests
- `customer.read`: Read customer info for given customer
- `customer.write`: Write customer info
- `team.read`: Read team information for given customer
- `team.write`: Manage teams and team members for given customer
- `onboarding.read`: Read onboarding information for given customer
- `onboarding.write`: Manage onboarding information for given customer
- `agreements.read`: Read agreement information for given customer
- `subscriptions.write`: Manage customer webhook subscriptions
- `subscriptions.read`: Read webhook subscription information
- `approval_rules.read`: Read approval rules
- `approval_rules.write`: Manage approval rules
- `authorization_requests.read`: Read authorization requests
- `authorization_requests.write`: Manage authorization requests

## Download OpenAPI description

 - [Jiko Customer API](https://docs.jiko.io/_bundle/products/customer-api/reference.yaml)

## Pockets

 - [GET /api/v2/pockets/](https://docs.jiko.io/products/customer-api/reference/pockets/list_customer_pockets_api_v2_pockets__get.md): This endpoint lists all the pockets for a given customer. It returns a `Pockets` object which is a paginated list of `Pocket` objects.
 - [POST /api/v2/pockets/](https://docs.jiko.io/products/customer-api/reference/pockets/create_customer_pocket_api_v2_pockets__post.md): This endpoint creates a new pocket for a customer. The request body requires a `CreatePocketRequest` object, specifying the `trading_strategy_id` and a `pocket_name`. It returns the newly created `Poc
 - [GET /api/v2/pockets/{pocket_id}/](https://docs.jiko.io/products/customer-api/reference/pockets/get_customer_pocket_api_v2_pockets__pocket_id___get.md): This endpoint retrieves the details of a specific pocket, and returns a `Pocket` object with detailed portfolio information.
 - [PATCH /api/v2/pockets/{pocket_id}/](https://docs.jiko.io/products/customer-api/reference/pockets/update_pocket_api_v2_pockets__pocket_id___patch.md): This endpoint updates a pocket's information, such as its `name` or `status` (e.g., closing a pocket). If the intent is to close a pocket, then there are two requirements: The pocket needs to be empty
 - [GET /api/v2/earnings/](https://docs.jiko.io/products/customer-api/reference/pockets/get-customer-earnings-v2.md): This endpoint returns current-period earnings for the customer's pockets in a single call: one entry per pocket plus their exact aggregate. The `aggregate` is the field-wise sum of the per-pocket entr
 - [GET /api/v2/pockets/{pocket_id}/earnings/](https://docs.jiko.io/products/customer-api/reference/pockets/get_single_pocket_earnings_api_v2_pockets__pocket_id__earnings__get.md): This endpoint returns pocket earnings for a single pocket for a specified datetime period. - Optionally pre-defined ranges are defined as such: - ytd (Year-to-date) From January 1st of the current y
## Portals

 - [GET /api/v2/pockets/{pocket_id}/portals/](https://docs.jiko.io/products/customer-api/reference/portals/list-pocket-portals-v2.md): This endpoint lists the payment portals associated with a specific Jiko pocket ID. Returns a `PortalListResponse` object containing a list of `Portal` objects.
 - [POST /api/v2/pockets/{pocket_id}/portals/](https://docs.jiko.io/products/customer-api/reference/portals/create-pocket-portal.md): This endpoint creates a new portal for a customer.
 - [GET /api/v2/portals/](https://docs.jiko.io/products/customer-api/reference/portals/list-customer-portals-v2.md): This endpoint lists all portals for the customer. It returns a `PortalListResponse` object containing a list of `Portal` objects.
 - [GET /api/v2/pockets/{pocket_id}/portals/{portal_id}/funding-instructions/](https://docs.jiko.io/products/customer-api/reference/portals/get-funding-instructions.md)
 - [PATCH /api/v2/pockets/{pocket_id}/portals/{portal_id}/](https://docs.jiko.io/products/customer-api/reference/portals/update-pocket-portal.md): This endpoint updates a portal's `name`, or closes it by setting its `status` to `CLOSED`. Closing a portal is irreversible; the only accepted value for `status` is `CLOSED`. Returns `204 No Content`
## Transactions

 - [GET /api/v2/transactions/](https://docs.jiko.io/products/customer-api/reference/transactions/list-transactions-v2.md): This endpoint lists all transactions for a customer's pockets. It provides a comprehensive view of all financial activities. It returns a paginated list of `Transaction` objects, which can be of vario
 - [GET /api/v2/transactions.csv](https://docs.jiko.io/products/customer-api/reference/transactions/transactions_as_csv_api_v2_transactions_csv_get.md): This endpoint downloads a customer's transaction history in CSV format. This is useful for accounting and reconciliation purposes, and can be filtered by `pocket`, transaction `type`, and a time range
## Trading Strategies

 - [GET /api/v2/trading-strategies/](https://docs.jiko.io/products/customer-api/reference/trading-strategies/list_trading_strategies_api_v2_trading_strategies__get.md): This endpoint lists the available trading strategies that can be applied to a pocket. This is the modern replacement for "pocket configurations." Returns a `TradingStrategies` object. You can filter s
## Trades

 - [GET /api/v1/trades/](https://docs.jiko.io/products/customer-api/reference/trades/list_trades_api_v1_trades__get.md): This endpoint lists all buy, sell, and maturity events for securities (T-bills) within the customer's accounts. Returns a paginated `TradeListResponse`. The list can be filtered by `account` and a tra
 - [GET /api/v1/trades.csv](https://docs.jiko.io/products/customer-api/reference/trades/trades_as_csv_api_v1_trades_csv_get.md): This endpoint downloads the customer's complete trade history as a CSV file. This is useful for record-keeping and analysis and can be filtered by `account` and a trade datetime range.
 - [GET /api/v1/accounts/{account_id}/trades/{trade_id}/confirmation/](https://docs.jiko.io/products/customer-api/reference/trades/download_trade_confirmation_api_v1_accounts__account_id__trades__trade_id__confirmation__get.md): This endpoint downloads the confirmation for a specific trade, and returns a `307 Temporary Redirect` to the trade confirmation PDF location. Trade confirmations are sensitive documents. For security
 - [GET /api/v2/trades/](https://docs.jiko.io/products/customer-api/reference/trades/list_trades_api_v2_trades__get.md): Returns a list of trades including standard trades (BUY, SELL, MATURITY), external security transfer trades, and same-entity security transfer trades. Optionally filter by pocket.
## Counterparties

 - [GET /api/v2/counterparties/](https://docs.jiko.io/products/customer-api/reference/counterparties/list-counterparties-v2.md): This endpoint allows you to list all the counterparties associated with a customer's pocket. You can filter the results by counterparty type (`ach`, `wire`, `international_wire`, `on_us`, etc.) and st
 - [POST /api/v2/counterparties/](https://docs.jiko.io/products/customer-api/reference/counterparties/create-counterparty-v2.md): This endpoint is used to create a new counterparty for a customer. You can create different types of counterparties, including `ach`, `on-us`, `wire`, and `international_wire`, by providing the releva
 - [GET /api/v2/counterparties/{counterparty_id}/](https://docs.jiko.io/products/customer-api/reference/counterparties/get-counterparty-v2.md): This endpoint retrieves the details of a specific counterparty by its unique ID. It returns a single counterparty object corresponding to the provided `counterparty_id`.
 - [PATCH /api/v2/counterparties/{counterparty_id}/](https://docs.jiko.io/products/customer-api/reference/counterparties/update-counterparty-v2.md): This endpoint is used to update a counterparty. For example, you can use it to unlink a counterparty that is no longer needed, or to set or change its `display_name`. The request body takes an `Update
## Transfer Requests

 - [POST /api/v1/transfer-requests/](https://docs.jiko.io/products/customer-api/reference/transfer-requests/create_transfer_request_api_v1_transfer_requests__post.md): This endpoint creates a new transfer request. This is the first step in a dual-control workflow for making transfers. The request body requires a `CreateTransferRequest` object, which specifies the tr
 - [GET /api/v1/transfer-requests/](https://docs.jiko.io/products/customer-api/reference/transfer-requests/get_transfer_requests_api_v1_transfer_requests__get.md): This endpoint retrieves a list of transfer requests. You can filter by `status`, `reviewer`, and other criteria, and returns a paginated list of `TransferRequest` objects.
 - [GET /api/v1/transfer-requests/reviewers/](https://docs.jiko.io/products/customer-api/reference/transfer-requests/get_transfer_request_reviewers_api_v1_transfer_requests_reviewers__get.md): This endpoint retrieves a list of team members who are authorized to review transfer requests, and returns a list of `DualAuthUser` objects.
 - [GET /api/v1/transfer-requests/{transfer_id}/](https://docs.jiko.io/products/customer-api/reference/transfer-requests/get_transfer_request_api_v1_transfer_requests__transfer_id___get.md): This endpoint retrieves the details of a specific transfer request, and returns a single `TransferRequest` object.
 - [DELETE /api/v1/transfer-requests/{transfer_id}/](https://docs.jiko.io/products/customer-api/reference/transfer-requests/cancel_transfer_request_api_v1_transfer_requests__transfer_id___delete.md): This endpoint cancels a pending transfer request, and returns a `204 No Content` response upon a successful cancellation.
 - [PATCH /api/v1/transfer-requests/{transfer_id}/status/](https://docs.jiko.io/products/customer-api/reference/transfer-requests/update_transfer_request_status_api_v1_transfer_requests__transfer_id__status__patch.md): This endpoint is used to approve or deny a transfer request as part of a dual-control workflow. The request body requires an `UpdateTransferRequestStatus` object. It returns the updated `TransferReque
## Wires

 - [GET /api/v1/wires/](https://docs.jiko.io/products/customer-api/reference/wires/list-wires-v1.md)
 - [GET /api/v1/wires/{wire_id}/](https://docs.jiko.io/products/customer-api/reference/wires/get-wire-v1.md)
## Subscriptions

 - [POST /api/v1/subscriptions/](https://docs.jiko.io/products/customer-api/reference/subscriptions/create_subscription_api_v1_subscriptions__post.md): This endpoint creates a new webhook subscription to receive real-time notifications for specified events. The request body requires a `CreateSubscriptionRequest` object, which includes the `url` for t
 - [GET /api/v1/subscriptions/](https://docs.jiko.io/products/customer-api/reference/subscriptions/get_subscriptions_api_v1_subscriptions__get.md): This endpoint lists all of your current webhook subscriptions, and returns a paginated list of `Subscription` objects.
 - [PATCH /api/v1/subscriptions/{subscription_id}/](https://docs.jiko.io/products/customer-api/reference/subscriptions/update_subscription_api_v1_subscriptions__subscription_id___patch.md): This endpoint updates an existing webhook subscription. You can change the `url`, the subscribed `events`, or the `status` (`enabled`/`disabled`). The request body requires an `UpdateSubscriptionReque
 - [GET /api/v1/subscriptions/{subscription_id}/](https://docs.jiko.io/products/customer-api/reference/subscriptions/get_subscription_api_v1_subscriptions__subscription_id___get.md): This endpoint retrieves the details of a specific webhook subscription, and returns a single `Subscription` object.
 - [DELETE /api/v1/subscriptions/{subscription_id}/](https://docs.jiko.io/products/customer-api/reference/subscriptions/delete_subscription_api_v1_subscriptions__subscription_id___delete.md): This endpoint deletes a webhook subscription, and returns a `202 Accepted` response upon successful deletion.
## Events

 - [GET /api/v1/events/](https://docs.jiko.io/products/customer-api/reference/events/get_events_api_v1_events__get.md): This endpoint retrieves a list of events that have occurred for a customer's account, often related to webhook notifications. You can filter events by `subscription_id` and/or a time range query param
## Notifications

 - [GET /api/v1/notifications/](https://docs.jiko.io/products/customer-api/reference/notifications/list_notifications_api_v1_notifications__get.md): This endpoint lists all notifications for a customer. You can filter by status (`READ` or `UNREAD`). It returns a paginated list of `CustomerNotification` objects.
 - [GET /api/v1/notifications/{notification_id}/](https://docs.jiko.io/products/customer-api/reference/notifications/get_notification_api_v1_notifications__notification_id___get.md): This endpoint retrieves a single notification by its `notification_id`, and returns a `CustomerNotification` object.
 - [PATCH /api/v1/notifications/{notification_id}/](https://docs.jiko.io/products/customer-api/reference/notifications/patch_notification_api_v1_notifications__notification_id___patch.md): This endpoint allows you to update the status of a notification, for example, to mark it as read. The request body must contain an `UpdateCustomerNotificationStatus` object. It returns the updated `Cu
## Statements

 - [GET /api/v1/statements/](https://docs.jiko.io/products/customer-api/reference/statements/list_customer_statements_api_v1_statements__get.md): This endpoint retrieves a list of all available account statements (e.g., `BANK`, `BROKERAGE`) and tax documents (`1099-INT`, `1099-B`). Returns a paginated `StatementListResponse`. The list can be fi
## Reports

 - [POST /api/v1/report-requests/](https://docs.jiko.io/products/customer-api/reference/reports/create_customer_report_request_api_v1_report_requests__post.md): This endpoint triggers an asynchronous process to create a report request based on the provided parameters. Available report types are: ## Type `BANK_STATEMENT_REPORT` End-of-day bank statement for th
 - [GET /api/v1/report-requests/](https://docs.jiko.io/products/customer-api/reference/reports/list_customer_report_requests_api_v1_report_requests__get.md): This endpoint lists all report request for a customer. You can filter by date from and to It returns a paginated list of `ReportRequest` objects.
 - [GET /api/v1/report-requests/{report_request_id}/](https://docs.jiko.io/products/customer-api/reference/reports/get_customer_report_request_api_v1_report_requests__report_request_id___get.md): This endpoint retrieves the details of a specific report request, and returns a single `ReportRequest` object.
 - [GET /api/v1/reports/{report_id}/](https://docs.jiko.io/products/customer-api/reference/reports/get_customer_report_api_v1_reports__report_id___get.md): This endpoint retrieves the details of a specific report, and returns a single `Report` object.
 - [POST /api/v1/reports/{report_id}/download/](https://docs.jiko.io/products/customer-api/reference/reports/download_customer_report_api_v1_reports__report_id__download__post.md): This endpoint creates a temporary, time-limited URL for downloading the report corresponding to the given id, and returns a single `ReportDownload` object.
## User

 - [GET /api/v1/user/](https://docs.jiko.io/products/customer-api/reference/user/get_user_info_api_v1_user__get.md): This endpoint retrieves information about the currently authenticated user. It returns a `UserInfo` object containing the user's `user_id`, `email`, `name`, `role`, and other details.
 - [GET /api/v1/user/memberships/](https://docs.jiko.io/products/customer-api/reference/user/get-user-memberships.md): This endpoint retrieves all team memberships for the currently authenticated user. It returns a list of `MembershipInfo` objects, each detailing a team and the user's role within it.
## Team

 - [GET /api/v1/team/](https://docs.jiko.io/products/customer-api/reference/team/get_team_api_v1_team__get.md): This endpoint retrieves information about the team, including a list of all team members. It returns a `TeamResponse` object which contains the team ID and a list of `MemberGroup` objects, categorized
 - [GET /api/v1/team/{member_id}/](https://docs.jiko.io/products/customer-api/reference/team/get_team_member_api_v1_team__member_id___get.md): This endpoint retrieves the details of a specific team member, and returns a `TeamMemberResponse` object.
 - [PUT /api/v1/team/{member_id}/](https://docs.jiko.io/products/customer-api/reference/team/edit_team_member_api_v1_team__member_id___put.md): This endpoint allows you to edit a team member's `role` or `status`. The request body takes an `EditTeamMemberRequest` object, and returns the updated `TeamMemberResponse` object.
 - [DELETE /api/v1/team/{member_id}/](https://docs.jiko.io/products/customer-api/reference/team/deactivate_team_member_api_v1_team__member_id___delete.md): This endpoint deactivates a team member from a team, and returns the `TeamMemberResponse` object for the deactivated member.
 - [POST /api/v1/team/invite/](https://docs.jiko.io/products/customer-api/reference/team/invite_team_member_api_v1_team_invite__post.md): This endpoint invites a new member to a team. The request body requires an `InviteMemberRequest` object containing the new member's `first_name`, `last_name`, `email`, `phone_number`, and `role`.
 - [POST /api/v1/team/{member_id}/invite/](https://docs.jiko.io/products/customer-api/reference/team/resend_invite_team_member_api_v1_team__member_id__invite__post.md): This endpoint resends an invitation to a team member, and returns a `200 OK` response upon a successful request.
 - [DELETE /api/v1/team/{member_id}/invite/](https://docs.jiko.io/products/customer-api/reference/team/cancel_invite_team_member_api_v1_team__member_id__invite__delete.md): This endpoint cancels an invitation that has been sent to a team member, and returns a `200 OK` response upon a successful request.
 - [POST /api/v1/team/service-users/](https://docs.jiko.io/products/customer-api/reference/team/create_service_user_api_v1_team_service_users__post.md)
## Team Audits

 - [GET /api/v1/team/audit-logs/](https://docs.jiko.io/products/customer-api/reference/team-audits/get_team_audit_logs_api_v1_team_audit_logs__get.md): This endpoint retrieves audit logs for the entire team. This is useful for tracking actions performed by team members. It returns a paginated list of `CustomerAuditLogEntry` objects, which can be filt
 - [GET /api/v1/team/members/{member_id}/audit-logs/](https://docs.jiko.io/products/customer-api/reference/team-audits/get_team_member_audit_logs_api_v1_team_members__member_id__audit_logs__get.md): This endpoint retrieves audit logs for a specific team member, and returns a paginated list of `CustomerAuditLogEntry` objects.
 - [GET /api/v1/team/audit-logs.csv](https://docs.jiko.io/products/customer-api/reference/team-audits/team_audits_as_csv_api_v1_team_audit_logs_csv_get.md): This endpoint downloads team audit logs in CSV format for offline analysis and record-keeping, and can be filtered by `member_id` and a timestamp range.
## Customer

 - [GET /api/v1/customer/](https://docs.jiko.io/products/customer-api/reference/customer/get_customer_api_v1_customer__get.md): This endpoint retrieves the customer's profile information. This can be for an individual or a business. It returns a `Customer` object which can be either an `Individual` or a `Business` object, cont
 - [POST /api/v1/documents/{document_type}/](https://docs.jiko.io/products/customer-api/reference/customer/upload_document_to_customer_api_v1_documents__document_type___post.md): This endpoint uploads a verification document (e.g., passport, articles of incorporation) directly to the customer's profile. The `document_type` is specified in the URL path. The raw file data is sen
 - [GET /api/v1/customer/beneficial-owners/](https://docs.jiko.io/products/customer-api/reference/customer/get_beneficial_owners_api_v1_customer_beneficial_owners__get.md): For business customers, this endpoint lists the beneficial owners who have been identified for the account. It returns a `ListBeneficialOwnersResponse` object containing a list of `BusinessIndividual`
## Agreements

 - [GET /api/v1/agreements/](https://docs.jiko.io/products/customer-api/reference/agreements/list_agreements_api_v1_agreements__get.md): This endpoint retrieves a list of legal agreements that a customer can acknowledge. These agreements could include terms of service, privacy policies, or other legal documents. It returns an `Agreemen
