From a2b65fb2c8d26b85df80fa5ed810aa2d2911e89b Mon Sep 17 00:00:00 2001 From: dphuang2 Date: Fri, 29 Mar 2024 11:10:48 -0700 Subject: [PATCH] publish jiko --- .../docs.jiko.io_reference/openapi.json | 12256 ++++++++++++++++ .../from-custom-request_jiko.io.yaml | 2978 ++++ sdks/db/category-cache.yaml | 1 + sdks/db/custom-request-last-fetched.yaml | 1 + sdks/db/custom-request-specs/jiko.io.yaml | 9485 ++++++++++++ .../db/fixed-specs-cache/jiko-fixed-spec.yaml | 9507 ++++++++++++ sdks/db/fixed-specs/jiko-fixed-spec.yaml | 9469 ++++++++++++ .../jiko.json | 3 + .../jiko/openapi.yaml | 9486 ++++++++++++ .../jiko.io.yaml | 464 + sdks/db/progress/jiko-progress.yaml | 199 + .../from-custom-request_jiko.io.json | 3882 +++++ .../from-custom-request_jiko.io.json | 22 + sdks/publish.yaml | 30 +- sdks/src/collect-from-custom-requests.ts | 9 + 15 files changed, 57787 insertions(+), 5 deletions(-) create mode 100644 sdks/db/browser-downloads/docs.jiko.io_reference/openapi.json create mode 100644 sdks/db/cached-method-objects/from-custom-request_jiko.io.yaml create mode 100644 sdks/db/custom-request-specs/jiko.io.yaml create mode 100644 sdks/db/fixed-specs-cache/jiko-fixed-spec.yaml create mode 100644 sdks/db/fixed-specs/jiko-fixed-spec.yaml create mode 100644 sdks/db/generate-repository-description-cache/jiko.json create mode 100644 sdks/db/intermediate-fixed-specs/jiko/openapi.yaml create mode 100644 sdks/db/processed-custom-request-cache/jiko.io.yaml create mode 100644 sdks/db/progress/jiko-progress.yaml create mode 100644 sdks/db/published/from-custom-request_jiko.io.json create mode 100644 sdks/db/spec-data/from-custom-request_jiko.io.json diff --git a/sdks/db/browser-downloads/docs.jiko.io_reference/openapi.json b/sdks/db/browser-downloads/docs.jiko.io_reference/openapi.json new file mode 100644 index 0000000000..3c9e534a40 --- /dev/null +++ b/sdks/db/browser-downloads/docs.jiko.io_reference/openapi.json @@ -0,0 +1,12256 @@ +{ + "openapi": "3.1.0", + "info": { + "title": "Jiko Partner API", + "description": "# Introduction\n\nWelcome to the Jiko API Reference! Jiko enables you to integrate money storage and movement, backed by the safety and security of US Treasury Bills.\n\n
\n\nAt the core of our platform is the Jiko account: a pair consisting of a bank account and a brokerage account. When money is deposited into an account, 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 accounts, and each account is associated with a single T-bill maturity: 4-week, 13-week, 26-week or 52-week.\n\n
\n\nThe API Reference covers everything you need to build a full application leveraging the Jiko platform:\n\n
\n\n- Onboarding customers\n- Funding customer accounts via ACH or Wire\n- Viewing and managing accounts (including monthly statements and trade confirmations)\n- Making payments and transfers via ACH, Wire, On-Us (Book) Transfer or Debit Card\n\n
\n\nWhen you’re ready to start building, please contact us at [partner.support@jiko.io](mailto:partner.support@jiko.io) to request sandbox access.\n# Partner obligations\n\n
\n\n- Before onboarding, the end-user’s control over any email addresses or phone numbers must be confirmed (for example, via confirmation codes) before submitting an application to the API.\n- While onboarding, partners must comply with the disclosure requirements listed [below](#section/Partner-obligations/Disclosures-and-Agreements).\n- Monthly statements are created for bank and brokerage accounts and must be made available to the user.\n - Partners are required to send an email to end users every month a new statement is available to comply with regulatory requirements.\n - Partners can expect monthly statements to be available by the 15th of every month.\n - It is required to make the past 6 years of brokerage statements available to the end user.\n - It is advised to make at least the past 12 months of bank statements available to the end user.\n- Trade confirmations must be made available to the user.\n\n## Disclosures and Agreements\n\n- The bundle of customer disclosures and agreements served at the [Agreements](#tag/Individuals/operation/list_agreements_api_v1_agreements__get) endpoint must be presented to users before signing up for an account.\n This includes Risk and Limitation disclosures, Regulation E disclosures, Account agreements and more.\n - The customer consent for these disclosures have to be versioned and time-stamped and sent with the application.\n- Jiko reserves the right to update agreements from time to time.\n If a change is _adverse_ to the customer, Jiko will notify partners, and they are then required to notify their end users 30 days in advance of the change.\n - A change is deemed to be _adverse_ to the customer if it will result in increased fees, increased liability for the customer, fewer types of available transactions or stricter limitations on the frequency or dollar amount of transactions.\n- When Jiko updates the bundle of agreements, the version number of the agreement bundle will increment.\n Jiko reserves the right to reject or manually review applications where customer consent does not match the latest agreement version.\n Partners must re-fetch and display the agreements and disclosures links from the Agreements endpoint for every new application. This ensures each applicant is served the latest version of the agreements.\n\n# Authentication\n\n**Jiko** provides partners with a `username` and a `password`, as well as a `shared secret`. Partners are provided with a `bearer token` in the [Login](#tag/Security/operation/login_api_v1_login__post) response, which must be sent with each request.\n\n
\n\nEach request made to the partner API needs 3 parts in order for it to be processed:\n\n1. An **Authorization** HTTP header containing the value\n\n```javascript\nBearer \n```\n\n
\n\nWhere the `access_token` is the bearer token given in the [Login](#tag/Security/operation/login_api_v1_login__post) response.\n\n1. An **x-jiko-idempotency** HTTP header set to a random uuid for this action, in order to signify a unique request to the API from the partner’s perspective.\n2. An **x-jiko-signature** HTTP header set to a base64 encoded HMAC-SHA256 hash of `x-jiko-idempotency+request pathname+body` using the shared secret as a key.\n\nBelow is a Node.js example showing how a potential request could be signed:\n\n
\n\n```javascript\nconst crypto = require(\"crypto\");\nconst uuid = require(\"uuid\");\n\nconst idempotency = uuid.v4();\nconst pathname = \"/api/v1/agreements/\";\nconst body = \"\";\n\nrequest.headers[\"x-jiko-signature\"] = crypto\n .createHmac(\"sha256\", \"shared-secret-here\")\n .update(idempotency + pathname + body, \"utf-8\")\n .digest(\"base64\");\n```\n\n
\n\n**Partner** requests will need to be sent from an IP address whitelisted by **Jiko**.\n**Jiko** will verify the request signature by repeating the steps above, additionally checking for possible repeated requests. A request is considered to be repeated if the idempotency key value provided in the `x-jiko-idempotency` header has been used previously in the past 1 hour.\n\n
\n\nBearer tokens have a lifetime of 60 minutes.\nThe partner will need to repeat the login process once a token has expired.\n\n# Changelog\n\n## March 2024\n- Added `tradable_id` field to [List Customer Trades](#tag/Trades/operation/list_customer_trades_api_v1_customers__customer_id__trades__get) and [List Customer Transactions](#tag/Transactions/operation/list_customer_transactions_api_v1_customers__customer_id__transactions__get) API endpoint.\n- Added support for filtering by trade date to and from to [List Customer Trades](#tag/Trades/operation/list_customer_trades_api_v1_customers__customer_id__trades__get) and [List Customer Transactions](#tag/Transactions/operation/list_customer_transactions_api_v1_customers__customer_id__transactions__get) API endpoints.\n\n- Added support for filtering by types, timestamp_from and timestamp_to to the [List Customer Transactions](#tag/Transactions/operation/list_customer_transactions_api_v1_customers__customer_id__transactions__get), [List Account Transactions](#tag/Transactions/operation/list_account_transactions_api_v1_jiko_accounts__account_id__transactions__get) API endpoints.\n\n\n## February 2024\n\n - Added support for filtering by status and direction to the [List ACH Originations](#tag/ACH/operation/List_ACH_originations_api_v1_jiko_accounts__account_id__ach_originating__get) API endpoint\n - Added support for filtering by portal id and card id to the [List Customer Transactions](#tag/Transactions/operation/list_customer_transactions_api_v1_customers__customer_id__transactions__get), [List Account Transactions](#tag/Transactions/operation/list_account_transactions_api_v1_jiko_accounts__account_id__transactions__get) API endpoints.\n\n - Added support for filtering by status and direction to the [List ACH Originations](#tag/ACH/operation/List_ACH_originations_api_v1_jiko_accounts__account_id__ach_originating__get) API endpoint\n - Added support for filtering by card status to the [List Account Cards](#tag/Manage-Cards/operation/list_account_cards_api_v1_jiko_accounts__account_id__cards__get) endpoint.\n - Added support for full withdrawals when performing on-us transfers by using the new `amount` field.\n - Added support for listing fees deducted when performing on-us transfers.\n\n## January 2024\n\n - Added [Get Health Check](#tag/Health/operation/get-health-check) API endpoint.\n\n## December 2023\n\n- Business Application additions:\n\n - Added [Create Application](#tag/Businesses/operation/create-business-application) API endpoint.\n - Added [Get Application](#tag/Businesses/operation/get-business-application) API endpoint.\n - Added [Update Application](#tag/Businesses/operation/update-business-application) API endpoint.\n - Added [Apply](#tag/Businesses/operation/business-application-apply) API endpoint.\n\n- Related Party Application additions:\n\n - Added [List Related Party](#tag/Businesses/operation/list-related-party-application) API endpoint.\n - Added [Create Related Party](#tag/Businesses/operation/create-related-party-application) API endpoint.\n - Added [Delete Related Party](#tag/Businesses/operation/delete-related-party-application) API endpoint.\n - Added [Update Related Party](#tag/Businesses/operation/update-related-party-application) API endpoint.\n\n- Document Upload additions:\n\n - Added [List Document Requests](#tag/Businesses/operation/list-document-requests-businesses) API endpoint.\n - Added [Upload Document](#tag/Businesses/operation/upload-business-application-document) API endpoint.\n\n- Wire additions:\n\n - Added [Create Wire](#tag/Wires/operation/create-wire) API endpoint.\n\n## November 2023\n\n- Added a new optional field `micro_deposit` to V1 `ACHCounterparty` model that includes an indication of number of verification attempts for ACH Counterparties verified via Micro Deposits\n- Added [Close Portal](#tag/Portals/operation/close_portal_api_v1_jiko_accounts__account_id__portals__portal_id__close__post) API endpoint.\n- Added [Update Portal](#tag/Portals/operation/update_portal_api_v1_jiko_accounts__account_id__portals__portal_id___patch) API endpoint.\n\n## October 2023\n\n- Added enum value `PENDING` to the [Get Customer Data](#tag/Customers/operation/get_customer_data_api_v1_customers__customer_id___get) `account_status` field, signalling that a customer has no open pocket.\n\n## July 2023\n\n- Added [Get Account Portal](#tag/Portals/operation/get-account-portal) API endpoint.\n\n## May 2023\n\n### 2023-05-26\n\n- The response from uploading documents now includes a `document_id` field for future reference.\n\n### 2023-05-15\n\n- Added [Create Portal](#tag/Portals/operation/create_portal_api_v1_jiko_accounts__account_id__portals__post) API endpoint.\n- Added a new `category` type E-SIGN for the Electronic Communications Disclosure Statement and Consent which was previously in the GENERAL category.\n\n### 2023-05-05\n\n- Added a new `WIRE_COUNTERPARTY_VERIFICATION` document type.\n- File size limits raised to 50 MB for files other than `ID_FRONT`, `ID_BACK`, `SELFIE` and `PASSPORT` when uploading documents to a customer or application.\n- Updated documentation for both file upload endpoints.\n\n## April 2023\n\n### 2023-04-28\n\n- Adds a new `category` field for agreements returned by the [List Agreements](#tag/Individuals/operation/list_agreements_api_v1_agreements__get) endpoint. This `category` field groups all agreements into 3 categories, BANK, BROKERAGE, or GENERAL.\n\n### 2023-04-19\n\n- Added a new sandbox endpoint for simulating webhook calls, [Trigger Webhook](#tag/Sandbox/operation/trigger-webhook).\n\n## March 2023\n\n### 2023-03-30\n\n- Added a new `yield_to_maturity` field to the `Trade` model.\n\n### 2023-03-15\n\n- Added a new `name` field to the `Portal` model.\n\n## February 2023\n\n### 2023-02-24\n\n- Added a sandbox endpoint to fund accounts via ACH portals.\n\n### 2023-02-16\n\n- Added a new disclosure type, `FORM_CRS`, for Customer Relationship Summary Forms.\n\n### 2023-02-10\n\n- Added `wire_fee_transaction` and `WIRE_FEE` transaction type to the [List Customer Transactions](#tag/Transactions/operation/list_customer_transactions_api_v1_customers__customer_id__transactions__get), [List Account Transactions](#tag/Transactions/operation/list_account_transactions_api_v1_jiko_accounts__account_id__transactions__get) and [Get Account Transaction](#tag/Transactions/operation/get_account_transaction_api_v1_jiko_accounts__account_id__transactions__transaction_id___get) endpoints.\n\n## January 2023\n\n### 2023-01-25\n\n- Added [Create On-Us Transfer](#tag/On-Us-Transfers/operation/create-on-us-transfer) API endpoint.\n- Added [Get On-Us Transfer](#tag/On-Us-Transfers/operation/get-on-us-transfer) API endpoint.\n\n### 2023-01-18\n\n- Added two optional filtering query parameters to the [List Customer Statements](#tag/Statements/operation/list_customer_statements_api_v1_customers__customer_id__statements__get) endpoint:\n - The `type[]` query parameter makes it possible to filter by different types of statements, e.g. `?type[]=BANK&type[]=BROKERAGE`\n - The `key` query parameter makes it possible to filter by either a specific month or a year, e.g. `?key=2023-01` or `?key=2022`\n- Marked the [List Account Statements](#tag/Statements/operation/list_account_statements_api_v1_jiko_accounts__account_id__statements__get) endpoint as deprecated. Please use the [List Customer Statements](#tag/Statements/operation/list_customer_statements_api_v1_customers__customer_id__statements__get) in future integrations.\n\n### 2023-01-09\n\n- Added a new transaction type and corresponding details object, `on_us_transaction` to the response model in [List Customer Transactions](#tag/Transactions/operation/list_customer_transactions_api_v1_customers__customer_id__transactions__get).\n\n### 2023-01-06\n\n- Added optional field `originally_onboarded_at` to request body in [Create Application](#tag/Individuals/operation/create_application_api_v1_applications__post)\n\n## November 2022\n\n### 2022-11-09\n\n- New counterparty type `WIRE` with a `wire` field, returned in [Get Counterparty](#tag/Counterparties/operation/get_counterparty_api_v1_customers__customer_id__counterparties__counterparty_id___get) and [List Counterparties](#tag/Counterparties/operation/list_counterparties_api_v1_customers__customer_id__counterparties__get)\n\n## September 2022\n\n### 2022-09-28\n\n- Added [List Customer Statements](#tag/Statements/operation/list_customer_statements_api_v1_customers__customer_id__statements__get) API endpoint.\n\n### 2022-09-27\n\n- Added [Get Customer Data](#tag/Customers/operation/get_customer_data_api_v1_customers__customer_id___get) API endpoint.\n\n### 2022-09-07\n\n- Added [List Customer Trades](#tag/Trades/operation/list_customer_trades_api_v1_customers__customer_id__trades__get) API endpoint.\n- Added [List Customer Transactions](#tag/Transactions/operation/list_customer_transactions_api_v1_customers__customer_id__transactions__get) API endpoint.\n\n## August 2022\n\n### 2022-08-29\n\n- Added `name` field to the [List Customer Accounts](#tag/Accounts/operation/list_customer_accounts_api_v1_customers__customer_id__jiko_accounts__get) and [Get Customer Account](#tag/Accounts/operation/get_customer_account_api_v1_jiko_accounts__account_id___get) API endpoints\n\n### 2022-08-16\n\n- Added [Get Account Transaction](#tag/Transactions/operation/get_account_transaction_api_v1_jiko_accounts__account_id__transactions__transaction_id___get) API endpoint\n\n### 2022-08-05\n\n- Added [List ACH Originations](#tag/ACH/operation/List_ACH_originations_api_v1_jiko_accounts__account_id__ach_originating__get) API endpoint\n", + "version": "1.29.0" + }, + "servers": [ + { + "url": "https://{partner}.partner-api.jikoservices.com", + "description": "Production server" + }, + { + "url": "https://{partner}.sandbox-api.jikoservices.com", + "description": "Sandbox server" + } + ], + "paths": { + "/api/v1/customers/{customer_id}/jiko-accounts/": { + "get": { + "tags": [ + "Accounts" + ], + "summary": "List Customer Accounts", + "description": "Get a list of all accounts for a specified customer.", + "operationId": "list_customer_accounts_api_v1_customers__customer_id__jiko_accounts__get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Customer Id" + }, + "name": "customer_id", + "in": "path" + }, + { + "required": false, + "schema": { + "type": "integer", + "minimum": 0, + "title": "Offset", + "default": 0 + }, + "name": "offset", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "integer", + "maximum": 100, + "minimum": 1, + "title": "Limit", + "default": 100 + }, + "name": "limit", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListAccountsResponse" + }, + "example": { + "offset": 0, + "count": 1, + "items": [ + { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "name": "J1 (4-week)", + "total_value": { + "value": 20708596, + "currency": "USD", + "formatted": "$207,085.96" + }, + "status": "OPEN", + "portfolio": { + "securities": [ + { + "tradable_id": "4b955c69-dd95-4f6a-a0ff-325ee029f240", + "security_type": "FIXED_INCOME", + "quantity": 2100, + "market_value": { + "value": 20708596, + "currency": "USD", + "formatted": "$207,085.96" + }, + "external_id": "912796RF6", + "maturity_date": "2023-01-30", + "yield_to_maturity": "0.0468", + "ask": "98.628528", + "bid": "98.612361", + "description": "US T-Bill" + } + ], + "cash": { + "value": 0, + "currency": "USD", + "formatted": "$0.00" + }, + "all_time_earnings": { + "value": 935404, + "currency": "USD", + "formatted": "$9,354.04" + } + }, + "object_type": "Account" + } + ], + "object_type": "List" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/": { + "get": { + "tags": [ + "Accounts" + ], + "summary": "Get Customer Account", + "description": "Get a specific account.", + "operationId": "get_customer_account_api_v1_jiko_accounts__account_id___get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Account" + }, + "example": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "name": "J1 (4-week)", + "total_value": { + "value": 20708596, + "currency": "USD", + "formatted": "$207,085.96" + }, + "status": "OPEN", + "portfolio": { + "securities": [ + { + "tradable_id": "4b955c69-dd95-4f6a-a0ff-325ee029f240", + "security_type": "FIXED_INCOME", + "quantity": 2100, + "market_value": { + "value": 20708596, + "currency": "USD", + "formatted": "$207,085.96" + }, + "external_id": "912796RF6", + "maturity_date": "2023-01-30", + "yield_to_maturity": "0.0468", + "ask": "98.628528", + "bid": "98.612361", + "description": "US T-Bill" + } + ], + "cash": { + "value": 0, + "currency": "USD", + "formatted": "$0.00" + }, + "all_time_earnings": { + "value": 935404, + "currency": "USD", + "formatted": "$9,354.04" + } + }, + "object_type": "Account" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/customers/{customer_id}/transactions/": { + "get": { + "tags": [ + "Transactions" + ], + "summary": "List Customer Transactions", + "description": "Returns a list of transactions from a customer's **bank accounts**. It does not include transactions between the **bank account** and **brokerage account**.", + "operationId": "list_customer_transactions_api_v1_customers__customer_id__transactions__get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Customer Id" + }, + "name": "customer_id", + "in": "path" + }, + { + "description": "Ordered by the transaction timestamp, descending by default.", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Order" + } + ], + "description": "Ordered by the transaction timestamp, descending by default.", + "default": "desc" + }, + "name": "order", + "in": "query" + }, + { + "required": false, + "schema": { + "items": { + "type": "string", + "format": "uuid" + }, + "type": "array", + "title": "Account[]" + }, + "name": "account[]", + "in": "query" + }, + { + "required": false, + "schema": { + "items": { + "type": "string", + "format": "uuid" + }, + "type": "array", + "title": "Filter[Card]" + }, + "name": "filter[card]", + "in": "query" + }, + { + "required": false, + "schema": { + "items": { + "type": "string", + "format": "uuid" + }, + "type": "array", + "title": "Filter[Portal]" + }, + "name": "filter[portal]", + "in": "query" + }, + { + "required": false, + "schema": { + "items": { + "$ref": "#/components/schemas/TransactionType" + }, + "type": "array" + }, + "name": "filter[types]", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "format": "date-time", + "title": "Timestamp From" + }, + "name": "timestamp_from", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "format": "date-time", + "title": "Timestamp To" + }, + "name": "timestamp_to", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "title": "Cursor", + "default": "" + }, + "name": "cursor", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Limit", + "default": 30, + "lte": 100 + }, + "name": "limit", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionListResponse" + }, + "example": { + "prev_page": "cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA==", + "next_page": "cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw", + "items": [ + { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "amount": { + "value": 100000, + "currency": "USD", + "formatted": "$1,000.00" + }, + "timestamp": "2023-01-01T12:00:00+00:00", + "status": "COMPLETED", + "details": { + "transaction_type": "CARD", + "title": "ATM ABCD ID: TERM99 at 26 HOUSTON TEXAS CIR, HOUSTON TX", + "transaction_type_title": "ATM Withdrawal", + "card_transaction": { + "location": { + "street_address": "26 HOUSTON TEXAS CIR", + "city": "HOUSTON", + "state": "TX", + "country": "US" + }, + "counterparty": "ABCD", + "terminal_id": "TERM99", + "merchant_type": "ATM", + "pre_authorization": true + } + }, + "object_type": "Transaction" + }, + { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "amount": { + "value": 100000, + "currency": "USD", + "formatted": "$1,000.00" + }, + "timestamp": "2023-01-01T12:00:00+00:00", + "status": "COMPLETED", + "details": { + "transaction_type": "ACH", + "title": "From VENMO (PAYMENT)", + "sub_title": "IIN: 596425331 REF: 91000010211227", + "transaction_type_title": "ACH Electronic Debit", + "ach_transaction": { + "company_name": "VENMO", + "company_entry_description": "PAYMENT", + "individual_identification_number": "596425331", + "trace_number": "091000010211227" + } + }, + "object_type": "Transaction" + }, + { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "amount": { + "value": 100000, + "currency": "USD", + "formatted": "$1,000.00" + }, + "timestamp": "2023-01-01T12:00:00+00:00", + "status": "COMPLETED", + "details": { + "transaction_type": "WIRE", + "title": "From External Account", + "sub_title": "9999XXXX", + "transaction_type_title": "Wire Transfer In", + "wire_transaction": { + "reference_number": "9999XXXX", + "counterparty_name": "John Smith", + "wire_id": "4854014d-5540-4f0c-9efe-a0137f01e1da" + } + }, + "object_type": "Transaction" + }, + { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "amount": { + "value": 100000, + "currency": "USD", + "formatted": "$1,000.00" + }, + "timestamp": "2023-01-01T12:00:00+00:00", + "status": "COMPLETED", + "details": { + "transaction_type": "CASH_BACK", + "title": "2022-06 Card Cash Back", + "transaction_type_title": "Card Cash Back", + "cash_back_transaction": { + "period": "2022-06", + "card_id": "66f6e46c-f6a1-4af8-a1bd-49666bc01301" + } + }, + "object_type": "Transaction" + } + ], + "object_type": "CursorList" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/transactions/": { + "get": { + "tags": [ + "Transactions" + ], + "summary": "List Account Transactions", + "description": "Returns a list of **bank account** transactions. It does not include transactions between the **bank account** and **brokerage account**.", + "operationId": "list_account_transactions_api_v1_jiko_accounts__account_id__transactions__get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "description": "Ordered by the transaction timestamp, descending by default.", + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Order" + } + ], + "description": "Ordered by the transaction timestamp, descending by default.", + "default": "desc" + }, + "name": "order", + "in": "query" + }, + { + "required": false, + "schema": { + "items": { + "type": "string", + "format": "uuid" + }, + "type": "array", + "title": "Filter[Card]" + }, + "name": "filter[card]", + "in": "query" + }, + { + "required": false, + "schema": { + "items": { + "type": "string", + "format": "uuid" + }, + "type": "array", + "title": "Filter[Portal]" + }, + "name": "filter[portal]", + "in": "query" + }, + { + "required": false, + "schema": { + "items": { + "$ref": "#/components/schemas/TransactionType" + }, + "type": "array" + }, + "name": "filter[types]", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "format": "date-time", + "title": "Timestamp From" + }, + "name": "timestamp_from", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "format": "date-time", + "title": "Timestamp To" + }, + "name": "timestamp_to", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "title": "Cursor", + "default": "" + }, + "name": "cursor", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Limit", + "default": 30, + "lte": 100 + }, + "name": "limit", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionListResponse" + }, + "example": { + "prev_page": "cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA==", + "next_page": "cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw", + "items": [ + { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "amount": { + "value": 100000, + "currency": "USD", + "formatted": "$1,000.00" + }, + "timestamp": "2023-01-01T12:00:00+00:00", + "status": "COMPLETED", + "details": { + "transaction_type": "CARD", + "title": "ATM ABCD ID: TERM99 at 26 HOUSTON TEXAS CIR, HOUSTON TX", + "transaction_type_title": "ATM Withdrawal", + "card_transaction": { + "location": { + "street_address": "26 HOUSTON TEXAS CIR", + "city": "HOUSTON", + "state": "TX", + "country": "US" + }, + "counterparty": "ABCD", + "terminal_id": "TERM99", + "merchant_type": "ATM", + "pre_authorization": true + } + }, + "object_type": "Transaction" + }, + { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "amount": { + "value": 100000, + "currency": "USD", + "formatted": "$1,000.00" + }, + "timestamp": "2023-01-01T12:00:00+00:00", + "status": "COMPLETED", + "details": { + "transaction_type": "ACH", + "title": "From VENMO (PAYMENT)", + "sub_title": "IIN: 596425331 REF: 91000010211227", + "transaction_type_title": "ACH Electronic Debit", + "ach_transaction": { + "company_name": "VENMO", + "company_entry_description": "PAYMENT", + "individual_identification_number": "596425331", + "trace_number": "091000010211227" + } + }, + "object_type": "Transaction" + }, + { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "amount": { + "value": 100000, + "currency": "USD", + "formatted": "$1,000.00" + }, + "timestamp": "2023-01-01T12:00:00+00:00", + "status": "COMPLETED", + "details": { + "transaction_type": "WIRE", + "title": "From External Account", + "sub_title": "9999XXXX", + "transaction_type_title": "Wire Transfer In", + "wire_transaction": { + "reference_number": "9999XXXX", + "counterparty_name": "John Smith", + "wire_id": "4854014d-5540-4f0c-9efe-a0137f01e1da" + } + }, + "object_type": "Transaction" + }, + { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "amount": { + "value": 100000, + "currency": "USD", + "formatted": "$1,000.00" + }, + "timestamp": "2023-01-01T12:00:00+00:00", + "status": "COMPLETED", + "details": { + "transaction_type": "CASH_BACK", + "title": "2022-06 Card Cash Back", + "transaction_type_title": "Card Cash Back", + "cash_back_transaction": { + "period": "2022-06", + "card_id": "66f6e46c-f6a1-4af8-a1bd-49666bc01301" + } + }, + "object_type": "Transaction" + } + ], + "object_type": "CursorList" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/transactions/{transaction_id}/": { + "get": { + "tags": [ + "Transactions" + ], + "summary": "Get Account Transaction", + "description": "Returns a specific transaction for a specific account, based on the provided account_id and transaction_id in question.", + "operationId": "get_account_transaction_api_v1_jiko_accounts__account_id__transactions__transaction_id___get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Transaction Id" + }, + "name": "transaction_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Transaction" + }, + "example": { + "id": "05964326-49b7-4e74-9783-81137ee3cf3b", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "amount": { + "value": 100000, + "currency": "USD", + "formatted": "$1,000.00" + }, + "timestamp": "2023-01-01T12:00:00+00:00", + "status": "COMPLETED", + "details": { + "transaction_type": "WIRE", + "title": "From External Account", + "sub_title": "9999XXXX", + "transaction_type_title": "Wire Transfer In", + "wire_transaction": { + "reference_number": "9999XXXX", + "counterparty_name": "John Smith", + "wire_id": "4854014d-5540-4f0c-9efe-a0137f01e1da" + } + }, + "object_type": "Transaction" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/customers/{customer_id}/trades/": { + "get": { + "tags": [ + "Trades" + ], + "summary": "List Customer Trades", + "description": "Returns a list of trades from a customer's **brokerage accounts**.", + "operationId": "list_customer_trades_api_v1_customers__customer_id__trades__get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Customer Id" + }, + "name": "customer_id", + "in": "path" + }, + { + "required": false, + "schema": { + "items": { + "type": "string", + "format": "uuid" + }, + "type": "array", + "title": "Account[]" + }, + "name": "account[]", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "format": "date-time", + "title": "Trade Datetime From" + }, + "name": "trade_datetime_from", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "format": "date-time", + "title": "Trade Datetime To" + }, + "name": "trade_datetime_to", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "title": "Cursor", + "default": "" + }, + "name": "cursor", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Limit", + "default": 30, + "lte": 100 + }, + "name": "limit", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TradeListResponse" + }, + "example": { + "prev_page": "cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA==", + "next_page": "cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw", + "items": [ + { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "trade_datetime": "2023-01-01T12:00:00+00:00", + "settled_date": "2023-01-01", + "is_settled": true, + "activity": "BUY", + "cusip": "912796RF6", + "description": "US T-Bill", + "notional": { + "value": 20935404, + "currency": "USD", + "formatted": "$209,354.04" + }, + "quantity": 2123, + "price": "98.612361", + "maturity_date": "2023-01-30", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "yield_to_maturity": "0.0468", + "tradable_id": "912797HF7", + "object_type": "Trade" + } + ], + "object_type": "CursorList" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/trades/": { + "get": { + "tags": [ + "Trades" + ], + "summary": "List Account Trades", + "description": "Get a list of trades. This is the equivalent of fetching transactions for the **brokerage** account.", + "operationId": "list_account_trades_api_v1_jiko_accounts__account_id__trades__get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": false, + "schema": { + "type": "string", + "format": "date-time", + "title": "Trade Datetime From" + }, + "name": "trade_datetime_from", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "format": "date-time", + "title": "Trade Datetime To" + }, + "name": "trade_datetime_to", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "title": "Cursor", + "default": "" + }, + "name": "cursor", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Limit", + "default": 30, + "lte": 100 + }, + "name": "limit", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TradeListResponse" + }, + "example": { + "prev_page": "cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA==", + "next_page": "cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw", + "items": [ + { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "trade_datetime": "2023-01-01T12:00:00+00:00", + "settled_date": "2023-01-01", + "is_settled": true, + "activity": "BUY", + "cusip": "912796RF6", + "description": "US T-Bill", + "notional": { + "value": 20935404, + "currency": "USD", + "formatted": "$209,354.04" + }, + "quantity": 2123, + "price": "98.612361", + "maturity_date": "2023-01-30", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "yield_to_maturity": "0.0468", + "tradable_id": "912797HF7", + "object_type": "Trade" + } + ], + "object_type": "CursorList" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/trades/{trade_id}/confirmation/": { + "get": { + "tags": [ + "Trades" + ], + "summary": "Get Trade Confirmation", + "description": "Get a trade's trade confirmation.\n\n
\n\nTrade confirmations are sensitive documents. For security reasons, we return trade confirmations as PDFs through a URL with a 10-minute TTL. Trade confirmation PDFs should be fetched and served just-in-time, not stored in databases. Trades with \"activity\": \"MATURITY\" do not have trade confirmations.", + "operationId": "get_trade_confirmation_api_v1_jiko_accounts__account_id__trades__trade_id__confirmation__get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Trade Id" + }, + "name": "trade_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TradeConfirmation" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/applications/": { + "post": { + "tags": [ + "Individuals" + ], + "summary": "Create Application", + "description": "Create an application. You must [apply](#operation/apply_api_v1_applications__application_id__apply__post) to potentially create a customer using the application, assuming KYC is successful.\n\n
\n\nWhen creating an application, keep in mind that customers must be at least 18 years old to open an account with Jiko.", + "operationId": "create_application_api_v1_applications__post", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternationalApplicationRequest" + }, + "example": { + "identification_number": "999999999", + "name": { + "first_name": "Jiko", + "last_name": "Customer" + }, + "email": "jiko@example.com", + "date_of_birth": "1970-01-01", + "investment_profile": { + "income": "BETWEEN_100K_AND_250K", + "net_worth": "BETWEEN_1M_AND_5M", + "occupation": "Investor", + "employment_status": "EMPLOYED" + }, + "agreement_consent": { + "version": "1", + "timestamp": "2023-01-01T12:00:00+00:00" + }, + "phone_number": "+14155550100", + "address": { + "street_address": "2000 Allston Way", + "city": "Berkeley", + "postal_code": "94701", + "state": "CA", + "country": "USA" + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternationalApplication" + }, + "example": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "time_created": "2023-01-01T12:00:00+00:00", + "updated_at": "2023-01-01T13:00:00+00:00", + "status": "CREATED", + "exception_reasons": [], + "phone_number": "+14155550100", + "agreement_consent": { + "version": "1", + "timestamp": "2023-01-01T12:00:00+00:00" + }, + "email": "jiko@example.com", + "name": { + "first_name": "Jiko", + "last_name": "Customer" + }, + "date_of_birth": { + "date_of_birth": "1970-01-01" + }, + "investment_profile": { + "income": "BETWEEN_100K_AND_250K", + "net_worth": "BETWEEN_1M_AND_5M", + "occupation": "Investor", + "employment_status": "EMPLOYED" + }, + "documents": [], + "id_verification_documents_needed": false, + "identification_number_verification_document_needed": false, + "address_verification_document_needed": false, + "address": { + "street_address": "2000 Allston Way", + "city": "Berkeley", + "postal_code": "94701", + "state": "CA", + "country": "US" + }, + "citizenship_country": "US", + "object_type": "InternationalApplication" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/applications/{application_id}/": { + "get": { + "tags": [ + "Individuals" + ], + "summary": "Get Application", + "description": "Fetch and observe an existing application.", + "operationId": "get_application_api_v1_applications__application_id___get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Application Id" + }, + "name": "application_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternationalApplication" + }, + "example": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "time_created": "2023-01-01T12:00:00+00:00", + "updated_at": "2023-01-01T13:00:00+00:00", + "status": "CREATED", + "exception_reasons": [], + "phone_number": "+14155550100", + "agreement_consent": { + "version": "1", + "timestamp": "2023-01-01T12:00:00+00:00" + }, + "email": "jiko@example.com", + "name": { + "first_name": "Jiko", + "last_name": "Customer" + }, + "date_of_birth": { + "date_of_birth": "1970-01-01" + }, + "investment_profile": { + "income": "BETWEEN_100K_AND_250K", + "net_worth": "BETWEEN_1M_AND_5M", + "occupation": "Investor", + "employment_status": "EMPLOYED" + }, + "documents": [], + "id_verification_documents_needed": false, + "identification_number_verification_document_needed": false, + "address_verification_document_needed": false, + "address": { + "street_address": "2000 Allston Way", + "city": "Berkeley", + "postal_code": "94701", + "state": "CA", + "country": "US" + }, + "citizenship_country": "US", + "object_type": "InternationalApplication" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/applications/{application_id}/apply/": { + "post": { + "tags": [ + "Individuals" + ], + "summary": "Apply", + "description": "Initiate automatic KYC. Transitions the application from `CREATED` status to `SUBMITTED` status. Once the async KYC process is completed, the application will move from `SUBMITTED` to another status.", + "operationId": "apply_api_v1_applications__application_id__apply__post", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Application Id" + }, + "name": "application_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InternationalApplication" + }, + "example": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "time_created": "2023-01-01T12:00:00+00:00", + "updated_at": "2023-01-01T13:00:00+00:00", + "status": "DOCUMENTS_NEEDED", + "exception_reasons": [], + "phone_number": "+14155550100", + "agreement_consent": { + "version": "1", + "timestamp": "2023-01-01T12:00:00+00:00" + }, + "email": "jiko@example.com", + "name": { + "first_name": "Jiko", + "last_name": "Customer" + }, + "date_of_birth": { + "date_of_birth": "1970-01-01" + }, + "investment_profile": { + "income": "BETWEEN_100K_AND_250K", + "net_worth": "BETWEEN_1M_AND_5M", + "occupation": "Investor", + "employment_status": "EMPLOYED" + }, + "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e", + "documents": [ + { + "id": "dcd70de2-9f18-4918-bd96-c3972c85dc4e", + "type": "ID_FRONT", + "status": "PENDING_UPLOAD" + }, + { + "id": "62cd7ac9-d882-43f5-ac19-ad85c0c5c533", + "type": "ID_BACK", + "status": "PENDING_UPLOAD" + }, + { + "id": "1bd78e61-c86f-45b8-8848-34a51c863166", + "type": "PASSPORT", + "status": "PENDING_UPLOAD" + }, + { + "id": "0ceee47c-946e-4a6d-8951-96e1f630a59c", + "type": "SELFIE", + "status": "PENDING_UPLOAD" + } + ], + "id_verification_documents_needed": true, + "identification_number_verification_document_needed": false, + "address_verification_document_needed": false, + "address": { + "street_address": "2000 Allston Way", + "city": "Berkeley", + "postal_code": "94701", + "state": "CA", + "country": "US" + }, + "citizenship_country": "US", + "object_type": "InternationalApplication" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/agreements/": { + "get": { + "tags": [ + "Individuals" + ], + "summary": "List Agreements", + "description": "Partner agreements and disclosures are available through the API in a versioned bundle. The version of the fetched bundle must be attached to all incoming applications.", + "operationId": "list_agreements_api_v1_agreements__get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Agreement" + }, + "example": { + "version": "1.0.0", + "release_date": "2023-01-01", + "documents": [ + { + "pdf_download_url": "https://example.com/path-to-agreement-pdf", + "title": "Jiko Privacy Policy", + "type": "PRIVACY_POLICY", + "category": "GENERAL" + } + ] + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/business-applications/": { + "post": { + "tags": [ + "Businesses" + ], + "summary": "Create Application", + "description": "Create a Business Application. The **Business Application** object contains general information related to the business and the overall status of the application.\n\n
\n\nSee the [Onboarding Businesses Guide](https://docs.jiko.io/guides/onboarding-businesses) for more.", + "operationId": "create-business-application", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BusinessApplicationRequest" + }, + "example": { + "name": "Jiko Group, Inc.", + "entity_type": "CORPORATE", + "doing_business_as": "Jiko", + "identification_number": { + "identification_number": "987654321", + "type": "TIN" + }, + "address": { + "street_address": "101 Mission Street", + "street_address2": "7th Floor", + "city": "San Francisco", + "postal_code": "94105", + "state": "CA", + "country": "US" + }, + "website": "https://www.jiko.io", + "contact": { + "name": { + "first_name": "Jiko", + "middle_name": "", + "last_name": "Contact" + }, + "phone_number": "+15551234567", + "email": "contact@jiko.io" + }, + "formation_date": "2017-01-04", + "risk_info": { + "risk_categories": [], + "has_current_enforcement_actions": false, + "business_activity_location": "PRIMARILY_US", + "source_of_funds": "INTERNAL_FUNDS", + "account_usage": "MONEY_STORAGE", + "annual_revenue": "PRE_REVENUE", + "monthly_transactions": "5_OR_LESS", + "first_month_deposit": "1M_OR_LESS" + }, + "industry": { + "industry": "ACCOUNTING_AND_BOOKKEEPING" + }, + "agreement_consent": { + "version": "1", + "timestamp": "2023-01-01T12:00:00+00:00" + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BusinessApplicationResponse" + }, + "example": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "time_created": "2023-01-01T12:00:00+00:00", + "updated_at": "2023-01-01T12:00:00+00:00", + "status": "CREATED", + "exception_reasons": [], + "name": "Jiko Group, Inc.", + "entity_type": "CORPORATE", + "doing_business_as": "Jiko", + "identification_number": { + "identification_number": "987654321", + "type": "TIN" + }, + "address": { + "street_address": "101 Mission Street", + "street_address2": "7th Floor", + "city": "San Francisco", + "postal_code": "94105", + "state": "CA", + "country": "US" + }, + "website": "https://www.jiko.io", + "contact": { + "name": { + "first_name": "Jiko", + "middle_name": "", + "last_name": "Contact" + }, + "phone_number": "+15551234567", + "email": "contact@jiko.io" + }, + "formation_date": "2017-01-04", + "risk_info": { + "risk_categories": [], + "has_current_enforcement_actions": false, + "business_activity_location": "PRIMARILY_US", + "source_of_funds": "INTERNAL_FUNDS", + "account_usage": "MONEY_STORAGE", + "annual_revenue": "PRE_REVENUE", + "monthly_transactions": "5_OR_LESS", + "first_month_deposit": "1M_OR_LESS" + }, + "industry": { + "industry": "ACCOUNTING_AND_BOOKKEEPING" + }, + "agreement_consent": { + "version": "1", + "timestamp": "2023-01-01T12:00:00+00:00" + } + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/business-applications/{application_id}/": { + "get": { + "tags": [ + "Businesses" + ], + "summary": "Get Application", + "description": "Fetch a Business Application.", + "operationId": "get-business-application", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Application Id" + }, + "name": "application_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BusinessApplicationResponse" + }, + "example": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "time_created": "2023-01-01T12:00:00+00:00", + "updated_at": "2023-01-01T12:00:00+00:00", + "status": "APPROVED", + "exception_reasons": [], + "name": "Jiko Group, Inc.", + "entity_type": "CORPORATE", + "doing_business_as": "Jiko", + "identification_number": { + "identification_number": "987654321", + "type": "TIN" + }, + "address": { + "street_address": "101 Mission Street", + "street_address2": "7th Floor", + "city": "San Francisco", + "postal_code": "94105", + "state": "CA", + "country": "US" + }, + "website": "https://www.jiko.io", + "contact": { + "name": { + "first_name": "Jiko", + "middle_name": "", + "last_name": "Contact" + }, + "phone_number": "+15551234567", + "email": "contact@jiko.io" + }, + "formation_date": "2017-01-04", + "risk_info": { + "risk_categories": [], + "has_current_enforcement_actions": false, + "business_activity_location": "PRIMARILY_US", + "source_of_funds": "INTERNAL_FUNDS", + "account_usage": "MONEY_STORAGE", + "annual_revenue": "PRE_REVENUE", + "monthly_transactions": "5_OR_LESS", + "first_month_deposit": "1M_OR_LESS" + }, + "industry": { + "industry": "ACCOUNTING_AND_BOOKKEEPING" + }, + "agreement_consent": { + "version": "1", + "timestamp": "2023-01-01T12:00:00+00:00" + }, + "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + }, + "patch": { + "tags": [ + "Businesses" + ], + "summary": "Update Application", + "operationId": "update-business-application", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Application Id" + }, + "name": "application_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BusinessApplicationRequest" + }, + "example": { + "name": "Jiko Group, Inc.", + "entity_type": "CORPORATE", + "doing_business_as": "Jiko", + "identification_number": { + "identification_number": "987654321", + "type": "TIN" + }, + "address": { + "street_address": "101 Mission Street", + "street_address2": "7th Floor", + "city": "San Francisco", + "postal_code": "94105", + "state": "CA", + "country": "US" + }, + "website": "https://www.jiko.io", + "contact": { + "name": { + "first_name": "Jiko", + "middle_name": "", + "last_name": "Contact" + }, + "phone_number": "+15551234567", + "email": "contact@jiko.io" + }, + "formation_date": "2017-01-04", + "risk_info": { + "risk_categories": [], + "has_current_enforcement_actions": false, + "business_activity_location": "PRIMARILY_US", + "source_of_funds": "INTERNAL_FUNDS", + "account_usage": "MONEY_STORAGE", + "annual_revenue": "PRE_REVENUE", + "monthly_transactions": "5_OR_LESS", + "first_month_deposit": "1M_OR_LESS" + }, + "industry": { + "industry": "ACCOUNTING_AND_BOOKKEEPING" + }, + "agreement_consent": { + "version": "1", + "timestamp": "2023-01-01T12:00:00+00:00" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BusinessApplicationResponse" + }, + "example": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "time_created": "2023-01-01T12:00:00+00:00", + "updated_at": "2023-01-01T12:00:00+00:00", + "status": "SUBMITTED", + "exception_reasons": [], + "name": "Jiko Group, Inc.", + "entity_type": "CORPORATE", + "doing_business_as": "Jiko", + "identification_number": { + "identification_number": "987654321", + "type": "TIN" + }, + "address": { + "street_address": "101 Mission Street", + "street_address2": "7th Floor", + "city": "San Francisco", + "postal_code": "94105", + "state": "CA", + "country": "US" + }, + "website": "https://www.jiko.io", + "contact": { + "name": { + "first_name": "Jiko", + "middle_name": "", + "last_name": "Contact" + }, + "phone_number": "+15551234567", + "email": "contact@jiko.io" + }, + "formation_date": "2017-01-04", + "risk_info": { + "risk_categories": [], + "has_current_enforcement_actions": false, + "business_activity_location": "PRIMARILY_US", + "source_of_funds": "INTERNAL_FUNDS", + "account_usage": "MONEY_STORAGE", + "annual_revenue": "PRE_REVENUE", + "monthly_transactions": "5_OR_LESS", + "first_month_deposit": "1M_OR_LESS" + }, + "industry": { + "industry": "ACCOUNTING_AND_BOOKKEEPING" + }, + "agreement_consent": { + "version": "1", + "timestamp": "2023-01-01T12:00:00+00:00" + } + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/business-applications/{application_id}/apply/": { + "post": { + "tags": [ + "Businesses" + ], + "summary": "Apply", + "description": "When the Business Application object has been completed, along with Related Party Applications and Document Requests (see the [Onboarding Businesses Guide](https://docs.jiko.io/guides/onboarding-businesses)), call this endpoint to submit the business application for review.", + "operationId": "business-application-apply", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Application Id" + }, + "name": "application_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BusinessApplicationResponse" + }, + "example": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "time_created": "2023-01-01T12:00:00+00:00", + "updated_at": "2023-01-01T12:00:00+00:00", + "status": "SUBMITTED", + "exception_reasons": [], + "name": "Jiko Group, Inc.", + "entity_type": "CORPORATE", + "doing_business_as": "Jiko", + "identification_number": { + "identification_number": "987654321", + "type": "TIN" + }, + "address": { + "street_address": "101 Mission Street", + "street_address2": "7th Floor", + "city": "San Francisco", + "postal_code": "94105", + "state": "CA", + "country": "US" + }, + "website": "https://www.jiko.io", + "contact": { + "name": { + "first_name": "Jiko", + "middle_name": "", + "last_name": "Contact" + }, + "phone_number": "+15551234567", + "email": "contact@jiko.io" + }, + "formation_date": "2017-01-04", + "risk_info": { + "risk_categories": [], + "has_current_enforcement_actions": false, + "business_activity_location": "PRIMARILY_US", + "source_of_funds": "INTERNAL_FUNDS", + "account_usage": "MONEY_STORAGE", + "annual_revenue": "PRE_REVENUE", + "monthly_transactions": "5_OR_LESS", + "first_month_deposit": "1M_OR_LESS" + }, + "industry": { + "industry": "ACCOUNTING_AND_BOOKKEEPING" + }, + "agreement_consent": { + "version": "1", + "timestamp": "2023-01-01T12:00:00+00:00" + } + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/business-applications/{application_id}/related-party-applications/": { + "get": { + "tags": [ + "Businesses" + ], + "summary": "List Related Party Application", + "operationId": "list-related-party-application", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Application Id" + }, + "name": "application_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/RelatedPartyApplicationResponse" + }, + "type": "array", + "title": "Response List-Related-Party-Application" + }, + "example": [ + { + "name": { + "first_name": "Related", + "middle_name": "", + "last_name": "Party" + }, + "address": { + "street_address": "101 Mission Street", + "street_address2": "7th Floor", + "city": "San Francisco", + "postal_code": "94105", + "state": "CA", + "country": "US" + }, + "date_of_birth": "1970-01-01", + "identification_number": { + "identification_number": "987654321", + "identification_type": "SSN" + }, + "phone_number": "+15551234567", + "title": "CEO", + "roles": [ + "CONTROL_PERSON" + ], + "ownership_percentage": "0.51", + "citizenship": "US", + "email": "relatedparty@jiko.io", + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08" + } + ] + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + }, + "post": { + "tags": [ + "Businesses" + ], + "summary": "Create Related Party Application", + "operationId": "create-related-party-application", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Application Id" + }, + "name": "application_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RelatedPartyApplicationRequest" + }, + "example": { + "name": { + "first_name": "Related", + "middle_name": "", + "last_name": "Party" + }, + "address": { + "street_address": "101 Mission Street", + "street_address2": "7th Floor", + "city": "San Francisco", + "postal_code": "94105", + "state": "CA", + "country": "US" + }, + "date_of_birth": "1970-01-01", + "identification_number": { + "identification_number": "987654321", + "identification_type": "SSN" + }, + "phone_number": "+15551234567", + "title": "CEO", + "roles": [ + "CONTROL_PERSON" + ], + "ownership_percentage": "0.51", + "citizenship": "US", + "email": "relatedparty@jiko.io" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RelatedPartyApplicationResponse" + }, + "example": { + "name": { + "first_name": "Related", + "middle_name": "", + "last_name": "Party" + }, + "address": { + "street_address": "101 Mission Street", + "street_address2": "7th Floor", + "city": "San Francisco", + "postal_code": "94105", + "state": "CA", + "country": "US" + }, + "date_of_birth": "1970-01-01", + "identification_number": { + "identification_number": "987654321", + "identification_type": "SSN" + }, + "phone_number": "+15551234567", + "title": "CEO", + "roles": [ + "CONTROL_PERSON" + ], + "ownership_percentage": "0.51", + "citizenship": "US", + "email": "relatedparty@jiko.io", + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/business-applications/{application_id}/related-party-applications/{related_party_application_id}/": { + "delete": { + "tags": [ + "Businesses" + ], + "summary": "Delete Related Party Application", + "operationId": "delete-related-party-application", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Application Id" + }, + "name": "application_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Related Party Application Id" + }, + "name": "related_party_application_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "204": { + "description": "Successful Response" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + }, + "patch": { + "tags": [ + "Businesses" + ], + "summary": "Update Related Party Application", + "operationId": "update-related-party-application", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Application Id" + }, + "name": "application_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Related Party Application Id" + }, + "name": "related_party_application_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RelatedPartyApplicationRequest" + }, + "example": { + "name": { + "first_name": "Related", + "middle_name": "", + "last_name": "Party" + }, + "address": { + "street_address": "101 Mission Street", + "street_address2": "7th Floor", + "city": "San Francisco", + "postal_code": "94105", + "state": "CA", + "country": "US" + }, + "date_of_birth": "1970-01-01", + "identification_number": { + "identification_number": "987654321", + "identification_type": "SSN" + }, + "phone_number": "+15551234567", + "title": "CEO", + "roles": [ + "CONTROL_PERSON" + ], + "ownership_percentage": "0.51", + "citizenship": "US", + "email": "relatedparty@jiko.io" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RelatedPartyApplicationResponse" + }, + "example": { + "name": { + "first_name": "Related", + "middle_name": "", + "last_name": "Party" + }, + "address": { + "street_address": "101 Mission Street", + "street_address2": "7th Floor", + "city": "San Francisco", + "postal_code": "94105", + "state": "CA", + "country": "US" + }, + "date_of_birth": "1970-01-01", + "identification_number": { + "identification_number": "987654321", + "identification_type": "SSN" + }, + "phone_number": "+15551234567", + "title": "CEO", + "roles": [ + "CONTROL_PERSON" + ], + "ownership_percentage": "0.51", + "citizenship": "US", + "email": "relatedparty@jiko.io", + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/customers/{customer_id}/counterparties/": { + "get": { + "tags": [ + "Counterparties" + ], + "summary": "List Counterparties", + "description": "List all counterparties for a customer.", + "operationId": "list_counterparties_api_v1_customers__customer_id__counterparties__get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Customer Id" + }, + "name": "customer_id", + "in": "path" + }, + { + "required": false, + "schema": { + "type": "string", + "title": "Cursor", + "default": "" + }, + "name": "cursor", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Limit", + "default": 30, + "lte": 100 + }, + "name": "limit", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListCounterpartiesResponse" + }, + "example": { + "prev_page": "cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA==", + "next_page": "cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw", + "items": [ + { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "type": "ACH", + "ach": { + "time_created": "2023-01-15T14:00:00+00:00", + "verification_type": "MICRO_DEPOSITS", + "status": "IN_PROGRESS", + "account_number": "123456789", + "routing_number": "9876456", + "name_on_account": "External Accountholder", + "account_type": "SAVINGS", + "institution_name": "External Bank NA", + "plaid": { + "mask": "0000", + "verification_status": "PENDING_AUTOMATIC_VERIFICATION", + "object_type": "CounterpartyPlaid" + } + }, + "wire": { + "time_created": "2023-01-15T14:00:00+00:00", + "verification_type": "INCOMING_WIRE", + "status": "IN_PROGRESS", + "account_number": "1213456789", + "routing_number": "9876456", + "name_on_account": "External Accountholder", + "account_type": "SAVINGS", + "institution_name": "External Bank NA" + }, + "object_type": "Counterparty" + } + ], + "object_type": "CursorList" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/customers/{customer_id}/counterparties/{counterparty_id}/": { + "get": { + "tags": [ + "Counterparties" + ], + "summary": "Get Counterparty", + "description": "Poll this endpoint to monitor the progress of the verification process for a single counterparty.\n\n
\n\n> ### Plaid:\n> If `plaid.verification_status` is `PENDING_MANUAL_VERIFICATION`, the user is in the Same Day Micro-deposits flow and must return in 1-2 business days and go through the Plaid Link flow again, this time using a new Link token where the *counterparty_id* is passed to Jiko.", + "operationId": "get_counterparty_api_v1_customers__customer_id__counterparties__counterparty_id___get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Customer Id" + }, + "name": "customer_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Counterparty Id" + }, + "name": "counterparty_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Counterparty" + }, + "example": { + "id": "b5a776db-8960-4157-afe5-519b6708bb79", + "type": "WIRE", + "wire": { + "time_created": "2023-01-15T14:00:00+00:00", + "verification_type": "INCOMING_WIRE", + "status": "IN_PROGRESS", + "account_number": "1213456789", + "routing_number": "9876456", + "name_on_account": "External Accountholder", + "account_type": "SAVINGS", + "institution_name": "External Bank NA" + }, + "object_type": "Counterparty" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/cards/": { + "get": { + "tags": [ + "Manage Cards" + ], + "summary": "List Account Cards", + "description": "Get all cards for a specific account. Includes the `card_id` and metadata, but sensitive data like CVV's, expiration dates and card numbers are omitted.", + "operationId": "list_account_cards_api_v1_jiko_accounts__account_id__cards__get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": false, + "schema": { + "type": "integer", + "title": "Limit", + "default": 100 + }, + "name": "limit", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "title": "Cursor" + }, + "name": "cursor", + "in": "query" + }, + { + "required": false, + "schema": { + "items": { + "$ref": "#/components/schemas/CardStatus" + }, + "type": "array", + "uniqueItems": true + }, + "name": "filter[status]", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CardListResponse" + }, + "example": { + "offset": 0, + "count": 1, + "items": [ + { + "card_id": "66f6e46c-f6a1-4af8-a1bd-49666bc01304", + "name": "Jiko Virtual Debit Card", + "status": "OPEN", + "type": "VIRTUAL" + } + ], + "object_type": "List" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/cards/{card_id}/status/": { + "get": { + "tags": [ + "Manage Cards" + ], + "summary": "Get Card Status", + "description": "Get a card's current status.", + "operationId": "get_card_status_api_v1_jiko_accounts__account_id__cards__card_id__status__get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Card Id" + }, + "name": "card_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CardStatusResponse" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + }, + "patch": { + "tags": [ + "Manage Cards" + ], + "summary": "Set Card Status", + "description": "Set a card's status. Note that once a card's status is set to `CLOSED`, it can never be used again.", + "operationId": "set_card_status_api_v1_jiko_accounts__account_id__cards__card_id__status__patch", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Card Id" + }, + "name": "card_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangeCardStatusRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CardStatusResponse" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/cards/{card_id}/pin/": { + "post": { + "tags": [ + "Manage Cards" + ], + "summary": "Set Card PIN", + "description": "Set PIN for physical cards (by `card_id`) before they are activated.", + "operationId": "set_card_pin_api_v1_jiko_accounts__account_id__cards__card_id__pin__post", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Card Id" + }, + "name": "card_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CardPinBase" + }, + "example": { + "encrypted_pin": "KzJXZ0DgR/rvWnxexTeObSsOaByNGHKt67kLwbAEWULV4szPTeOTp1wSVQalGn/ykE0qgEUV8PEZGUbyvfj3j0gpuxIMdgbxg0ujXp6UfiuOMIbmP+HDg4E2BoSduh8XygMhwiWycnqA6lnKHRjGSb8vOwnNgxTGuUX9w3k0NJl3u62JWs2FzSa/HedpxKu+U1VTRmW9Y7tee7QYC/72xseV2wKMx+iFG3Sw2D9ruC4sgVE3tdi7E9FBsSVWawle9UrTF+wdX+cfImb7lKI2Pw5MiEf29xe7moNU8RHzGgyOrbyQcx0/j8t8mLqHSs/ioRGeSNevw4pXlpJBRD+hamyRdVQdaLrWB5xEKx9Ih9fGlMYE5RJHWMveB0NQ2Oxl2h/4/Om/bbP0JDA1doY6l/ovkey9lu0c494R05tdWmch93v+f/SqAoBcXf4hDeUgLhWkRNykzzwoQOACFNcBk9TUWJH8S90TYQM3sdgIfcNFru45VGJa5jlyheqNYeU3EqsWyVFmZAJUFJUSBMJdAVkSg5jxDPdzyk7GLrk5xu2N1orq4NKzR8O6WL+PhFtJF/7pZDWawq8TZRX3nqbyYUY+5ZlnBEVXywsn0L5Fp6od4oAelyhzrjzMlhtEMpuwOFhLvcb3Fm0Z4EIDeX6l3MIhDTDExKxOJsCLG2dbbIA=" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CardPinResponse" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/cards/{card_id}/close/": { + "post": { + "tags": [ + "Manage Cards" + ], + "summary": "Close Card", + "description": "Close a card, virtual or physical. Physical cards require a `closure_reason`. If the reason is `STOLEN` or `LOST`, a `lost_stolen_date` is required.", + "operationId": "close_card_api_v1_jiko_accounts__account_id__cards__card_id__close__post", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Card Id" + }, + "name": "card_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CloseCardRequest" + }, + "example": { + "closure_reason": "STOLEN", + "lost_stolen_date": "2023-01-01" + } + } + }, + "required": true + }, + "responses": { + "204": { + "description": "Successful Response" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/card-orders/": { + "get": { + "tags": [ + "Physical Cards" + ], + "summary": "List Card Orders", + "description": "List all card orders for this account.", + "operationId": "list_card_orders_api_v1_jiko_accounts__account_id__card_orders__get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": false, + "schema": { + "type": "string", + "title": "Cursor", + "default": "" + }, + "name": "cursor", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Limit", + "default": 30, + "lte": 100 + }, + "name": "limit", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PhysicalCardOrderListResponse" + }, + "example": { + "prev_page": "cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA==", + "next_page": "cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw", + "items": [ + { + "card_id": "66f6e46c-f6a1-4af8-a1bd-49666bc01304", + "card_order_id": "d66e74c4-66f9-4937-8518-1a94f39ba0f9", + "status": "INITIAL", + "object_type": "MinimalPhysicalCardOrderResponse" + } + ], + "object_type": "CursorList" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + }, + "post": { + "tags": [ + "Physical Cards" + ], + "summary": "Create Physical Card Order", + "description": "Order a new, physical card for an account. It will be delivered to the specified address.", + "operationId": "create_physical_card_order_api_v1_jiko_accounts__account_id__card_orders__post", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PhysicalCardOrder" + }, + "example": { + "name_on_card": "Jiko Customer", + "shipping_address": { + "street_address": "2000 Allston Way", + "city": "Berkeley", + "postal_code": "94701", + "state": "CA", + "country": "USA" + } + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PhysicalCardOrderResponse" + }, + "example": { + "card_id": "66f6e46c-f6a1-4af8-a1bd-49666bc01304", + "card_order_id": "d66e74c4-66f9-4937-8518-1a94f39ba0f9", + "status": "INITIAL", + "name_on_card": "Jiko Customer", + "shipping_address": { + "street_address": "2000 Allston Way", + "city": "Berkeley", + "postal_code": "94701", + "state": "CA", + "country": "USA" + }, + "object_type": "PhysicalCardOrderResponse" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/card-orders/{card_order_id}/": { + "get": { + "tags": [ + "Physical Cards" + ], + "summary": "Get Card Order", + "description": "Retrieve card order information by provided `card_order_id`.", + "operationId": "get_card_order_api_v1_jiko_accounts__account_id__card_orders__card_order_id___get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Card Order Id" + }, + "name": "card_order_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PhysicalCardOrderResponse" + }, + "example": { + "card_id": "66f6e46c-f6a1-4af8-a1bd-49666bc01304", + "card_order_id": "d66e74c4-66f9-4937-8518-1a94f39ba0f9", + "status": "INITIAL", + "name_on_card": "Jiko Customer", + "shipping_address": { + "street_address": "2000 Allston Way", + "city": "Berkeley", + "postal_code": "94701", + "state": "CA", + "country": "USA" + }, + "object_type": "PhysicalCardOrderResponse" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/virtual-cards/{card_id}/": { + "post": { + "tags": [ + "Virtual Cards" + ], + "summary": "Get Virtual Card", + "description": "Retrieve virtual card detail by given `card_id`. Generate a single-use 4096-bit RSA key-pair at the (end user) client side and pass the public key PEM encoded upstream in PKCS#1 or PKCS#1.5 format to ensure confidentiality and encryption of the card's PAN, CVV and expiration date.", + "operationId": "get_virtual_card_api_v1_jiko_accounts__account_id__virtual_cards__card_id___post", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Card Id" + }, + "name": "card_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PublicKeyRequest" + }, + "example": { + "public_key": "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzmZv8spzSU9z+/bhFzX0\r\ns4xVXE9ZOApQUMoM3Q1VDiJujyWJ61uoTsWT1uQlIXHdUQ3NcXw0WYDUEaM8fj1b\r\nB2k1zSXmRD4VmxAIRNVfs3Cp3GKqC/WjyvDw25+SYBFwiaYJblpyZPiunXvXRyK8\r\nvdDaPliwTN5p7pjHQvcfXOl20ZtWnZTGMulJ+smNCYKWckW1hEOMjJP8FLMJpSHa\r\n6yGOpAYAxoHxodiJCI4X6fG206gBtyFps1CyxCz8WDjALqJYfeArTFv7/2AyuVCF\r\n5zLE7tzPrJeVxfqa+CI+7mWFhEKZLAd/PEzEL7P2VZr9BRd0lyxBipEEG/DGMEvY\r\n1dcx+3J56ZxVURAqeXPGkqVfz/IdisQt/okp6vSVKQdImeyzpJvwvBc7T7tKyRZR\r\nvtL8XLYzZBujqWCezMxU97TAb7BlQ2nPJCQFMZD7y1KldgWuGnjXha1TFIYvfrYW\r\noDFK221Z6LYlKWeRFGXhoNOX1Qm/CX3wi9Tfo01LTxbCY2Y1mbv6e8Xt12MzhicD\r\nZsFvVrtRaVrjmqXXDq8X2r7puPTLOQf7Dow3944XnTZQURE4oPIwCfTBmfMow+TB\r\n+ZUYWRXwg0/hl9AOBSGLVNlaGZD8sAu98knish5LJv34lx5mIiLLpGpIt+mzZikU\r\nFt9siIkltvk49qcmTuI8GJUCAwEAAQ==\r\n-----END PUBLIC KEY-----" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VirtualCardResponse" + }, + "example": { + "card_id": "66f6e46c-f6a1-4af8-a1bd-49666bc01304", + "encrypted_pan": "LBHyVQggqNZvbYriaL8omZSFnQfS4yMFEO8hpVmgrtn70uYz56...", + "encrypted_cvv": "GLuGA7uI2iYrzE03XkKMH1IJZD6cxR+WJmgw9Z0VuervNqnkUq...", + "encrypted_expiration": "amAxcZuURFfOi38kbM1LXfa6gBmuaSCt10Kic8243kM1V+Llsb...", + "object_type": "VirtualCardResponse" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + }, + "delete": { + "tags": [ + "Virtual Cards" + ], + "summary": "Close Virtual Card", + "description": "Close a virtual card. This is an irreversible action.", + "operationId": "close_virtual_card_api_v1_jiko_accounts__account_id__virtual_cards__card_id___delete", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Card Id" + }, + "name": "card_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "204": { + "description": "Successful Response" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/virtual-cards/": { + "post": { + "tags": [ + "Virtual Cards" + ], + "summary": "Create Virtual Card", + "description": "Create a virtual card for an account. Generate a single-use 4096-bit RSA key-pair at the (end user) client side and pass the public key PEM encoded upstream in PKCS#1 or PKCS#1.5 format to ensure confidentiality and encryption of the card's PAN, CVV and expiration date.", + "operationId": "create_virtual_card_api_v1_jiko_accounts__account_id__virtual_cards__post", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PublicKeyRequest" + }, + "example": { + "public_key": "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzmZv8spzSU9z+/bhFzX0\r\ns4xVXE9ZOApQUMoM3Q1VDiJujyWJ61uoTsWT1uQlIXHdUQ3NcXw0WYDUEaM8fj1b\r\nB2k1zSXmRD4VmxAIRNVfs3Cp3GKqC/WjyvDw25+SYBFwiaYJblpyZPiunXvXRyK8\r\nvdDaPliwTN5p7pjHQvcfXOl20ZtWnZTGMulJ+smNCYKWckW1hEOMjJP8FLMJpSHa\r\n6yGOpAYAxoHxodiJCI4X6fG206gBtyFps1CyxCz8WDjALqJYfeArTFv7/2AyuVCF\r\n5zLE7tzPrJeVxfqa+CI+7mWFhEKZLAd/PEzEL7P2VZr9BRd0lyxBipEEG/DGMEvY\r\n1dcx+3J56ZxVURAqeXPGkqVfz/IdisQt/okp6vSVKQdImeyzpJvwvBc7T7tKyRZR\r\nvtL8XLYzZBujqWCezMxU97TAb7BlQ2nPJCQFMZD7y1KldgWuGnjXha1TFIYvfrYW\r\noDFK221Z6LYlKWeRFGXhoNOX1Qm/CX3wi9Tfo01LTxbCY2Y1mbv6e8Xt12MzhicD\r\nZsFvVrtRaVrjmqXXDq8X2r7puPTLOQf7Dow3944XnTZQURE4oPIwCfTBmfMow+TB\r\n+ZUYWRXwg0/hl9AOBSGLVNlaGZD8sAu98knish5LJv34lx5mIiLLpGpIt+mzZikU\r\nFt9siIkltvk49qcmTuI8GJUCAwEAAQ==\r\n-----END PUBLIC KEY-----" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VirtualCardResponse" + }, + "example": { + "card_id": "66f6e46c-f6a1-4af8-a1bd-49666bc01304", + "encrypted_pan": "LBHyVQggqNZvbYriaL8omZSFnQfS4yMFEO8hpVmgrtn70uYz56...", + "encrypted_cvv": "GLuGA7uI2iYrzE03XkKMH1IJZD6cxR+WJmgw9Z0VuervNqnkUq...", + "encrypted_expiration": "amAxcZuURFfOi38kbM1LXfa6gBmuaSCt10Kic8243kM1V+Llsb...", + "object_type": "VirtualCardResponse" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/events/types/": { + "get": { + "tags": [ + "Events" + ], + "summary": "List Event Types", + "description": "List all event types.", + "operationId": "list_event_types_api_v1_events_types__get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventListResponse" + }, + "example": { + "offset": 0, + "count": 14, + "items": [ + { + "event": "application.approved", + "object_type": "EventType" + }, + { + "event": "application.documents_needed", + "object_type": "EventType" + }, + { + "event": "application.manual_review", + "object_type": "EventType" + }, + { + "event": "application.rejected", + "object_type": "EventType" + }, + { + "event": "card.status.closed", + "object_type": "EventType" + }, + { + "event": "card.status.frozen", + "object_type": "EventType" + }, + { + "event": "card.status.locked", + "object_type": "EventType" + }, + { + "event": "card.status.open", + "object_type": "EventType" + }, + { + "event": "card.transaction.approved", + "object_type": "EventType" + }, + { + "event": "card.transaction.rejected", + "object_type": "EventType" + }, + { + "event": "transfers.ach.in.success", + "object_type": "EventType" + }, + { + "event": "transfers.ach.in.rejected", + "object_type": "EventType" + }, + { + "event": "transfers.ach.out.success", + "object_type": "EventType" + }, + { + "event": "transfers.ach.out.rejected", + "object_type": "EventType" + } + ], + "object_type": "List" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/events/": { + "get": { + "tags": [ + "Events" + ], + "summary": "List Events", + "description": "List all past events.", + "operationId": "list_events_api_v1_events__get", + "parameters": [ + { + "required": false, + "schema": { + "type": "string", + "format": "uuid", + "title": "Subscription Id" + }, + "name": "subscription_id", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "format": "date-time", + "title": "After" + }, + "name": "after", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "title": "Cursor", + "default": "" + }, + "name": "cursor", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Limit", + "default": 30, + "lte": 100 + }, + "name": "limit", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CursorListResponse_PartnerEvent_" + }, + "example": { + "prev_page": "cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA==", + "next_page": "cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw", + "items": [ + { + "event": { + "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7", + "timestamp": "2023-01-01T14:00:00+00:00", + "payload": { + "application_id": "48ac72d0-a829-4896-a067-dcb1c2b0f30c" + }, + "event_type": "application.approved" + }, + "delivery_attempts": [ + { + "delivery_attempt_id": "5326238f-7f19-4e5f-b374-402eed7b1c7b", + "subscription_id": "aa11a4c2-a467-43db-b413-c4ab0f5cf627", + "success": true, + "response_code": 200, + "response_message": "OK", + "called_at": "2023-01-01T14:00:00+00:00" + } + ], + "object_type": "PartnerEvent" + } + ], + "object_type": "CursorList" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/customers/{customer_id}/counterparties/plaid/link-token/": { + "post": { + "tags": [ + "Counterparties: Plaid" + ], + "summary": "Create Plaid Link Token", + "description": "To initiate the Plaid Link flow in your app, a link token must be created to identify the data flowing between your app, Plaid and Jiko. If the Plaid Link flow has to be accessed again later to complete account ownership verification (Same Day Micro-deposits), you must include the *counterparty_id* for the counterparty in question. *redirect_uri* allows you to use OAuth.\n\n
\n\n**NOTE**: `android_package_name` and `redirect_uri` are mutually exclusive. Only one should be provided, depending on your use case.", + "operationId": "create_plaid_link_token_api_v1_customers__customer_id__counterparties_plaid_link_token__post", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Customer Id" + }, + "name": "customer_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaidLinkTokenRequest" + }, + "example": { + "client_name": "My App", + "redirect_uri": "https://example.com/plaid-oauth", + "android_package_name": "com.example.myapp", + "counterparty_id": "fd38dae9-b300-4017-a630-101c4279eafd" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaidLinkToken" + }, + "example": { + "link_token": "link-af1a0311-da53-4636-b754-dd15cc058176", + "expiration": "2023-01-01T12:00:00+00:00" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/customers/{customer_id}/counterparties/plaid/": { + "post": { + "tags": [ + "Counterparties: Plaid" + ], + "summary": "Create Plaid Counterparties", + "description": "Once your user has completed the Plaid Link flow, you must forward some data from Plaid to Jiko to create the counterparty. This includes information about the third party financial institution and the specific accounts selected by the user. The *institution_id* is required in all cases except in the Same Day Micro-deposits flow.", + "operationId": "create_plaid_counterparties_api_v1_customers__customer_id__counterparties_plaid__post", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Customer Id" + }, + "name": "customer_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaidCreateCounterparties" + }, + "example": { + "public_token": "public-b0e2c4ee-a763-4df5-bfe9-46a46bce993d", + "accounts": [ + { + "id": "blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo", + "name": "Plaid Checking", + "mask": "0000" + } + ], + "institution_id": "ins_109508" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PlaidCreateCounterpartiesResponse" + }, + "example": { + "items": [ + { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "type": "ACH", + "ach": { + "time_created": "2023-01-15T14:00:00+00:00", + "verification_type": "MICRO_DEPOSITS", + "status": "IN_PROGRESS", + "account_number": "123456789", + "routing_number": "9876456", + "name_on_account": "External Accountholder", + "account_type": "SAVINGS", + "institution_name": "External Bank NA", + "plaid": { + "mask": "0000", + "verification_status": "PENDING_AUTOMATIC_VERIFICATION", + "object_type": "CounterpartyPlaid" + } + }, + "object_type": "Counterparty" + } + ], + "object_type": "PlaidCreateCounterpartiesResponse" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/customers/{customer_id}/counterparties/{counterparty_id}/plaid/verify/": { + "post": { + "tags": [ + "Counterparties: Plaid" + ], + "summary": "Verify Plaid Counterparty", + "description": "If and when a user completes the Same Day Micro-deposits flow, call this endpoint to notify it has been completed. Then, go back to polling the counterparty until verification is complete.", + "operationId": "verify_plaid_counterparty_api_v1_customers__customer_id__counterparties__counterparty_id__plaid_verify__post", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Customer Id" + }, + "name": "customer_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Counterparty Id" + }, + "name": "counterparty_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "204": { + "description": "Successful Response" + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/subscriptions/": { + "get": { + "tags": [ + "Subscriptions" + ], + "summary": "List Subscriptions", + "description": "List a partner's subscriptions.", + "operationId": "list_subscriptions_api_v1_subscriptions__get", + "parameters": [ + { + "required": false, + "schema": { + "type": "string", + "title": "Cursor", + "default": "" + }, + "name": "cursor", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Limit", + "default": 30, + "lte": 100 + }, + "name": "limit", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CursorListResponse_Subscription_" + }, + "example": { + "prev_page": "cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA==", + "next_page": "cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw", + "items": [ + { + "description": "Jiko API Webhook Subscriptions", + "events": [ + "application.approved", + "application.documents_needed", + "application.manual_review", + "application.rejected", + "card.status.closed", + "card.status.frozen", + "card.status.locked", + "card.status.open", + "card.transaction.approved", + "card.transaction.rejected", + "transfers.ach.in.success", + "transfers.ach.in.rejected", + "transfers.ach.out.success", + "transfers.ach.out.rejected" + ], + "url": "https://example.com/webhooks", + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "time_created": "2023-01-01T14:00:00+00:00", + "updated_at": "2023-01-01T14:00:00+00:00", + "status": "enabled", + "object_type": "Subscription" + } + ], + "object_type": "CursorList" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + }, + "post": { + "tags": [ + "Subscriptions" + ], + "summary": "Create Subscription", + "description": "Creates a webhook subscription for the specified event types and the given URL.", + "operationId": "create_subscription_api_v1_subscriptions__post", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateSubscriptionRequest" + }, + "example": { + "description": "Incoming ACH Success Webhook", + "events": [ + "transfers.ach.in.success" + ], + "url": "https://example.com/webhooks/ach-incoming-success", + "shared_secret": "1234567890123456" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Subscription" + }, + "example": { + "description": "Incoming ACH Success Webhook", + "events": [ + "transfers.ach.in.success" + ], + "url": "https://example.com/webhooks/ach-incoming-success", + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "time_created": "2023-01-01T14:00:00+00:00", + "updated_at": "2023-01-01T14:00:00+00:00", + "status": "enabled", + "object_type": "Subscription" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/subscriptions/{subscription_id}/": { + "get": { + "tags": [ + "Subscriptions" + ], + "summary": "Get Subscription", + "description": "Retrieve a webhook subscription by given `subscription_id`.", + "operationId": "get_subscription_api_v1_subscriptions__subscription_id___get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Subscription Id" + }, + "name": "subscription_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Subscription" + }, + "example": { + "description": "Incoming ACH Success Webhook", + "events": [ + "transfers.ach.in.success" + ], + "url": "https://example.com/webhooks/ach-incoming-success", + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "time_created": "2023-01-01T14:00:00+00:00", + "updated_at": "2023-01-01T14:00:00+00:00", + "status": "enabled", + "object_type": "Subscription" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + }, + "delete": { + "tags": [ + "Subscriptions" + ], + "summary": "Delete Subscription", + "description": "Deletes a webhook subscription matching the given ID.", + "operationId": "delete_subscription_api_v1_subscriptions__subscription_id___delete", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Subscription Id" + }, + "name": "subscription_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "204": { + "description": "Successful Response" + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + }, + "patch": { + "tags": [ + "Subscriptions" + ], + "summary": "Update Subscription", + "description": "Updates webhook subscription by specified `subscription_id`.", + "operationId": "update_subscription_api_v1_subscriptions__subscription_id___patch", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Subscription Id" + }, + "name": "subscription_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSubscriptionRequest" + }, + "example": { + "description": "Incoming ACH Success Webhook", + "events": [ + "transfers.ach.in.success" + ], + "url": "https://example.com/webhooks/ach-incoming-success-new", + "shared_secret": "1234567890123456" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Subscription" + }, + "example": { + "description": "Incoming ACH Success Webhook", + "events": [ + "transfers.ach.in.success" + ], + "url": "https://example.com/webhooks/ach-incoming-success-new", + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "time_created": "2023-01-01T14:00:00+00:00", + "updated_at": "2023-01-01T16:00:00+00:00", + "status": "enabled", + "object_type": "Subscription" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/ach-originating/": { + "get": { + "tags": [ + "ACH" + ], + "summary": "List ACH Originations", + "description": "List all ACH transfer originations.", + "operationId": "list_ach_originations_api_v1_jiko_accounts__account_id__ach_originating__get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": false, + "schema": { + "items": { + "$ref": "#/components/schemas/ACHStatus" + }, + "type": "array" + }, + "name": "filter[status]", + "in": "query" + }, + { + "required": false, + "schema": { + "$ref": "#/components/schemas/ACHDirection" + }, + "name": "direction", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "title": "Cursor", + "default": "" + }, + "name": "cursor", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Limit", + "default": 30, + "lte": 100 + }, + "name": "limit", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CursorListResponse_ACHResponse_" + }, + "example": { + "prev_page": "cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA==", + "next_page": "cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw", + "items": [ + { + "counterparty_id": "fd38dae9-b300-4017-a630-101c42791afd", + "direction": "CREDIT", + "sec_code": "WEB", + "payment_related_information": [ + "Transferring funds to Jiko from an external account" + ], + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "amount": { + "value": 100000, + "currency": "USD", + "formatted": "$1,000.00" + }, + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "status": "PROCESSED", + "time_created": "2023-01-01T14:00:00+00:00", + "company_entry_description": "Incoming ACH Transfer", + "object_type": "ACHResponse" + } + ], + "object_type": "CursorList" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + }, + "post": { + "tags": [ + "ACH" + ], + "summary": "Create ACH Origination", + "description": "Originate an ACH transaction with the counterparty.\nThis can only be done after creating a [Counterparty](#tag/Counterparties) for the account.\n\n
\n\n### ACH Origination Limitations\n\n
\n\n- All transfers that are below 25k and scheduled before 12:00 ET are sent with settlement same-day\n- All transfers above 25k scheduled before 12:00 ET are sent with settlement next day\n- All transfers scheduled after 12:00 ET follow the above rules the following day", + "operationId": "create_ach_origination_api_v1_jiko_accounts__account_id__ach_originating__post", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ACHRequest" + }, + "example": { + "counterparty_id": "fd38dae9-b300-4017-a630-101c4279eafd", + "direction": "CREDIT", + "sec_code": "WEB", + "payment_related_information": [ + "Transferring funds to Jiko from an external account" + ], + "amount_usdc": 100000, + "company_entry_description": "ACH TXN IN" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ACHResponse" + }, + "example": { + "counterparty_id": "fd38dae9-b300-4017-a630-101c42791afd", + "direction": "CREDIT", + "sec_code": "WEB", + "payment_related_information": [ + "Transferring funds to Jiko from an external account" + ], + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "amount": { + "value": 100000, + "currency": "USD", + "formatted": "$1,000.00" + }, + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "status": "PROCESSED", + "time_created": "2023-01-01T14:00:00+00:00", + "company_entry_description": "Incoming ACH Transfer", + "object_type": "ACHResponse" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/ach-originating/{transfer_id}/": { + "get": { + "tags": [ + "ACH" + ], + "summary": "Get ACH Origination", + "description": "Get a specific ACH transfer origination.", + "operationId": "get_ach_origination_api_v1_jiko_accounts__account_id__ach_originating__transfer_id___get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Transfer Id" + }, + "name": "transfer_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ACHResponse" + }, + "example": { + "counterparty_id": "fd38dae9-b300-4017-a630-101c42791afd", + "direction": "CREDIT", + "sec_code": "WEB", + "payment_related_information": [ + "Transferring funds to Jiko from an external account" + ], + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "amount": { + "value": 100000, + "currency": "USD", + "formatted": "$1,000.00" + }, + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "status": "PROCESSED", + "time_created": "2023-01-01T14:00:00+00:00", + "company_entry_description": "Incoming ACH Transfer", + "object_type": "ACHResponse" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/wires/": { + "post": { + "tags": [ + "Wires" + ], + "summary": "Create Wire", + "description": "Initiates a Wire Transfer. Wires can only be sent to accounts created and verified via [Create Counterparty](https://docs.jiko.io/reference/v2#tag/Counterparties/operation/create-counterparty-v2). Initiating outgoing wire transfers isn’t available by default and must be enabled — please contact your Jiko point-of-contact to learn more.", + "operationId": "create-wire", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WireRequest" + }, + "example": { + "counterparty_id": "fd38dae9-b300-4017-a630-101c4279eafd", + "amount_usdc": 1000000, + "created_by": "jiko@example.com", + "description": "Wiring funds to external account", + "wire_id": "6b14d0c0-277f-4a32-b5ac-c2e1c7d99f15" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Successful Response" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/transfers/on-us/": { + "post": { + "tags": [ + "On-Us Transfers" + ], + "summary": "Create On-Us Transfer", + "description": "Initiates an On-Us Transfer between two Pockets.\n\nOn-Us Transfers can be made in three directions (defined by `type`):\n\n1. `PARTNER_CUSTOMER_FUNDING`: From a Partner’s Pocket to a Customer’s Pocket\n2. `PARTNER_CUSTOMER_DEFUNDING`: From a Customer’s Pocket to a Partner’s Pocket\n3. `INTERNAL_REALLOCATION`: Between two Pockets belonging to the same Customer\n\nOn-Us Transfer amounts can be specified two ways (defined by `amount.type`):\n\n1. `REQUESTED_AMOUNT`: Transfer a specified dollar amount\n2. `FULL_WITHDRAWAL`: Transfer the Pocket's total available balance (net of fees). `amount.type` cannot be `FULL_WITHDRAWAL` when `type` is `PARTNER_CUSTOMER_FUNDING`.", + "operationId": "create-on-us-transfer", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OnUsTransferDetailsRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OnUsTransfer" + }, + "example": { + "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": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "type": "JIKO_ACCOUNT" + }, + "to_account": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "type": "JIKO_ACCOUNT" + }, + "type": "PARTNER_CUSTOMER_FUNDING", + "source": "123456789", + "amount": { + "value": 100000, + "currency": "USD", + "formatted": "$1,000.00" + } + }, + "fees": [ + { + "type": "AUM_FEE", + "amount": { + "value": 10, + "currency": "USD", + "formatted": "$0.10" + } + } + ], + "object_type": "OnUsTransfer" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/transfers/on-us/{transfer_id}/": { + "get": { + "tags": [ + "On-Us Transfers" + ], + "summary": "Get On-Us Transfer", + "description": "Gets a single on-us transfer by ID.", + "operationId": "get-on-us-transfer", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Transfer Id" + }, + "name": "transfer_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OnUsTransfer" + }, + "example": { + "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": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "type": "JIKO_ACCOUNT" + }, + "to_account": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "type": "JIKO_ACCOUNT" + }, + "type": "PARTNER_CUSTOMER_FUNDING", + "source": "123456789", + "amount": { + "value": 100000, + "currency": "USD", + "formatted": "$1,000.00" + } + }, + "fees": [ + { + "type": "AUM_FEE", + "amount": { + "value": 10, + "currency": "USD", + "formatted": "$0.10" + } + } + ], + "object_type": "OnUsTransfer" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/customers/{customer_id}/": { + "get": { + "tags": [ + "Customers" + ], + "summary": "Get Customer Data", + "description": "Retrieve customer details for the customer given by the customer ID.", + "operationId": "get_customer_data_api_v1_customers__customer_id___get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Customer Id" + }, + "name": "customer_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Customer" + }, + "example": { + "address": { + "street_address": "2000 Allston Way", + "city": "Berkeley", + "postal_code": "94701", + "state": "CA", + "country": "USA" + }, + "email": "jiko@example.com", + "phone_number": "15551234567", + "account_status": "OPEN", + "type": "INDIVIDUAL", + "name": { + "first_name": "Jiko", + "last_name": "Customer" + }, + "date_of_birth": "1970-01-01" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/customers/{customer_id}/statements/": { + "get": { + "tags": [ + "Statements" + ], + "summary": "List Customer Statements", + "description": "Get all statements for all accounts of a specific customer.", + "operationId": "list_customer_statements_api_v1_customers__customer_id__statements__get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Customer Id" + }, + "name": "customer_id", + "in": "path" + }, + { + "required": false, + "schema": { + "items": { + "type": "string", + "format": "uuid" + }, + "type": "array", + "title": "Account[]" + }, + "name": "account[]", + "in": "query" + }, + { + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Order" + } + ], + "default": "desc" + }, + "name": "order", + "in": "query" + }, + { + "required": false, + "schema": { + "items": { + "$ref": "#/components/schemas/StatementType" + }, + "type": "array", + "default": [] + }, + "name": "type[]", + "in": "query" + }, + { + "description": "Date formatted either `YYYY` or `YYYY-MM`", + "required": false, + "schema": { + "type": "string", + "pattern": "^\\d{4}(-\\d{2})?$", + "title": "Key", + "description": "Date formatted either `YYYY` or `YYYY-MM`" + }, + "name": "key", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "title": "Cursor", + "default": "" + }, + "name": "cursor", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Limit", + "default": 30, + "lte": 150 + }, + "name": "limit", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StatementListResponse" + }, + "example": { + "prev_page": "cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA==", + "next_page": "cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw", + "items": [ + { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "type": "BANK", + "key": "2023-01-01", + "pdf_download_url": "https://example.com/path-to-statement-pdf", + "time_created": "2023-01-15T14:00:00+00:00", + "object_type": "Statement" + } + ], + "object_type": "CursorList" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/statements/": { + "get": { + "tags": [ + "Statements" + ], + "summary": "List Account Statements", + "description": "Lists all statements for an account. Partners can expect monthly statements to be available by the 15th of every month.\n\n
\n\nBank and Broker dealer statements are sensitive documents. For security reasons, these URLs have a 10 minute TTL. Therefore, they should be fetched and served just-in-time, not stored in databases.", + "operationId": "list_account_statements_api_v1_jiko_accounts__account_id__statements__get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": false, + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Order" + } + ], + "default": "desc" + }, + "name": "order", + "in": "query" + }, + { + "required": false, + "schema": { + "items": { + "$ref": "#/components/schemas/StatementType" + }, + "type": "array", + "default": [] + }, + "name": "type[]", + "in": "query" + }, + { + "description": "Date formatted either `YYYY` or `YYYY-MM`", + "required": false, + "schema": { + "type": "string", + "pattern": "^\\d{4}(-\\d{2})?$", + "title": "Key", + "description": "Date formatted either `YYYY` or `YYYY-MM`" + }, + "name": "key", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "string", + "title": "Cursor", + "default": "" + }, + "name": "cursor", + "in": "query" + }, + { + "required": false, + "schema": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Limit", + "default": 30, + "lte": 150 + }, + "name": "limit", + "in": "query" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StatementListResponse" + }, + "example": { + "prev_page": "cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA==", + "next_page": "cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw", + "items": [ + { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "type": "BANK", + "key": "2023-01-01", + "pdf_download_url": "https://example.com/path-to-statement-pdf", + "time_created": "2023-01-15T14:00:00+00:00", + "object_type": "Statement" + } + ], + "object_type": "CursorList" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "deprecated": true, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/portals/": { + "get": { + "tags": [ + "Portals" + ], + "summary": "List Portals", + "description": "Get a list of portals associated with an account.", + "operationId": "list_account_portals_api_v1_jiko_accounts__account_id__portals__get", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListPortalsResponse" + }, + "example": { + "count": 1, + "portals": [ + { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "routing_number": "123456789", + "account_number": "987654321", + "status": "OPEN", + "name": "Payroll", + "object_type": "Portal" + } + ], + "object_type": "List" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + }, + "post": { + "tags": [ + "Portals" + ], + "summary": "Create Portal", + "description": "Create a portal for an account.", + "operationId": "create_portal_api_v1_jiko_accounts__account_id__portals__post", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PortalCreateRequest" + }, + "example": { + "name": "Payroll" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Portal" + }, + "example": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "routing_number": "123456789", + "account_number": "987654321", + "status": "OPEN", + "name": "Payroll", + "object_type": "Portal" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/portals/{portal_id}/": { + "get": { + "tags": [ + "Portals" + ], + "summary": "Get Account Portal", + "description": "Get a specific portal associated with an account.", + "operationId": "get-account-portal", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Portal Id" + }, + "name": "portal_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Portal" + }, + "example": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "routing_number": "123456789", + "account_number": "987654321", + "status": "OPEN", + "name": "Payroll", + "object_type": "Portal" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + }, + "patch": { + "tags": [ + "Portals" + ], + "summary": "Update Portal", + "description": "Update a portal's name.", + "operationId": "update_portal_api_v1_jiko_accounts__account_id__portals__portal_id___patch", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Portal Id" + }, + "name": "portal_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PortalUpdateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Portal" + }, + "example": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "jiko_account_id": "8a7ec6c0-2701-40a1-8954-68870964b50d", + "routing_number": "123456789", + "account_number": "987654321", + "status": "OPEN", + "name": "Payroll", + "object_type": "Portal" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/jiko-accounts/{account_id}/portals/{portal_id}/close/": { + "post": { + "tags": [ + "Portals" + ], + "summary": "Close Portal", + "description": "Close a portal. This is an irreversible action.", + "operationId": "close_portal_api_v1_jiko_accounts__account_id__portals__portal_id__close__post", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "name": "account_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Portal Id" + }, + "name": "portal_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "X-Jiko-Signature" + }, + "name": "x-jiko-signature", + "in": "header" + } + ], + "responses": { + "204": { + "description": "Successful Response" + }, + "404": { + "description": "Not found" + }, + "412": { + "description": "Portal is already closed." + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/applications/{application_id}/documents/{document_type}/file/": { + "post": { + "tags": [ + "Individuals" + ], + "summary": "Upload Document To Application", + "description": "Upload documents to the application for more detailed KYC or manual review.\n\nAs with all other endpoints, the bearer token and `x-jiko-idempotency` is needed, but `x-jiko-signature` is not needed.\nThe file should be posted unprocessed in the request body, in the same manner as `curl -X POST --data-binary @my_file.png` does.\nThe maximum file size for `ID_FRONT`, `ID_BACK`, `SELFIE` and `PASSPORT` is 5 MB. Other files can be up to 50 MB.\n\n\nDocuments can be uploaded before and after calling [Apply](#operation/apply_api_v1_applications__application_id__apply__post).", + "operationId": "Upload_document_to_Application_api_v1_applications__application_id__documents__document_type__file__post", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Application Id" + }, + "name": "application_id", + "in": "path" + }, + { + "required": true, + "schema": { + "$ref": "#/components/schemas/DocumentType" + }, + "name": "document_type", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "pattern": "image/png", + "title": "Content-Type" + }, + "name": "content-type", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "integer", + "exclusiveMaximum": 52428800, + "exclusiveMinimum": 0, + "title": "Content-Length" + }, + "name": "content-length", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UploadDocumentResponse" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/customers/{customer_id}/documents/{document_type}/file/": { + "post": { + "tags": [ + "Customers" + ], + "summary": "Upload Document To Customer", + "description": "Upload files for an approved customer. Used to verify customer requests (e.g. Customer change request, close account request, ACH request). Refer to the [Upload Document To Application](#operation/Upload_document_to_Application_api_v1_applications__application_id__documents__document_type__file__post) for more detailed info.", + "operationId": "upload-customer-document", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Customer Id" + }, + "name": "customer_id", + "in": "path" + }, + { + "required": true, + "schema": { + "$ref": "#/components/schemas/DocumentType" + }, + "name": "document_type", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "pattern": "image/png", + "title": "Content-Type" + }, + "name": "content-type", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "integer", + "exclusiveMaximum": 52428800, + "exclusiveMinimum": 0, + "title": "Content-Length" + }, + "name": "content-length", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UploadDocumentResponse" + } + } + } + }, + "404": { + "description": "Not found" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/business-applications/{application_id}/documents/": { + "get": { + "tags": [ + "Businesses" + ], + "summary": "List Document Requests", + "description": "Fetch the list of outstanding Document Requests. Document Requests vary depending on the information provided in the Business Application and Related Party Application objects.\n\n
\n\nSee the [Onboarding Businesses Guide](https://docs.jiko.io/guides/onboarding-businesses) for more.", + "operationId": "list-document-requests-businesses", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Application Id" + }, + "name": "application_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Document" + }, + "type": "array", + "title": "Response List-Document-Requests-Businesses" + }, + "example": [ + { + "id": "61c23eb1-002a-4459-aa9a-624428281e14", + "type": "OPERATING_AGREEMENT", + "status": "PENDING_UPLOAD", + "exception_reason": "", + "name": "" + }, + { + "id": "96e70040-eb4e-48d1-98af-0c793a6ee137", + "type": "ARTICLES_OF_INCORPORATION", + "status": "INVALID", + "exception_reason": "IMAGE_QUALITY_ERROR_CUTOFF", + "name": "articles_of_incorporation.png" + } + ] + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/documents/{document_id}/": { + "post": { + "tags": [ + "Businesses" + ], + "summary": "Upload Document", + "operationId": "upload-business-application-document", + "parameters": [ + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "Document Id" + }, + "name": "document_id", + "in": "path" + }, + { + "required": true, + "schema": { + "type": "string", + "pattern": "image/png", + "title": "Content-Type" + }, + "name": "content-type", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "integer", + "exclusiveMaximum": 52428800, + "exclusiveMinimum": 0, + "title": "Content-Length" + }, + "name": "content-length", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "title": "Content-Disposition" + }, + "name": "content-disposition", + "in": "header" + }, + { + "required": true, + "schema": { + "type": "string", + "format": "uuid", + "title": "X-Jiko-Idempotency" + }, + "name": "x-jiko-idempotency", + "in": "header" + } + ], + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Document" + }, + "example": { + "id": "96e70040-eb4e-48d1-98af-0c793a6ee137", + "type": "ARTICLES_OF_INCORPORATION", + "status": "APPROVED", + "exception_reason": "", + "name": "articles_of_incorporation.png" + } + } + } + }, + "404": { + "description": "Not found" + }, + "412": { + "description": "Document has already been reviewed and approved." + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/login/": { + "post": { + "tags": [ + "Security" + ], + "summary": "Login", + "description": "Provide the username and password in a request body to receive a bearer token to authenticate to the API's other endpoints.\n\n
\n\nSee [Authentication](#section/Authentication).", + "operationId": "login_api_v1_login__post", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "title": "Login Info", + "examples": { + "username": "username", + "password": "password" + }, + "allOf": [ + { + "$ref": "#/components/schemas/LoginInput" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LoginResponse" + }, + "example": { + "token": "LBHyVQggqNZvbYriaL8omZSFnQfS4yMFEO8hpVmgrtn=", + "expires": "2023-01-01T14:00:00+00:00" + } + } + } + }, + "401": { + "description": "Unauthorized" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + } + } + }, + "/api/v1/public-keys/": { + "get": { + "tags": [ + "Security" + ], + "summary": "List Public Keys", + "description": "Returns all relevant asymmetric encryption keys.", + "operationId": "list_public_keys_api_v1_public_keys__get", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EncryptionKeysResponse" + }, + "example": { + "set_pin": "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzmZv8spzSU9z+/bhFzX0\r\ns4xVXE9ZOApQUMoM3Q1VDiJujyWJ61uoTsWT1uQlIXHdUQ3NcXw0WYDUEaM8fj1b\r\nB2k1zSXmRD4VmxAIRNVfs3Cp3GKqC/WjyvDw25+SYBFwiaYJblpyZPiunXvXRyK8\r\nvdDaPliwTN5p7pjHQvcfXOl20ZtWnZTGMulJ+smNCYKWckW1hEOMjJP8FLMJpSHa\r\n6yGOpAYAxoHxodiJCI4X6fG206gBtyFps1CyxCz8WDjALqJYfeArTFv7/2AyuVCF\r\n5zLE7tzPrJeVxfqa+CI+7mWFhEKZLAd/PEzEL7P2VZr9BRd0lyxBipEEG/DGMEvY\r\n1dcx+3J56ZxVURAqeXPGkqVfz/IdisQt/okp6vSVKQdImeyzpJvwvBc7T7tKyRZR\r\nvtL8XLYzZBujqWCezMxU97TAb7BlQ2nPJCQFMZD7y1KldgWuGnjXha1TFIYvfrYW\r\noDFK221Z6LYlKWeRFGXhoNOX1Qm/CX3wi9Tfo01LTxbCY2Y1mbv6e8Xt12MzhicD\r\nZsFvVrtRaVrjmqXXDq8X2r7puPTLOQf7Dow3944XnTZQURE4oPIwCfTBmfMow+TB\r\n+ZUYWRXwg0/hl9AOBSGLVNlaGZD8sAu98knish5LJv34lx5mIiLLpGpIt+mzZikU\r\nFt9siIkltvk49qcmTuI8GJUCAwEAAQ==\r\n-----END PUBLIC KEY-----" + } + } + } + } + } + } + }, + "/health": { + "get": { + "tags": [ + "Health" + ], + "summary": "Get Health Check", + "description": "A health check endpoint, which returns \"OK\" if the Partner API is up and running.", + "operationId": "get-health-check", + "responses": { + "200": { + "description": "Successful Response", + "content": { + "application/json": { + "schema": { + "type": "string", + "enum": [ + "OK" + ], + "title": "Response Get-Health-Check" + } + } + } + } + } + } + }, + "/api/v1/sandbox/card-swipe/": { + "post": { + "tags": [ + "Sandbox" + ], + "summary": "Submit Card Swipe", + "description": "Simulate a card swipe with the given `card_id` for a given `amount_usdc` in USD cents. **Note**: Only for virtual cards at the moment.", + "operationId": "submit_card_swipe_api_v1_sandbox_card_swipe__post", + "parameters": [ + { + "required": false, + "schema": { + "type": "string", + "title": "X-Branch-Name" + }, + "name": "x-branch-name", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CardSwipe" + }, + "example": { + "card_id": "66f6e46c-f6a1-4af8-a1bd-49666bc01304", + "amount_usdc": 100000 + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Successful Response" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/sandbox/generate-card/": { + "post": { + "tags": [ + "Sandbox" + ], + "summary": "Generate Physical Card From Order", + "description": "Generate a physical card from a card order with a given `card_order_id`.", + "operationId": "generate_physical_card_from_order_api_v1_sandbox_generate_card__post", + "parameters": [ + { + "required": false, + "schema": { + "type": "string", + "title": "X-Branch-Name" + }, + "name": "x-branch-name", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GeneratePhysicalCardFromOrder" + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Successful Response" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/sandbox/webhook/": { + "post": { + "tags": [ + "Sandbox" + ], + "summary": "Trigger Webhook", + "description": "Simulates a webhook event according to the payload. This will trigger requests to subscribed callback URLs, if any.", + "operationId": "trigger-webhook", + "parameters": [ + { + "required": false, + "schema": { + "type": "string", + "title": "X-Branch-Name" + }, + "name": "x-branch-name", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EventDetails" + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Successful Response" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + }, + "/api/v1/sandbox/fund/": { + "post": { + "tags": [ + "Sandbox" + ], + "summary": "Fund Account", + "description": "Simulates an ACH credit to the provided Jiko account. Requires a portal to use. A portal can be created using the [Create Portal](#tag/Portals/operation/create_portal_api_v1_jiko_accounts__account_id__portals__post) endpoint.", + "operationId": "fund_account_api_v1_sandbox_fund__post", + "parameters": [ + { + "required": false, + "schema": { + "type": "string", + "title": "X-Branch-Name" + }, + "name": "x-branch-name", + "in": "header" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FundPortalRequest" + } + } + }, + "required": true + }, + "responses": { + "202": { + "description": "Successful Response" + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HTTPValidationError" + } + } + } + } + }, + "security": [ + { + "HTTPBearer": [] + } + ] + } + } + }, + "components": { + "schemas": { + "ACHCounterparty": { + "properties": { + "time_created": { + "type": "string", + "format": "date-time", + "title": "Time Created" + }, + "verification_type": { + "$ref": "#/components/schemas/ACHCounterpartyVerificationType" + }, + "status": { + "$ref": "#/components/schemas/ACHCounterpartyVerificationStatus" + }, + "account_number": { + "type": "string", + "title": "Account Number" + }, + "routing_number": { + "type": "string", + "title": "Routing Number" + }, + "name_on_account": { + "type": "string", + "title": "Name On Account" + }, + "account_type": { + "$ref": "#/components/schemas/ACHCounterpartyAccountType" + }, + "institution_name": { + "type": "string", + "title": "Institution Name" + }, + "plaid": { + "$ref": "#/components/schemas/CounterpartyPlaid" + }, + "micro_deposits": { + "$ref": "#/components/schemas/CounterpartyMicroDeposits" + } + }, + "type": "object", + "required": [ + "time_created", + "verification_type", + "status", + "account_number", + "routing_number", + "name_on_account", + "account_type", + "institution_name" + ], + "title": "ACHCounterparty" + }, + "ACHCounterpartyAccountType": { + "type": "string", + "enum": [ + "SAVINGS", + "CHECKING" + ], + "title": "ACHCounterpartyAccountType", + "description": "An enumeration." + }, + "ACHCounterpartyVerificationStatus": { + "type": "string", + "enum": [ + "IN_PROGRESS", + "FAILED", + "VERIFIED" + ], + "title": "ACHCounterpartyVerificationStatus", + "description": "An enumeration." + }, + "ACHCounterpartyVerificationType": { + "type": "string", + "enum": [ + "MICRO_DEPOSITS", + "PLAID", + "PRE_VERIFIED", + "INCOMING_WIRE", + "SUPPORTING_DOCUMENTS" + ], + "title": "ACHCounterpartyVerificationType", + "description": "An enumeration." + }, + "ACHDirection": { + "type": "string", + "enum": [ + "DEBIT", + "CREDIT" + ], + "title": "ACHDirection", + "description": "An enumeration." + }, + "ACHIncomingEvent": { + "properties": { + "event_id": { + "type": "string", + "format": "uuid", + "title": "Event Id" + }, + "timestamp": { + "type": "string", + "format": "date-time", + "title": "Timestamp" + }, + "payload": { + "$ref": "#/components/schemas/ACHIncomingPayload" + }, + "event_type": { + "type": "string", + "enum": [ + "transfers.ach.in.success", + "transfers.ach.in.rejected" + ], + "title": "Event Type" + } + }, + "type": "object", + "required": [ + "event_id", + "timestamp", + "payload", + "event_type" + ], + "title": "ACHIncomingEvent", + "description": "The schema of items in `payload` should reflect any new additions or\nupdates made in `src/proto/partner_events/grpc_contract/contract.proto`\n\ne.g: ACHOutgoingPayload\n\n`PartnerEvent` serialization could fail otherwise." + }, + "ACHIncomingPayload": { + "properties": { + "jiko_account_id": { + "type": "string", + "format": "uuid", + "title": "Jiko Account Id" + } + }, + "type": "object", + "required": [ + "jiko_account_id" + ], + "title": "ACHIncomingPayload" + }, + "ACHOutgoingEvent": { + "properties": { + "event_id": { + "type": "string", + "format": "uuid", + "title": "Event Id" + }, + "timestamp": { + "type": "string", + "format": "date-time", + "title": "Timestamp" + }, + "payload": { + "$ref": "#/components/schemas/ACHOutgoingPayload" + }, + "event_type": { + "type": "string", + "enum": [ + "transfers.ach.out.success", + "transfers.ach.out.rejected", + "transfers.ach.out.sent" + ], + "title": "Event Type" + } + }, + "type": "object", + "required": [ + "event_id", + "timestamp", + "payload", + "event_type" + ], + "title": "ACHOutgoingEvent", + "description": "The schema of items in `payload` should reflect any new additions or\nupdates made in `src/proto/partner_events/grpc_contract/contract.proto`\n\ne.g: ACHOutgoingPayload\n\n`PartnerEvent` serialization could fail otherwise." + }, + "ACHOutgoingPayload": { + "properties": { + "jiko_account_id": { + "type": "string", + "format": "uuid", + "title": "Jiko Account Id" + } + }, + "type": "object", + "required": [ + "jiko_account_id" + ], + "title": "ACHOutgoingPayload" + }, + "ACHRequest": { + "properties": { + "counterparty_id": { + "type": "string", + "format": "uuid", + "title": "Counterparty Id" + }, + "direction": { + "$ref": "#/components/schemas/ACHDirection" + }, + "sec_code": { + "allOf": [ + { + "$ref": "#/components/schemas/ACHSECCodeInput" + } + ], + "default": "WEB" + }, + "payment_related_information": { + "items": { + "type": "string" + }, + "type": "array", + "title": "Payment Related Information", + "default": [] + }, + "amount_usdc": { + "type": "integer", + "title": "Amount Usdc" + }, + "company_entry_description": { + "type": "string", + "pattern": "^[ a-zA-Z0-9]{1,10}$", + "title": "Company Entry Description", + "description": "Short description of the purpose of the entry (Maximum of 10 characters). Required for sec_code `\"CCD\"` and `\"PPD\"`. For sec_code `\"WEB\"` the default value for DEBIT is \"Funding TX\" and \"Release TX\" for CREDIT." + } + }, + "type": "object", + "required": [ + "counterparty_id", + "direction", + "amount_usdc" + ], + "title": "ACHRequest" + }, + "ACHResponse": { + "properties": { + "counterparty_id": { + "type": "string", + "format": "uuid", + "title": "Counterparty Id" + }, + "direction": { + "$ref": "#/components/schemas/ACHDirection" + }, + "sec_code": { + "$ref": "#/components/schemas/ACHSECCode" + }, + "payment_related_information": { + "items": { + "type": "string" + }, + "type": "array", + "title": "Payment Related Information" + }, + "id": { + "type": "string", + "format": "uuid", + "title": "Id" + }, + "amount": { + "$ref": "#/components/schemas/Amount" + }, + "jiko_account_id": { + "type": "string", + "format": "uuid", + "title": "Jiko Account Id" + }, + "status": { + "$ref": "#/components/schemas/ACHStatus" + }, + "time_created": { + "type": "string", + "format": "date-time", + "title": "Time Created" + }, + "company_entry_description": { + "type": "string", + "title": "Company Entry Description" + } + }, + "type": "object", + "required": [ + "counterparty_id", + "direction", + "sec_code", + "payment_related_information", + "id", + "amount", + "jiko_account_id", + "status", + "time_created", + "company_entry_description" + ], + "title": "ACHResponse" + }, + "ACHSECCode": { + "type": "string", + "enum": [ + "CCD", + "PPD", + "WEB" + ], + "title": "ACHSECCode", + "description": "An enumeration." + }, + "ACHSECCodeInput": { + "type": "string", + "enum": [ + "CCD", + "WEB" + ], + "title": "ACHSECCodeInput", + "description": "An enumeration." + }, + "ACHStatus": { + "type": "string", + "enum": [ + "PENDING", + "FAILED", + "REJECTED", + "PROCESSED", + "APPROVED", + "IN_TRANSIT", + "CANCELLED" + ], + "title": "ACHStatus", + "description": "An enumeration." + }, + "ACHTransactionDetails": { + "properties": { + "company_name": { + "type": "string", + "title": "Company Name" + }, + "company_entry_description": { + "type": "string", + "title": "Company Entry Description" + }, + "individual_identification_number": { + "type": "string", + "title": "Individual Identification Number" + }, + "trace_number": { + "type": "string", + "title": "Trace Number" + } + }, + "type": "object", + "required": [ + "company_name" + ], + "title": "ACHTransactionDetails" + }, + "Account": { + "properties": { + "id": { + "type": "string", + "format": "uuid", + "title": "Id" + }, + "name": { + "type": "string", + "title": "Name", + "description": "The account name" + }, + "total_value": { + "allOf": [ + { + "$ref": "#/components/schemas/Amount" + } + ], + "title": "Total Value", + "description": "Current total value of account" + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/AccountStatus" + } + ], + "description": "Account status" + }, + "portfolio": { + "allOf": [ + { + "$ref": "#/components/schemas/Portfolio" + } + ], + "title": "Portfolio", + "description": "Total liquid cash and holdings" + } + }, + "type": "object", + "required": [ + "id", + "name", + "total_value", + "status", + "portfolio" + ], + "title": "Account" + }, + "AccountStatus": { + "type": "string", + "enum": [ + "OPEN", + "CLOSED", + "FROZEN" + ], + "title": "AccountStatus", + "description": "An enumeration." + }, + "AccountUsage": { + "type": "string", + "enum": [ + "MONEY_STORAGE" + ], + "title": "AccountUsage", + "description": "An enumeration." + }, + "Address": { + "properties": { + "street_address": { + "type": "string", + "maxLength": 250, + "title": "Street Address", + "description": "Street address" + }, + "street_address2": { + "type": "string", + "maxLength": 250, + "title": "Street Address2", + "description": "Apartment, Suite, Box number, etc." + }, + "city": { + "type": "string", + "maxLength": 250, + "title": "City", + "description": "City / Town" + }, + "postal_code": { + "type": "string", + "maxLength": 50, + "title": "Postal Code", + "description": "Postal code / ZIP code" + }, + "state": { + "$ref": "#/components/schemas/State" + }, + "country": { + "type": "string", + "title": "Country" + } + }, + "type": "object", + "required": [ + "street_address", + "city", + "postal_code", + "country" + ], + "title": "Address" + }, + "Agreement": { + "properties": { + "version": { + "type": "string", + "title": "Version" + }, + "release_date": { + "type": "string", + "format": "date", + "title": "Release Date" + }, + "documents": { + "items": { + "$ref": "#/components/schemas/AgreementDocument" + }, + "type": "array", + "title": "Documents" + } + }, + "type": "object", + "required": [ + "version", + "release_date", + "documents" + ], + "title": "Agreement" + }, + "AgreementCategory": { + "type": "string", + "enum": [ + "BANK", + "BROKERAGE", + "GENERAL", + "E-SIGN" + ], + "title": "AgreementCategory", + "description": "An enumeration." + }, + "AgreementConsent": { + "properties": { + "version": { + "type": "string", + "title": "Version", + "description": "Agreement version" + }, + "timestamp": { + "type": "string", + "format": "date-time", + "title": "Timestamp", + "description": "Timestamp of applicant's acknowledgement of the agreements" + } + }, + "type": "object", + "required": [ + "version", + "timestamp" + ], + "title": "AgreementConsent" + }, + "AgreementDocument": { + "properties": { + "pdf_download_url": { + "type": "string", + "maxLength": 2083, + "minLength": 1, + "format": "uri", + "title": "Pdf Download Url" + }, + "title": { + "type": "string", + "title": "Title" + }, + "type": { + "$ref": "#/components/schemas/AgreementType" + }, + "category": { + "$ref": "#/components/schemas/AgreementCategory" + } + }, + "type": "object", + "required": [ + "pdf_download_url", + "title", + "type", + "category" + ], + "title": "AgreementDocument" + }, + "AgreementType": { + "type": "string", + "enum": [ + "PRIVACY_POLICY", + "PRIVACY_NOTICE", + "BUSINESS_CONTINUITY_PLAN", + "FINANCIAL_STATEMENT", + "US_TREASURIES_RISK", + "ELECTRONIC_COMMUNICATIONS", + "TAX_CERTIFICATION_FOR_US_PERSON", + "BANK_ACCOUNT", + "LIMITATIONS", + "BROKERAGE", + "CARD", + "CASHBACK", + "FORM_CRS", + "AUTHORIZED_REPRESENTATIVE_CERTIFICATION", + "TERMS_OF_USE", + "ELECTRONIC_FUND_TRANSFERS", + "TRUTH_IN_SAVINGS", + "FEE_NOTICE", + "FUNDS_AVAILABILITY", + "REGULATION_E" + ], + "title": "AgreementType", + "description": "An enumeration." + }, + "Amount": { + "properties": { + "value": { + "type": "integer", + "title": "Value", + "description": "USD values are always in cents." + }, + "currency": { + "type": "string", + "title": "Currency" + }, + "formatted": { + "type": "string", + "title": "Formatted", + "default": "" + } + }, + "type": "object", + "required": [ + "value", + "currency" + ], + "title": "Amount" + }, + "AnnualPersonalIncome": { + "type": "string", + "enum": [ + "BELOW_50K", + "BETWEEN_50K_AND_100K", + "BETWEEN_100K_AND_250K", + "OVER_250K" + ], + "title": "AnnualPersonalIncome", + "description": "An enumeration." + }, + "AnnualRevenue": { + "type": "string", + "enum": [ + "PRE_REVENUE", + "5M_OR_LESS", + "BETWEEN_5M_100M", + "100M_OR_MORE" + ], + "title": "AnnualRevenue", + "description": "An enumeration." + }, + "ApplicationIdentificationType": { + "type": "string", + "enum": [ + "SSN", + "PASSPORT", + "TIN", + "DRIVERS_LICENSE" + ], + "title": "ApplicationIdentificationType", + "description": "An enumeration." + }, + "ApplicationStatus": { + "type": "string", + "enum": [ + "CREATED", + "PENDING", + "SUBMITTED", + "DOCUMENTS_NEEDED", + "APPROVED", + "REJECTED", + "MANUAL_REVIEW" + ], + "title": "ApplicationStatus", + "description": "An enumeration." + }, + "ApplicationUpdateEvent": { + "properties": { + "event_id": { + "type": "string", + "format": "uuid", + "title": "Event Id" + }, + "timestamp": { + "type": "string", + "format": "date-time", + "title": "Timestamp" + }, + "payload": { + "$ref": "#/components/schemas/ApplicationUpdatePayload" + }, + "event_type": { + "type": "string", + "enum": [ + "application.approved", + "application.manual_review", + "application.documents_needed", + "application.rejected" + ], + "title": "Event Type" + } + }, + "type": "object", + "required": [ + "event_id", + "timestamp", + "payload", + "event_type" + ], + "title": "ApplicationUpdateEvent", + "description": "The schema of items in `payload` should reflect any new additions or\nupdates made in `src/proto/partner_events/grpc_contract/contract.proto`\n\ne.g: ACHOutgoingPayload\n\n`PartnerEvent` serialization could fail otherwise." + }, + "ApplicationUpdatePayload": { + "properties": { + "application_id": { + "type": "string", + "format": "uuid", + "title": "Application Id" + } + }, + "type": "object", + "required": [ + "application_id" + ], + "title": "ApplicationUpdatePayload" + }, + "AveragePersonalNetWorth": { + "type": "string", + "enum": [ + "BELOW_50K", + "BETWEEN_50K_AND_200K", + "BETWEEN_200K_AND_1M", + "BETWEEN_1M_AND_5M", + "OVER_5M" + ], + "title": "AveragePersonalNetWorth", + "description": "An enumeration." + }, + "Business": { + "properties": { + "address": { + "$ref": "#/components/schemas/GeneralAddress" + }, + "email": { + "type": "string", + "title": "Email" + }, + "phone_number": { + "type": "string", + "title": "Phone Number" + }, + "account_status": { + "$ref": "#/components/schemas/CustomerAccountStatus" + }, + "type": { + "type": "string", + "enum": [ + "BUSINESS" + ], + "title": "Type" + }, + "name": { + "type": "string", + "title": "Name" + }, + "identification_number": { + "$ref": "#/components/schemas/BusinessIdentificationNumber" + } + }, + "type": "object", + "required": [ + "address", + "email", + "phone_number", + "account_status", + "type", + "name", + "identification_number" + ], + "title": "Business" + }, + "BusinessActivityLocation": { + "type": "string", + "enum": [ + "PRIMARILY_US", + "MIX_OF_US_AND_NON_US", + "PRIMARILY_NON_US" + ], + "title": "BusinessActivityLocation", + "description": "An enumeration." + }, + "BusinessApplicationRequest": { + "properties": { + "name": { + "type": "string", + "title": "Name" + }, + "entity_type": { + "$ref": "#/components/schemas/BusinessEntityType" + }, + "doing_business_as": { + "type": "string", + "title": "Doing Business As" + }, + "identification_number": { + "$ref": "#/components/schemas/BusinessIdentificationNumber" + }, + "address": { + "$ref": "#/components/schemas/Address" + }, + "website": { + "type": "string", + "title": "Website" + }, + "contact": { + "$ref": "#/components/schemas/BusinessContact" + }, + "formation_date": { + "type": "string", + "title": "Formation Date" + }, + "risk_info": { + "$ref": "#/components/schemas/RiskInfo" + }, + "industry": { + "$ref": "#/components/schemas/IndustryInfo" + }, + "agreement_consent": { + "$ref": "#/components/schemas/AgreementConsent" + } + }, + "type": "object", + "title": "BusinessApplicationRequest" + }, + "BusinessApplicationResponse": { + "properties": { + "name": { + "type": "string", + "title": "Name" + }, + "entity_type": { + "$ref": "#/components/schemas/BusinessEntityType" + }, + "doing_business_as": { + "type": "string", + "title": "Doing Business As" + }, + "identification_number": { + "$ref": "#/components/schemas/BusinessIdentificationNumber" + }, + "address": { + "$ref": "#/components/schemas/Address" + }, + "website": { + "type": "string", + "title": "Website" + }, + "contact": { + "$ref": "#/components/schemas/BusinessContact" + }, + "formation_date": { + "type": "string", + "title": "Formation Date" + }, + "risk_info": { + "$ref": "#/components/schemas/RiskInfo" + }, + "industry": { + "$ref": "#/components/schemas/IndustryInfo" + }, + "agreement_consent": { + "$ref": "#/components/schemas/AgreementConsent" + }, + "id": { + "type": "string", + "format": "uuid", + "title": "Id" + }, + "time_created": { + "type": "string", + "format": "date-time", + "title": "Time Created" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "title": "Updated At" + }, + "status": { + "$ref": "#/components/schemas/BusinessApplicationStatus" + }, + "exception_reasons": { + "items": { + "type": "string" + }, + "type": "array", + "title": "Exception Reasons", + "default": [] + }, + "customer_id": { + "type": "string", + "format": "uuid", + "title": "Customer Id", + "description": "`null` until application status is `APPROVED`" + } + }, + "type": "object", + "required": [ + "id", + "time_created", + "updated_at", + "status" + ], + "title": "BusinessApplicationResponse" + }, + "BusinessApplicationStatus": { + "type": "string", + "enum": [ + "CREATED", + "SUBMITTED", + "CLOSED", + "APPROVED", + "REJECTED", + "MANUAL_REVIEW", + "DOCUMENTS_NEEDED", + "PENDING" + ], + "title": "BusinessApplicationStatus", + "description": "An enumeration." + }, + "BusinessContact": { + "properties": { + "name": { + "$ref": "#/components/schemas/Name" + }, + "phone_number": { + "type": "string", + "title": "Phone Number" + }, + "email": { + "type": "string", + "format": "email", + "title": "Email" + } + }, + "type": "object", + "title": "BusinessContact" + }, + "BusinessEntityType": { + "type": "string", + "enum": [ + "SOLE_PROPRIETOR", + "CORPORATE", + "LLC", + "PARTNERSHIP", + "INCORPORATED_ASSOCIATION", + "UNINCORPORATED_ASSOCIATION" + ], + "title": "BusinessEntityType", + "description": "An enumeration." + }, + "BusinessIdentificationNumber": { + "properties": { + "identification_number": { + "type": "string", + "title": "Identification Number" + }, + "type": { + "$ref": "#/components/schemas/BusinessIdentificationNumberType" + } + }, + "type": "object", + "required": [ + "identification_number", + "type" + ], + "title": "BusinessIdentificationNumber" + }, + "BusinessIdentificationNumberType": { + "type": "string", + "enum": [ + "TIN", + "EIN", + "NON_US_BUSINESS_ID" + ], + "title": "BusinessIdentificationNumberType", + "description": "An enumeration." + }, + "Card": { + "properties": { + "card_id": { + "type": "string", + "format": "uuid", + "title": "Card Id" + }, + "name": { + "type": "string", + "title": "Name" + }, + "status": { + "$ref": "#/components/schemas/CardStatus" + }, + "type": { + "$ref": "#/components/schemas/CardType" + } + }, + "type": "object", + "required": [ + "card_id", + "name", + "status", + "type" + ], + "title": "Card" + }, + "CardClosureReason": { + "type": "string", + "enum": [ + "LOST", + "STOLEN", + "DAMAGED", + "NEVER_RECEIVED", + "EXPIRED", + "CANCELED" + ], + "title": "CardClosureReason", + "description": "An enumeration." + }, + "CardListResponse": { + "properties": { + "prev_page": { + "type": "string", + "title": "Prev Page" + }, + "next_page": { + "type": "string", + "title": "Next Page" + }, + "items": { + "items": { + "$ref": "#/components/schemas/Card" + }, + "type": "array", + "title": "Items" + }, + "object_type": { + "type": "string", + "title": "Object Type", + "default": "CursorList" + } + }, + "type": "object", + "required": [ + "items" + ], + "title": "CardListResponse", + "description": "Base class for cursor_list responses from the Partner API" + }, + "CardPinBase": { + "properties": { + "encrypted_pin": { + "type": "string", + "format": "password", + "title": "Encrypted PIN", + "description": "4 digit PIN encrypted by `set_pin` public key", + "writeOnly": true + } + }, + "type": "object", + "required": [ + "encrypted_pin" + ], + "title": "CardPinBase" + }, + "CardPinResponse": { + "properties": { + "success": { + "type": "boolean", + "title": "Success" + } + }, + "type": "object", + "required": [ + "success" + ], + "title": "CardPinResponse" + }, + "CardStatus": { + "type": "string", + "enum": [ + "OPEN", + "LOCKED", + "CLOSED", + "NOT_ACTIVATED", + "FROZEN" + ], + "title": "CardStatus", + "description": "An enumeration." + }, + "CardStatusResponse": { + "properties": { + "card_id": { + "type": "string", + "format": "uuid", + "title": "Card Id" + }, + "status": { + "$ref": "#/components/schemas/CardStatus" + } + }, + "type": "object", + "required": [ + "card_id", + "status" + ], + "title": "CardStatusResponse" + }, + "CardStatusUpdateEvent": { + "properties": { + "event_id": { + "type": "string", + "format": "uuid", + "title": "Event Id" + }, + "timestamp": { + "type": "string", + "format": "date-time", + "title": "Timestamp" + }, + "payload": { + "$ref": "#/components/schemas/CardStatusUpdatePayload" + }, + "event_type": { + "type": "string", + "enum": [ + "card.status.closed", + "card.status.open", + "card.status.frozen", + "card.status.locked" + ], + "title": "Event Type" + } + }, + "type": "object", + "required": [ + "event_id", + "timestamp", + "payload", + "event_type" + ], + "title": "CardStatusUpdateEvent", + "description": "The schema of items in `payload` should reflect any new additions or\nupdates made in `src/proto/partner_events/grpc_contract/contract.proto`\n\ne.g: ACHOutgoingPayload\n\n`PartnerEvent` serialization could fail otherwise.", + "example": { + "event_id": "1a7749fd-a39f-4746-add2-861f270103d5", + "timestamp": "2023-01-01T12:00:00+00:00", + "event_type": "card.status.closed", + "payload": { + "card_id": "f1246d4a-97b9-461e-8afa-2e8dedfbaece", + "status": "CLOSED" + } + } + }, + "CardStatusUpdatePayload": { + "properties": { + "card_id": { + "type": "string", + "format": "uuid", + "title": "Card Id" + }, + "status": { + "$ref": "#/components/schemas/CardStatus" + } + }, + "type": "object", + "required": [ + "card_id", + "status" + ], + "title": "CardStatusUpdatePayload" + }, + "CardSwipe": { + "properties": { + "card_id": { + "type": "string", + "format": "uuid", + "title": "Card Id" + }, + "amount_usdc": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Amount Usdc" + } + }, + "type": "object", + "required": [ + "card_id", + "amount_usdc" + ], + "title": "CardSwipe" + }, + "CardTransactionDetails": { + "properties": { + "location": { + "$ref": "#/components/schemas/TransactionLocation" + }, + "counterparty": { + "type": "string", + "title": "Counterparty" + }, + "terminal_id": { + "type": "string", + "title": "Terminal Id" + }, + "merchant_type": { + "type": "string", + "title": "Merchant Type" + }, + "pre_authorization": { + "type": "boolean", + "title": "Pre Authorization" + }, + "issue_id": { + "type": "string", + "title": "Issue Id" + } + }, + "type": "object", + "required": [ + "pre_authorization" + ], + "title": "CardTransactionDetails" + }, + "CardTransactionEvent": { + "properties": { + "event_id": { + "type": "string", + "format": "uuid", + "title": "Event Id" + }, + "timestamp": { + "type": "string", + "format": "date-time", + "title": "Timestamp" + }, + "payload": { + "$ref": "#/components/schemas/CardTransactionPayload" + }, + "event_type": { + "type": "string", + "enum": [ + "card.transaction.approved", + "card.transaction.on_hold", + "card.transaction.reversed", + "card.transaction.rejected" + ], + "title": "Event Type" + } + }, + "type": "object", + "required": [ + "event_id", + "timestamp", + "payload", + "event_type" + ], + "title": "CardTransactionEvent", + "description": "The schema of items in `payload` should reflect any new additions or\nupdates made in `src/proto/partner_events/grpc_contract/contract.proto`\n\ne.g: ACHOutgoingPayload\n\n`PartnerEvent` serialization could fail otherwise." + }, + "CardTransactionPayload": { + "properties": { + "card_id": { + "type": "string", + "format": "uuid", + "title": "Card Id" + }, + "amount": { + "type": "integer", + "title": "Amount" + }, + "account_id": { + "type": "string", + "format": "uuid", + "title": "Account Id" + } + }, + "type": "object", + "required": [ + "card_id", + "amount", + "account_id" + ], + "title": "CardTransactionPayload" + }, + "CardType": { + "type": "string", + "enum": [ + "VIRTUAL", + "PHYSICAL" + ], + "title": "CardType", + "description": "An enumeration." + }, + "CashBackTransactionDetails": { + "properties": { + "period": { + "type": "string", + "title": "Period", + "description": "Which period the cash back was calculated for, in YYYY-MM format." + }, + "card_id": { + "type": "string", + "format": "uuid", + "title": "Card Id" + } + }, + "type": "object", + "required": [ + "period", + "card_id" + ], + "title": "CashBackTransactionDetails" + }, + "ChangeCardStatusRequest": { + "properties": { + "status": { + "$ref": "#/components/schemas/SettableCardStatus" + } + }, + "type": "object", + "title": "ChangeCardStatusRequest" + }, + "CloseCardRequest": { + "properties": { + "closure_reason": { + "$ref": "#/components/schemas/CardClosureReason" + }, + "lost_stolen_date": { + "type": "string", + "format": "date", + "title": "Lost Stolen Date" + } + }, + "type": "object", + "required": [ + "closure_reason" + ], + "title": "CloseCardRequest" + }, + "Counterparty": { + "properties": { + "id": { + "type": "string", + "format": "uuid", + "title": "Id" + }, + "type": { + "$ref": "#/components/schemas/CounterpartyType" + }, + "ach": { + "$ref": "#/components/schemas/ACHCounterparty" + }, + "wire": { + "$ref": "#/components/schemas/WireCounterparty" + } + }, + "type": "object", + "required": [ + "id", + "type" + ], + "title": "Counterparty" + }, + "CounterpartyMicroDeposits": { + "properties": { + "verification_failure_count": { + "type": "integer", + "title": "Verification Failure Count" + } + }, + "type": "object", + "required": [ + "verification_failure_count" + ], + "title": "CounterpartyMicroDeposits" + }, + "CounterpartyPlaid": { + "properties": { + "mask": { + "type": "string", + "title": "Mask" + }, + "verification_status": { + "$ref": "#/components/schemas/PlaidVerificationStatus" + } + }, + "type": "object", + "required": [ + "mask" + ], + "title": "CounterpartyPlaid" + }, + "CounterpartyType": { + "type": "string", + "enum": [ + "ACH", + "WIRE" + ], + "title": "CounterpartyType", + "description": "An enumeration." + }, + "Country": { + "type": "string", + "enum": [ + "USA", + "US" + ], + "title": "Country", + "description": "An enumeration." + }, + "CreateSubscriptionRequest": { + "properties": { + "description": { + "type": "string", + "title": "Description", + "description": "A description of the webhook's intended use.", + "default": "" + }, + "events": { + "items": { + "type": "string" + }, + "type": "array", + "minItems": 1, + "title": "Events", + "description": "Which types of events this webhook should be invoked for." + }, + "url": { + "type": "string", + "maxLength": 2083, + "minLength": 1, + "format": "uri", + "title": "Url", + "description": "The webhook URL to invoke." + }, + "shared_secret": { + "type": "string", + "minLength": 16, + "title": "Shared Secret", + "description": "The shared secret used by the Partner API to sign requests made to the webhook. The shared secret needs to be minimum 16 characters long." + } + }, + "type": "object", + "required": [ + "events", + "url", + "shared_secret" + ], + "title": "CreateSubscriptionRequest" + }, + "CursorListResponse_ACHResponse_": { + "properties": { + "prev_page": { + "type": "string", + "title": "Prev Page" + }, + "next_page": { + "type": "string", + "title": "Next Page" + }, + "items": { + "items": { + "$ref": "#/components/schemas/ACHResponse" + }, + "type": "array", + "title": "Items" + }, + "object_type": { + "type": "string", + "title": "Object Type", + "default": "CursorList" + } + }, + "type": "object", + "required": [ + "items" + ], + "title": "CursorListResponse[ACHResponse]", + "description": "Base class for cursor_list responses from the Partner API" + }, + "CursorListResponse_PartnerEvent_": { + "properties": { + "prev_page": { + "type": "string", + "title": "Prev Page" + }, + "next_page": { + "type": "string", + "title": "Next Page" + }, + "items": { + "items": { + "$ref": "#/components/schemas/PartnerEvent" + }, + "type": "array", + "title": "Items" + }, + "object_type": { + "type": "string", + "title": "Object Type", + "default": "CursorList" + } + }, + "type": "object", + "required": [ + "items" + ], + "title": "CursorListResponse[PartnerEvent]", + "description": "Base class for cursor_list responses from the Partner API" + }, + "CursorListResponse_Subscription_": { + "properties": { + "prev_page": { + "type": "string", + "title": "Prev Page" + }, + "next_page": { + "type": "string", + "title": "Next Page" + }, + "items": { + "items": { + "$ref": "#/components/schemas/Subscription" + }, + "type": "array", + "title": "Items" + }, + "object_type": { + "type": "string", + "title": "Object Type", + "default": "CursorList" + } + }, + "type": "object", + "required": [ + "items" + ], + "title": "CursorListResponse[Subscription]", + "description": "Base class for cursor_list responses from the Partner API" + }, + "Customer": { + "oneOf": [ + { + "$ref": "#/components/schemas/Individual" + }, + { + "$ref": "#/components/schemas/Business" + } + ], + "title": "Customer", + "discriminator": { + "propertyName": "type", + "mapping": { + "INDIVIDUAL": "#/components/schemas/Individual", + "BUSINESS": "#/components/schemas/Business" + } + } + }, + "CustomerAccountStatus": { + "type": "string", + "enum": [ + "OPEN", + "CLOSED", + "FROZEN", + "PENDING" + ], + "title": "CustomerAccountStatus", + "description": "An enumeration." + }, + "CustomerDefundingTransferRequest": { + "properties": { + "transfer_id": { + "type": "string", + "format": "uuid", + "title": "Transfer Id", + "description": "The ID for this transfer, auto-generated if not provided." + }, + "description": { + "type": "string", + "maxLength": 100, + "title": "Description", + "description": "A description of the transfer, visible on statements." + }, + "from_account": { + "$ref": "#/components/schemas/OnUsJikoAccountCounterparty" + }, + "to_account": { + "$ref": "#/components/schemas/OnUsJikoAccountCounterparty" + }, + "type": { + "type": "string", + "enum": [ + "PARTNER_CUSTOMER_DEFUNDING" + ], + "title": "Type", + "description": "Withdraw funds from customer to partner." + }, + "target": { + "type": "string", + "maxLength": 200, + "title": "Target", + "description": "The funds destination belonging to the customer at the Partner institution." + }, + "amount_usdc": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Amount USDC", + "description": "The amount, in USD cents. **Deprecated**, use `amount` instead.", + "deprecated": true + }, + "amount": { + "oneOf": [ + { + "$ref": "#/components/schemas/RequestedAmount" + }, + { + "$ref": "#/components/schemas/FullWithdrawal" + } + ], + "title": "Amount", + "discriminator": { + "propertyName": "type", + "mapping": { + "REQUESTED_AMOUNT": "#/components/schemas/RequestedAmount", + "FULL_WITHDRAWAL": "#/components/schemas/FullWithdrawal" + } + } + } + }, + "type": "object", + "required": [ + "from_account", + "to_account", + "type", + "target" + ], + "title": "Partner-Customer Defunding", + "description": "A transfer of customer funds from a customer account at Jiko to a partner-owned facilitation account.", + "example": { + "transfer_id": "d64e7b7e-7fd2-44a4-8bfd-68a31252afaa", + "description": "Withdrawing funds from customer to partner", + "from_account": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "type": "JIKO_ACCOUNT" + }, + "to_account": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "type": "JIKO_ACCOUNT" + }, + "type": "PARTNER_CUSTOMER_DEFUNDING", + "target": "123456789", + "amount": { + "type": "FULL_WITHDRAWAL" + } + } + }, + "CustomerDefundingTransferResponse": { + "properties": { + "transfer_id": { + "type": "string", + "format": "uuid", + "title": "Transfer Id", + "description": "The ID for this transfer, auto-generated if not provided." + }, + "description": { + "type": "string", + "maxLength": 100, + "title": "Description", + "description": "A description of the transfer, visible on statements." + }, + "from_account": { + "$ref": "#/components/schemas/OnUsJikoAccountCounterparty" + }, + "to_account": { + "$ref": "#/components/schemas/OnUsJikoAccountCounterparty" + }, + "type": { + "type": "string", + "enum": [ + "PARTNER_CUSTOMER_DEFUNDING" + ], + "title": "Type" + }, + "target": { + "type": "string", + "maxLength": 200, + "title": "Target", + "description": "The funds destination belonging to the customer at the Partner institution." + }, + "amount": { + "$ref": "#/components/schemas/Amount" + } + }, + "type": "object", + "required": [ + "from_account", + "to_account", + "type", + "target", + "amount" + ], + "title": "Partner-Customer Defunding", + "description": "A transfer of customer funds from a customer account at Jiko to a partner-owned facilitation account.", + "example": { + "transfer_id": "d64e7b7e-7fd2-44a4-8bfd-68a31252afaa", + "description": "Withdrawing funds from customer to partner", + "from_account": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "type": "JIKO_ACCOUNT" + }, + "to_account": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "type": "JIKO_ACCOUNT" + }, + "type": "PARTNER_CUSTOMER_DEFUNDING", + "target": "123456789", + "amount": { + "type": "FULL_WITHDRAWAL" + } + } + }, + "CustomerFundingTransferRequest": { + "properties": { + "transfer_id": { + "type": "string", + "format": "uuid", + "title": "Transfer Id", + "description": "The ID for this transfer, auto-generated if not provided." + }, + "description": { + "type": "string", + "maxLength": 100, + "title": "Description", + "description": "A description of the transfer, visible on statements." + }, + "from_account": { + "$ref": "#/components/schemas/OnUsJikoAccountCounterparty" + }, + "to_account": { + "$ref": "#/components/schemas/OnUsJikoAccountCounterparty" + }, + "type": { + "type": "string", + "enum": [ + "PARTNER_CUSTOMER_FUNDING" + ], + "title": "Type", + "description": "Disburse funds from partner to customer." + }, + "source": { + "type": "string", + "maxLength": 200, + "title": "Source", + "description": "The source of customer funds at the Partner institution." + }, + "amount_usdc": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Amount USDC", + "description": "The amount, in USD cents. **Deprecated**, use `amount` instead.", + "deprecated": true + }, + "amount": { + "$ref": "#/components/schemas/RequestedAmount" + } + }, + "type": "object", + "required": [ + "from_account", + "to_account", + "type", + "source" + ], + "title": "Partner-Customer Funding", + "description": "A transfer of customer funds to a customer account at Jiko from a partner-owned facilitation account.", + "example": { + "transfer_id": "d4a2d8dd-7def-4545-a062-761683b9aa05", + "description": "Disbursing funds from partner to customer", + "from_account": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "type": "JIKO_ACCOUNT" + }, + "to_account": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "type": "JIKO_ACCOUNT" + }, + "type": "PARTNER_CUSTOMER_FUNDING", + "source": "123456789", + "amount": { + "amount_usdc": 100000, + "type": "REQUESTED_AMOUNT" + } + } + }, + "CustomerFundingTransferResponse": { + "properties": { + "transfer_id": { + "type": "string", + "format": "uuid", + "title": "Transfer Id", + "description": "The ID for this transfer, auto-generated if not provided." + }, + "description": { + "type": "string", + "maxLength": 100, + "title": "Description", + "description": "A description of the transfer, visible on statements." + }, + "from_account": { + "$ref": "#/components/schemas/OnUsJikoAccountCounterparty" + }, + "to_account": { + "$ref": "#/components/schemas/OnUsJikoAccountCounterparty" + }, + "type": { + "type": "string", + "enum": [ + "PARTNER_CUSTOMER_FUNDING" + ], + "title": "Type" + }, + "source": { + "type": "string", + "maxLength": 200, + "title": "Source", + "description": "The source of customer funds at the Partner institution." + }, + "amount": { + "$ref": "#/components/schemas/Amount" + } + }, + "type": "object", + "required": [ + "from_account", + "to_account", + "type", + "source", + "amount" + ], + "title": "Partner-Customer Funding", + "description": "A transfer of customer funds to a customer account at Jiko from a partner-owned facilitation account.", + "example": { + "transfer_id": "d4a2d8dd-7def-4545-a062-761683b9aa05", + "description": "Disbursing funds from partner to customer", + "from_account": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "type": "JIKO_ACCOUNT" + }, + "to_account": { + "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", + "type": "JIKO_ACCOUNT" + }, + "type": "PARTNER_CUSTOMER_FUNDING", + "source": "123456789", + "amount": { + "amount_usdc": 100000, + "type": "REQUESTED_AMOUNT" + } + } + }, + "DateOfBirth": { + "properties": { + "date_of_birth": { + "type": "string", + "format": "date", + "title": "Date Of Birth" + } + }, + "type": "object", + "required": [ + "date_of_birth" + ], + "title": "DateOfBirth" + }, + "Decimal": { + "type": "string", + "title": "Decimal" + }, + "DeliveryAttemptDetails": { + "properties": { + "delivery_attempt_id": { + "type": "string", + "format": "uuid", + "title": "Delivery Attempt Id" + }, + "subscription_id": { + "type": "string", + "format": "uuid", + "title": "Subscription Id" + }, + "success": { + "type": "boolean", + "title": "Success" + }, + "response_code": { + "type": "integer", + "title": "Response Code" + }, + "response_message": { + "type": "string", + "title": "Response Message" + }, + "called_at": { + "type": "string", + "format": "date-time", + "title": "Called At" + } + }, + "type": "object", + "required": [ + "delivery_attempt_id", + "subscription_id", + "success", + "response_code", + "called_at" + ], + "title": "DeliveryAttemptDetails" + }, + "Document": { + "properties": { + "id": { + "type": "string", + "title": "Id" + }, + "type": { + "$ref": "#/components/schemas/DocumentType" + }, + "status": { + "$ref": "#/components/schemas/DocumentStatus" + }, + "exception_reason": { + "type": "string", + "title": "Exception Reason" + }, + "name": { + "type": "string", + "title": "Name" + } + }, + "type": "object", + "required": [ + "id", + "type", + "status" + ], + "title": "Document" + }, + "DocumentStatus": { + "type": "string", + "enum": [ + "PENDING_UPLOAD", + "PENDING_REVIEW", + "APPROVED", + "INVALID" + ], + "title": "DocumentStatus", + "description": "An enumeration." + }, + "DocumentType": { + "type": "string", + "enum": [ + "ID_FRONT", + "ID_BACK", + "SELFIE", + "IDENTIFICATION_NUMBER_VERIFICATION", + "ADDRESS_VERIFICATION", + "PASSPORT", + "EIN_CONFIRMATION", + "OPERATING_AGREEMENT", + "PARTNERSHIP_AGREEMENT", + "ARTICLES_OF_INCORPORATION", + "BYLAWS", + "PROOF_OF_501_STATUS", + "ARTICLES_OF_ASSOCIATION", + "CORPORATE_CHARTER", + "TRUST_FORMATION_RECORDS", + "LIST_OF_TRUSTEES", + "LEGAL_ANALYSIS_OF_BUSINESS_MODEL", + "COINS_AND_TOKENS_LISTED_AND_OFFERED", + "COIN_RATING_POLICY_AND_PROCEDURES", + "TYPE_OF_BLOCKCHAIN_ANALYTICS_USED", + "MARKET_MANIPULATION_POLICY", + "BSA_AML_OFAC_POLICIES", + "INDEPENDENT_AML_AUDIT_REPORT", + "BSA_AML_OFAC_INTERNAL_RISK_ASSESSMENT", + "ARTICLES_OF_ORGANIZATION", + "FLOW_OF_FUNDS", + "BANK_STATEMENTS_1", + "BANK_STATEMENTS_2", + "BANK_STATEMENTS_3", + "WIRE_COUNTERPARTY_VERIFICATION", + "OTHER" + ], + "title": "DocumentType", + "description": "An enumeration." + }, + "EmployedInvestmentProfile": { + "properties": { + "income": { + "allOf": [ + { + "$ref": "#/components/schemas/AnnualPersonalIncome" + } + ], + "description": "Applicant's estimated annual income in USD." + }, + "net_worth": { + "allOf": [ + { + "$ref": "#/components/schemas/AveragePersonalNetWorth" + } + ], + "description": "Applicant's estimated average personal net worth in USD." + }, + "bd_association": { + "type": "string", + "maxLength": 200, + "title": "Bd Association", + "description": "Name of broker-dealer association or employment. Disclosure is required by law if applicable, else, leave empty" + }, + "director_policy_maker_of_company": { + "type": "string", + "maxLength": 200, + "title": "Director Policy Maker Of Company", + "description": "Name of company where customer is director or policy maker. Disclosure is required by law if applicable, otherwise, leave empty" + }, + "occupation": { + "type": "string", + "maxLength": 200, + "minLength": 2, + "title": "Occupation", + "description": "Applicant's occupation" + }, + "employment_status": { + "type": "string", + "enum": [ + "EMPLOYED" + ], + "title": "Employment Status" + } + }, + "type": "object", + "required": [ + "income", + "net_worth", + "occupation", + "employment_status" + ], + "title": "EmployedInvestmentProfile" + }, + "EncryptionKeysResponse": { + "properties": { + "set_pin": { + "type": "string", + "title": "Set Pin", + "default": "", + "env_names": [ + "public_key__set_pin" + ] + } + }, + "additionalProperties": false, + "type": "object", + "title": "EncryptionKeysResponse", + "description": "Encryption keys are currently stored as environment variables.\n\nVariables are declared in\n`services/partner-api/secret-(dev|staging|sandbox|partners).yaml`" + }, + "EventDetails": { + "oneOf": [ + { + "$ref": "#/components/schemas/ApplicationUpdateEvent" + }, + { + "$ref": "#/components/schemas/CardStatusUpdateEvent" + }, + { + "$ref": "#/components/schemas/ACHIncomingEvent" + }, + { + "$ref": "#/components/schemas/ACHOutgoingEvent" + }, + { + "$ref": "#/components/schemas/CardTransactionEvent" + }, + { + "$ref": "#/components/schemas/OutgoingWireEvent" + }, + { + "$ref": "#/components/schemas/OnUsTransferEvent" + } + ], + "title": "EventDetails", + "discriminator": { + "propertyName": "event_type", + "mapping": { + "application.approved": "#/components/schemas/ApplicationUpdateEvent", + "application.manual_review": "#/components/schemas/ApplicationUpdateEvent", + "application.documents_needed": "#/components/schemas/ApplicationUpdateEvent", + "application.rejected": "#/components/schemas/ApplicationUpdateEvent", + "card.status.closed": "#/components/schemas/CardStatusUpdateEvent", + "card.status.open": "#/components/schemas/CardStatusUpdateEvent", + "card.status.frozen": "#/components/schemas/CardStatusUpdateEvent", + "card.status.locked": "#/components/schemas/CardStatusUpdateEvent", + "transfers.ach.in.success": "#/components/schemas/ACHIncomingEvent", + "transfers.ach.in.rejected": "#/components/schemas/ACHIncomingEvent", + "transfers.ach.out.success": "#/components/schemas/ACHOutgoingEvent", + "transfers.ach.out.rejected": "#/components/schemas/ACHOutgoingEvent", + "transfers.ach.out.sent": "#/components/schemas/ACHOutgoingEvent", + "card.transaction.approved": "#/components/schemas/CardTransactionEvent", + "card.transaction.on_hold": "#/components/schemas/CardTransactionEvent", + "card.transaction.reversed": "#/components/schemas/CardTransactionEvent", + "card.transaction.rejected": "#/components/schemas/CardTransactionEvent", + "transfers.wire.out.success": "#/components/schemas/OutgoingWireEvent", + "transfers.wire.out.processing": "#/components/schemas/OutgoingWireEvent", + "transfers.wire.out.rejected": "#/components/schemas/OutgoingWireEvent", + "transfers.on-us.success": "#/components/schemas/OnUsTransferEvent", + "transfers.on-us.processing": "#/components/schemas/OnUsTransferEvent", + "transfers.on-us.rejected": "#/components/schemas/OnUsTransferEvent" + } + } + }, + "EventListResponse": { + "properties": { + "offset": { + "type": "integer", + "title": "Offset" + }, + "count": { + "type": "integer", + "title": "Count" + }, + "items": { + "items": { + "$ref": "#/components/schemas/EventType" + }, + "type": "array", + "title": "Items", + "description": "List of available events to subscribe to" + }, + "object_type": { + "type": "string", + "title": "Object Type", + "default": "List" + } + }, + "type": "object", + "required": [ + "offset", + "count", + "items" + ], + "title": "EventListResponse", + "description": "Generic models are only supported in pydantic for python 3.7+, so until then\nitems will be of type Any. As such, this class needs to be subclassed\nand its item field overridden in it using the proper type." + }, + "EventType": { + "properties": { + "event": { + "type": "string", + "title": "Event" + } + }, + "type": "object", + "required": [ + "event" + ], + "title": "EventType" + }, + "Fee": { + "properties": { + "type": { + "type": "string", + "enum": [ + "AUM_FEE" + ], + "title": "Type" + }, + "amount": { + "$ref": "#/components/schemas/Amount" + } + }, + "type": "object", + "required": [ + "type", + "amount" + ], + "title": "Fee" + }, + "FirstMonthDepositAmount": { + "type": "string", + "enum": [ + "1M_OR_LESS", + "BETWEEN_1M_AND_5M", + "BETWEEN_5M_AND_20M", + "BETWEEN_20M_AND_50M", + "50M_OR_MORE" + ], + "title": "FirstMonthDepositAmount", + "description": "An enumeration." + }, + "FullWithdrawal": { + "properties": { + "type": { + "type": "string", + "enum": [ + "FULL_WITHDRAWAL" + ], + "title": "Type" + } + }, + "type": "object", + "required": [ + "type" + ], + "title": "Full withdrawal", + "description": "Fully liquidates all T-Bills from the source account." + }, + "FundPortalRequest": { + "properties": { + "account_id": { + "type": "string", + "format": "uuid", + "title": "Account Id" + }, + "amount_usdc": { + "type": "integer", + "exclusiveMaximum": 5000000, + "exclusiveMinimum": 0, + "title": "Amount Usdc" + }, + "company_name": { + "type": "string", + "maxLength": 16, + "title": "Company Name", + "default": "FakeCompany" + }, + "count": { + "type": "integer", + "exclusiveMaximum": 10, + "exclusiveMinimum": 0, + "title": "Count", + "default": 1 + } + }, + "type": "object", + "required": [ + "account_id", + "amount_usdc" + ], + "title": "FundPortalRequest" + }, + "GeneralAddress": { + "properties": { + "street_address": { + "type": "string", + "maxLength": 250, + "title": "Street Address", + "description": "Street address" + }, + "street_address2": { + "type": "string", + "maxLength": 250, + "title": "Street Address2", + "description": "Apartment, Suite, Box number, etc." + }, + "city": { + "type": "string", + "maxLength": 250, + "title": "City", + "description": "City / Town" + }, + "postal_code": { + "type": "string", + "maxLength": 50, + "title": "Postal Code", + "description": "Postal code / ZIP code" + }, + "state": { + "type": "string", + "title": "State", + "description": "State (Postal Abbreviations. Example: \"AL\", \"NJ\", \"OH\")" + }, + "country": { + "type": "string", + "title": "Country", + "description": "A ISO-3166 Alpha-2 country code (Abbreviated. Example: \"US\")" + } + }, + "type": "object", + "required": [ + "street_address", + "city", + "postal_code", + "country" + ], + "title": "GeneralAddress" + }, + "GeneratePhysicalCardFromOrder": { + "properties": { + "card_order_id": { + "type": "string", + "format": "uuid", + "title": "Card Order Id" + } + }, + "type": "object", + "required": [ + "card_order_id" + ], + "title": "GeneratePhysicalCardFromOrder" + }, + "HTTPValidationError": { + "properties": { + "detail": { + "items": { + "$ref": "#/components/schemas/ValidationError" + }, + "type": "array", + "title": "Detail" + } + }, + "type": "object", + "title": "HTTPValidationError" + }, + "ISOAddress": { + "properties": { + "street_address": { + "type": "string", + "maxLength": 250, + "title": "Street Address", + "description": "Street address" + }, + "street_address2": { + "type": "string", + "maxLength": 250, + "title": "Street Address2", + "description": "Apartment, Suite, Box number, etc." + }, + "city": { + "type": "string", + "maxLength": 250, + "title": "City", + "description": "City / Town" + }, + "postal_code": { + "type": "string", + "maxLength": 50, + "title": "Postal Code", + "description": "Postal code / ZIP code" + }, + "state": { + "type": "string", + "title": "State", + "description": "State (Postal Abbreviations. Example: \"AL\", \"NJ\", \"OH\")" + }, + "country": { + "type": "string", + "title": "Country", + "description": "A ISO-3166 Alpha-2 country code (Abbreviated. Example: \"US\")" + } + }, + "type": "object", + "required": [ + "street_address", + "city", + "postal_code", + "country" + ], + "title": "ISOAddress" + }, + "IndependentInvestmentProfile": { + "properties": { + "income": { + "allOf": [ + { + "$ref": "#/components/schemas/AnnualPersonalIncome" + } + ], + "description": "Applicant's estimated annual income in USD." + }, + "net_worth": { + "allOf": [ + { + "$ref": "#/components/schemas/AveragePersonalNetWorth" + } + ], + "description": "Applicant's estimated average personal net worth in USD." + }, + "bd_association": { + "type": "string", + "maxLength": 200, + "title": "Bd Association", + "description": "Name of broker-dealer association or employment. Disclosure is required by law if applicable, else, leave empty" + }, + "director_policy_maker_of_company": { + "type": "string", + "maxLength": 200, + "title": "Director Policy Maker Of Company", + "description": "Name of company where customer is director or policy maker. Disclosure is required by law if applicable, otherwise, leave empty" + }, + "occupation": { + "type": "string", + "maxLength": 200, + "title": "Occupation", + "description": "Applicant's occupation" + }, + "employment_status": { + "type": "string", + "enum": [ + "INDEPENDENT" + ], + "title": "Employment Status" + } + }, + "type": "object", + "required": [ + "income", + "net_worth", + "employment_status" + ], + "title": "IndependentInvestmentProfile" + }, + "Individual": { + "properties": { + "address": { + "$ref": "#/components/schemas/GeneralAddress" + }, + "email": { + "type": "string", + "title": "Email" + }, + "phone_number": { + "type": "string", + "title": "Phone Number" + }, + "account_status": { + "$ref": "#/components/schemas/CustomerAccountStatus" + }, + "type": { + "type": "string", + "enum": [ + "INDIVIDUAL" + ], + "title": "Type" + }, + "name": { + "$ref": "#/components/schemas/Name" + }, + "date_of_birth": { + "type": "string", + "format": "date", + "title": "Date Of Birth" + } + }, + "type": "object", + "required": [ + "address", + "email", + "phone_number", + "account_status", + "type", + "name", + "date_of_birth" + ], + "title": "Individual" + }, + "IndividualIdentificationNumber": { + "properties": { + "identification_number": { + "type": "string", + "title": "Identification Number" + }, + "identification_type": { + "$ref": "#/components/schemas/IndividualIdentificationNumberType" + } + }, + "type": "object", + "required": [ + "identification_number", + "identification_type" + ], + "title": "IndividualIdentificationNumber" + }, + "IndividualIdentificationNumberMasked": { + "properties": { + "identification_number": { + "type": "string", + "title": "Identification Number" + }, + "identification_type": { + "$ref": "#/components/schemas/IndividualIdentificationNumberType" + } + }, + "type": "object", + "required": [ + "identification_number", + "identification_type" + ], + "title": "IndividualIdentificationNumberMasked" + }, + "IndividualIdentificationNumberType": { + "type": "string", + "enum": [ + "SSN", + "PASSPORT", + "NON_US_ID" + ], + "title": "IndividualIdentificationNumberType", + "description": "An enumeration." + }, + "Industry": { + "type": "string", + "enum": [ + "ACCOUNTING_AND_BOOKKEEPING", + "ADVERTISING", + "ART", + "ATM_OPERATOR", + "BEAUTY_AND_COSMETIC_SERVICES", + "BIOTECH", + "BUSINESS_MANAGEMENT", + "CLEANING_SERVICES", + "CONSTRUCTION", + "CONSULTING", + "CRYPTOCURRENCY", + "DESIGN", + "ECOMMERCE", + "EDUCATION", + "ENERGY", + "ENTERTAINMENT", + "FINANCIAL_SERVICES", + "FITNESS", + "FOOD", + "GAMBLING", + "HARDWARE", + "HEALTHCARE", + "HOSPITALITY", + "INSURANCE", + "INVESTMENTS", + "LEGAL_SERVICES", + "MARKETING", + "MARKETPLACE", + "NONPROFIT", + "OTHER", + "PARKING_GARAGE", + "PROFESSIONAL_TECHNICAL_OR_MECHANICAL_SERVICES", + "REAL_ESTATE", + "RECRUITING", + "RESEARCH", + "RESTAURANT", + "RETAIL_STORES", + "SECURITY", + "SHIPPING_WAREHOUSING", + "SOFTWARE", + "SPORTS_TEAM", + "SUPPORT_SERVICES", + "TECHNOLOGY", + "TRANSPORTATION", + "TRAVEL", + "WHOLESALE", + "VENDING_MACHINE_OPERATOR", + "WASTE_MANAGEMENT" + ], + "title": "Industry", + "description": "An enumeration." + }, + "IndustryInfo": { + "properties": { + "industry": { + "$ref": "#/components/schemas/Industry" + }, + "other_industry": { + "type": "string", + "title": "Other Industry" + } + }, + "type": "object", + "title": "IndustryInfo" + }, + "InternalReallocationTransferRequest": { + "properties": { + "transfer_id": { + "type": "string", + "format": "uuid", + "title": "Transfer Id", + "description": "The ID for this transfer, auto-generated if not provided." + }, + "description": { + "type": "string", + "maxLength": 100, + "title": "Description", + "description": "A description of the transfer, visible on statements." + }, + "from_account": { + "$ref": "#/components/schemas/OnUsJikoAccountCounterparty" + }, + "to_account": { + "$ref": "#/components/schemas/OnUsJikoAccountCounterparty" + }, + "type": { + "type": "string", + "enum": [ + "INTERNAL_REALLOCATION" + ], + "title": "Type", + "description": "Move funds between accounts belonging to the same customer." + }, + "amount_usdc": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Amount USDC", + "description": "The amount, in USD cents. **Deprecated**, use `amount` instead.", + "deprecated": true + }, + "amount": { + "oneOf": [ + { + "$ref": "#/components/schemas/RequestedAmount" + }, + { + "$ref": "#/components/schemas/FullWithdrawal" + } + ], + "title": "Amount", + "discriminator": { + "propertyName": "type", + "mapping": { + "REQUESTED_AMOUNT": "#/components/schemas/RequestedAmount", + "FULL_WITHDRAWAL": "#/components/schemas/FullWithdrawal" + } + } + } + }, + "type": "object", + "required": [ + "from_account", + "to_account", + "type" + ], + "title": "Internal Reallocation", + "example": { + "transfer_id": "cbb6cfce-f207-45e7-a6b3-1055ab43db51", + "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" + }, + "type": "INTERNAL_REALLOCATION", + "amount": { + "type": "REQUESTED_AMOUNT", + "amount_usdc": 10000 + } + } + }, + "InternalReallocationTransferResponse": { + "properties": { + "transfer_id": { + "type": "string", + "format": "uuid", + "title": "Transfer Id", + "description": "The ID for this transfer, auto-generated if not provided." + }, + "description": { + "type": "string", + "maxLength": 100, + "title": "Description", + "description": "A description of the transfer, visible on statements." + }, + "from_account": { + "$ref": "#/components/schemas/OnUsJikoAccountCounterparty" + }, + "to_account": { + "$ref": "#/components/schemas/OnUsJikoAccountCounterparty" + }, + "type": { + "type": "string", + "enum": [ + "INTERNAL_REALLOCATION" + ], + "title": "Type" + }, + "amount": { + "$ref": "#/components/schemas/Amount" + } + }, + "type": "object", + "required": [ + "from_account", + "to_account", + "type", + "amount" + ], + "title": "Internal Reallocation", + "example": { + "transfer_id": "cbb6cfce-f207-45e7-a6b3-1055ab43db51", + "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" + }, + "type": "INTERNAL_REALLOCATION", + "amount": { + "type": "REQUESTED_AMOUNT", + "amount_usdc": 10000 + } + } + }, + "InternationalApplication": { + "properties": { + "id": { + "type": "string", + "format": "uuid", + "title": "Id" + }, + "time_created": { + "type": "string", + "format": "date-time", + "title": "Time Created" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "title": "Updated At" + }, + "phone_number": { + "type": "string", + "title": "Phone Number", + "description": "Applicant's phone number. **Note**: It will be required to include country codes in accordance to the E.164 spec in a future release, or `^\\+[1-9]\\d{1,14}$`.", + "default_region": "US" + }, + "agreement_consent": { + "$ref": "#/components/schemas/AgreementConsent" + }, + "exception_reasons": { + "items": { + "type": "string" + }, + "type": "array", + "title": "Exception Reasons", + "default": [] + }, + "email": { + "type": "string", + "format": "email", + "title": "Email" + }, + "status": { + "$ref": "#/components/schemas/ApplicationStatus" + }, + "name": { + "$ref": "#/components/schemas/Name" + }, + "date_of_birth": { + "$ref": "#/components/schemas/DateOfBirth" + }, + "investment_profile": { + "$ref": "#/components/schemas/InvestmentProfile" + }, + "customer_id": { + "type": "string", + "format": "uuid", + "title": "Customer Id", + "description": "`null` until application status is `APPROVED`" + }, + "documents": { + "items": { + "$ref": "#/components/schemas/Document" + }, + "type": "array", + "title": "Documents" + }, + "id_verification_documents_needed": { + "type": "boolean", + "title": "Id Verification Documents Needed" + }, + "identification_number_verification_document_needed": { + "type": "boolean", + "title": "Identification Number Verification Document Needed" + }, + "address_verification_document_needed": { + "type": "boolean", + "title": "Address Verification Document Needed" + }, + "address": { + "allOf": [ + { + "$ref": "#/components/schemas/ISOAddress" + } + ], + "title": "Address", + "description": "Address object" + }, + "citizenship_country": { + "type": "string", + "title": "Citizenship Country", + "description": "The applicant's citizenship country in ISO-3166 Alpha-2 format. **Note:** This field will be made mandatory in a future release.", + "default": "US" + } + }, + "type": "object", + "required": [ + "id", + "time_created", + "updated_at", + "phone_number", + "agreement_consent", + "email", + "status", + "id_verification_documents_needed", + "identification_number_verification_document_needed", + "address_verification_document_needed", + "address" + ], + "title": "InternationalApplication" + }, + "InternationalApplicationRequest": { + "properties": { + "identification_number": { + "type": "string", + "title": "Identification Number", + "description": "Applicant's Social Security Number" + }, + "name": { + "allOf": [ + { + "$ref": "#/components/schemas/Name" + } + ], + "title": "Name", + "description": "Applicant's full name" + }, + "email": { + "type": "string", + "format": "email", + "title": "Email", + "description": "Applicant's email address" + }, + "date_of_birth": { + "type": "string", + "format": "date", + "title": "Date Of Birth", + "description": "Applicant's date of birth" + }, + "investment_profile": { + "$ref": "#/components/schemas/InvestmentProfile" + }, + "agreement_consent": { + "allOf": [ + { + "$ref": "#/components/schemas/AgreementConsent" + } + ], + "title": "Agreement Consent", + "description": "Consent object for agreements" + }, + "originally_onboarded_at": { + "type": "string", + "format": "date-time", + "title": "Originally Onboarded At", + "description": "Original onboarding time of applicant" + }, + "identification_type": { + "allOf": [ + { + "$ref": "#/components/schemas/ApplicationIdentificationType" + } + ], + "description": "Type type of identification provided in the `identification_number` field. The options are \n * `SSN`: Social security number\n * `TIN`: Tax ID number\n * `DRIVERS_LICENSE`: A driver's license number\n * `PASSPORT`: A passport number \n\n **Note:** This field will be made mandatory in a future release. Currently defaults to `SSN`.", + "default": "SSN" + }, + "address": { + "allOf": [ + { + "$ref": "#/components/schemas/ISOAddress" + } + ], + "title": "Address", + "description": "Address object" + }, + "phone_number": { + "type": "string", + "title": "Phone Number", + "description": "Applicant's phone number. **Note**: It will be required to include country codes in accordance to the E.164 spec in a future release, or `^\\+[1-9]\\d{1,14}$`.", + "default_region": "US" + }, + "citizenship_country": { + "type": "string", + "title": "Citizenship Country", + "description": "The applicant's citizenship country in ISO-3166 Alpha-2 format. **Note:** This field will be made mandatory in a future release.", + "default": "US" + } + }, + "type": "object", + "required": [ + "identification_number", + "name", + "email", + "date_of_birth", + "investment_profile", + "agreement_consent", + "address", + "phone_number" + ], + "title": "InternationalApplicationRequest" + }, + "InvestmentProfile": { + "oneOf": [ + { + "$ref": "#/components/schemas/EmployedInvestmentProfile" + }, + { + "$ref": "#/components/schemas/IndependentInvestmentProfile" + }, + { + "$ref": "#/components/schemas/RetiredInvestmentProfile" + }, + { + "$ref": "#/components/schemas/StudentInvestmentProfile" + }, + { + "$ref": "#/components/schemas/UnemployedInvestmentProfile" + } + ], + "title": "InvestmentProfile", + "description": "Investment profile contains information required by FINRA Suitability Rule 2111", + "discriminator": { + "propertyName": "employment_status", + "mapping": { + "EMPLOYED": "#/components/schemas/EmployedInvestmentProfile", + "INDEPENDENT": "#/components/schemas/IndependentInvestmentProfile", + "RETIRED": "#/components/schemas/RetiredInvestmentProfile", + "STUDENT": "#/components/schemas/StudentInvestmentProfile", + "UNEMPLOYED": "#/components/schemas/UnemployedInvestmentProfile" + } + } + }, + "ListAccountsResponse": { + "properties": { + "offset": { + "type": "integer", + "title": "Offset" + }, + "count": { + "type": "integer", + "title": "Count" + }, + "items": { + "items": { + "$ref": "#/components/schemas/Account" + }, + "type": "array", + "title": "Items", + "description": "Customer accounts" + }, + "object_type": { + "type": "string", + "title": "Object Type", + "default": "List" + } + }, + "type": "object", + "required": [ + "offset", + "count", + "items" + ], + "title": "ListAccountsResponse", + "description": "Generic models are only supported in pydantic for python 3.7+, so until then\nitems will be of type Any. As such, this class needs to be subclassed\nand its item field overridden in it using the proper type." + }, + "ListCounterpartiesResponse": { + "properties": { + "prev_page": { + "type": "string", + "title": "Prev Page" + }, + "next_page": { + "type": "string", + "title": "Next Page" + }, + "items": { + "items": { + "$ref": "#/components/schemas/Counterparty" + }, + "type": "array", + "title": "Items" + }, + "object_type": { + "type": "string", + "title": "Object Type", + "default": "CursorList" + } + }, + "type": "object", + "required": [ + "items" + ], + "title": "ListCounterpartiesResponse", + "description": "Base class for cursor_list responses from the Partner API" + }, + "ListPortalsResponse": { + "properties": { + "count": { + "type": "integer", + "title": "Count" + }, + "portals": { + "items": { + "$ref": "#/components/schemas/Portal" + }, + "type": "array", + "minItems": 0, + "title": "Portals" + }, + "object_type": { + "type": "string", + "title": "Object Type", + "default": "List" + } + }, + "type": "object", + "required": [ + "count", + "portals" + ], + "title": "ListPortalsResponse" + }, + "LoginInput": { + "properties": { + "username": { + "type": "string", + "maxLength": 128, + "title": "Username" + }, + "password": { + "type": "string", + "maxLength": 128, + "title": "Password" + } + }, + "type": "object", + "required": [ + "username", + "password" + ], + "title": "LoginInput" + }, + "LoginResponse": { + "properties": { + "token": { + "type": "string", + "title": "Token" + }, + "expires": { + "type": "string", + "format": "date-time", + "title": "Expires" + } + }, + "type": "object", + "required": [ + "token", + "expires" + ], + "title": "LoginResponse" + }, + "MinimalPhysicalCardOrderResponse": { + "properties": { + "card_id": { + "type": "string", + "format": "uuid", + "title": "Card Id" + }, + "card_order_id": { + "type": "string", + "format": "uuid", + "title": "Card Order Id" + }, + "status": { + "$ref": "#/components/schemas/PhysicalCardOrderStatus" + } + }, + "type": "object", + "required": [ + "card_order_id", + "status" + ], + "title": "MinimalPhysicalCardOrderResponse" + }, + "MonthlyTransactions": { + "type": "string", + "enum": [ + "5_OR_LESS", + "BETWEEN_5_AND_15", + "15_OR_MORE" + ], + "title": "MonthlyTransactions", + "description": "An enumeration." + }, + "Name": { + "properties": { + "first_name": { + "type": "string", + "maxLength": 50, + "title": "First Name", + "description": "First Name" + }, + "middle_name": { + "type": "string", + "maxLength": 50, + "title": "Middle Name", + "description": "Middle Name" + }, + "last_name": { + "type": "string", + "maxLength": 50, + "title": "Last Name", + "description": "Last Name" + } + }, + "type": "object", + "required": [ + "first_name", + "last_name" + ], + "title": "Name" + }, + "OnUsJikoAccountCounterparty": { + "properties": { + "id": { + "type": "string", + "format": "uuid", + "title": "Id" + }, + "type": { + "type": "string", + "enum": [ + "JIKO_ACCOUNT" + ], + "title": "Type" + } + }, + "type": "object", + "required": [ + "id", + "type" + ], + "title": "OnUsJikoAccountCounterparty" + }, + "OnUsTransactionDetails": { + "properties": { + "on_us_transfer_id": { + "type": "string", + "title": "On Us Transfer Id" + }, + "on_us_transfer_type": { + "type": "string", + "title": "On Us Transfer Type" + }, + "source": { + "type": "string", + "title": "Source" + }, + "target": { + "type": "string", + "title": "Target" + } + }, + "type": "object", + "required": [ + "on_us_transfer_id", + "on_us_transfer_type" + ], + "title": "OnUsTransactionDetails" + }, + "OnUsTransfer": { + "properties": { + "id": { + "type": "string", + "format": "uuid", + "title": "Id" + }, + "status": { + "$ref": "#/components/schemas/OnUsTransferStatus" + }, + "reason": { + "$ref": "#/components/schemas/TransferStateReason" + }, + "transfer": { + "$ref": "#/components/schemas/OnUsTransferDetails" + }, + "fees": { + "items": { + "$ref": "#/components/schemas/Fee" + }, + "type": "array", + "title": "Fees" + } + }, + "type": "object", + "required": [ + "id", + "status", + "transfer", + "fees" + ], + "title": "OnUsTransfer" + }, + "OnUsTransferDetails": { + "oneOf": [ + { + "$ref": "#/components/schemas/CustomerFundingTransferResponse" + }, + { + "$ref": "#/components/schemas/CustomerDefundingTransferResponse" + }, + { + "$ref": "#/components/schemas/InternalReallocationTransferResponse" + } + ], + "title": "OnUsTransferDetails", + "discriminator": { + "propertyName": "type", + "mapping": { + "PARTNER_CUSTOMER_FUNDING": "#/components/schemas/CustomerFundingTransferResponse", + "PARTNER_CUSTOMER_DEFUNDING": "#/components/schemas/CustomerDefundingTransferResponse", + "INTERNAL_REALLOCATION": "#/components/schemas/InternalReallocationTransferResponse" + } + } + }, + "OnUsTransferDetailsRequest": { + "oneOf": [ + { + "$ref": "#/components/schemas/CustomerFundingTransferRequest" + }, + { + "$ref": "#/components/schemas/CustomerDefundingTransferRequest" + }, + { + "$ref": "#/components/schemas/InternalReallocationTransferRequest" + } + ], + "title": "OnUsTransferDetailsRequest", + "discriminator": { + "propertyName": "type", + "mapping": { + "PARTNER_CUSTOMER_FUNDING": "#/components/schemas/CustomerFundingTransferRequest", + "PARTNER_CUSTOMER_DEFUNDING": "#/components/schemas/CustomerDefundingTransferRequest", + "INTERNAL_REALLOCATION": "#/components/schemas/InternalReallocationTransferRequest" + } + } + }, + "OnUsTransferEvent": { + "properties": { + "event_id": { + "type": "string", + "format": "uuid", + "title": "Event Id" + }, + "timestamp": { + "type": "string", + "format": "date-time", + "title": "Timestamp" + }, + "payload": { + "$ref": "#/components/schemas/OnUsTransferPayload" + }, + "event_type": { + "type": "string", + "enum": [ + "transfers.on-us.success", + "transfers.on-us.processing", + "transfers.on-us.rejected" + ], + "title": "Event Type" + } + }, + "type": "object", + "required": [ + "event_id", + "timestamp", + "payload", + "event_type" + ], + "title": "OnUsTransferEvent", + "description": "The schema of items in `payload` should reflect any new additions or\nupdates made in `src/proto/partner_events/grpc_contract/contract.proto`\n\ne.g: ACHOutgoingPayload\n\n`PartnerEvent` serialization could fail otherwise." + }, + "OnUsTransferPayload": { + "properties": { + "on_us_id": { + "type": "string", + "format": "uuid", + "title": "On Us Id" + }, + "origin_account_id": { + "type": "string", + "format": "uuid", + "title": "Origin Account Id" + }, + "destination_account_id": { + "type": "string", + "format": "uuid", + "title": "Destination Account Id" + } + }, + "type": "object", + "required": [ + "on_us_id", + "origin_account_id", + "destination_account_id" + ], + "title": "OnUsTransferPayload" + }, + "OnUsTransferStatus": { + "type": "string", + "enum": [ + "PENDING", + "COMPLETED", + "REJECTED" + ], + "title": "OnUsTransferStatus", + "description": "An enumeration." + }, + "Order": { + "type": "string", + "enum": [ + "desc", + "asc" + ], + "title": "Order", + "description": "An enumeration." + }, + "OutgoingWireEvent": { + "properties": { + "event_id": { + "type": "string", + "format": "uuid", + "title": "Event Id" + }, + "timestamp": { + "type": "string", + "format": "date-time", + "title": "Timestamp" + }, + "payload": { + "$ref": "#/components/schemas/WireOutgoingPayload" + }, + "event_type": { + "type": "string", + "enum": [ + "transfers.wire.out.success", + "transfers.wire.out.processing", + "transfers.wire.out.rejected" + ], + "title": "Event Type" + } + }, + "type": "object", + "required": [ + "event_id", + "timestamp", + "payload", + "event_type" + ], + "title": "OutgoingWireEvent", + "description": "The schema of items in `payload` should reflect any new additions or\nupdates made in `src/proto/partner_events/grpc_contract/contract.proto`\n\ne.g: ACHOutgoingPayload\n\n`PartnerEvent` serialization could fail otherwise." + }, + "PEMEncodedPublicKey": { + "type": "string", + "title": "PEMEncodedPublicKey" + }, + "PartnerEvent": { + "properties": { + "event": { + "$ref": "#/components/schemas/EventDetails" + }, + "delivery_attempts": { + "items": { + "$ref": "#/components/schemas/DeliveryAttemptDetails" + }, + "type": "array", + "title": "Delivery Attempts" + } + }, + "type": "object", + "required": [ + "event", + "delivery_attempts" + ], + "title": "PartnerEvent" + }, + "PhysicalCardOrder": { + "properties": { + "name_on_card": { + "type": "string", + "maxLength": 100, + "title": "Name On Card", + "description": "Card holder's full name. Should be a maximum of 26 characters." + }, + "shipping_address": { + "$ref": "#/components/schemas/ShippingAddress" + } + }, + "type": "object", + "required": [ + "name_on_card", + "shipping_address" + ], + "title": "PhysicalCardOrder" + }, + "PhysicalCardOrderListResponse": { + "properties": { + "prev_page": { + "type": "string", + "title": "Prev Page" + }, + "next_page": { + "type": "string", + "title": "Next Page" + }, + "items": { + "items": { + "$ref": "#/components/schemas/MinimalPhysicalCardOrderResponse" + }, + "type": "array", + "title": "Items" + }, + "object_type": { + "type": "string", + "title": "Object Type", + "default": "CursorList" + } + }, + "type": "object", + "required": [ + "items" + ], + "title": "PhysicalCardOrderListResponse", + "description": "Base class for cursor_list responses from the Partner API" + }, + "PhysicalCardOrderResponse": { + "properties": { + "card_id": { + "type": "string", + "format": "uuid", + "title": "Card Id" + }, + "card_order_id": { + "type": "string", + "format": "uuid", + "title": "Card Order Id" + }, + "status": { + "$ref": "#/components/schemas/PhysicalCardOrderStatus" + }, + "name_on_card": { + "type": "string", + "title": "Name On Card" + }, + "shipping_address": { + "$ref": "#/components/schemas/ShippingAddress" + } + }, + "type": "object", + "required": [ + "card_order_id", + "status", + "name_on_card", + "shipping_address" + ], + "title": "PhysicalCardOrderResponse" + }, + "PhysicalCardOrderStatus": { + "type": "string", + "enum": [ + "INITIAL", + "CARD_CREATED", + "ORDERED", + "RECEIVED" + ], + "title": "PhysicalCardOrderStatus", + "description": "An enumeration." + }, + "PlaidCreateCounterparties": { + "properties": { + "public_token": { + "type": "string", + "title": "Public Token" + }, + "accounts": { + "items": { + "$ref": "#/components/schemas/PlaidCreateCounterpartiesAccount" + }, + "type": "array", + "title": "Accounts" + }, + "institution_id": { + "type": "string", + "title": "Institution Id" + } + }, + "type": "object", + "required": [ + "public_token", + "accounts" + ], + "title": "PlaidCreateCounterparties" + }, + "PlaidCreateCounterpartiesAccount": { + "properties": { + "id": { + "type": "string", + "title": "Id" + }, + "name": { + "type": "string", + "title": "Name" + }, + "mask": { + "type": "string", + "title": "Mask" + } + }, + "type": "object", + "required": [ + "id" + ], + "title": "PlaidCreateCounterpartiesAccount" + }, + "PlaidCreateCounterpartiesResponse": { + "properties": { + "items": { + "items": { + "$ref": "#/components/schemas/Counterparty" + }, + "type": "array", + "title": "Items" + } + }, + "type": "object", + "required": [ + "items" + ], + "title": "PlaidCreateCounterpartiesResponse" + }, + "PlaidLinkToken": { + "properties": { + "link_token": { + "type": "string", + "title": "Link Token" + }, + "expiration": { + "type": "string", + "title": "Expiration" + } + }, + "type": "object", + "required": [ + "link_token", + "expiration" + ], + "title": "PlaidLinkToken" + }, + "PlaidLinkTokenRequest": { + "properties": { + "client_name": { + "type": "string", + "minLength": 1, + "title": "Client Name" + }, + "redirect_uri": { + "type": "string", + "title": "Redirect Uri", + "description": "**Mutually exclusive with `android_package_name`**" + }, + "android_package_name": { + "type": "string", + "title": "Android Package Name", + "description": "**Mutually exclusive with `redirect_uri`**" + }, + "counterparty_id": { + "type": "string", + "format": "uuid", + "title": "Counterparty Id" + } + }, + "type": "object", + "required": [ + "client_name" + ], + "title": "PlaidLinkTokenRequest" + }, + "PlaidVerificationStatus": { + "type": "string", + "enum": [ + "PENDING_AUTOMATIC_VERIFICATION", + "PENDING_MANUAL_VERIFICATION", + "AUTOMATICALLY_VERIFIED", + "MANUALLY_VERIFIED", + "VERIFICATION_EXPIRED", + "VERIFICATION_FAILED" + ], + "title": "PlaidVerificationStatus", + "description": "An enumeration." + }, + "Portal": { + "properties": { + "id": { + "type": "string", + "format": "uuid", + "title": "Id" + }, + "jiko_account_id": { + "type": "string", + "format": "uuid", + "title": "Jiko Account Id" + }, + "routing_number": { + "type": "string", + "title": "Routing Number", + "description": "Routing number" + }, + "account_number": { + "type": "string", + "title": "Account Number", + "description": "Account number" + }, + "status": { + "allOf": [ + { + "$ref": "#/components/schemas/PortalStatus" + } + ], + "description": "Portal status" + }, + "name": { + "type": "string", + "title": "Name", + "description": "Portal name" + } + }, + "type": "object", + "required": [ + "id", + "jiko_account_id", + "routing_number", + "account_number", + "status", + "name" + ], + "title": "Portal" + }, + "PortalCreateRequest": { + "properties": { + "name": { + "type": "string", + "maxLength": 128, + "title": "Name" + } + }, + "type": "object", + "required": [ + "name" + ], + "title": "PortalCreateRequest" + }, + "PortalStatus": { + "type": "string", + "enum": [ + "OPEN", + "CLOSED" + ], + "title": "PortalStatus", + "description": "An enumeration." + }, + "PortalUpdateRequest": { + "properties": { + "name": { + "type": "string", + "maxLength": 50, + "title": "Name", + "description": "Portal name" + } + }, + "type": "object", + "required": [ + "name" + ], + "title": "PortalUpdateRequest" + }, + "Portfolio": { + "properties": { + "securities": { + "items": { + "$ref": "#/components/schemas/Security" + }, + "type": "array", + "title": "Securities", + "description": "Securities currently held by the brokerage account" + }, + "cash": { + "allOf": [ + { + "$ref": "#/components/schemas/Amount" + } + ], + "title": "Cash", + "description": "Cash currently held in the brokerage account." + }, + "all_time_earnings": { + "allOf": [ + { + "$ref": "#/components/schemas/Amount" + } + ], + "title": "All Time Earnings", + "description": "All time portfolio earnings" + } + }, + "type": "object", + "required": [ + "securities", + "cash", + "all_time_earnings" + ], + "title": "Portfolio" + }, + "PublicKeyRequest": { + "properties": { + "public_key": { + "allOf": [ + { + "$ref": "#/components/schemas/PEMEncodedPublicKey" + } + ], + "title": "Public Key", + "description": "Single-use 4096-bit PEM-encoded RSA public-key in PKCS#1 or PKCS#1.5 format", + "min_bytes": 4096 + } + }, + "type": "object", + "required": [ + "public_key" + ], + "title": "PublicKeyRequest" + }, + "RelatedPartyApplicationRequest": { + "properties": { + "name": { + "$ref": "#/components/schemas/Name" + }, + "address": { + "$ref": "#/components/schemas/Address" + }, + "date_of_birth": { + "type": "string", + "title": "Date Of Birth" + }, + "identification_number": { + "$ref": "#/components/schemas/IndividualIdentificationNumber" + }, + "phone_number": { + "type": "string", + "title": "Phone Number" + }, + "title": { + "type": "string", + "title": "Title" + }, + "roles": { + "items": { + "$ref": "#/components/schemas/RelatedPartyRole" + }, + "type": "array" + }, + "ownership_percentage": { + "type": "string", + "title": "Ownership Percentage" + }, + "citizenship": { + "type": "string", + "title": "Citizenship" + }, + "email": { + "type": "string", + "title": "Email" + } + }, + "type": "object", + "title": "RelatedPartyApplicationRequest" + }, + "RelatedPartyApplicationResponse": { + "properties": { + "name": { + "$ref": "#/components/schemas/Name" + }, + "address": { + "$ref": "#/components/schemas/Address" + }, + "date_of_birth": { + "type": "string", + "title": "Date Of Birth" + }, + "identification_number": { + "$ref": "#/components/schemas/IndividualIdentificationNumberMasked" + }, + "phone_number": { + "type": "string", + "title": "Phone Number" + }, + "title": { + "type": "string", + "title": "Title" + }, + "roles": { + "items": { + "$ref": "#/components/schemas/RelatedPartyRole" + }, + "type": "array" + }, + "ownership_percentage": { + "type": "string", + "title": "Ownership Percentage" + }, + "citizenship": { + "type": "string", + "title": "Citizenship" + }, + "email": { + "type": "string", + "title": "Email" + }, + "id": { + "type": "string", + "format": "uuid", + "title": "Id" + } + }, + "type": "object", + "required": [ + "id" + ], + "title": "RelatedPartyApplicationResponse" + }, + "RelatedPartyRole": { + "type": "string", + "enum": [ + "CONTROL_PERSON", + "AUTHORIZED_REPRESENTATIVE" + ], + "title": "RelatedPartyRole", + "description": "An enumeration." + }, + "RequestedAmount": { + "properties": { + "amount_usdc": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Amount USDC" + }, + "type": { + "type": "string", + "enum": [ + "REQUESTED_AMOUNT" + ], + "title": "Type" + } + }, + "type": "object", + "required": [ + "amount_usdc", + "type" + ], + "title": "Requested amount", + "description": "Creates a transfer for a specific, requested amount." + }, + "RetiredInvestmentProfile": { + "properties": { + "income": { + "allOf": [ + { + "$ref": "#/components/schemas/AnnualPersonalIncome" + } + ], + "description": "Applicant's estimated annual income in USD." + }, + "net_worth": { + "allOf": [ + { + "$ref": "#/components/schemas/AveragePersonalNetWorth" + } + ], + "description": "Applicant's estimated average personal net worth in USD." + }, + "bd_association": { + "type": "string", + "maxLength": 200, + "title": "Bd Association", + "description": "Name of broker-dealer association or employment. Disclosure is required by law if applicable, else, leave empty" + }, + "director_policy_maker_of_company": { + "type": "string", + "maxLength": 200, + "title": "Director Policy Maker Of Company", + "description": "Name of company where customer is director or policy maker. Disclosure is required by law if applicable, otherwise, leave empty" + }, + "occupation": { + "type": "string", + "maxLength": 200, + "title": "Occupation", + "description": "Applicant's occupation" + }, + "employment_status": { + "type": "string", + "enum": [ + "RETIRED" + ], + "title": "Employment Status" + } + }, + "type": "object", + "required": [ + "income", + "net_worth", + "employment_status" + ], + "title": "RetiredInvestmentProfile" + }, + "RiskCategory": { + "type": "string", + "enum": [ + "INTERNET_GAMBLING", + "CANNABIS", + "CRYPTOCURRENCY", + "CROWDFUNDING", + "FINANCIAL_OR_MONEY_MOVEMENT" + ], + "title": "RiskCategory", + "description": "An enumeration." + }, + "RiskInfo": { + "properties": { + "risk_categories": { + "items": { + "$ref": "#/components/schemas/RiskCategory" + }, + "type": "array" + }, + "company_mission": { + "type": "string", + "title": "Company Mission" + }, + "has_current_enforcement_actions": { + "type": "boolean", + "title": "Has Current Enforcement Actions" + }, + "primary_regulator": { + "type": "string", + "title": "Primary Regulator" + }, + "business_activity_location": { + "$ref": "#/components/schemas/BusinessActivityLocation" + }, + "source_of_funds": { + "$ref": "#/components/schemas/SourceOfFunds" + }, + "account_usage": { + "$ref": "#/components/schemas/AccountUsage" + }, + "annual_revenue": { + "$ref": "#/components/schemas/AnnualRevenue" + }, + "monthly_transactions": { + "$ref": "#/components/schemas/MonthlyTransactions" + }, + "first_month_deposit": { + "$ref": "#/components/schemas/FirstMonthDepositAmount" + } + }, + "type": "object", + "title": "RiskInfo" + }, + "Security": { + "properties": { + "tradable_id": { + "type": "string", + "format": "uuid", + "title": "Tradable Id" + }, + "security_type": { + "$ref": "#/components/schemas/SecurityType" + }, + "quantity": { + "type": "integer", + "exclusiveMinimum": 0, + "title": "Quantity", + "description": "Number of securities" + }, + "market_value": { + "allOf": [ + { + "$ref": "#/components/schemas/Amount" + } + ], + "title": "Market Value", + "description": "The current market value of the securities" + }, + "external_id": { + "type": "string", + "title": "External Id" + }, + "maturity_date": { + "type": "string", + "format": "date", + "title": "Maturity Date", + "description": "Due date of the fixed income instrument" + }, + "yield_to_maturity": { + "allOf": [ + { + "$ref": "#/components/schemas/Decimal" + } + ], + "title": "Yield To Maturity", + "description": "Rate of return if the security is held to the maturity date" + }, + "ask": { + "allOf": [ + { + "$ref": "#/components/schemas/Decimal" + } + ], + "title": "Ask", + "description": "The current price the account is willing to sell the security at" + }, + "bid": { + "allOf": [ + { + "$ref": "#/components/schemas/Decimal" + } + ], + "title": "Bid", + "description": "The current price the market is willing to pay for the security" + }, + "description": { + "type": "string", + "title": "Description", + "description": "A description of the security" + } + }, + "type": "object", + "required": [ + "tradable_id", + "security_type", + "quantity", + "market_value", + "external_id", + "maturity_date", + "yield_to_maturity", + "ask", + "bid", + "description" + ], + "title": "Security" + }, + "SecurityType": { + "type": "string", + "enum": [ + "FIXED_INCOME", + "OTHER" + ], + "title": "SecurityType", + "description": "An enumeration." + }, + "SettableCardStatus": { + "type": "string", + "enum": [ + "OPEN", + "LOCKED" + ], + "title": "SettableCardStatus", + "description": "An enumeration." + }, + "ShippingAddress": { + "properties": { + "street_address": { + "type": "string", + "maxLength": 100, + "title": "Street Address", + "description": "Street address" + }, + "street_address2": { + "type": "string", + "maxLength": 100, + "title": "Street Address2", + "description": "Apartment, Suite, Box number, etc." + }, + "city": { + "type": "string", + "maxLength": 100, + "title": "City", + "description": "City / Town" + }, + "postal_code": { + "type": "string", + "maxLength": 10, + "title": "Postal Code", + "description": "Postal code / ZIP code" + }, + "state": { + "allOf": [ + { + "$ref": "#/components/schemas/State" + } + ], + "description": "State (Postal Abbreviations. Example: \"AL\", \"NJ\", \"OH\")" + }, + "country": { + "allOf": [ + { + "$ref": "#/components/schemas/Country" + } + ], + "description": "A ISO-3166 Alpha-2 country code (Abbreviated. Example: \"US\")" + } + }, + "type": "object", + "required": [ + "street_address", + "city", + "postal_code", + "state", + "country" + ], + "title": "ShippingAddress" + }, + "SourceOfFunds": { + "type": "string", + "enum": [ + "INTERNAL_FUNDS", + "CLIENT_OR_EXTERNAL_FUNDS" + ], + "title": "SourceOfFunds", + "description": "An enumeration." + }, + "State": { + "type": "string", + "enum": [ + "AA", + "AE", + "AP", + "AK", + "AL", + "AR", + "AZ", + "CA", + "CO", + "CT", + "DC", + "DE", + "FL", + "GA", + "GU", + "HI", + "IA", + "ID", + "IL", + "IN", + "KS", + "KY", + "LA", + "MA", + "MD", + "ME", + "MI", + "MN", + "MO", + "MS", + "MT", + "NC", + "ND", + "NE", + "NH", + "NJ", + "NM", + "NV", + "NY", + "OH", + "OK", + "OR", + "PA", + "PR", + "RI", + "SC", + "SD", + "TN", + "TX", + "UT", + "VA", + "VI", + "VT", + "WA", + "WI", + "WV", + "WY" + ], + "title": "State", + "description": "An enumeration." + }, + "Statement": { + "properties": { + "id": { + "type": "string", + "format": "uuid", + "title": "Id" + }, + "jiko_account_id": { + "type": "string", + "format": "uuid", + "title": "Jiko Account Id" + }, + "type": { + "$ref": "#/components/schemas/StatementType" + }, + "key": { + "type": "string", + "title": "Key" + }, + "pdf_download_url": { + "type": "string", + "maxLength": 2083, + "minLength": 1, + "format": "uri", + "title": "Pdf Download Url" + }, + "time_created": { + "type": "string", + "format": "date-time", + "title": "Time Created" + } + }, + "type": "object", + "required": [ + "id", + "jiko_account_id", + "type", + "key", + "pdf_download_url", + "time_created" + ], + "title": "Statement" + }, + "StatementListResponse": { + "properties": { + "prev_page": { + "type": "string", + "title": "Prev Page" + }, + "next_page": { + "type": "string", + "title": "Next Page" + }, + "items": { + "items": { + "$ref": "#/components/schemas/Statement" + }, + "type": "array", + "title": "Items" + }, + "object_type": { + "type": "string", + "title": "Object Type", + "default": "CursorList" + } + }, + "type": "object", + "required": [ + "items" + ], + "title": "StatementListResponse", + "description": "Base class for cursor_list responses from the Partner API" + }, + "StatementType": { + "type": "string", + "enum": [ + "1099B", + "1099INT", + "BANK", + "BROKERAGE" + ], + "title": "StatementType", + "description": "An enumeration." + }, + "StudentInvestmentProfile": { + "properties": { + "income": { + "allOf": [ + { + "$ref": "#/components/schemas/AnnualPersonalIncome" + } + ], + "description": "Applicant's estimated annual income in USD." + }, + "net_worth": { + "allOf": [ + { + "$ref": "#/components/schemas/AveragePersonalNetWorth" + } + ], + "description": "Applicant's estimated average personal net worth in USD." + }, + "bd_association": { + "type": "string", + "maxLength": 200, + "title": "Bd Association", + "description": "Name of broker-dealer association or employment. Disclosure is required by law if applicable, else, leave empty" + }, + "director_policy_maker_of_company": { + "type": "string", + "maxLength": 200, + "title": "Director Policy Maker Of Company", + "description": "Name of company where customer is director or policy maker. Disclosure is required by law if applicable, otherwise, leave empty" + }, + "occupation": { + "type": "string", + "maxLength": 200, + "title": "Occupation", + "description": "Applicant's occupation" + }, + "employment_status": { + "type": "string", + "enum": [ + "STUDENT" + ], + "title": "Employment Status" + } + }, + "type": "object", + "required": [ + "income", + "net_worth", + "employment_status" + ], + "title": "StudentInvestmentProfile" + }, + "Subscription": { + "properties": { + "description": { + "type": "string", + "title": "Description", + "description": "A description of the webhook's intended use.", + "default": "" + }, + "events": { + "items": { + "type": "string" + }, + "type": "array", + "minItems": 1, + "title": "Events", + "description": "Which types of events this webhook should be invoked for." + }, + "url": { + "type": "string", + "maxLength": 2083, + "minLength": 1, + "format": "uri", + "title": "Url", + "description": "The webhook URL to invoke." + }, + "id": { + "type": "string", + "format": "uuid", + "title": "Id" + }, + "time_created": { + "type": "string", + "format": "date-time", + "title": "Time Created" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "title": "Updated At" + }, + "status": { + "$ref": "#/components/schemas/SubscriptionStatus" + } + }, + "type": "object", + "required": [ + "events", + "url", + "id", + "time_created", + "updated_at", + "status" + ], + "title": "Subscription" + }, + "SubscriptionStatus": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ], + "title": "SubscriptionStatus", + "description": "An enumeration." + }, + "Trade": { + "properties": { + "id": { + "type": "string", + "format": "uuid", + "title": "Id" + }, + "trade_datetime": { + "type": "string", + "format": "date-time", + "title": "Trade Datetime" + }, + "settled_date": { + "type": "string", + "format": "date", + "title": "Settled Date" + }, + "is_settled": { + "type": "boolean", + "title": "Is Settled" + }, + "activity": { + "$ref": "#/components/schemas/TradeActivity" + }, + "cusip": { + "type": "string", + "title": "Cusip" + }, + "description": { + "type": "string", + "title": "Description" + }, + "notional": { + "$ref": "#/components/schemas/Amount" + }, + "quantity": { + "type": "integer", + "title": "Quantity" + }, + "price": { + "$ref": "#/components/schemas/Decimal" + }, + "maturity_date": { + "type": "string", + "format": "date", + "title": "Maturity Date" + }, + "jiko_account_id": { + "type": "string", + "format": "uuid", + "title": "Jiko Account Id" + }, + "yield_to_maturity": { + "$ref": "#/components/schemas/Decimal" + }, + "tradable_id": { + "type": "string", + "title": "Tradable Id" + } + }, + "type": "object", + "required": [ + "id", + "trade_datetime", + "is_settled", + "activity", + "cusip", + "description", + "notional", + "quantity", + "price", + "maturity_date", + "jiko_account_id", + "yield_to_maturity", + "tradable_id" + ], + "title": "Trade" + }, + "TradeActivity": { + "type": "string", + "enum": [ + "BUY", + "SELL", + "MATURITY" + ], + "title": "TradeActivity", + "description": "An enumeration." + }, + "TradeConfirmation": { + "properties": { + "url": { + "type": "string", + "maxLength": 2083, + "minLength": 1, + "format": "uri", + "title": "Url" + } + }, + "type": "object", + "required": [ + "url" + ], + "title": "TradeConfirmation", + "example": { + "url": "https://example.com/path-to-trade-confirmation-pdf" + } + }, + "TradeListResponse": { + "properties": { + "prev_page": { + "type": "string", + "title": "Prev Page" + }, + "next_page": { + "type": "string", + "title": "Next Page" + }, + "items": { + "items": { + "$ref": "#/components/schemas/Trade" + }, + "type": "array", + "title": "Items" + }, + "object_type": { + "type": "string", + "title": "Object Type", + "default": "CursorList" + } + }, + "type": "object", + "required": [ + "items" + ], + "title": "TradeListResponse", + "description": "Base class for cursor_list responses from the Partner API" + }, + "Transaction": { + "properties": { + "id": { + "type": "string", + "format": "uuid", + "title": "Id" + }, + "jiko_account_id": { + "type": "string", + "format": "uuid", + "title": "Jiko Account Id" + }, + "amount": { + "$ref": "#/components/schemas/Amount" + }, + "timestamp": { + "type": "string", + "format": "date-time", + "title": "Timestamp" + }, + "status": { + "$ref": "#/components/schemas/TransactionStatus" + }, + "details": { + "$ref": "#/components/schemas/TransactionDetails" + } + }, + "type": "object", + "required": [ + "id", + "jiko_account_id", + "amount", + "timestamp", + "status", + "details" + ], + "title": "Transaction" + }, + "TransactionDetails": { + "properties": { + "transaction_type": { + "$ref": "#/components/schemas/TransactionType" + }, + "title": { + "type": "string", + "title": "Title" + }, + "sub_title": { + "type": "string", + "title": "Sub Title" + }, + "transaction_type_title": { + "type": "string", + "title": "Transaction Type Title" + }, + "card_transaction": { + "$ref": "#/components/schemas/CardTransactionDetails" + }, + "ach_transaction": { + "$ref": "#/components/schemas/ACHTransactionDetails" + }, + "wire_transaction": { + "$ref": "#/components/schemas/WireTransactionDetails" + }, + "wire_fee_transaction": { + "$ref": "#/components/schemas/WireTransactionDetails" + }, + "cash_back_transaction": { + "$ref": "#/components/schemas/CashBackTransactionDetails" + }, + "on_us_transaction": { + "$ref": "#/components/schemas/OnUsTransactionDetails" + } + }, + "type": "object", + "required": [ + "transaction_type" + ], + "title": "TransactionDetails" + }, + "TransactionListResponse": { + "properties": { + "prev_page": { + "type": "string", + "title": "Prev Page" + }, + "next_page": { + "type": "string", + "title": "Next Page" + }, + "items": { + "items": { + "$ref": "#/components/schemas/Transaction" + }, + "type": "array", + "title": "Items" + }, + "object_type": { + "type": "string", + "title": "Object Type", + "default": "CursorList" + } + }, + "type": "object", + "required": [ + "items" + ], + "title": "TransactionListResponse", + "description": "Base class for cursor_list responses from the Partner API" + }, + "TransactionLocation": { + "properties": { + "street_address": { + "type": "string", + "title": "Street Address" + }, + "city": { + "type": "string", + "title": "City" + }, + "state": { + "type": "string", + "title": "State" + }, + "country": { + "type": "string", + "title": "Country" + } + }, + "type": "object", + "required": [ + "street_address", + "city", + "country" + ], + "title": "TransactionLocation" + }, + "TransactionStatus": { + "type": "string", + "enum": [ + "PENDING", + "COMPLETED" + ], + "title": "TransactionStatus", + "description": "An enumeration." + }, + "TransactionType": { + "type": "string", + "enum": [ + "CARD", + "CASH_BACK", + "ACH", + "WIRE", + "WIRE_FEE", + "GENERIC", + "ON_US" + ], + "title": "TransactionType", + "description": "An enumeration." + }, + "TransferStateReason": { + "type": "string", + "enum": [ + "ACCOUNT_UNAVAILABLE", + "CANCELED", + "INSUFFICIENT_FUNDS", + "INVALID_CURRENCY", + "INVALID_TRANSFER", + "SANCTION_SCREEN_FAILED" + ], + "title": "TransferStateReason", + "description": "An enumeration." + }, + "UnemployedInvestmentProfile": { + "properties": { + "income": { + "allOf": [ + { + "$ref": "#/components/schemas/AnnualPersonalIncome" + } + ], + "description": "Applicant's estimated annual income in USD." + }, + "net_worth": { + "allOf": [ + { + "$ref": "#/components/schemas/AveragePersonalNetWorth" + } + ], + "description": "Applicant's estimated average personal net worth in USD." + }, + "bd_association": { + "type": "string", + "maxLength": 200, + "title": "Bd Association", + "description": "Name of broker-dealer association or employment. Disclosure is required by law if applicable, else, leave empty" + }, + "director_policy_maker_of_company": { + "type": "string", + "maxLength": 200, + "title": "Director Policy Maker Of Company", + "description": "Name of company where customer is director or policy maker. Disclosure is required by law if applicable, otherwise, leave empty" + }, + "occupation": { + "type": "string", + "maxLength": 200, + "title": "Occupation", + "description": "Applicant's occupation" + }, + "employment_status": { + "type": "string", + "enum": [ + "UNEMPLOYED" + ], + "title": "Employment Status" + } + }, + "type": "object", + "required": [ + "income", + "net_worth", + "employment_status" + ], + "title": "UnemployedInvestmentProfile" + }, + "UpdateSubscriptionRequest": { + "properties": { + "description": { + "type": "string", + "title": "Description", + "description": "A description of the webhook's intended use.", + "default": "" + }, + "events": { + "items": { + "type": "string" + }, + "type": "array", + "minItems": 1, + "title": "Events", + "description": "Which types of events this webhook should be invoked for." + }, + "url": { + "type": "string", + "maxLength": 2083, + "minLength": 1, + "format": "uri", + "title": "Url", + "description": "The webhook URL to invoke." + }, + "shared_secret": { + "type": "string", + "minLength": 16, + "title": "Shared Secret", + "description": "The shared secret used by the Partner API to sign requests made to the webhook. The shared secret needs to be minimum 16 characters long." + } + }, + "type": "object", + "title": "UpdateSubscriptionRequest" + }, + "UploadDocumentResponse": { + "properties": { + "success": { + "type": "boolean", + "title": "Success" + }, + "document_id": { + "type": "string", + "format": "uuid", + "title": "Document Id" + } + }, + "type": "object", + "required": [ + "success", + "document_id" + ], + "title": "UploadDocumentResponse" + }, + "ValidationError": { + "properties": { + "loc": { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + }, + "type": "array", + "title": "Location" + }, + "msg": { + "type": "string", + "title": "Message" + }, + "type": { + "type": "string", + "title": "Error Type" + } + }, + "type": "object", + "required": [ + "loc", + "msg", + "type" + ], + "title": "ValidationError" + }, + "VirtualCardResponse": { + "properties": { + "card_id": { + "type": "string", + "format": "uuid", + "title": "Card Id" + }, + "encrypted_pan": { + "type": "string", + "title": "Encrypted Pan" + }, + "encrypted_cvv": { + "type": "string", + "title": "Encrypted Cvv" + }, + "encrypted_expiration": { + "type": "string", + "title": "Encrypted Expiration" + } + }, + "type": "object", + "required": [ + "card_id", + "encrypted_pan", + "encrypted_cvv", + "encrypted_expiration" + ], + "title": "VirtualCardResponse" + }, + "WireCounterparty": { + "properties": { + "time_created": { + "type": "string", + "format": "date-time", + "title": "Time Created" + }, + "verification_type": { + "$ref": "#/components/schemas/ACHCounterpartyVerificationType" + }, + "status": { + "$ref": "#/components/schemas/ACHCounterpartyVerificationStatus" + }, + "account_number": { + "type": "string", + "title": "Account Number" + }, + "routing_number": { + "type": "string", + "title": "Routing Number" + }, + "name_on_account": { + "type": "string", + "title": "Name On Account" + }, + "account_type": { + "$ref": "#/components/schemas/ACHCounterpartyAccountType" + }, + "institution_name": { + "type": "string", + "title": "Institution Name" + } + }, + "type": "object", + "required": [ + "time_created", + "verification_type", + "status", + "account_number", + "routing_number", + "name_on_account", + "account_type", + "institution_name" + ], + "title": "WireCounterparty" + }, + "WireOutgoingPayload": { + "properties": { + "jiko_account_id": { + "type": "string", + "format": "uuid", + "title": "Jiko Account Id" + }, + "wire_id": { + "type": "string", + "format": "uuid", + "title": "Wire Id" + } + }, + "type": "object", + "required": [ + "jiko_account_id", + "wire_id" + ], + "title": "WireOutgoingPayload" + }, + "WireRequest": { + "properties": { + "counterparty_id": { + "type": "string", + "format": "uuid", + "title": "Counterparty Id" + }, + "amount_usdc": { + "type": "integer", + "title": "Amount Usdc", + "description": "The amount, in USD cents." + }, + "created_by": { + "type": "string", + "title": "Created By", + "description": "A string identifying the wire transfer originator." + }, + "description": { + "type": "string", + "title": "Description", + "description": "A description of the transfer, visible on statements." + }, + "wire_id": { + "type": "string", + "format": "uuid", + "title": "Wire Id", + "description": "The ID for this wire transfer, auto-generated if not provided." + } + }, + "type": "object", + "required": [ + "counterparty_id" + ], + "title": "WireRequest" + }, + "WireTransactionDetails": { + "properties": { + "reference_number": { + "type": "string", + "title": "Reference Number" + }, + "counterparty_name": { + "type": "string", + "title": "Counterparty Name" + }, + "wire_id": { + "type": "string", + "format": "uuid", + "title": "Wire Id" + } + }, + "type": "object", + "required": [ + "reference_number", + "counterparty_name" + ], + "title": "WireTransactionDetails" + } + }, + "securitySchemes": { + "HTTPBearer": { + "type": "http", + "scheme": "bearer" + } + } + }, + "tags": [ + { + "name": "Individuals", + "description": "Use these endpoints to initiate, manage, and complete KYC for Individuals. When an application has `status: “APPROVED”`, a [Customer](#tag/Customers/operation/get_customer_data_api_v1_customers__customer_id___get) is created for the Individual. Customers can have multiple [Accounts](#tag/Accounts/operation/list_customer_accounts_api_v1_customers__customer_id__jiko_accounts__get).\n" + }, + { + "name": "Businesses", + "description": "Use these endpoints to initiate, manage, and complete KYB for Businesses. When an application has `status: “APPROVED”`, a [Customer](#tag/Customers/operation/get_customer_data_api_v1_customers__customer_id___get) is created for the Business. Customers can have multiple [Accounts](#tag/Accounts/operation/list_customer_accounts_api_v1_customers__customer_id__jiko_accounts__get).\n" + }, + { + "name": "Accounts", + "description": "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.\n\n
\n\nIn the API interface, the Account object encapsulates both accounts and can be treated as a single account to deposit to or withdraw from.\n" + }, + { + "name": "Customers", + "description": "Use these endpoints to view and manage personal details for a Customer." + }, + { + "name": "Transactions", + "description": "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](#tag/Trades).\n" + }, + { + "name": "Trades", + "description": "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." + }, + { + "name": "Statements", + "description": "Use these endpoints to retrieve monthly statements for bank and brokerage accounts." + }, + { + "name": "Portals", + "description": "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. A single portal is created by default upon account creation." + }, + { + "name": "ACH", + "description": "Use these endpoints to create, view, and manage ACH Transfers." + }, + { + "name": "Wires", + "description": "Use this endpoint to initiate Wire Transfers." + }, + { + "name": "On-Us Transfers", + "description": "Use these endpoints to create and view On-Us (Book) Transfers between Jiko accounts." + }, + { + "name": "Counterparties", + "description": "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.\n" + }, + { + "name": "Counterparties: Plaid", + "description": "Use these endpoints to create and view Counterparties using Plaid." + }, + { + "name": "Manage Cards", + "description": "Use these endpoints to view and manage Card information." + }, + { + "name": "Physical Cards", + "description": "Use these endpoints to create, view, and manage Physical Debit Cards." + }, + { + "name": "Virtual Cards", + "description": "Use these endpoints to create, view, and manage Virtual Debit Cards." + }, + { + "name": "Security", + "description": "Use these endpoints to authenticate requests to the Jiko API." + }, + { + "name": "Sandbox", + "description": "Use these endpoints to initiate sandbox functionality." + }, + { + "name": "Subscriptions", + "description": "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." + }, + { + "name": "Events", + "description": "Use these endpoints to view Events." + }, + { + "name": "Health", + "description": "Use these endpoints to setup automatic health checks for the Partner API." + } + ], + "x-tagGroups": [ + { + "name": "Onboarding", + "tags": [ + "Individuals", + "Businesses" + ] + }, + { + "name": "Accounts", + "tags": [ + "Accounts", + "Customers", + "Transactions", + "Trades", + "Statements" + ] + }, + { + "name": "Transfers", + "tags": [ + "Portals", + "ACH", + "Wires", + "On-Us Transfers", + "Counterparties", + "Counterparties: Plaid" + ] + }, + { + "name": "Cards", + "tags": [ + "Manage Cards", + "Physical Cards", + "Virtual Cards" + ] + }, + { + "name": "Platform", + "tags": [ + "Health", + "Security", + "Sandbox", + "Subscriptions", + "Events" + ] + } + ] +} \ No newline at end of file diff --git a/sdks/db/cached-method-objects/from-custom-request_jiko.io.yaml b/sdks/db/cached-method-objects/from-custom-request_jiko.io.yaml new file mode 100644 index 0000000000..9e3819575c --- /dev/null +++ b/sdks/db/cached-method-objects/from-custom-request_jiko.io.yaml @@ -0,0 +1,2978 @@ +hash: f504925bf509b8fc53ac6ad0c17a906ae164257ecb3425761d3f213b4faaee3b +methodObjects: + - url: /health + method: statusCheck + httpMethod: get + tag: Health + typeScriptTag: health + description: Get Health Check + parameters: [] + responses: + - statusCode: '200' + description: '' + - url: /api/v1/customers/{customer_id}/jiko-accounts + method: listCustomerAccounts + httpMethod: get + tag: Accounts + typeScriptTag: accounts + description: List Customer Accounts + parameters: + - name: customerId + schema: string + required: true + description: '' + example: CUSTOMER_ID + - name: offset + schema: integer + required: false + description: '' + default: 0 + - name: limit + schema: integer + required: false + description: '' + default: 100 + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: >- + Generic models are only supported in pydantic for python 3.7+, so + until then + + items will be of type Any. As such, this class needs to be subclassed + + and its item field overridden in it using the proper type. + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id} + method: getSpecificAccount + httpMethod: get + tag: Accounts + typeScriptTag: accounts + description: Get Customer Account + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/customers/{customer_id}/transactions + method: listCustomerTransactions + httpMethod: get + tag: Transactions + typeScriptTag: transactions + description: List Customer Transactions + parameters: + - name: customerId + schema: string + required: true + description: '' + example: CUSTOMER_ID + - name: order + schema: string + required: false + description: Ordered by the transaction timestamp, descending by default. + - name: account[] + schema: array + required: false + description: '' + - name: filter[card] + schema: array + required: false + description: '' + - name: filter[portal] + schema: array + required: false + description: '' + - name: filter[types] + schema: array + required: false + description: '' + - name: timestampFrom + schema: string + required: false + description: '' + - name: timestampTo + schema: string + required: false + description: '' + - name: cursor + schema: string + required: false + description: '' + default: '' + - name: limit + schema: integer + required: false + description: '' + default: 30 + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: Base class for cursor_list responses from the Partner API + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/transactions + method: listForAccount + httpMethod: get + tag: Transactions + typeScriptTag: transactions + description: List Account Transactions + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: order + schema: string + required: false + description: Ordered by the transaction timestamp, descending by default. + - name: filter[card] + schema: array + required: false + description: '' + - name: filter[portal] + schema: array + required: false + description: '' + - name: filter[types] + schema: array + required: false + description: '' + - name: timestampFrom + schema: string + required: false + description: '' + - name: timestampTo + schema: string + required: false + description: '' + - name: cursor + schema: string + required: false + description: '' + default: '' + - name: limit + schema: integer + required: false + description: '' + default: 30 + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: Base class for cursor_list responses from the Partner API + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/transactions/{transaction_id} + method: getSpecificTransaction + httpMethod: get + tag: Transactions + typeScriptTag: transactions + description: Get Account Transaction + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: transactionId + schema: string + required: true + description: '' + example: TRANSACTION_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/customers/{customer_id}/trades + method: listCustomerTrades + httpMethod: get + tag: Trades + typeScriptTag: trades + description: List Customer Trades + parameters: + - name: customerId + schema: string + required: true + description: '' + example: CUSTOMER_ID + - name: account[] + schema: array + required: false + description: '' + - name: tradeDatetimeFrom + schema: string + required: false + description: '' + - name: tradeDatetimeTo + schema: string + required: false + description: '' + - name: cursor + schema: string + required: false + description: '' + default: '' + - name: limit + schema: integer + required: false + description: '' + default: 30 + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: Base class for cursor_list responses from the Partner API + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/trades + method: getAccountTransactions + httpMethod: get + tag: Trades + typeScriptTag: trades + description: List Account Trades + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: tradeDatetimeFrom + schema: string + required: false + description: '' + - name: tradeDatetimeTo + schema: string + required: false + description: '' + - name: cursor + schema: string + required: false + description: '' + default: '' + - name: limit + schema: integer + required: false + description: '' + default: 30 + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: Base class for cursor_list responses from the Partner API + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/trades/{trade_id}/confirmation + method: getConfirmation + httpMethod: get + tag: Trades + typeScriptTag: trades + description: Get Trade Confirmation + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: tradeId + schema: string + required: true + description: '' + example: TRADE_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/applications + method: createApplication + httpMethod: post + tag: Individuals + typeScriptTag: individuals + description: Create Application + parameters: + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: identification_number + schema: string + required: true + description: '' + example: IDENTIFICATION_NUMBER + - name: name + schema: object + required: true + description: '' + - name: email + schema: string + required: true + description: '' + example: EMAIL + - name: date_of_birth + schema: string + required: true + description: '' + example: DATE_OF_BIRTH + - name: investment_profile + schema: undefined + required: true + description: '' + - name: agreement_consent + schema: object + required: true + description: '' + - name: originally_onboarded_at + schema: string + required: false + description: '' + - name: identification_type + schema: string + required: false + description: '' + - name: address + schema: object + required: true + description: '' + - name: phone_number + schema: string + required: true + description: '' + example: PHONE_NUMBER + - name: citizenship_country + schema: string + required: false + description: '' + default: US + responses: + - statusCode: '201' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/applications/{application_id} + method: getApplication + httpMethod: get + tag: Individuals + typeScriptTag: individuals + description: Get Application + parameters: + - name: applicationId + schema: string + required: true + description: '' + example: APPLICATION_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/applications/{application_id}/apply + method: initiateKycSubmission + httpMethod: post + tag: Individuals + typeScriptTag: individuals + description: Apply + parameters: + - name: applicationId + schema: string + required: true + description: '' + example: APPLICATION_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/agreements + method: getAgreements + httpMethod: get + tag: Individuals + typeScriptTag: individuals + description: List Agreements + parameters: + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/business-applications + method: createApplication + httpMethod: post + tag: Businesses + typeScriptTag: businesses + description: Create Application + parameters: + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: name + schema: string + description: '' + - name: entity_type + schema: string + description: '' + - name: doing_business_as + schema: string + description: '' + - name: identification_number + schema: object + description: '' + - name: address + schema: object + description: '' + - name: website + schema: string + description: '' + - name: contact + schema: object + description: '' + - name: formation_date + schema: string + description: '' + - name: risk_info + schema: object + description: '' + - name: industry + schema: object + description: '' + - name: agreement_consent + schema: object + description: '' + responses: + - statusCode: '201' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/business-applications/{application_id} + method: getApplication + httpMethod: get + tag: Businesses + typeScriptTag: businesses + description: Get Application + parameters: + - name: applicationId + schema: string + required: true + description: '' + example: APPLICATION_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/business-applications/{application_id} + method: updateApplication + httpMethod: patch + tag: Businesses + typeScriptTag: businesses + description: Update Application + parameters: + - name: applicationId + schema: string + required: true + description: '' + example: APPLICATION_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: name + schema: string + description: '' + - name: entity_type + schema: string + description: '' + - name: doing_business_as + schema: string + description: '' + - name: identification_number + schema: object + description: '' + - name: address + schema: object + description: '' + - name: website + schema: string + description: '' + - name: contact + schema: object + description: '' + - name: formation_date + schema: string + description: '' + - name: risk_info + schema: object + description: '' + - name: industry + schema: object + description: '' + - name: agreement_consent + schema: object + description: '' + responses: + - statusCode: '200' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/business-applications/{application_id}/apply + method: submitApplication + httpMethod: post + tag: Businesses + typeScriptTag: businesses + description: Apply + parameters: + - name: applicationId + schema: string + required: true + description: '' + example: APPLICATION_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/business-applications/{application_id}/related-party-applications + method: listRelatedPartyApplications + httpMethod: get + tag: Businesses + typeScriptTag: businesses + description: List Related Party Application + parameters: + - name: applicationId + schema: string + required: true + description: '' + example: APPLICATION_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/business-applications/{application_id}/related-party-applications + method: createRelatedPartyApplication + httpMethod: post + tag: Businesses + typeScriptTag: businesses + description: Create Related Party Application + parameters: + - name: applicationId + schema: string + required: true + description: '' + example: APPLICATION_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: title + schema: string + description: '' + - name: name + schema: object + description: '' + - name: address + schema: object + description: '' + - name: date_of_birth + schema: string + description: '' + - name: identification_number + schema: object + description: '' + - name: phone_number + schema: string + description: '' + - name: roles + schema: array + description: '' + - name: ownership_percentage + schema: string + description: '' + - name: citizenship + schema: string + description: '' + - name: email + schema: string + description: '' + responses: + - statusCode: '201' + description: '' + - statusCode: '422' + description: '' + - url: >- + /api/v1/business-applications/{application_id}/related-party-applications/{related_party_application_id} + method: deleteRelatedPartyApplication + httpMethod: delete + tag: Businesses + typeScriptTag: businesses + description: Delete Related Party Application + parameters: + - name: applicationId + schema: string + required: true + description: '' + example: APPLICATION_ID + - name: relatedPartyApplicationId + schema: string + required: true + description: '' + example: RELATED_PARTY_APPLICATION_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '204' + description: Successful Response + - statusCode: '422' + description: '' + - url: >- + /api/v1/business-applications/{application_id}/related-party-applications/{related_party_application_id} + method: updateRelatedPartyApplication + httpMethod: patch + tag: Businesses + typeScriptTag: businesses + description: Update Related Party Application + parameters: + - name: applicationId + schema: string + required: true + description: '' + example: APPLICATION_ID + - name: relatedPartyApplicationId + schema: string + required: true + description: '' + example: RELATED_PARTY_APPLICATION_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: title + schema: string + description: '' + - name: name + schema: object + description: '' + - name: address + schema: object + description: '' + - name: date_of_birth + schema: string + description: '' + - name: identification_number + schema: object + description: '' + - name: phone_number + schema: string + description: '' + - name: roles + schema: array + description: '' + - name: ownership_percentage + schema: string + description: '' + - name: citizenship + schema: string + description: '' + - name: email + schema: string + description: '' + responses: + - statusCode: '200' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/customers/{customer_id}/counterparties + method: listForCustomer + httpMethod: get + tag: Counterparties + typeScriptTag: counterparties + description: List Counterparties + parameters: + - name: customerId + schema: string + required: true + description: '' + example: CUSTOMER_ID + - name: cursor + schema: string + required: false + description: '' + default: '' + - name: limit + schema: integer + required: false + description: '' + default: 30 + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: Base class for cursor_list responses from the Partner API + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/customers/{customer_id}/counterparties/{counterparty_id} + method: getVerificationStatus + httpMethod: get + tag: Counterparties + typeScriptTag: counterparties + description: Get Counterparty + parameters: + - name: customerId + schema: string + required: true + description: '' + example: CUSTOMER_ID + - name: counterpartyId + schema: string + required: true + description: '' + example: COUNTERPARTY_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/cards + method: getAccountCards + httpMethod: get + tag: Manage Cards + typeScriptTag: manageCards + description: List Account Cards + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: limit + schema: integer + required: false + description: '' + default: 100 + - name: cursor + schema: string + required: false + description: '' + - name: filter[status] + schema: array + required: false + description: '' + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: Base class for cursor_list responses from the Partner API + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/cards/{card_id}/status + method: getStatus + httpMethod: get + tag: Manage Cards + typeScriptTag: manageCards + description: Get Card Status + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: cardId + schema: string + required: true + description: '' + example: CARD_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/cards/{card_id}/status + method: setCardStatus + httpMethod: patch + tag: Manage Cards + typeScriptTag: manageCards + description: Set Card Status + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: cardId + schema: string + required: true + description: '' + example: CARD_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: status + schema: string + description: '' + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/cards/{card_id}/pin + method: setCardPin + httpMethod: post + tag: Manage Cards + typeScriptTag: manageCards + description: Set Card PIN + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: cardId + schema: string + required: true + description: '' + example: CARD_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: encrypted_pin + schema: string + required: true + description: '' + example: ENCRYPTED_PIN + responses: + - statusCode: '200' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/cards/{card_id}/close + method: closeCard + httpMethod: post + tag: Manage Cards + typeScriptTag: manageCards + description: Close Card + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: cardId + schema: string + required: true + description: '' + example: CARD_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: closure_reason + schema: string + required: true + description: '' + example: CLOSURE_REASON + - name: lost_stolen_date + schema: string + required: false + description: '' + responses: + - statusCode: '204' + description: Successful Response + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/card-orders + method: listCardOrders + httpMethod: get + tag: Physical Cards + typeScriptTag: physicalCards + description: List Card Orders + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: cursor + schema: string + required: false + description: '' + default: '' + - name: limit + schema: integer + required: false + description: '' + default: 30 + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: Base class for cursor_list responses from the Partner API + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/card-orders + method: createOrder + httpMethod: post + tag: Physical Cards + typeScriptTag: physicalCards + description: Create Physical Card Order + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: name_on_card + schema: string + required: true + description: '' + example: NAME_ON_CARD + - name: shipping_address + schema: object + required: true + description: '' + responses: + - statusCode: '201' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/card-orders/{card_order_id} + method: getOrderInfo + httpMethod: get + tag: Physical Cards + typeScriptTag: physicalCards + description: Get Card Order + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: cardOrderId + schema: string + required: true + description: '' + example: CARD_ORDER_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/virtual-cards/{card_id} + method: closeCard + httpMethod: delete + tag: Virtual Cards + typeScriptTag: virtualCards + description: Close Virtual Card + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: cardId + schema: string + required: true + description: '' + example: CARD_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '204' + description: Successful Response + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/virtual-cards/{card_id} + method: getDetail + httpMethod: post + tag: Virtual Cards + typeScriptTag: virtualCards + description: Get Virtual Card + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: cardId + schema: string + required: true + description: '' + example: CARD_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: public_key + schema: string + required: true + description: '' + example: PUBLIC_KEY + responses: + - statusCode: '200' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/virtual-cards + method: createCard + httpMethod: post + tag: Virtual Cards + typeScriptTag: virtualCards + description: Create Virtual Card + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: public_key + schema: string + required: true + description: '' + example: PUBLIC_KEY + responses: + - statusCode: '201' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/events/types + method: listEventTypes + httpMethod: get + tag: Events + typeScriptTag: events + description: List Event Types + parameters: + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: >- + Generic models are only supported in pydantic for python 3.7+, so + until then + + items will be of type Any. As such, this class needs to be subclassed + + and its item field overridden in it using the proper type. + - statusCode: '422' + description: '' + - url: /api/v1/events + method: getPastEvents + httpMethod: get + tag: Events + typeScriptTag: events + description: List Events + parameters: + - name: subscriptionId + schema: string + required: false + description: '' + - name: after + schema: string + required: false + description: '' + - name: cursor + schema: string + required: false + description: '' + default: '' + - name: limit + schema: integer + required: false + description: '' + default: 30 + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: Base class for cursor_list responses from the Partner API + - statusCode: '422' + description: '' + - url: /api/v1/customers/{customer_id}/counterparties/plaid/link-token + method: createLinkToken + httpMethod: post + tag: 'Counterparties: Plaid' + typeScriptTag: counterparties:Plaid + description: Create Plaid Link Token + parameters: + - name: customerId + schema: string + required: true + description: '' + example: CUSTOMER_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: client_name + schema: string + required: true + description: '' + example: CLIENT_NAME + - name: redirect_uri + schema: string + required: false + description: '' + - name: android_package_name + schema: string + required: false + description: '' + - name: counterparty_id + schema: string + required: false + description: '' + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/customers/{customer_id}/counterparties/plaid + method: createPlaidCounterparties + httpMethod: post + tag: 'Counterparties: Plaid' + typeScriptTag: counterparties:Plaid + description: Create Plaid Counterparties + parameters: + - name: customerId + schema: string + required: true + description: '' + example: CUSTOMER_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: public_token + schema: string + required: true + description: '' + example: PUBLIC_TOKEN + - name: accounts + schema: array + required: true + description: '' + - name: institution_id + schema: string + required: false + description: '' + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: >- + /api/v1/customers/{customer_id}/counterparties/{counterparty_id}/plaid/verify + method: completeVerification + httpMethod: post + tag: 'Counterparties: Plaid' + typeScriptTag: counterparties:Plaid + description: Verify Plaid Counterparty + parameters: + - name: customerId + schema: string + required: true + description: '' + example: CUSTOMER_ID + - name: counterpartyId + schema: string + required: true + description: '' + example: COUNTERPARTY_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '204' + description: Successful Response + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/subscriptions + method: listPartnerSubscriptions + httpMethod: get + tag: Subscriptions + typeScriptTag: subscriptions + description: List Subscriptions + parameters: + - name: cursor + schema: string + required: false + description: '' + default: '' + - name: limit + schema: integer + required: false + description: '' + default: 30 + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: Base class for cursor_list responses from the Partner API + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/subscriptions + method: createWebhookSubscription + httpMethod: post + tag: Subscriptions + typeScriptTag: subscriptions + description: Create Subscription + parameters: + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: description + schema: string + required: false + description: '' + default: '' + - name: events + schema: array + required: true + description: '' + - name: url + schema: string + required: true + description: '' + example: URL + - name: shared_secret + schema: string + required: true + description: '' + example: SHARED_SECRET + responses: + - statusCode: '201' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/subscriptions/{subscription_id} + method: deleteWebhookSubscription + httpMethod: delete + tag: Subscriptions + typeScriptTag: subscriptions + description: Delete Subscription + parameters: + - name: subscriptionId + schema: string + required: true + description: '' + example: SUBSCRIPTION_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '204' + description: Successful Response + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/subscriptions/{subscription_id} + method: getWebhookSubscription + httpMethod: get + tag: Subscriptions + typeScriptTag: subscriptions + description: Get Subscription + parameters: + - name: subscriptionId + schema: string + required: true + description: '' + example: SUBSCRIPTION_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/subscriptions/{subscription_id} + method: updateWebhookSubscription + httpMethod: patch + tag: Subscriptions + typeScriptTag: subscriptions + description: Update Subscription + parameters: + - name: subscriptionId + schema: string + required: true + description: '' + example: SUBSCRIPTION_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: description + schema: string + description: '' + default: '' + - name: events + schema: array + description: '' + - name: url + schema: string + description: '' + - name: shared_secret + schema: string + description: '' + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/ach-originating + method: listAchOriginations + httpMethod: get + tag: ACH + typeScriptTag: ach + description: List ACH Originations + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: filter[status] + schema: array + required: false + description: '' + - name: direction + schema: string + required: false + description: '' + - name: cursor + schema: string + required: false + description: '' + default: '' + - name: limit + schema: integer + required: false + description: '' + default: 30 + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: Base class for cursor_list responses from the Partner API + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/ach-originating + method: originateTransaction + httpMethod: post + tag: ACH + typeScriptTag: ach + description: Create ACH Origination + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: counterparty_id + schema: string + required: true + description: '' + example: COUNTERPARTY_ID + - name: direction + schema: string + required: true + description: '' + example: DIRECTION + - name: sec_code + schema: string + required: false + description: '' + - name: payment_related_information + schema: array + required: false + description: '' + default: [] + - name: amount_usdc + schema: integer + required: true + description: '' + example: 0 + - name: company_entry_description + schema: string + required: false + description: '' + responses: + - statusCode: '200' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/ach-originating/{transfer_id} + method: getTransferOrigination + httpMethod: get + tag: ACH + typeScriptTag: ach + description: Get ACH Origination + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: transferId + schema: string + required: true + description: '' + example: TRANSFER_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/wires + method: initiateWireTransfer + httpMethod: post + tag: Wires + typeScriptTag: wires + description: Create Wire + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: description + schema: string + required: false + description: '' + - name: counterparty_id + schema: string + required: true + description: '' + example: COUNTERPARTY_ID + - name: amount_usdc + schema: integer + required: false + description: '' + - name: created_by + schema: string + required: false + description: '' + - name: wire_id + schema: string + required: false + description: '' + responses: + - statusCode: '201' + description: Successful Response + - statusCode: '422' + description: '' + - url: /api/v1/transfers/on-us + method: createTransfer + httpMethod: post + tag: On-Us Transfers + typeScriptTag: onUsTransfers + description: Create On-Us Transfer + parameters: + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '201' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/transfers/on-us/{transfer_id} + method: getById + httpMethod: get + tag: On-Us Transfers + typeScriptTag: onUsTransfers + description: Get On-Us Transfer + parameters: + - name: transferId + schema: string + required: true + description: '' + example: TRANSFER_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/customers/{customer_id} + method: getDetails + httpMethod: get + tag: Customers + typeScriptTag: customers + description: Get Customer Data + parameters: + - name: customerId + schema: string + required: true + description: '' + example: CUSTOMER_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/customers/{customer_id}/statements + method: listForCustomer + httpMethod: get + tag: Statements + typeScriptTag: statements + description: List Customer Statements + parameters: + - name: customerId + schema: string + required: true + description: '' + example: CUSTOMER_ID + - name: account[] + schema: array + required: false + description: '' + - name: order + schema: string + required: false + description: '' + - name: type[] + schema: array + required: false + description: '' + default: [] + - name: key + schema: string + required: false + description: Date formatted either `YYYY` or `YYYY-MM` + - name: cursor + schema: string + required: false + description: '' + default: '' + - name: limit + schema: integer + required: false + description: '' + default: 30 + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: Base class for cursor_list responses from the Partner API + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/statements + method: getAccountStatements + httpMethod: get + tag: Statements + typeScriptTag: statements + description: List Account Statements + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: order + schema: string + required: false + description: '' + - name: type[] + schema: array + required: false + description: '' + default: [] + - name: key + schema: string + required: false + description: Date formatted either `YYYY` or `YYYY-MM` + - name: cursor + schema: string + required: false + description: '' + default: '' + - name: limit + schema: integer + required: false + description: '' + default: 30 + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: Base class for cursor_list responses from the Partner API + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/portals + method: list + httpMethod: get + tag: Portals + typeScriptTag: portals + description: List Portals + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/portals + method: createPortal + httpMethod: post + tag: Portals + typeScriptTag: portals + description: Create Portal + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: name + schema: string + required: true + description: '' + example: NAME + responses: + - statusCode: '201' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/portals/{portal_id} + method: getPortal + httpMethod: get + tag: Portals + typeScriptTag: portals + description: Get Account Portal + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: portalId + schema: string + required: true + description: '' + example: PORTAL_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/portals/{portal_id} + method: updateName + httpMethod: patch + tag: Portals + typeScriptTag: portals + description: Update Portal + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: portalId + schema: string + required: true + description: '' + example: PORTAL_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + - name: name + schema: string + required: true + description: '' + example: NAME + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/jiko-accounts/{account_id}/portals/{portal_id}/close + method: closePortal + httpMethod: post + tag: Portals + typeScriptTag: portals + description: Close Portal + parameters: + - name: accountId + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: portalId + schema: string + required: true + description: '' + example: PORTAL_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + - name: xJikoSignature + schema: string + required: true + description: '' + example: X-JIKO-SIGNATURE + responses: + - statusCode: '204' + description: Successful Response + - statusCode: '404' + description: Not found + - statusCode: '412' + description: Portal is already closed. + - statusCode: '422' + description: '' + - url: /api/v1/applications/{application_id}/documents/{document_type}/file + method: uploadDocumentToApplication + httpMethod: post + tag: Individuals + typeScriptTag: individuals + description: Upload Document To Application + parameters: + - name: applicationId + schema: string + required: true + description: '' + example: APPLICATION_ID + - name: documentType + schema: string + required: true + description: '' + example: DOCUMENT_TYPE + - name: contentType + schema: string + required: true + description: '' + example: CONTENT-TYPE + - name: contentLength + schema: integer + required: true + description: '' + example: 0 + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/customers/{customer_id}/documents/{document_type}/file + method: uploadDocumentToCustomer + httpMethod: post + tag: Customers + typeScriptTag: customers + description: Upload Document To Customer + parameters: + - name: customerId + schema: string + required: true + description: '' + example: CUSTOMER_ID + - name: documentType + schema: string + required: true + description: '' + example: DOCUMENT_TYPE + - name: contentType + schema: string + required: true + description: '' + example: CONTENT-TYPE + - name: contentLength + schema: integer + required: true + description: '' + example: 0 + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '422' + description: '' + - url: /api/v1/business-applications/{application_id}/documents + method: listDocumentRequests + httpMethod: get + tag: Businesses + typeScriptTag: businesses + description: List Document Requests + parameters: + - name: applicationId + schema: string + required: true + description: '' + example: APPLICATION_ID + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + responses: + - statusCode: '200' + description: '' + - statusCode: '422' + description: '' + - url: /api/v1/documents/{document_id} + method: uploadDocument + httpMethod: post + tag: Businesses + typeScriptTag: businesses + description: Upload Document + parameters: + - name: documentId + schema: string + required: true + description: '' + example: DOCUMENT_ID + - name: contentType + schema: string + required: true + description: '' + example: CONTENT-TYPE + - name: contentLength + schema: integer + required: true + description: '' + example: 0 + - name: contentDisposition + schema: string + required: true + description: '' + example: CONTENT-DISPOSITION + - name: xJikoIdempotency + schema: string + required: true + description: '' + example: X-JIKO-IDEMPOTENCY + responses: + - statusCode: '200' + description: '' + - statusCode: '404' + description: Not found + - statusCode: '412' + description: Document has already been reviewed and approved. + - statusCode: '422' + description: '' + - url: /api/v1/login + method: authenticateUser + httpMethod: post + tag: Security + typeScriptTag: security + description: Login + parameters: + - name: username + schema: string + required: true + description: '' + example: USERNAME + - name: password + schema: string + required: true + description: '' + example: PASSWORD + responses: + - statusCode: '200' + description: '' + - statusCode: '401' + description: Unauthorized + - statusCode: '422' + description: '' + - url: /api/v1/public-keys + method: getEncryptionKeys + httpMethod: get + tag: Security + typeScriptTag: security + description: List Public Keys + parameters: [] + responses: + - statusCode: '200' + description: |- + Encryption keys are currently stored as environment variables. + + Variables are declared in + `services/partner-api/secret-(dev|staging|sandbox|partners).yaml` + - url: /api/v1/sandbox/card-swipe + method: simulateCardSwipe + httpMethod: post + tag: Sandbox + typeScriptTag: sandbox + description: Submit Card Swipe + parameters: + - name: xBranchName + schema: string + required: false + description: '' + - name: card_id + schema: string + required: true + description: '' + example: CARD_ID + - name: amount_usdc + schema: integer + required: true + description: '' + example: 0 + responses: + - statusCode: '202' + description: Successful Response + - statusCode: '422' + description: '' + - url: /api/v1/sandbox/generate-card + method: generatePhysicalCardFromOrder + httpMethod: post + tag: Sandbox + typeScriptTag: sandbox + description: Generate Physical Card From Order + parameters: + - name: xBranchName + schema: string + required: false + description: '' + - name: card_order_id + schema: string + required: true + description: '' + example: CARD_ORDER_ID + responses: + - statusCode: '202' + description: Successful Response + - statusCode: '422' + description: '' + - url: /api/v1/sandbox/webhook + method: simulateWebhookEvent + httpMethod: post + tag: Sandbox + typeScriptTag: sandbox + description: Trigger Webhook + parameters: + - name: xBranchName + schema: string + required: false + description: '' + responses: + - statusCode: '202' + description: Successful Response + - statusCode: '422' + description: '' + - url: /api/v1/sandbox/fund + method: simulateAchCredit + httpMethod: post + tag: Sandbox + typeScriptTag: sandbox + description: Fund Account + parameters: + - name: xBranchName + schema: string + required: false + description: '' + - name: account_id + schema: string + required: true + description: '' + example: ACCOUNT_ID + - name: amount_usdc + schema: integer + required: true + description: '' + example: 0 + - name: company_name + schema: string + required: false + description: '' + default: FakeCompany + - name: count + schema: integer + required: false + description: '' + default: 1 + responses: + - statusCode: '202' + description: Successful Response + - statusCode: '422' + description: '' +numberOfSchemas: 182 +apiDescription: > + # 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. + + +
+ + + At the core of our platform is the Jiko account: a pair consisting of a bank + account and a brokerage account. When money is deposited into an account, 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 accounts, and each account 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 customer accounts via ACH or Wire + + - Viewing and managing accounts (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](mailto:partner.support@jiko.io) to request sandbox + access. + + # Partner obligations + + +
+ + + - Before onboarding, the end-user’s control over any email addresses or phone + numbers must be confirmed (for example, via confirmation codes) before + submitting an application to the API. + + - While onboarding, partners must comply with the disclosure requirements + listed [below](https://docs.jiko.io/reference). + + - Monthly statements are created for bank and brokerage accounts and must be + made available to the user. + - Partners are required to send an email to end users every month a new statement is available to comply with regulatory requirements. + - Partners can expect monthly statements to be available by the 15th of every month. + - It is required to make the past 6 years of brokerage statements available to the end user. + - It is advised to make at least the past 12 months of bank statements available to the end user. + - Trade confirmations must be made available to the user. + + + ## Disclosures and Agreements + + + - The bundle of customer disclosures and agreements served at the + [Agreements](https://docs.jiko.io/reference) endpoint must be presented to + users before signing up for an account. + This includes Risk and Limitation disclosures, Regulation E disclosures, Account agreements and more. + - The customer consent for these disclosures have to be versioned and time-stamped and sent with the application. + - Jiko reserves the right to update agreements from time to time. + If a change is _adverse_ to the customer, Jiko will notify partners, and they are then required to notify their end users 30 days in advance of the change. + - A change is deemed to be _adverse_ to the customer if it will result in increased fees, increased liability for the customer, fewer types of available transactions or stricter limitations on the frequency or dollar amount of transactions. + - When Jiko updates the bundle of agreements, the version number of the + agreement bundle will increment. + Jiko reserves the right to reject or manually review applications where customer consent does not match the latest agreement version. + Partners must re-fetch and display the agreements and disclosures links from the Agreements endpoint for every new application. This ensures each applicant is served the latest version of the agreements. + + # Authentication + + + **Jiko** provides partners with a `username` and a `password`, as well as a + `shared secret`. Partners are provided with a `bearer token` in the + [Login](https://docs.jiko.io/reference) response, which must be sent with each + request. + + +
+ + + Each request made to the partner API needs 3 parts in order for it to be + processed: + + + 1. An **Authorization** HTTP header containing the value + + + ```javascript + + Bearer + + ``` + + +
+ + + Where the `access_token` is the bearer token given in the + [Login](https://docs.jiko.io/reference) response. + + + 1. An **x-jiko-idempotency** HTTP header set to a random uuid for this action, + in order to signify a unique request to the API from the partner’s + perspective. + + 2. An **x-jiko-signature** HTTP header set to a base64 encoded HMAC-SHA256 + hash of `x-jiko-idempotency+request pathname+body` using the shared secret as + a key. + + + Below is a Node.js example showing how a potential request could be signed: + + +
+ + + ```javascript + + const crypto = require("crypto"); + + const uuid = require("uuid"); + + + const idempotency = uuid.v4(); + + const pathname = "/api/v1/agreements/"; + + const body = ""; + + + request.headers["x-jiko-signature"] = crypto + .createHmac("sha256", "shared-secret-here") + .update(idempotency + pathname + body, "utf-8") + .digest("base64"); + ``` + + +
+ + + **Partner** requests will need to be sent from an IP address whitelisted by + **Jiko**. + + **Jiko** will verify the request signature by repeating the steps above, + additionally checking for possible repeated requests. A request is considered + to be repeated if the idempotency key value provided in the + `x-jiko-idempotency` header has been used previously in the past 1 hour. + + +
+ + + Bearer tokens have a lifetime of 60 minutes. + + The partner will need to repeat the login process once a token has expired. + + + # Changelog + + + ## March 2024 + + - Added `tradable_id` field to [List Customer + Trades](https://docs.jiko.io/reference) and [List Customer + Transactions](https://docs.jiko.io/reference) API endpoint. + + - Added support for filtering by trade date to and from to [List Customer + Trades](https://docs.jiko.io/reference) and [List Customer + Transactions](https://docs.jiko.io/reference) API endpoints. + + + - Added support for filtering by types, timestamp_from and timestamp_to to + the [List Customer Transactions](https://docs.jiko.io/reference), [List + Account Transactions](https://docs.jiko.io/reference) API endpoints. + + + + ## February 2024 + + - Added support for filtering by status and direction to the [List ACH Originations](https://docs.jiko.io/reference) API endpoint + - Added support for filtering by portal id and card id to the [List Customer Transactions](https://docs.jiko.io/reference), [List Account Transactions](https://docs.jiko.io/reference) API endpoints. + + - Added support for filtering by status and direction to the [List ACH Originations](https://docs.jiko.io/reference) API endpoint + - Added support for filtering by card status to the [List Account Cards](https://docs.jiko.io/reference) endpoint. + - Added support for full withdrawals when performing on-us transfers by using the new `amount` field. + - Added support for listing fees deducted when performing on-us transfers. + + ## January 2024 + + - Added [Get Health Check](https://docs.jiko.io/reference) API endpoint. + + ## December 2023 + + + - Business Application additions: + + - Added [Create Application](https://docs.jiko.io/reference) API endpoint. + - Added [Get Application](https://docs.jiko.io/reference) API endpoint. + - Added [Update Application](https://docs.jiko.io/reference) API endpoint. + - Added [Apply](https://docs.jiko.io/reference) API endpoint. + + - Related Party Application additions: + + - Added [List Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Create Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Delete Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Update Related Party](https://docs.jiko.io/reference) API endpoint. + + - Document Upload additions: + + - Added [List Document Requests](https://docs.jiko.io/reference) API endpoint. + - Added [Upload Document](https://docs.jiko.io/reference) API endpoint. + + - Wire additions: + + - Added [Create Wire](https://docs.jiko.io/reference) API endpoint. + + ## November 2023 + + + - Added a new optional field `micro_deposit` to V1 `ACHCounterparty` model + that includes an indication of number of verification attempts for ACH + Counterparties verified via Micro Deposits + + - Added [Close Portal](https://docs.jiko.io/reference) API endpoint. + + - Added [Update Portal](https://docs.jiko.io/reference) API endpoint. + + + ## October 2023 + + + - Added enum value `PENDING` to the [Get Customer + Data](https://docs.jiko.io/reference) `account_status` field, signalling that + a customer has no open pocket. + + + ## July 2023 + + + - Added [Get Account Portal](https://docs.jiko.io/reference) API endpoint. + + + ## May 2023 + + + ### 2023-05-26 + + + - The response from uploading documents now includes a `document_id` field for + future reference. + + + ### 2023-05-15 + + + - Added [Create Portal](https://docs.jiko.io/reference) API endpoint. + + - Added a new `category` type E-SIGN for the Electronic Communications + Disclosure Statement and Consent which was previously in the GENERAL category. + + + ### 2023-05-05 + + + - Added a new `WIRE_COUNTERPARTY_VERIFICATION` document type. + + - File size limits raised to 50 MB for files other than `ID_FRONT`, `ID_BACK`, + `SELFIE` and `PASSPORT` when uploading documents to a customer or application. + + - Updated documentation for both file upload endpoints. + + + ## April 2023 + + + ### 2023-04-28 + + + - Adds a new `category` field for agreements returned by the [List + Agreements](https://docs.jiko.io/reference) endpoint. This `category` field + groups all agreements into 3 categories, BANK, BROKERAGE, or GENERAL. + + + ### 2023-04-19 + + + - Added a new sandbox endpoint for simulating webhook calls, [Trigger + Webhook](https://docs.jiko.io/reference). + + + ## March 2023 + + + ### 2023-03-30 + + + - Added a new `yield_to_maturity` field to the `Trade` model. + + + ### 2023-03-15 + + + - Added a new `name` field to the `Portal` model. + + + ## February 2023 + + + ### 2023-02-24 + + + - Added a sandbox endpoint to fund accounts via ACH portals. + + + ### 2023-02-16 + + + - Added a new disclosure type, `FORM_CRS`, for Customer Relationship Summary + Forms. + + + ### 2023-02-10 + + + - Added `wire_fee_transaction` and `WIRE_FEE` transaction type to the [List + Customer Transactions](https://docs.jiko.io/reference), [List Account + Transactions](https://docs.jiko.io/reference) and [Get Account + Transaction](https://docs.jiko.io/reference) endpoints. + + + ## January 2023 + + + ### 2023-01-25 + + + - Added [Create On-Us Transfer](https://docs.jiko.io/reference) API endpoint. + + - Added [Get On-Us Transfer](https://docs.jiko.io/reference) API endpoint. + + + ### 2023-01-18 + + + - Added two optional filtering query parameters to the [List Customer + Statements](https://docs.jiko.io/reference) endpoint: + - The `type[]` query parameter makes it possible to filter by different types of statements, e.g. `?type[]=BANK&type[]=BROKERAGE` + - The `key` query parameter makes it possible to filter by either a specific month or a year, e.g. `?key=2023-01` or `?key=2022` + - Marked the [List Account Statements](https://docs.jiko.io/reference) + endpoint as deprecated. Please use the [List Customer + Statements](https://docs.jiko.io/reference) in future integrations. + + + ### 2023-01-09 + + + - Added a new transaction type and corresponding details object, + `on_us_transaction` to the response model in [List Customer + Transactions](https://docs.jiko.io/reference). + + + ### 2023-01-06 + + + - Added optional field `originally_onboarded_at` to request body in [Create + Application](https://docs.jiko.io/reference) + + + ## November 2022 + + + ### 2022-11-09 + + + - New counterparty type `WIRE` with a `wire` field, returned in [Get + Counterparty](https://docs.jiko.io/reference) and [List + Counterparties](https://docs.jiko.io/reference) + + + ## September 2022 + + + ### 2022-09-28 + + + - Added [List Customer Statements](https://docs.jiko.io/reference) API + endpoint. + + + ### 2022-09-27 + + + - Added [Get Customer Data](https://docs.jiko.io/reference) API endpoint. + + + ### 2022-09-07 + + + - Added [List Customer Trades](https://docs.jiko.io/reference) API endpoint. + + - Added [List Customer Transactions](https://docs.jiko.io/reference) API + endpoint. + + + ## August 2022 + + + ### 2022-08-29 + + + - Added `name` field to the [List Customer + Accounts](https://docs.jiko.io/reference) and [Get Customer + Account](https://docs.jiko.io/reference) API endpoints + + + ### 2022-08-16 + + + - Added [Get Account Transaction](https://docs.jiko.io/reference) API endpoint + + + ### 2022-08-05 + + + - Added [List ACH Originations](https://docs.jiko.io/reference) API endpoint diff --git a/sdks/db/category-cache.yaml b/sdks/db/category-cache.yaml index 8064352717..827fbc7438 100644 --- a/sdks/db/category-cache.yaml +++ b/sdks/db/category-cache.yaml @@ -276,3 +276,4 @@ apis: Foodkit-undefined: eCommerce Shippo-undefined: eCommerce DriveWealth-undefined: Finance + Jiko-undefined: Finance diff --git a/sdks/db/custom-request-last-fetched.yaml b/sdks/db/custom-request-last-fetched.yaml index 5b61936d6e..31867b495c 100644 --- a/sdks/db/custom-request-last-fetched.yaml +++ b/sdks/db/custom-request-last-fetched.yaml @@ -256,3 +256,4 @@ lastUpdated: foodkit.io: 2024-03-29T17:56:49.680Z goshippo.com: 2024-03-29T18:02:08.049Z drivewealth.com: 2024-03-29T18:00:43.040Z + jiko.io: 2024-03-29T18:08:42.402Z diff --git a/sdks/db/custom-request-specs/jiko.io.yaml b/sdks/db/custom-request-specs/jiko.io.yaml new file mode 100644 index 0000000000..0dae29e011 --- /dev/null +++ b/sdks/db/custom-request-specs/jiko.io.yaml @@ -0,0 +1,9485 @@ +openapi: 3.1.0 +info: + title: Jiko Partner API + description: > + # 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. + + +
+ + + At the core of our platform is the Jiko account: a pair consisting of a bank + account and a brokerage account. When money is deposited into an account, + 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 accounts, and each account 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 customer accounts via ACH or Wire + + - Viewing and managing accounts (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](mailto:partner.support@jiko.io) to request sandbox + access. + + # Partner obligations + + +
+ + + - Before onboarding, the end-user’s control over any email addresses or + phone numbers must be confirmed (for example, via confirmation codes) before + submitting an application to the API. + + - While onboarding, partners must comply with the disclosure requirements + listed [below](https://docs.jiko.io/reference). + + - Monthly statements are created for bank and brokerage accounts and must be + made available to the user. + - Partners are required to send an email to end users every month a new statement is available to comply with regulatory requirements. + - Partners can expect monthly statements to be available by the 15th of every month. + - It is required to make the past 6 years of brokerage statements available to the end user. + - It is advised to make at least the past 12 months of bank statements available to the end user. + - Trade confirmations must be made available to the user. + + + ## Disclosures and Agreements + + + - The bundle of customer disclosures and agreements served at the + [Agreements](https://docs.jiko.io/reference) endpoint must be presented to + users before signing up for an account. + This includes Risk and Limitation disclosures, Regulation E disclosures, Account agreements and more. + - The customer consent for these disclosures have to be versioned and time-stamped and sent with the application. + - Jiko reserves the right to update agreements from time to time. + If a change is _adverse_ to the customer, Jiko will notify partners, and they are then required to notify their end users 30 days in advance of the change. + - A change is deemed to be _adverse_ to the customer if it will result in increased fees, increased liability for the customer, fewer types of available transactions or stricter limitations on the frequency or dollar amount of transactions. + - When Jiko updates the bundle of agreements, the version number of the + agreement bundle will increment. + Jiko reserves the right to reject or manually review applications where customer consent does not match the latest agreement version. + Partners must re-fetch and display the agreements and disclosures links from the Agreements endpoint for every new application. This ensures each applicant is served the latest version of the agreements. + + # Authentication + + + **Jiko** provides partners with a `username` and a `password`, as well as a + `shared secret`. Partners are provided with a `bearer token` in the + [Login](https://docs.jiko.io/reference) response, which must be sent with + each request. + + +
+ + + Each request made to the partner API needs 3 parts in order for it to be + processed: + + + 1. An **Authorization** HTTP header containing the value + + + ```javascript + + Bearer + + ``` + + +
+ + + Where the `access_token` is the bearer token given in the + [Login](https://docs.jiko.io/reference) response. + + + 1. An **x-jiko-idempotency** HTTP header set to a random uuid for this + action, in order to signify a unique request to the API from the partner’s + perspective. + + 2. An **x-jiko-signature** HTTP header set to a base64 encoded HMAC-SHA256 + hash of `x-jiko-idempotency+request pathname+body` using the shared secret + as a key. + + + Below is a Node.js example showing how a potential request could be signed: + + +
+ + + ```javascript + + const crypto = require("crypto"); + + const uuid = require("uuid"); + + + const idempotency = uuid.v4(); + + const pathname = "/api/v1/agreements/"; + + const body = ""; + + + request.headers["x-jiko-signature"] = crypto + .createHmac("sha256", "shared-secret-here") + .update(idempotency + pathname + body, "utf-8") + .digest("base64"); + ``` + + +
+ + + **Partner** requests will need to be sent from an IP address whitelisted by + **Jiko**. + + **Jiko** will verify the request signature by repeating the steps above, + additionally checking for possible repeated requests. A request is + considered to be repeated if the idempotency key value provided in the + `x-jiko-idempotency` header has been used previously in the past 1 hour. + + +
+ + + Bearer tokens have a lifetime of 60 minutes. + + The partner will need to repeat the login process once a token has expired. + + + # Changelog + + + ## March 2024 + + - Added `tradable_id` field to [List Customer + Trades](https://docs.jiko.io/reference) and [List Customer + Transactions](https://docs.jiko.io/reference) API endpoint. + + - Added support for filtering by trade date to and from to [List Customer + Trades](https://docs.jiko.io/reference) and [List Customer + Transactions](https://docs.jiko.io/reference) API endpoints. + + + - Added support for filtering by types, timestamp_from and timestamp_to to + the [List Customer Transactions](https://docs.jiko.io/reference), [List + Account Transactions](https://docs.jiko.io/reference) API endpoints. + + + + ## February 2024 + + - Added support for filtering by status and direction to the [List ACH Originations](https://docs.jiko.io/reference) API endpoint + - Added support for filtering by portal id and card id to the [List Customer Transactions](https://docs.jiko.io/reference), [List Account Transactions](https://docs.jiko.io/reference) API endpoints. + + - Added support for filtering by status and direction to the [List ACH Originations](https://docs.jiko.io/reference) API endpoint + - Added support for filtering by card status to the [List Account Cards](https://docs.jiko.io/reference) endpoint. + - Added support for full withdrawals when performing on-us transfers by using the new `amount` field. + - Added support for listing fees deducted when performing on-us transfers. + + ## January 2024 + + - Added [Get Health Check](https://docs.jiko.io/reference) API endpoint. + + ## December 2023 + + + - Business Application additions: + + - Added [Create Application](https://docs.jiko.io/reference) API endpoint. + - Added [Get Application](https://docs.jiko.io/reference) API endpoint. + - Added [Update Application](https://docs.jiko.io/reference) API endpoint. + - Added [Apply](https://docs.jiko.io/reference) API endpoint. + + - Related Party Application additions: + + - Added [List Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Create Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Delete Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Update Related Party](https://docs.jiko.io/reference) API endpoint. + + - Document Upload additions: + + - Added [List Document Requests](https://docs.jiko.io/reference) API endpoint. + - Added [Upload Document](https://docs.jiko.io/reference) API endpoint. + + - Wire additions: + + - Added [Create Wire](https://docs.jiko.io/reference) API endpoint. + + ## November 2023 + + + - Added a new optional field `micro_deposit` to V1 `ACHCounterparty` model + that includes an indication of number of verification attempts for ACH + Counterparties verified via Micro Deposits + + - Added [Close Portal](https://docs.jiko.io/reference) API endpoint. + + - Added [Update Portal](https://docs.jiko.io/reference) API endpoint. + + + ## October 2023 + + + - Added enum value `PENDING` to the [Get Customer + Data](https://docs.jiko.io/reference) `account_status` field, signalling + that a customer has no open pocket. + + + ## July 2023 + + + - Added [Get Account Portal](https://docs.jiko.io/reference) API endpoint. + + + ## May 2023 + + + ### 2023-05-26 + + + - The response from uploading documents now includes a `document_id` field + for future reference. + + + ### 2023-05-15 + + + - Added [Create Portal](https://docs.jiko.io/reference) API endpoint. + + - Added a new `category` type E-SIGN for the Electronic Communications + Disclosure Statement and Consent which was previously in the GENERAL + category. + + + ### 2023-05-05 + + + - Added a new `WIRE_COUNTERPARTY_VERIFICATION` document type. + + - File size limits raised to 50 MB for files other than `ID_FRONT`, + `ID_BACK`, `SELFIE` and `PASSPORT` when uploading documents to a customer or + application. + + - Updated documentation for both file upload endpoints. + + + ## April 2023 + + + ### 2023-04-28 + + + - Adds a new `category` field for agreements returned by the [List + Agreements](https://docs.jiko.io/reference) endpoint. This `category` field + groups all agreements into 3 categories, BANK, BROKERAGE, or GENERAL. + + + ### 2023-04-19 + + + - Added a new sandbox endpoint for simulating webhook calls, [Trigger + Webhook](https://docs.jiko.io/reference). + + + ## March 2023 + + + ### 2023-03-30 + + + - Added a new `yield_to_maturity` field to the `Trade` model. + + + ### 2023-03-15 + + + - Added a new `name` field to the `Portal` model. + + + ## February 2023 + + + ### 2023-02-24 + + + - Added a sandbox endpoint to fund accounts via ACH portals. + + + ### 2023-02-16 + + + - Added a new disclosure type, `FORM_CRS`, for Customer Relationship Summary + Forms. + + + ### 2023-02-10 + + + - Added `wire_fee_transaction` and `WIRE_FEE` transaction type to the [List + Customer Transactions](https://docs.jiko.io/reference), [List Account + Transactions](https://docs.jiko.io/reference) and [Get Account + Transaction](https://docs.jiko.io/reference) endpoints. + + + ## January 2023 + + + ### 2023-01-25 + + + - Added [Create On-Us Transfer](https://docs.jiko.io/reference) API + endpoint. + + - Added [Get On-Us Transfer](https://docs.jiko.io/reference) API endpoint. + + + ### 2023-01-18 + + + - Added two optional filtering query parameters to the [List Customer + Statements](https://docs.jiko.io/reference) endpoint: + - The `type[]` query parameter makes it possible to filter by different types of statements, e.g. `?type[]=BANK&type[]=BROKERAGE` + - The `key` query parameter makes it possible to filter by either a specific month or a year, e.g. `?key=2023-01` or `?key=2022` + - Marked the [List Account Statements](https://docs.jiko.io/reference) + endpoint as deprecated. Please use the [List Customer + Statements](https://docs.jiko.io/reference) in future integrations. + + + ### 2023-01-09 + + + - Added a new transaction type and corresponding details object, + `on_us_transaction` to the response model in [List Customer + Transactions](https://docs.jiko.io/reference). + + + ### 2023-01-06 + + + - Added optional field `originally_onboarded_at` to request body in [Create + Application](https://docs.jiko.io/reference) + + + ## November 2022 + + + ### 2022-11-09 + + + - New counterparty type `WIRE` with a `wire` field, returned in [Get + Counterparty](https://docs.jiko.io/reference) and [List + Counterparties](https://docs.jiko.io/reference) + + + ## September 2022 + + + ### 2022-09-28 + + + - Added [List Customer Statements](https://docs.jiko.io/reference) API + endpoint. + + + ### 2022-09-27 + + + - Added [Get Customer Data](https://docs.jiko.io/reference) API endpoint. + + + ### 2022-09-07 + + + - Added [List Customer Trades](https://docs.jiko.io/reference) API endpoint. + + - Added [List Customer Transactions](https://docs.jiko.io/reference) API + endpoint. + + + ## August 2022 + + + ### 2022-08-29 + + + - Added `name` field to the [List Customer + Accounts](https://docs.jiko.io/reference) and [Get Customer + Account](https://docs.jiko.io/reference) API endpoints + + + ### 2022-08-16 + + + - Added [Get Account Transaction](https://docs.jiko.io/reference) API + endpoint + + + ### 2022-08-05 + + + - Added [List ACH Originations](https://docs.jiko.io/reference) API endpoint + version: 1.29.0 +servers: + - url: https://{partner}.partner-api.jikoservices.com + description: Production server + - url: https://{partner}.sandbox-api.jikoservices.com + description: Sandbox server +paths: + /api/v1/customers/{customer_id}/jiko-accounts/: + get: + tags: + - Accounts + summary: List Customer Accounts + description: Get a list of all accounts for a specified customer. + operationId: list_customer_accounts_api_v1_customers__customer_id__jiko_accounts__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: false + schema: + type: integer + minimum: 0 + title: Offset + default: 0 + name: offset + in: query + - required: false + schema: + type: integer + maximum: 100 + minimum: 1 + title: Limit + default: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListAccountsResponse' + example: + offset: 0 + count: 1 + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + name: J1 (4-week) + total_value: + value: 20708596 + currency: USD + formatted: $207,085.96 + status: OPEN + portfolio: + securities: + - tradable_id: 4b955c69-dd95-4f6a-a0ff-325ee029f240 + security_type: FIXED_INCOME + quantity: 2100 + market_value: + value: 20708596 + currency: USD + formatted: $207,085.96 + external_id: 912796RF6 + maturity_date: '2023-01-30' + yield_to_maturity: '0.0468' + ask: '98.628528' + bid: '98.612361' + description: US T-Bill + cash: + value: 0 + currency: USD + formatted: $0.00 + all_time_earnings: + value: 935404 + currency: USD + formatted: $9,354.04 + object_type: Account + object_type: List + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/: + get: + tags: + - Accounts + summary: Get Customer Account + description: Get a specific account. + operationId: get_customer_account_api_v1_jiko_accounts__account_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Account' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + name: J1 (4-week) + total_value: + value: 20708596 + currency: USD + formatted: $207,085.96 + status: OPEN + portfolio: + securities: + - tradable_id: 4b955c69-dd95-4f6a-a0ff-325ee029f240 + security_type: FIXED_INCOME + quantity: 2100 + market_value: + value: 20708596 + currency: USD + formatted: $207,085.96 + external_id: 912796RF6 + maturity_date: '2023-01-30' + yield_to_maturity: '0.0468' + ask: '98.628528' + bid: '98.612361' + description: US T-Bill + cash: + value: 0 + currency: USD + formatted: $0.00 + all_time_earnings: + value: 935404 + currency: USD + formatted: $9,354.04 + object_type: Account + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/transactions/: + get: + tags: + - Transactions + summary: List Customer Transactions + description: >- + Returns a list of transactions from a customer's **bank accounts**. It + does not include transactions between the **bank account** and + **brokerage account**. + operationId: >- + list_customer_transactions_api_v1_customers__customer_id__transactions__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - description: Ordered by the transaction timestamp, descending by default. + required: false + schema: + allOf: + - $ref: '#/components/schemas/Order' + description: Ordered by the transaction timestamp, descending by default. + default: desc + name: order + in: query + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Account[] + name: account[] + in: query + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Filter[Card] + name: filter[card] + in: query + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Filter[Portal] + name: filter[portal] + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/TransactionType' + type: array + name: filter[types] + in: query + - required: false + schema: + type: string + format: date-time + title: Timestamp From + name: timestamp_from + in: query + - required: false + schema: + type: string + format: date-time + title: Timestamp To + name: timestamp_to + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: CARD + title: 'ATM ABCD ID: TERM99 at 26 HOUSTON TEXAS CIR, HOUSTON TX' + transaction_type_title: ATM Withdrawal + card_transaction: + location: + street_address: 26 HOUSTON TEXAS CIR + city: HOUSTON + state: TX + country: US + counterparty: ABCD + terminal_id: TERM99 + merchant_type: ATM + pre_authorization: true + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: ACH + title: From VENMO (PAYMENT) + sub_title: 'IIN: 596425331 REF: 91000010211227' + transaction_type_title: ACH Electronic Debit + ach_transaction: + company_name: VENMO + company_entry_description: PAYMENT + individual_identification_number: '596425331' + trace_number: '091000010211227' + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: WIRE + title: From External Account + sub_title: 9999XXXX + transaction_type_title: Wire Transfer In + wire_transaction: + reference_number: 9999XXXX + counterparty_name: John Smith + wire_id: 4854014d-5540-4f0c-9efe-a0137f01e1da + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: CASH_BACK + title: 2022-06 Card Cash Back + transaction_type_title: Card Cash Back + cash_back_transaction: + period: 2022-06 + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01301 + object_type: Transaction + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/transactions/: + get: + tags: + - Transactions + summary: List Account Transactions + description: >- + Returns a list of **bank account** transactions. It does not include + transactions between the **bank account** and **brokerage account**. + operationId: >- + list_account_transactions_api_v1_jiko_accounts__account_id__transactions__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - description: Ordered by the transaction timestamp, descending by default. + required: false + schema: + allOf: + - $ref: '#/components/schemas/Order' + description: Ordered by the transaction timestamp, descending by default. + default: desc + name: order + in: query + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Filter[Card] + name: filter[card] + in: query + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Filter[Portal] + name: filter[portal] + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/TransactionType' + type: array + name: filter[types] + in: query + - required: false + schema: + type: string + format: date-time + title: Timestamp From + name: timestamp_from + in: query + - required: false + schema: + type: string + format: date-time + title: Timestamp To + name: timestamp_to + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: CARD + title: 'ATM ABCD ID: TERM99 at 26 HOUSTON TEXAS CIR, HOUSTON TX' + transaction_type_title: ATM Withdrawal + card_transaction: + location: + street_address: 26 HOUSTON TEXAS CIR + city: HOUSTON + state: TX + country: US + counterparty: ABCD + terminal_id: TERM99 + merchant_type: ATM + pre_authorization: true + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: ACH + title: From VENMO (PAYMENT) + sub_title: 'IIN: 596425331 REF: 91000010211227' + transaction_type_title: ACH Electronic Debit + ach_transaction: + company_name: VENMO + company_entry_description: PAYMENT + individual_identification_number: '596425331' + trace_number: '091000010211227' + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: WIRE + title: From External Account + sub_title: 9999XXXX + transaction_type_title: Wire Transfer In + wire_transaction: + reference_number: 9999XXXX + counterparty_name: John Smith + wire_id: 4854014d-5540-4f0c-9efe-a0137f01e1da + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: CASH_BACK + title: 2022-06 Card Cash Back + transaction_type_title: Card Cash Back + cash_back_transaction: + period: 2022-06 + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01301 + object_type: Transaction + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/transactions/{transaction_id}/: + get: + tags: + - Transactions + summary: Get Account Transaction + description: >- + Returns a specific transaction for a specific account, based on the + provided account_id and transaction_id in question. + operationId: >- + get_account_transaction_api_v1_jiko_accounts__account_id__transactions__transaction_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Transaction Id + name: transaction_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Transaction' + example: + id: 05964326-49b7-4e74-9783-81137ee3cf3b + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: WIRE + title: From External Account + sub_title: 9999XXXX + transaction_type_title: Wire Transfer In + wire_transaction: + reference_number: 9999XXXX + counterparty_name: John Smith + wire_id: 4854014d-5540-4f0c-9efe-a0137f01e1da + object_type: Transaction + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/trades/: + get: + tags: + - Trades + summary: List Customer Trades + description: Returns a list of trades from a customer's **brokerage accounts**. + operationId: list_customer_trades_api_v1_customers__customer_id__trades__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Account[] + name: account[] + in: query + - required: false + schema: + type: string + format: date-time + title: Trade Datetime From + name: trade_datetime_from + in: query + - required: false + schema: + type: string + format: date-time + title: Trade Datetime To + name: trade_datetime_to + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TradeListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + trade_datetime: '2023-01-01T12:00:00+00:00' + settled_date: '2023-01-01' + is_settled: true + activity: BUY + cusip: 912796RF6 + description: US T-Bill + notional: + value: 20935404 + currency: USD + formatted: $209,354.04 + quantity: 2123 + price: '98.612361' + maturity_date: '2023-01-30' + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + yield_to_maturity: '0.0468' + tradable_id: 912797HF7 + object_type: Trade + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/trades/: + get: + tags: + - Trades + summary: List Account Trades + description: >- + Get a list of trades. This is the equivalent of fetching transactions + for the **brokerage** account. + operationId: list_account_trades_api_v1_jiko_accounts__account_id__trades__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: false + schema: + type: string + format: date-time + title: Trade Datetime From + name: trade_datetime_from + in: query + - required: false + schema: + type: string + format: date-time + title: Trade Datetime To + name: trade_datetime_to + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TradeListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + trade_datetime: '2023-01-01T12:00:00+00:00' + settled_date: '2023-01-01' + is_settled: true + activity: BUY + cusip: 912796RF6 + description: US T-Bill + notional: + value: 20935404 + currency: USD + formatted: $209,354.04 + quantity: 2123 + price: '98.612361' + maturity_date: '2023-01-30' + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + yield_to_maturity: '0.0468' + tradable_id: 912797HF7 + object_type: Trade + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/trades/{trade_id}/confirmation/: + get: + tags: + - Trades + summary: Get Trade Confirmation + description: >- + Get a trade's trade confirmation. + + +
+ + + Trade confirmations are sensitive documents. For security reasons, we + return trade confirmations as PDFs through a URL with a 10-minute TTL. + Trade confirmation PDFs should be fetched and served just-in-time, not + stored in databases. Trades with "activity": "MATURITY" do not have + trade confirmations. + operationId: >- + get_trade_confirmation_api_v1_jiko_accounts__account_id__trades__trade_id__confirmation__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Trade Id + name: trade_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TradeConfirmation' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/applications/: + post: + tags: + - Individuals + summary: Create Application + description: >- + Create an application. You must [apply](https://docs.jiko.io/reference) + to potentially create a customer using the application, assuming KYC is + successful. + + +
+ + + When creating an application, keep in mind that customers must be at + least 18 years old to open an account with Jiko. + operationId: create_application_api_v1_applications__post + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InternationalApplicationRequest' + example: + identification_number: '999999999' + name: + first_name: Jiko + last_name: Customer + email: jiko@example.com + date_of_birth: '1970-01-01' + investment_profile: + income: BETWEEN_100K_AND_250K + net_worth: BETWEEN_1M_AND_5M + occupation: Investor + employment_status: EMPLOYED + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + phone_number: '+14155550100' + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/InternationalApplication' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T13:00:00+00:00' + status: CREATED + exception_reasons: [] + phone_number: '+14155550100' + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + email: jiko@example.com + name: + first_name: Jiko + last_name: Customer + date_of_birth: + date_of_birth: '1970-01-01' + investment_profile: + income: BETWEEN_100K_AND_250K + net_worth: BETWEEN_1M_AND_5M + occupation: Investor + employment_status: EMPLOYED + documents: [] + id_verification_documents_needed: false + identification_number_verification_document_needed: false + address_verification_document_needed: false + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: US + citizenship_country: US + object_type: InternationalApplication + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/applications/{application_id}/: + get: + tags: + - Individuals + summary: Get Application + description: Fetch and observe an existing application. + operationId: get_application_api_v1_applications__application_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/InternationalApplication' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T13:00:00+00:00' + status: CREATED + exception_reasons: [] + phone_number: '+14155550100' + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + email: jiko@example.com + name: + first_name: Jiko + last_name: Customer + date_of_birth: + date_of_birth: '1970-01-01' + investment_profile: + income: BETWEEN_100K_AND_250K + net_worth: BETWEEN_1M_AND_5M + occupation: Investor + employment_status: EMPLOYED + documents: [] + id_verification_documents_needed: false + identification_number_verification_document_needed: false + address_verification_document_needed: false + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: US + citizenship_country: US + object_type: InternationalApplication + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/applications/{application_id}/apply/: + post: + tags: + - Individuals + summary: Apply + description: >- + Initiate automatic KYC. Transitions the application from `CREATED` + status to `SUBMITTED` status. Once the async KYC process is completed, + the application will move from `SUBMITTED` to another status. + operationId: apply_api_v1_applications__application_id__apply__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/InternationalApplication' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T13:00:00+00:00' + status: DOCUMENTS_NEEDED + exception_reasons: [] + phone_number: '+14155550100' + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + email: jiko@example.com + name: + first_name: Jiko + last_name: Customer + date_of_birth: + date_of_birth: '1970-01-01' + investment_profile: + income: BETWEEN_100K_AND_250K + net_worth: BETWEEN_1M_AND_5M + occupation: Investor + employment_status: EMPLOYED + customer_id: 160c0c4b-9966-4dc1-a916-8407eb10d74e + documents: + - id: dcd70de2-9f18-4918-bd96-c3972c85dc4e + type: ID_FRONT + status: PENDING_UPLOAD + - id: 62cd7ac9-d882-43f5-ac19-ad85c0c5c533 + type: ID_BACK + status: PENDING_UPLOAD + - id: 1bd78e61-c86f-45b8-8848-34a51c863166 + type: PASSPORT + status: PENDING_UPLOAD + - id: 0ceee47c-946e-4a6d-8951-96e1f630a59c + type: SELFIE + status: PENDING_UPLOAD + id_verification_documents_needed: true + identification_number_verification_document_needed: false + address_verification_document_needed: false + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: US + citizenship_country: US + object_type: InternationalApplication + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/agreements/: + get: + tags: + - Individuals + summary: List Agreements + description: >- + Partner agreements and disclosures are available through the API in a + versioned bundle. The version of the fetched bundle must be attached to + all incoming applications. + operationId: list_agreements_api_v1_agreements__get + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Agreement' + example: + version: 1.0.0 + release_date: '2023-01-01' + documents: + - pdf_download_url: https://example.com/path-to-agreement-pdf + title: Jiko Privacy Policy + type: PRIVACY_POLICY + category: GENERAL + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/: + post: + tags: + - Businesses + summary: Create Application + description: >- + Create a Business Application. The **Business Application** object + contains general information related to the business and the overall + status of the application. + + +
+ + + See the [Onboarding Businesses + Guide](https://docs.jiko.io/guides/onboarding-businesses) for more. + operationId: create-business-application + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationRequest' + example: + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationResponse' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T12:00:00+00:00' + status: CREATED + exception_reasons: [] + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/{application_id}/: + get: + tags: + - Businesses + summary: Get Application + description: Fetch a Business Application. + operationId: get-business-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationResponse' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T12:00:00+00:00' + status: APPROVED + exception_reasons: [] + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + customer_id: 160c0c4b-9966-4dc1-a916-8407eb10d74e + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + patch: + tags: + - Businesses + summary: Update Application + operationId: update-business-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationRequest' + example: + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationResponse' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T12:00:00+00:00' + status: SUBMITTED + exception_reasons: [] + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/{application_id}/apply/: + post: + tags: + - Businesses + summary: Apply + description: >- + When the Business Application object has been completed, along with + Related Party Applications and Document Requests (see the [Onboarding + Businesses Guide](https://docs.jiko.io/guides/onboarding-businesses)), + call this endpoint to submit the business application for review. + operationId: business-application-apply + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationResponse' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T12:00:00+00:00' + status: SUBMITTED + exception_reasons: [] + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/{application_id}/related-party-applications/: + get: + tags: + - Businesses + summary: List Related Party Application + operationId: list-related-party-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + items: + $ref: '#/components/schemas/RelatedPartyApplicationResponse' + type: array + title: Response List-Related-Party-Application + example: + - name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + title: CEO + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + post: + tags: + - Businesses + summary: Create Related Party Application + operationId: create-related-party-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedPartyApplicationRequest' + example: + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + title: CEO + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedPartyApplicationResponse' + example: + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + title: CEO + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/{application_id}/related-party-applications/{related_party_application_id}/: + delete: + tags: + - Businesses + summary: Delete Related Party Application + operationId: delete-related-party-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: Related Party Application Id + name: related_party_application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + patch: + tags: + - Businesses + summary: Update Related Party Application + operationId: update-related-party-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: Related Party Application Id + name: related_party_application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedPartyApplicationRequest' + example: + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + title: CEO + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedPartyApplicationResponse' + example: + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + title: CEO + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/counterparties/: + get: + tags: + - Counterparties + summary: List Counterparties + description: List all counterparties for a customer. + operationId: list_counterparties_api_v1_customers__customer_id__counterparties__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListCounterpartiesResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: ACH + ach: + time_created: '2023-01-15T14:00:00+00:00' + verification_type: MICRO_DEPOSITS + status: IN_PROGRESS + account_number: '123456789' + routing_number: '9876456' + name_on_account: External Accountholder + account_type: SAVINGS + institution_name: External Bank NA + plaid: + mask: '0000' + verification_status: PENDING_AUTOMATIC_VERIFICATION + object_type: CounterpartyPlaid + wire: + time_created: '2023-01-15T14:00:00+00:00' + verification_type: INCOMING_WIRE + status: IN_PROGRESS + account_number: '1213456789' + routing_number: '9876456' + name_on_account: External Accountholder + account_type: SAVINGS + institution_name: External Bank NA + object_type: Counterparty + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/counterparties/{counterparty_id}/: + get: + tags: + - Counterparties + summary: Get Counterparty + description: >- + Poll this endpoint to monitor the progress of the verification process + for a single counterparty. + + +
+ + + > ### Plaid: + + > If `plaid.verification_status` is `PENDING_MANUAL_VERIFICATION`, the + user is in the Same Day Micro-deposits + flow and must return in 1-2 business days and go through the Plaid Link + flow again, this time using a new Link token where the *counterparty_id* + is passed to Jiko. + operationId: >- + get_counterparty_api_v1_customers__customer_id__counterparties__counterparty_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + type: string + format: uuid + title: Counterparty Id + name: counterparty_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Counterparty' + example: + id: b5a776db-8960-4157-afe5-519b6708bb79 + type: WIRE + wire: + time_created: '2023-01-15T14:00:00+00:00' + verification_type: INCOMING_WIRE + status: IN_PROGRESS + account_number: '1213456789' + routing_number: '9876456' + name_on_account: External Accountholder + account_type: SAVINGS + institution_name: External Bank NA + object_type: Counterparty + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/cards/: + get: + tags: + - Manage Cards + summary: List Account Cards + description: >- + Get all cards for a specific account. Includes the `card_id` and + metadata, but sensitive data like CVV's, expiration dates and card + numbers are omitted. + operationId: list_account_cards_api_v1_jiko_accounts__account_id__cards__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: false + schema: + type: integer + title: Limit + default: 100 + name: limit + in: query + - required: false + schema: + type: string + title: Cursor + name: cursor + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/CardStatus' + type: array + uniqueItems: true + name: filter[status] + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CardListResponse' + example: + offset: 0 + count: 1 + items: + - card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + name: Jiko Virtual Debit Card + status: OPEN + type: VIRTUAL + object_type: List + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/cards/{card_id}/status/: + get: + tags: + - Manage Cards + summary: Get Card Status + description: Get a card's current status. + operationId: >- + get_card_status_api_v1_jiko_accounts__account_id__cards__card_id__status__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CardStatusResponse' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + patch: + tags: + - Manage Cards + summary: Set Card Status + description: >- + Set a card's status. Note that once a card's status is set to `CLOSED`, + it can never be used again. + operationId: >- + set_card_status_api_v1_jiko_accounts__account_id__cards__card_id__status__patch + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChangeCardStatusRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CardStatusResponse' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/cards/{card_id}/pin/: + post: + tags: + - Manage Cards + summary: Set Card PIN + description: Set PIN for physical cards (by `card_id`) before they are activated. + operationId: set_card_pin_api_v1_jiko_accounts__account_id__cards__card_id__pin__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CardPinBase' + example: + encrypted_pin: >- + KzJXZ0DgR/rvWnxexTeObSsOaByNGHKt67kLwbAEWULV4szPTeOTp1wSVQalGn/ykE0qgEUV8PEZGUbyvfj3j0gpuxIMdgbxg0ujXp6UfiuOMIbmP+HDg4E2BoSduh8XygMhwiWycnqA6lnKHRjGSb8vOwnNgxTGuUX9w3k0NJl3u62JWs2FzSa/HedpxKu+U1VTRmW9Y7tee7QYC/72xseV2wKMx+iFG3Sw2D9ruC4sgVE3tdi7E9FBsSVWawle9UrTF+wdX+cfImb7lKI2Pw5MiEf29xe7moNU8RHzGgyOrbyQcx0/j8t8mLqHSs/ioRGeSNevw4pXlpJBRD+hamyRdVQdaLrWB5xEKx9Ih9fGlMYE5RJHWMveB0NQ2Oxl2h/4/Om/bbP0JDA1doY6l/ovkey9lu0c494R05tdWmch93v+f/SqAoBcXf4hDeUgLhWkRNykzzwoQOACFNcBk9TUWJH8S90TYQM3sdgIfcNFru45VGJa5jlyheqNYeU3EqsWyVFmZAJUFJUSBMJdAVkSg5jxDPdzyk7GLrk5xu2N1orq4NKzR8O6WL+PhFtJF/7pZDWawq8TZRX3nqbyYUY+5ZlnBEVXywsn0L5Fp6od4oAelyhzrjzMlhtEMpuwOFhLvcb3Fm0Z4EIDeX6l3MIhDTDExKxOJsCLG2dbbIA= + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CardPinResponse' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/cards/{card_id}/close/: + post: + tags: + - Manage Cards + summary: Close Card + description: >- + Close a card, virtual or physical. Physical cards require a + `closure_reason`. If the reason is `STOLEN` or `LOST`, a + `lost_stolen_date` is required. + operationId: close_card_api_v1_jiko_accounts__account_id__cards__card_id__close__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CloseCardRequest' + example: + closure_reason: STOLEN + lost_stolen_date: '2023-01-01' + required: true + responses: + '204': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/card-orders/: + get: + tags: + - Physical Cards + summary: List Card Orders + description: List all card orders for this account. + operationId: list_card_orders_api_v1_jiko_accounts__account_id__card_orders__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PhysicalCardOrderListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + card_order_id: d66e74c4-66f9-4937-8518-1a94f39ba0f9 + status: INITIAL + object_type: MinimalPhysicalCardOrderResponse + object_type: CursorList + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + post: + tags: + - Physical Cards + summary: Create Physical Card Order + description: >- + Order a new, physical card for an account. It will be delivered to the + specified address. + operationId: >- + create_physical_card_order_api_v1_jiko_accounts__account_id__card_orders__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PhysicalCardOrder' + example: + name_on_card: Jiko Customer + shipping_address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PhysicalCardOrderResponse' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + card_order_id: d66e74c4-66f9-4937-8518-1a94f39ba0f9 + status: INITIAL + name_on_card: Jiko Customer + shipping_address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + object_type: PhysicalCardOrderResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/card-orders/{card_order_id}/: + get: + tags: + - Physical Cards + summary: Get Card Order + description: Retrieve card order information by provided `card_order_id`. + operationId: >- + get_card_order_api_v1_jiko_accounts__account_id__card_orders__card_order_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Order Id + name: card_order_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PhysicalCardOrderResponse' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + card_order_id: d66e74c4-66f9-4937-8518-1a94f39ba0f9 + status: INITIAL + name_on_card: Jiko Customer + shipping_address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + object_type: PhysicalCardOrderResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/virtual-cards/{card_id}/: + post: + tags: + - Virtual Cards + summary: Get Virtual Card + description: >- + Retrieve virtual card detail by given `card_id`. Generate a single-use + 4096-bit RSA key-pair at the (end user) client side and pass the public + key PEM encoded upstream in PKCS#1 or PKCS#1.5 format to ensure + confidentiality and encryption of the card's PAN, CVV and expiration + date. + operationId: >- + get_virtual_card_api_v1_jiko_accounts__account_id__virtual_cards__card_id___post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PublicKeyRequest' + example: + public_key: "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzmZv8spzSU9z+/bhFzX0\r\ns4xVXE9ZOApQUMoM3Q1VDiJujyWJ61uoTsWT1uQlIXHdUQ3NcXw0WYDUEaM8fj1b\r\nB2k1zSXmRD4VmxAIRNVfs3Cp3GKqC/WjyvDw25+SYBFwiaYJblpyZPiunXvXRyK8\r\nvdDaPliwTN5p7pjHQvcfXOl20ZtWnZTGMulJ+smNCYKWckW1hEOMjJP8FLMJpSHa\r\n6yGOpAYAxoHxodiJCI4X6fG206gBtyFps1CyxCz8WDjALqJYfeArTFv7/2AyuVCF\r\n5zLE7tzPrJeVxfqa+CI+7mWFhEKZLAd/PEzEL7P2VZr9BRd0lyxBipEEG/DGMEvY\r\n1dcx+3J56ZxVURAqeXPGkqVfz/IdisQt/okp6vSVKQdImeyzpJvwvBc7T7tKyRZR\r\nvtL8XLYzZBujqWCezMxU97TAb7BlQ2nPJCQFMZD7y1KldgWuGnjXha1TFIYvfrYW\r\noDFK221Z6LYlKWeRFGXhoNOX1Qm/CX3wi9Tfo01LTxbCY2Y1mbv6e8Xt12MzhicD\r\nZsFvVrtRaVrjmqXXDq8X2r7puPTLOQf7Dow3944XnTZQURE4oPIwCfTBmfMow+TB\r\n+ZUYWRXwg0/hl9AOBSGLVNlaGZD8sAu98knish5LJv34lx5mIiLLpGpIt+mzZikU\r\nFt9siIkltvk49qcmTuI8GJUCAwEAAQ==\r\n-----END PUBLIC KEY-----" + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualCardResponse' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + encrypted_pan: LBHyVQggqNZvbYriaL8omZSFnQfS4yMFEO8hpVmgrtn70uYz56... + encrypted_cvv: GLuGA7uI2iYrzE03XkKMH1IJZD6cxR+WJmgw9Z0VuervNqnkUq... + encrypted_expiration: amAxcZuURFfOi38kbM1LXfa6gBmuaSCt10Kic8243kM1V+Llsb... + object_type: VirtualCardResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + delete: + tags: + - Virtual Cards + summary: Close Virtual Card + description: Close a virtual card. This is an irreversible action. + operationId: >- + close_virtual_card_api_v1_jiko_accounts__account_id__virtual_cards__card_id___delete + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/virtual-cards/: + post: + tags: + - Virtual Cards + summary: Create Virtual Card + description: >- + Create a virtual card for an account. Generate a single-use 4096-bit RSA + key-pair at the (end user) client side and pass the public key PEM + encoded upstream in PKCS#1 or PKCS#1.5 format to ensure confidentiality + and encryption of the card's PAN, CVV and expiration date. + operationId: >- + create_virtual_card_api_v1_jiko_accounts__account_id__virtual_cards__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PublicKeyRequest' + example: + public_key: "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzmZv8spzSU9z+/bhFzX0\r\ns4xVXE9ZOApQUMoM3Q1VDiJujyWJ61uoTsWT1uQlIXHdUQ3NcXw0WYDUEaM8fj1b\r\nB2k1zSXmRD4VmxAIRNVfs3Cp3GKqC/WjyvDw25+SYBFwiaYJblpyZPiunXvXRyK8\r\nvdDaPliwTN5p7pjHQvcfXOl20ZtWnZTGMulJ+smNCYKWckW1hEOMjJP8FLMJpSHa\r\n6yGOpAYAxoHxodiJCI4X6fG206gBtyFps1CyxCz8WDjALqJYfeArTFv7/2AyuVCF\r\n5zLE7tzPrJeVxfqa+CI+7mWFhEKZLAd/PEzEL7P2VZr9BRd0lyxBipEEG/DGMEvY\r\n1dcx+3J56ZxVURAqeXPGkqVfz/IdisQt/okp6vSVKQdImeyzpJvwvBc7T7tKyRZR\r\nvtL8XLYzZBujqWCezMxU97TAb7BlQ2nPJCQFMZD7y1KldgWuGnjXha1TFIYvfrYW\r\noDFK221Z6LYlKWeRFGXhoNOX1Qm/CX3wi9Tfo01LTxbCY2Y1mbv6e8Xt12MzhicD\r\nZsFvVrtRaVrjmqXXDq8X2r7puPTLOQf7Dow3944XnTZQURE4oPIwCfTBmfMow+TB\r\n+ZUYWRXwg0/hl9AOBSGLVNlaGZD8sAu98knish5LJv34lx5mIiLLpGpIt+mzZikU\r\nFt9siIkltvk49qcmTuI8GJUCAwEAAQ==\r\n-----END PUBLIC KEY-----" + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualCardResponse' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + encrypted_pan: LBHyVQggqNZvbYriaL8omZSFnQfS4yMFEO8hpVmgrtn70uYz56... + encrypted_cvv: GLuGA7uI2iYrzE03XkKMH1IJZD6cxR+WJmgw9Z0VuervNqnkUq... + encrypted_expiration: amAxcZuURFfOi38kbM1LXfa6gBmuaSCt10Kic8243kM1V+Llsb... + object_type: VirtualCardResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/events/types/: + get: + tags: + - Events + summary: List Event Types + description: List all event types. + operationId: list_event_types_api_v1_events_types__get + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/EventListResponse' + example: + offset: 0 + count: 14 + items: + - event: application.approved + object_type: EventType + - event: application.documents_needed + object_type: EventType + - event: application.manual_review + object_type: EventType + - event: application.rejected + object_type: EventType + - event: card.status.closed + object_type: EventType + - event: card.status.frozen + object_type: EventType + - event: card.status.locked + object_type: EventType + - event: card.status.open + object_type: EventType + - event: card.transaction.approved + object_type: EventType + - event: card.transaction.rejected + object_type: EventType + - event: transfers.ach.in.success + object_type: EventType + - event: transfers.ach.in.rejected + object_type: EventType + - event: transfers.ach.out.success + object_type: EventType + - event: transfers.ach.out.rejected + object_type: EventType + object_type: List + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/events/: + get: + tags: + - Events + summary: List Events + description: List all past events. + operationId: list_events_api_v1_events__get + parameters: + - required: false + schema: + type: string + format: uuid + title: Subscription Id + name: subscription_id + in: query + - required: false + schema: + type: string + format: date-time + title: After + name: after + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CursorListResponse_PartnerEvent_' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - event: + event_id: a7a26ff2-e851-45b6-9634-d595f45458b7 + timestamp: '2023-01-01T14:00:00+00:00' + payload: + application_id: 48ac72d0-a829-4896-a067-dcb1c2b0f30c + event_type: application.approved + delivery_attempts: + - delivery_attempt_id: 5326238f-7f19-4e5f-b374-402eed7b1c7b + subscription_id: aa11a4c2-a467-43db-b413-c4ab0f5cf627 + success: true + response_code: 200 + response_message: OK + called_at: '2023-01-01T14:00:00+00:00' + object_type: PartnerEvent + object_type: CursorList + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/counterparties/plaid/link-token/: + post: + tags: + - 'Counterparties: Plaid' + summary: Create Plaid Link Token + description: >- + To initiate the Plaid Link flow in your app, a link token must be + created to identify the data flowing between your app, Plaid and Jiko. + If the Plaid Link flow has to be accessed again later to complete + account ownership verification (Same Day Micro-deposits), you must + include the *counterparty_id* for the counterparty in question. + *redirect_uri* allows you to use OAuth. + + +
+ + + **NOTE**: `android_package_name` and `redirect_uri` are mutually + exclusive. Only one should be provided, depending on your use case. + operationId: >- + create_plaid_link_token_api_v1_customers__customer_id__counterparties_plaid_link_token__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PlaidLinkTokenRequest' + example: + client_name: My App + redirect_uri: https://example.com/plaid-oauth + android_package_name: com.example.myapp + counterparty_id: fd38dae9-b300-4017-a630-101c4279eafd + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PlaidLinkToken' + example: + link_token: link-af1a0311-da53-4636-b754-dd15cc058176 + expiration: '2023-01-01T12:00:00+00:00' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/counterparties/plaid/: + post: + tags: + - 'Counterparties: Plaid' + summary: Create Plaid Counterparties + description: >- + Once your user has completed the Plaid Link flow, you must forward some + data from Plaid to Jiko to create the counterparty. This includes + information about the third party financial institution and the specific + accounts selected by the user. The *institution_id* is required in all + cases except in the Same Day Micro-deposits flow. + operationId: >- + create_plaid_counterparties_api_v1_customers__customer_id__counterparties_plaid__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PlaidCreateCounterparties' + example: + public_token: public-b0e2c4ee-a763-4df5-bfe9-46a46bce993d + accounts: + - id: blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo + name: Plaid Checking + mask: '0000' + institution_id: ins_109508 + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PlaidCreateCounterpartiesResponse' + example: + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: ACH + ach: + time_created: '2023-01-15T14:00:00+00:00' + verification_type: MICRO_DEPOSITS + status: IN_PROGRESS + account_number: '123456789' + routing_number: '9876456' + name_on_account: External Accountholder + account_type: SAVINGS + institution_name: External Bank NA + plaid: + mask: '0000' + verification_status: PENDING_AUTOMATIC_VERIFICATION + object_type: CounterpartyPlaid + object_type: Counterparty + object_type: PlaidCreateCounterpartiesResponse + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/counterparties/{counterparty_id}/plaid/verify/: + post: + tags: + - 'Counterparties: Plaid' + summary: Verify Plaid Counterparty + description: >- + If and when a user completes the Same Day Micro-deposits flow, call this + endpoint to notify it has been completed. Then, go back to polling the + counterparty until verification is complete. + operationId: >- + verify_plaid_counterparty_api_v1_customers__customer_id__counterparties__counterparty_id__plaid_verify__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + type: string + format: uuid + title: Counterparty Id + name: counterparty_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/subscriptions/: + get: + tags: + - Subscriptions + summary: List Subscriptions + description: List a partner's subscriptions. + operationId: list_subscriptions_api_v1_subscriptions__get + parameters: + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CursorListResponse_Subscription_' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - description: Jiko API Webhook Subscriptions + events: + - application.approved + - application.documents_needed + - application.manual_review + - application.rejected + - card.status.closed + - card.status.frozen + - card.status.locked + - card.status.open + - card.transaction.approved + - card.transaction.rejected + - transfers.ach.in.success + - transfers.ach.in.rejected + - transfers.ach.out.success + - transfers.ach.out.rejected + url: https://example.com/webhooks + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T14:00:00+00:00' + updated_at: '2023-01-01T14:00:00+00:00' + status: enabled + object_type: Subscription + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + post: + tags: + - Subscriptions + summary: Create Subscription + description: >- + Creates a webhook subscription for the specified event types and the + given URL. + operationId: create_subscription_api_v1_subscriptions__post + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriptionRequest' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success + shared_secret: '1234567890123456' + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T14:00:00+00:00' + updated_at: '2023-01-01T14:00:00+00:00' + status: enabled + object_type: Subscription + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/subscriptions/{subscription_id}/: + get: + tags: + - Subscriptions + summary: Get Subscription + description: Retrieve a webhook subscription by given `subscription_id`. + operationId: get_subscription_api_v1_subscriptions__subscription_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Subscription Id + name: subscription_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T14:00:00+00:00' + updated_at: '2023-01-01T14:00:00+00:00' + status: enabled + object_type: Subscription + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + delete: + tags: + - Subscriptions + summary: Delete Subscription + description: Deletes a webhook subscription matching the given ID. + operationId: delete_subscription_api_v1_subscriptions__subscription_id___delete + parameters: + - required: true + schema: + type: string + format: uuid + title: Subscription Id + name: subscription_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + patch: + tags: + - Subscriptions + summary: Update Subscription + description: Updates webhook subscription by specified `subscription_id`. + operationId: update_subscription_api_v1_subscriptions__subscription_id___patch + parameters: + - required: true + schema: + type: string + format: uuid + title: Subscription Id + name: subscription_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriptionRequest' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success-new + shared_secret: '1234567890123456' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success-new + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T14:00:00+00:00' + updated_at: '2023-01-01T16:00:00+00:00' + status: enabled + object_type: Subscription + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/ach-originating/: + get: + tags: + - ACH + summary: List ACH Originations + description: List all ACH transfer originations. + operationId: >- + list_ach_originations_api_v1_jiko_accounts__account_id__ach_originating__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: false + schema: + items: + $ref: '#/components/schemas/ACHStatus' + type: array + name: filter[status] + in: query + - required: false + schema: + $ref: '#/components/schemas/ACHDirection' + name: direction + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CursorListResponse_ACHResponse_' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - counterparty_id: fd38dae9-b300-4017-a630-101c42791afd + direction: CREDIT + sec_code: WEB + payment_related_information: + - Transferring funds to Jiko from an external account + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + status: PROCESSED + time_created: '2023-01-01T14:00:00+00:00' + company_entry_description: Incoming ACH Transfer + object_type: ACHResponse + object_type: CursorList + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + post: + tags: + - ACH + summary: Create ACH Origination + description: >- + Originate an ACH transaction with the counterparty. + + This can only be done after creating a + [Counterparty](https://docs.jiko.io/reference) for the account. + + +
+ + + ### ACH Origination Limitations + + +
+ + + - All transfers that are below 25k and scheduled before 12:00 ET are + sent with settlement same-day + + - All transfers above 25k scheduled before 12:00 ET are sent with + settlement next day + + - All transfers scheduled after 12:00 ET follow the above rules the + following day + operationId: >- + create_ach_origination_api_v1_jiko_accounts__account_id__ach_originating__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ACHRequest' + example: + counterparty_id: fd38dae9-b300-4017-a630-101c4279eafd + direction: CREDIT + sec_code: WEB + payment_related_information: + - Transferring funds to Jiko from an external account + amount_usdc: 100000 + company_entry_description: ACH TXN IN + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ACHResponse' + example: + counterparty_id: fd38dae9-b300-4017-a630-101c42791afd + direction: CREDIT + sec_code: WEB + payment_related_information: + - Transferring funds to Jiko from an external account + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + status: PROCESSED + time_created: '2023-01-01T14:00:00+00:00' + company_entry_description: Incoming ACH Transfer + object_type: ACHResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/ach-originating/{transfer_id}/: + get: + tags: + - ACH + summary: Get ACH Origination + description: Get a specific ACH transfer origination. + operationId: >- + get_ach_origination_api_v1_jiko_accounts__account_id__ach_originating__transfer_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Transfer Id + name: transfer_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ACHResponse' + example: + counterparty_id: fd38dae9-b300-4017-a630-101c42791afd + direction: CREDIT + sec_code: WEB + payment_related_information: + - Transferring funds to Jiko from an external account + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + status: PROCESSED + time_created: '2023-01-01T14:00:00+00:00' + company_entry_description: Incoming ACH Transfer + object_type: ACHResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/wires/: + post: + tags: + - Wires + summary: Create Wire + description: >- + Initiates a Wire Transfer. Wires can only be sent to accounts created + and verified via [Create + Counterparty](https://docs.jiko.io/reference/v2#tag/Counterparties/operation/create-counterparty-v2). + Initiating outgoing wire transfers isn’t available by default and must + be enabled — please contact your Jiko point-of-contact to learn more. + operationId: create-wire + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WireRequest' + example: + counterparty_id: fd38dae9-b300-4017-a630-101c4279eafd + amount_usdc: 1000000 + created_by: jiko@example.com + description: Wiring funds to external account + wire_id: 6b14d0c0-277f-4a32-b5ac-c2e1c7d99f15 + required: true + responses: + '201': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/transfers/on-us/: + post: + tags: + - On-Us Transfers + summary: Create On-Us Transfer + description: >- + Initiates an On-Us Transfer between two Pockets. + + + On-Us Transfers can be made in three 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 + + + 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`. + operationId: create-on-us-transfer + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OnUsTransferDetailsRequest' + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/OnUsTransfer' + example: + 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: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_FUNDING + source: '123456789' + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + fees: + - type: AUM_FEE + amount: + value: 10 + currency: USD + formatted: $0.10 + object_type: OnUsTransfer + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/transfers/on-us/{transfer_id}/: + get: + tags: + - On-Us Transfers + summary: Get On-Us Transfer + description: Gets a single on-us transfer by ID. + operationId: get-on-us-transfer + parameters: + - required: true + schema: + type: string + format: uuid + title: Transfer Id + name: transfer_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/OnUsTransfer' + example: + 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: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_FUNDING + source: '123456789' + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + fees: + - type: AUM_FEE + amount: + value: 10 + currency: USD + formatted: $0.10 + object_type: OnUsTransfer + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/: + get: + tags: + - Customers + summary: Get Customer Data + description: Retrieve customer details for the customer given by the customer ID. + operationId: get_customer_data_api_v1_customers__customer_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Customer' + example: + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + email: jiko@example.com + phone_number: '15551234567' + account_status: OPEN + type: INDIVIDUAL + name: + first_name: Jiko + last_name: Customer + date_of_birth: '1970-01-01' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/statements/: + get: + tags: + - Statements + summary: List Customer Statements + description: Get all statements for all accounts of a specific customer. + operationId: list_customer_statements_api_v1_customers__customer_id__statements__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Account[] + name: account[] + in: query + - required: false + schema: + allOf: + - $ref: '#/components/schemas/Order' + default: desc + name: order + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/StatementType' + type: array + default: [] + name: type[] + in: query + - description: Date formatted either `YYYY` or `YYYY-MM` + required: false + schema: + type: string + pattern: ^\d{4}(-\d{2})?$ + title: Key + description: Date formatted either `YYYY` or `YYYY-MM` + name: key + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 150 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/StatementListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + type: BANK + key: '2023-01-01' + pdf_download_url: https://example.com/path-to-statement-pdf + time_created: '2023-01-15T14:00:00+00:00' + object_type: Statement + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/statements/: + get: + tags: + - Statements + summary: List Account Statements + description: >- + Lists all statements for an account. Partners can expect monthly + statements to be available by the 15th of every month. + + +
+ + + Bank and Broker dealer statements are sensitive documents. For security + reasons, these URLs have a 10 minute TTL. Therefore, they should be + fetched and served just-in-time, not stored in databases. + operationId: >- + list_account_statements_api_v1_jiko_accounts__account_id__statements__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: false + schema: + allOf: + - $ref: '#/components/schemas/Order' + default: desc + name: order + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/StatementType' + type: array + default: [] + name: type[] + in: query + - description: Date formatted either `YYYY` or `YYYY-MM` + required: false + schema: + type: string + pattern: ^\d{4}(-\d{2})?$ + title: Key + description: Date formatted either `YYYY` or `YYYY-MM` + name: key + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 150 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/StatementListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + type: BANK + key: '2023-01-01' + pdf_download_url: https://example.com/path-to-statement-pdf + time_created: '2023-01-15T14:00:00+00:00' + object_type: Statement + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + deprecated: true + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/portals/: + get: + tags: + - Portals + summary: List Portals + description: Get a list of portals associated with an account. + operationId: list_account_portals_api_v1_jiko_accounts__account_id__portals__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListPortalsResponse' + example: + count: 1 + portals: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + routing_number: '123456789' + account_number: '987654321' + status: OPEN + name: Payroll + object_type: Portal + object_type: List + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + post: + tags: + - Portals + summary: Create Portal + description: Create a portal for an account. + operationId: create_portal_api_v1_jiko_accounts__account_id__portals__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PortalCreateRequest' + example: + name: Payroll + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Portal' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + routing_number: '123456789' + account_number: '987654321' + status: OPEN + name: Payroll + object_type: Portal + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/portals/{portal_id}/: + get: + tags: + - Portals + summary: Get Account Portal + description: Get a specific portal associated with an account. + operationId: get-account-portal + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Portal Id + name: portal_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Portal' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + routing_number: '123456789' + account_number: '987654321' + status: OPEN + name: Payroll + object_type: Portal + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + patch: + tags: + - Portals + summary: Update Portal + description: Update a portal's name. + operationId: >- + update_portal_api_v1_jiko_accounts__account_id__portals__portal_id___patch + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Portal Id + name: portal_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PortalUpdateRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Portal' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + routing_number: '123456789' + account_number: '987654321' + status: OPEN + name: Payroll + object_type: Portal + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/portals/{portal_id}/close/: + post: + tags: + - Portals + summary: Close Portal + description: Close a portal. This is an irreversible action. + operationId: >- + close_portal_api_v1_jiko_accounts__account_id__portals__portal_id__close__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Portal Id + name: portal_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '404': + description: Not found + '412': + description: Portal is already closed. + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/applications/{application_id}/documents/{document_type}/file/: + post: + tags: + - Individuals + summary: Upload Document To Application + description: >- + Upload documents to the application for more detailed KYC or manual + review. + + + As with all other endpoints, the bearer token and `x-jiko-idempotency` + is needed, but `x-jiko-signature` is not needed. + + The file should be posted unprocessed in the request body, in the same + manner as `curl -X POST --data-binary @my_file.png` does. + + The maximum file size for `ID_FRONT`, `ID_BACK`, `SELFIE` and `PASSPORT` + is 5 MB. Other files can be up to 50 MB. + + + + Documents can be uploaded before and after calling + [Apply](https://docs.jiko.io/reference). + operationId: >- + Upload_document_to_Application_api_v1_applications__application_id__documents__document_type__file__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + $ref: '#/components/schemas/DocumentType' + name: document_type + in: path + - required: true + schema: + type: string + pattern: image/png + title: Content-Type + name: content-type + in: header + - required: true + schema: + type: integer + exclusiveMaximum: 52428800 + exclusiveMinimum: 0 + title: Content-Length + name: content-length + in: header + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/UploadDocumentResponse' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/documents/{document_type}/file/: + post: + tags: + - Customers + summary: Upload Document To Customer + description: >- + Upload files for an approved customer. Used to verify customer requests + (e.g. Customer change request, close account request, ACH request). + Refer to the [Upload Document To + Application](https://docs.jiko.io/reference) for more detailed info. + operationId: upload-customer-document + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + $ref: '#/components/schemas/DocumentType' + name: document_type + in: path + - required: true + schema: + type: string + pattern: image/png + title: Content-Type + name: content-type + in: header + - required: true + schema: + type: integer + exclusiveMaximum: 52428800 + exclusiveMinimum: 0 + title: Content-Length + name: content-length + in: header + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/UploadDocumentResponse' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/{application_id}/documents/: + get: + tags: + - Businesses + summary: List Document Requests + description: >- + Fetch the list of outstanding Document Requests. Document Requests vary + depending on the information provided in the Business Application and + Related Party Application objects. + + +
+ + + See the [Onboarding Businesses + Guide](https://docs.jiko.io/guides/onboarding-businesses) for more. + operationId: list-document-requests-businesses + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + items: + $ref: '#/components/schemas/Document' + type: array + title: Response List-Document-Requests-Businesses + example: + - id: 61c23eb1-002a-4459-aa9a-624428281e14 + type: OPERATING_AGREEMENT + status: PENDING_UPLOAD + exception_reason: '' + name: '' + - id: 96e70040-eb4e-48d1-98af-0c793a6ee137 + type: ARTICLES_OF_INCORPORATION + status: INVALID + exception_reason: IMAGE_QUALITY_ERROR_CUTOFF + name: articles_of_incorporation.png + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/documents/{document_id}/: + post: + tags: + - Businesses + summary: Upload Document + operationId: upload-business-application-document + parameters: + - required: true + schema: + type: string + format: uuid + title: Document Id + name: document_id + in: path + - required: true + schema: + type: string + pattern: image/png + title: Content-Type + name: content-type + in: header + - required: true + schema: + type: integer + exclusiveMaximum: 52428800 + exclusiveMinimum: 0 + title: Content-Length + name: content-length + in: header + - required: true + schema: + type: string + title: Content-Disposition + name: content-disposition + in: header + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Document' + example: + id: 96e70040-eb4e-48d1-98af-0c793a6ee137 + type: ARTICLES_OF_INCORPORATION + status: APPROVED + exception_reason: '' + name: articles_of_incorporation.png + '404': + description: Not found + '412': + description: Document has already been reviewed and approved. + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/login/: + post: + tags: + - Security + summary: Login + description: >- + Provide the username and password in a request body to receive a bearer + token to authenticate to the API's other endpoints. + + +
+ + + See [Authentication](https://docs.jiko.io/reference). + operationId: login_api_v1_login__post + requestBody: + required: true + content: + application/json: + schema: + title: Login Info + examples: + username: username + password: password + allOf: + - $ref: '#/components/schemas/LoginInput' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/LoginResponse' + example: + token: LBHyVQggqNZvbYriaL8omZSFnQfS4yMFEO8hpVmgrtn= + expires: '2023-01-01T14:00:00+00:00' + '401': + description: Unauthorized + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/public-keys/: + get: + tags: + - Security + summary: List Public Keys + description: Returns all relevant asymmetric encryption keys. + operationId: list_public_keys_api_v1_public_keys__get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/EncryptionKeysResponse' + example: + set_pin: "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzmZv8spzSU9z+/bhFzX0\r\ns4xVXE9ZOApQUMoM3Q1VDiJujyWJ61uoTsWT1uQlIXHdUQ3NcXw0WYDUEaM8fj1b\r\nB2k1zSXmRD4VmxAIRNVfs3Cp3GKqC/WjyvDw25+SYBFwiaYJblpyZPiunXvXRyK8\r\nvdDaPliwTN5p7pjHQvcfXOl20ZtWnZTGMulJ+smNCYKWckW1hEOMjJP8FLMJpSHa\r\n6yGOpAYAxoHxodiJCI4X6fG206gBtyFps1CyxCz8WDjALqJYfeArTFv7/2AyuVCF\r\n5zLE7tzPrJeVxfqa+CI+7mWFhEKZLAd/PEzEL7P2VZr9BRd0lyxBipEEG/DGMEvY\r\n1dcx+3J56ZxVURAqeXPGkqVfz/IdisQt/okp6vSVKQdImeyzpJvwvBc7T7tKyRZR\r\nvtL8XLYzZBujqWCezMxU97TAb7BlQ2nPJCQFMZD7y1KldgWuGnjXha1TFIYvfrYW\r\noDFK221Z6LYlKWeRFGXhoNOX1Qm/CX3wi9Tfo01LTxbCY2Y1mbv6e8Xt12MzhicD\r\nZsFvVrtRaVrjmqXXDq8X2r7puPTLOQf7Dow3944XnTZQURE4oPIwCfTBmfMow+TB\r\n+ZUYWRXwg0/hl9AOBSGLVNlaGZD8sAu98knish5LJv34lx5mIiLLpGpIt+mzZikU\r\nFt9siIkltvk49qcmTuI8GJUCAwEAAQ==\r\n-----END PUBLIC KEY-----" + /health: + get: + tags: + - Health + summary: Get Health Check + description: >- + A health check endpoint, which returns "OK" if the Partner API is up and + running. + operationId: get-health-check + responses: + '200': + description: Successful Response + content: + application/json: + schema: + type: string + enum: + - OK + title: Response Get-Health-Check + /api/v1/sandbox/card-swipe/: + post: + tags: + - Sandbox + summary: Submit Card Swipe + description: >- + Simulate a card swipe with the given `card_id` for a given `amount_usdc` + in USD cents. **Note**: Only for virtual cards at the moment. + operationId: submit_card_swipe_api_v1_sandbox_card_swipe__post + parameters: + - required: false + schema: + type: string + title: X-Branch-Name + name: x-branch-name + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CardSwipe' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + amount_usdc: 100000 + required: true + responses: + '202': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/sandbox/generate-card/: + post: + tags: + - Sandbox + summary: Generate Physical Card From Order + description: Generate a physical card from a card order with a given `card_order_id`. + operationId: generate_physical_card_from_order_api_v1_sandbox_generate_card__post + parameters: + - required: false + schema: + type: string + title: X-Branch-Name + name: x-branch-name + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GeneratePhysicalCardFromOrder' + required: true + responses: + '202': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/sandbox/webhook/: + post: + tags: + - Sandbox + summary: Trigger Webhook + description: >- + Simulates a webhook event according to the payload. This will trigger + requests to subscribed callback URLs, if any. + operationId: trigger-webhook + parameters: + - required: false + schema: + type: string + title: X-Branch-Name + name: x-branch-name + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EventDetails' + required: true + responses: + '202': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/sandbox/fund/: + post: + tags: + - Sandbox + summary: Fund Account + description: >- + Simulates an ACH credit to the provided Jiko account. Requires a portal + to use. A portal can be created using the [Create + Portal](https://docs.jiko.io/reference) endpoint. + operationId: fund_account_api_v1_sandbox_fund__post + parameters: + - required: false + schema: + type: string + title: X-Branch-Name + name: x-branch-name + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FundPortalRequest' + required: true + responses: + '202': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] +components: + schemas: + ACHCounterparty: + properties: + time_created: + type: string + format: date-time + title: Time Created + verification_type: + $ref: '#/components/schemas/ACHCounterpartyVerificationType' + status: + $ref: '#/components/schemas/ACHCounterpartyVerificationStatus' + account_number: + type: string + title: Account Number + routing_number: + type: string + title: Routing Number + name_on_account: + type: string + title: Name On Account + account_type: + $ref: '#/components/schemas/ACHCounterpartyAccountType' + institution_name: + type: string + title: Institution Name + plaid: + $ref: '#/components/schemas/CounterpartyPlaid' + micro_deposits: + $ref: '#/components/schemas/CounterpartyMicroDeposits' + type: object + required: + - time_created + - verification_type + - status + - account_number + - routing_number + - name_on_account + - account_type + - institution_name + title: ACHCounterparty + ACHCounterpartyAccountType: + type: string + enum: + - SAVINGS + - CHECKING + title: ACHCounterpartyAccountType + description: An enumeration. + ACHCounterpartyVerificationStatus: + type: string + enum: + - IN_PROGRESS + - FAILED + - VERIFIED + title: ACHCounterpartyVerificationStatus + description: An enumeration. + ACHCounterpartyVerificationType: + type: string + enum: + - MICRO_DEPOSITS + - PLAID + - PRE_VERIFIED + - INCOMING_WIRE + - SUPPORTING_DOCUMENTS + title: ACHCounterpartyVerificationType + description: An enumeration. + ACHDirection: + type: string + enum: + - DEBIT + - CREDIT + title: ACHDirection + description: An enumeration. + ACHIncomingEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/ACHIncomingPayload' + event_type: + type: string + enum: + - transfers.ach.in.success + - transfers.ach.in.rejected + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: ACHIncomingEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + ACHIncomingPayload: + properties: + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + type: object + required: + - jiko_account_id + title: ACHIncomingPayload + ACHOutgoingEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/ACHOutgoingPayload' + event_type: + type: string + enum: + - transfers.ach.out.success + - transfers.ach.out.rejected + - transfers.ach.out.sent + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: ACHOutgoingEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + ACHOutgoingPayload: + properties: + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + type: object + required: + - jiko_account_id + title: ACHOutgoingPayload + ACHRequest: + properties: + counterparty_id: + type: string + format: uuid + title: Counterparty Id + direction: + $ref: '#/components/schemas/ACHDirection' + sec_code: + allOf: + - $ref: '#/components/schemas/ACHSECCodeInput' + default: WEB + payment_related_information: + items: + type: string + type: array + title: Payment Related Information + default: [] + amount_usdc: + type: integer + title: Amount Usdc + company_entry_description: + type: string + pattern: ^[ a-zA-Z0-9]{1,10}$ + title: Company Entry Description + description: >- + Short description of the purpose of the entry (Maximum of 10 + characters). Required for sec_code `"CCD"` and `"PPD"`. For sec_code + `"WEB"` the default value for DEBIT is "Funding TX" and "Release TX" + for CREDIT. + type: object + required: + - counterparty_id + - direction + - amount_usdc + title: ACHRequest + ACHResponse: + properties: + counterparty_id: + type: string + format: uuid + title: Counterparty Id + direction: + $ref: '#/components/schemas/ACHDirection' + sec_code: + $ref: '#/components/schemas/ACHSECCode' + payment_related_information: + items: + type: string + type: array + title: Payment Related Information + id: + type: string + format: uuid + title: Id + amount: + $ref: '#/components/schemas/Amount' + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + status: + $ref: '#/components/schemas/ACHStatus' + time_created: + type: string + format: date-time + title: Time Created + company_entry_description: + type: string + title: Company Entry Description + type: object + required: + - counterparty_id + - direction + - sec_code + - payment_related_information + - id + - amount + - jiko_account_id + - status + - time_created + - company_entry_description + title: ACHResponse + ACHSECCode: + type: string + enum: + - CCD + - PPD + - WEB + title: ACHSECCode + description: An enumeration. + ACHSECCodeInput: + type: string + enum: + - CCD + - WEB + title: ACHSECCodeInput + description: An enumeration. + ACHStatus: + type: string + enum: + - PENDING + - FAILED + - REJECTED + - PROCESSED + - APPROVED + - IN_TRANSIT + - CANCELLED + title: ACHStatus + description: An enumeration. + ACHTransactionDetails: + properties: + company_name: + type: string + title: Company Name + company_entry_description: + type: string + title: Company Entry Description + individual_identification_number: + type: string + title: Individual Identification Number + trace_number: + type: string + title: Trace Number + type: object + required: + - company_name + title: ACHTransactionDetails + Account: + properties: + id: + type: string + format: uuid + title: Id + name: + type: string + title: Name + description: The account name + total_value: + allOf: + - $ref: '#/components/schemas/Amount' + title: Total Value + description: Current total value of account + status: + allOf: + - $ref: '#/components/schemas/AccountStatus' + description: Account status + portfolio: + allOf: + - $ref: '#/components/schemas/Portfolio' + title: Portfolio + description: Total liquid cash and holdings + type: object + required: + - id + - name + - total_value + - status + - portfolio + title: Account + AccountStatus: + type: string + enum: + - OPEN + - CLOSED + - FROZEN + title: AccountStatus + description: An enumeration. + AccountUsage: + type: string + enum: + - MONEY_STORAGE + title: AccountUsage + description: An enumeration. + Address: + properties: + street_address: + type: string + maxLength: 250 + title: Street Address + description: Street address + street_address2: + type: string + maxLength: 250 + title: Street Address2 + description: Apartment, Suite, Box number, etc. + city: + type: string + maxLength: 250 + title: City + description: City / Town + postal_code: + type: string + maxLength: 50 + title: Postal Code + description: Postal code / ZIP code + state: + $ref: '#/components/schemas/State' + country: + type: string + title: Country + type: object + required: + - street_address + - city + - postal_code + - country + title: Address + Agreement: + properties: + version: + type: string + title: Version + release_date: + type: string + format: date + title: Release Date + documents: + items: + $ref: '#/components/schemas/AgreementDocument' + type: array + title: Documents + type: object + required: + - version + - release_date + - documents + title: Agreement + AgreementCategory: + type: string + enum: + - BANK + - BROKERAGE + - GENERAL + - E-SIGN + title: AgreementCategory + description: An enumeration. + AgreementConsent: + properties: + version: + type: string + title: Version + description: Agreement version + timestamp: + type: string + format: date-time + title: Timestamp + description: Timestamp of applicant's acknowledgement of the agreements + type: object + required: + - version + - timestamp + title: AgreementConsent + AgreementDocument: + properties: + pdf_download_url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Pdf Download Url + title: + type: string + title: Title + type: + $ref: '#/components/schemas/AgreementType' + category: + $ref: '#/components/schemas/AgreementCategory' + type: object + required: + - pdf_download_url + - title + - type + - category + title: AgreementDocument + AgreementType: + type: string + enum: + - PRIVACY_POLICY + - PRIVACY_NOTICE + - BUSINESS_CONTINUITY_PLAN + - FINANCIAL_STATEMENT + - US_TREASURIES_RISK + - ELECTRONIC_COMMUNICATIONS + - TAX_CERTIFICATION_FOR_US_PERSON + - BANK_ACCOUNT + - LIMITATIONS + - BROKERAGE + - CARD + - CASHBACK + - FORM_CRS + - AUTHORIZED_REPRESENTATIVE_CERTIFICATION + - TERMS_OF_USE + - ELECTRONIC_FUND_TRANSFERS + - TRUTH_IN_SAVINGS + - FEE_NOTICE + - FUNDS_AVAILABILITY + - REGULATION_E + title: AgreementType + description: An enumeration. + Amount: + properties: + value: + type: integer + title: Value + description: USD values are always in cents. + currency: + type: string + title: Currency + formatted: + type: string + title: Formatted + default: '' + type: object + required: + - value + - currency + title: Amount + AnnualPersonalIncome: + type: string + enum: + - BELOW_50K + - BETWEEN_50K_AND_100K + - BETWEEN_100K_AND_250K + - OVER_250K + title: AnnualPersonalIncome + description: An enumeration. + AnnualRevenue: + type: string + enum: + - PRE_REVENUE + - 5M_OR_LESS + - BETWEEN_5M_100M + - 100M_OR_MORE + title: AnnualRevenue + description: An enumeration. + ApplicationIdentificationType: + type: string + enum: + - SSN + - PASSPORT + - TIN + - DRIVERS_LICENSE + title: ApplicationIdentificationType + description: An enumeration. + ApplicationStatus: + type: string + enum: + - CREATED + - PENDING + - SUBMITTED + - DOCUMENTS_NEEDED + - APPROVED + - REJECTED + - MANUAL_REVIEW + title: ApplicationStatus + description: An enumeration. + ApplicationUpdateEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/ApplicationUpdatePayload' + event_type: + type: string + enum: + - application.approved + - application.manual_review + - application.documents_needed + - application.rejected + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: ApplicationUpdateEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + ApplicationUpdatePayload: + properties: + application_id: + type: string + format: uuid + title: Application Id + type: object + required: + - application_id + title: ApplicationUpdatePayload + AveragePersonalNetWorth: + type: string + enum: + - BELOW_50K + - BETWEEN_50K_AND_200K + - BETWEEN_200K_AND_1M + - BETWEEN_1M_AND_5M + - OVER_5M + title: AveragePersonalNetWorth + description: An enumeration. + Business: + properties: + address: + $ref: '#/components/schemas/GeneralAddress' + email: + type: string + title: Email + phone_number: + type: string + title: Phone Number + account_status: + $ref: '#/components/schemas/CustomerAccountStatus' + type: + type: string + enum: + - BUSINESS + title: Type + name: + type: string + title: Name + identification_number: + $ref: '#/components/schemas/BusinessIdentificationNumber' + type: object + required: + - address + - email + - phone_number + - account_status + - type + - name + - identification_number + title: Business + BusinessActivityLocation: + type: string + enum: + - PRIMARILY_US + - MIX_OF_US_AND_NON_US + - PRIMARILY_NON_US + title: BusinessActivityLocation + description: An enumeration. + BusinessApplicationRequest: + properties: + name: + type: string + title: Name + entity_type: + $ref: '#/components/schemas/BusinessEntityType' + doing_business_as: + type: string + title: Doing Business As + identification_number: + $ref: '#/components/schemas/BusinessIdentificationNumber' + address: + $ref: '#/components/schemas/Address' + website: + type: string + title: Website + contact: + $ref: '#/components/schemas/BusinessContact' + formation_date: + type: string + title: Formation Date + risk_info: + $ref: '#/components/schemas/RiskInfo' + industry: + $ref: '#/components/schemas/IndustryInfo' + agreement_consent: + $ref: '#/components/schemas/AgreementConsent' + type: object + title: BusinessApplicationRequest + BusinessApplicationResponse: + properties: + name: + type: string + title: Name + entity_type: + $ref: '#/components/schemas/BusinessEntityType' + doing_business_as: + type: string + title: Doing Business As + identification_number: + $ref: '#/components/schemas/BusinessIdentificationNumber' + address: + $ref: '#/components/schemas/Address' + website: + type: string + title: Website + contact: + $ref: '#/components/schemas/BusinessContact' + formation_date: + type: string + title: Formation Date + risk_info: + $ref: '#/components/schemas/RiskInfo' + industry: + $ref: '#/components/schemas/IndustryInfo' + agreement_consent: + $ref: '#/components/schemas/AgreementConsent' + id: + type: string + format: uuid + title: Id + time_created: + type: string + format: date-time + title: Time Created + updated_at: + type: string + format: date-time + title: Updated At + status: + $ref: '#/components/schemas/BusinessApplicationStatus' + exception_reasons: + items: + type: string + type: array + title: Exception Reasons + default: [] + customer_id: + type: string + format: uuid + title: Customer Id + description: '`null` until application status is `APPROVED`' + type: object + required: + - id + - time_created + - updated_at + - status + title: BusinessApplicationResponse + BusinessApplicationStatus: + type: string + enum: + - CREATED + - SUBMITTED + - CLOSED + - APPROVED + - REJECTED + - MANUAL_REVIEW + - DOCUMENTS_NEEDED + - PENDING + title: BusinessApplicationStatus + description: An enumeration. + BusinessContact: + properties: + name: + $ref: '#/components/schemas/Name' + phone_number: + type: string + title: Phone Number + email: + type: string + format: email + title: Email + type: object + title: BusinessContact + BusinessEntityType: + type: string + enum: + - SOLE_PROPRIETOR + - CORPORATE + - LLC + - PARTNERSHIP + - INCORPORATED_ASSOCIATION + - UNINCORPORATED_ASSOCIATION + title: BusinessEntityType + description: An enumeration. + BusinessIdentificationNumber: + properties: + identification_number: + type: string + title: Identification Number + type: + $ref: '#/components/schemas/BusinessIdentificationNumberType' + type: object + required: + - identification_number + - type + title: BusinessIdentificationNumber + BusinessIdentificationNumberType: + type: string + enum: + - TIN + - EIN + - NON_US_BUSINESS_ID + title: BusinessIdentificationNumberType + description: An enumeration. + Card: + properties: + card_id: + type: string + format: uuid + title: Card Id + name: + type: string + title: Name + status: + $ref: '#/components/schemas/CardStatus' + type: + $ref: '#/components/schemas/CardType' + type: object + required: + - card_id + - name + - status + - type + title: Card + CardClosureReason: + type: string + enum: + - LOST + - STOLEN + - DAMAGED + - NEVER_RECEIVED + - EXPIRED + - CANCELED + title: CardClosureReason + description: An enumeration. + CardListResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Card' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: CardListResponse + description: Base class for cursor_list responses from the Partner API + CardPinBase: + properties: + encrypted_pin: + type: string + format: password + title: Encrypted PIN + description: 4 digit PIN encrypted by `set_pin` public key + writeOnly: true + type: object + required: + - encrypted_pin + title: CardPinBase + CardPinResponse: + properties: + success: + type: boolean + title: Success + type: object + required: + - success + title: CardPinResponse + CardStatus: + type: string + enum: + - OPEN + - LOCKED + - CLOSED + - NOT_ACTIVATED + - FROZEN + title: CardStatus + description: An enumeration. + CardStatusResponse: + properties: + card_id: + type: string + format: uuid + title: Card Id + status: + $ref: '#/components/schemas/CardStatus' + type: object + required: + - card_id + - status + title: CardStatusResponse + CardStatusUpdateEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/CardStatusUpdatePayload' + event_type: + type: string + enum: + - card.status.closed + - card.status.open + - card.status.frozen + - card.status.locked + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: CardStatusUpdateEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + example: + event_id: 1a7749fd-a39f-4746-add2-861f270103d5 + timestamp: '2023-01-01T12:00:00+00:00' + event_type: card.status.closed + payload: + card_id: f1246d4a-97b9-461e-8afa-2e8dedfbaece + status: CLOSED + CardStatusUpdatePayload: + properties: + card_id: + type: string + format: uuid + title: Card Id + status: + $ref: '#/components/schemas/CardStatus' + type: object + required: + - card_id + - status + title: CardStatusUpdatePayload + CardSwipe: + properties: + card_id: + type: string + format: uuid + title: Card Id + amount_usdc: + type: integer + exclusiveMinimum: 0 + title: Amount Usdc + type: object + required: + - card_id + - amount_usdc + title: CardSwipe + CardTransactionDetails: + properties: + location: + $ref: '#/components/schemas/TransactionLocation' + counterparty: + type: string + title: Counterparty + terminal_id: + type: string + title: Terminal Id + merchant_type: + type: string + title: Merchant Type + pre_authorization: + type: boolean + title: Pre Authorization + issue_id: + type: string + title: Issue Id + type: object + required: + - pre_authorization + title: CardTransactionDetails + CardTransactionEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/CardTransactionPayload' + event_type: + type: string + enum: + - card.transaction.approved + - card.transaction.on_hold + - card.transaction.reversed + - card.transaction.rejected + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: CardTransactionEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + CardTransactionPayload: + properties: + card_id: + type: string + format: uuid + title: Card Id + amount: + type: integer + title: Amount + account_id: + type: string + format: uuid + title: Account Id + type: object + required: + - card_id + - amount + - account_id + title: CardTransactionPayload + CardType: + type: string + enum: + - VIRTUAL + - PHYSICAL + title: CardType + description: An enumeration. + CashBackTransactionDetails: + properties: + period: + type: string + title: Period + description: Which period the cash back was calculated for, in YYYY-MM format. + card_id: + type: string + format: uuid + title: Card Id + type: object + required: + - period + - card_id + title: CashBackTransactionDetails + ChangeCardStatusRequest: + properties: + status: + $ref: '#/components/schemas/SettableCardStatus' + type: object + title: ChangeCardStatusRequest + CloseCardRequest: + properties: + closure_reason: + $ref: '#/components/schemas/CardClosureReason' + lost_stolen_date: + type: string + format: date + title: Lost Stolen Date + type: object + required: + - closure_reason + title: CloseCardRequest + Counterparty: + properties: + id: + type: string + format: uuid + title: Id + type: + $ref: '#/components/schemas/CounterpartyType' + ach: + $ref: '#/components/schemas/ACHCounterparty' + wire: + $ref: '#/components/schemas/WireCounterparty' + type: object + required: + - id + - type + title: Counterparty + CounterpartyMicroDeposits: + properties: + verification_failure_count: + type: integer + title: Verification Failure Count + type: object + required: + - verification_failure_count + title: CounterpartyMicroDeposits + CounterpartyPlaid: + properties: + mask: + type: string + title: Mask + verification_status: + $ref: '#/components/schemas/PlaidVerificationStatus' + type: object + required: + - mask + title: CounterpartyPlaid + CounterpartyType: + type: string + enum: + - ACH + - WIRE + title: CounterpartyType + description: An enumeration. + Country: + type: string + enum: + - USA + - US + title: Country + description: An enumeration. + CreateSubscriptionRequest: + properties: + description: + type: string + title: Description + description: A description of the webhook's intended use. + default: '' + events: + items: + type: string + type: array + minItems: 1 + title: Events + description: Which types of events this webhook should be invoked for. + url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Url + description: The webhook URL to invoke. + shared_secret: + type: string + minLength: 16 + title: Shared Secret + description: >- + The shared secret used by the Partner API to sign requests made to + the webhook. The shared secret needs to be minimum 16 characters + long. + type: object + required: + - events + - url + - shared_secret + title: CreateSubscriptionRequest + CursorListResponse_ACHResponse_: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/ACHResponse' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: CursorListResponse[ACHResponse] + description: Base class for cursor_list responses from the Partner API + CursorListResponse_PartnerEvent_: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/PartnerEvent' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: CursorListResponse[PartnerEvent] + description: Base class for cursor_list responses from the Partner API + CursorListResponse_Subscription_: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Subscription' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: CursorListResponse[Subscription] + description: Base class for cursor_list responses from the Partner API + Customer: + oneOf: + - $ref: '#/components/schemas/Individual' + - $ref: '#/components/schemas/Business' + title: Customer + discriminator: + propertyName: type + mapping: + INDIVIDUAL: '#/components/schemas/Individual' + BUSINESS: '#/components/schemas/Business' + CustomerAccountStatus: + type: string + enum: + - OPEN + - CLOSED + - FROZEN + - PENDING + title: CustomerAccountStatus + description: An enumeration. + CustomerDefundingTransferRequest: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - PARTNER_CUSTOMER_DEFUNDING + title: Type + description: Withdraw funds from customer to partner. + target: + type: string + maxLength: 200 + title: Target + description: >- + The funds destination belonging to the customer at the Partner + institution. + amount_usdc: + type: integer + exclusiveMinimum: 0 + title: Amount USDC + description: The amount, in USD cents. **Deprecated**, use `amount` instead. + deprecated: true + amount: + oneOf: + - $ref: '#/components/schemas/RequestedAmount' + - $ref: '#/components/schemas/FullWithdrawal' + title: Amount + discriminator: + propertyName: type + mapping: + REQUESTED_AMOUNT: '#/components/schemas/RequestedAmount' + FULL_WITHDRAWAL: '#/components/schemas/FullWithdrawal' + type: object + required: + - from_account + - to_account + - type + - target + title: Partner-Customer Defunding + description: >- + A transfer of customer funds from a customer account at Jiko to a + partner-owned facilitation account. + example: + transfer_id: d64e7b7e-7fd2-44a4-8bfd-68a31252afaa + description: Withdrawing funds from customer to partner + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_DEFUNDING + target: '123456789' + amount: + type: FULL_WITHDRAWAL + CustomerDefundingTransferResponse: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - PARTNER_CUSTOMER_DEFUNDING + title: Type + target: + type: string + maxLength: 200 + title: Target + description: >- + The funds destination belonging to the customer at the Partner + institution. + amount: + $ref: '#/components/schemas/Amount' + type: object + required: + - from_account + - to_account + - type + - target + - amount + title: Partner-Customer Defunding + description: >- + A transfer of customer funds from a customer account at Jiko to a + partner-owned facilitation account. + example: + transfer_id: d64e7b7e-7fd2-44a4-8bfd-68a31252afaa + description: Withdrawing funds from customer to partner + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_DEFUNDING + target: '123456789' + amount: + type: FULL_WITHDRAWAL + CustomerFundingTransferRequest: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - PARTNER_CUSTOMER_FUNDING + title: Type + description: Disburse funds from partner to customer. + source: + type: string + maxLength: 200 + title: Source + description: The source of customer funds at the Partner institution. + amount_usdc: + type: integer + exclusiveMinimum: 0 + title: Amount USDC + description: The amount, in USD cents. **Deprecated**, use `amount` instead. + deprecated: true + amount: + $ref: '#/components/schemas/RequestedAmount' + type: object + required: + - from_account + - to_account + - type + - source + title: Partner-Customer Funding + description: >- + A transfer of customer funds to a customer account at Jiko from a + partner-owned facilitation account. + example: + transfer_id: d4a2d8dd-7def-4545-a062-761683b9aa05 + description: Disbursing funds from partner to customer + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_FUNDING + source: '123456789' + amount: + amount_usdc: 100000 + type: REQUESTED_AMOUNT + CustomerFundingTransferResponse: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - PARTNER_CUSTOMER_FUNDING + title: Type + source: + type: string + maxLength: 200 + title: Source + description: The source of customer funds at the Partner institution. + amount: + $ref: '#/components/schemas/Amount' + type: object + required: + - from_account + - to_account + - type + - source + - amount + title: Partner-Customer Funding + description: >- + A transfer of customer funds to a customer account at Jiko from a + partner-owned facilitation account. + example: + transfer_id: d4a2d8dd-7def-4545-a062-761683b9aa05 + description: Disbursing funds from partner to customer + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_FUNDING + source: '123456789' + amount: + amount_usdc: 100000 + type: REQUESTED_AMOUNT + DateOfBirth: + properties: + date_of_birth: + type: string + format: date + title: Date Of Birth + type: object + required: + - date_of_birth + title: DateOfBirth + Decimal: + type: string + title: Decimal + DeliveryAttemptDetails: + properties: + delivery_attempt_id: + type: string + format: uuid + title: Delivery Attempt Id + subscription_id: + type: string + format: uuid + title: Subscription Id + success: + type: boolean + title: Success + response_code: + type: integer + title: Response Code + response_message: + type: string + title: Response Message + called_at: + type: string + format: date-time + title: Called At + type: object + required: + - delivery_attempt_id + - subscription_id + - success + - response_code + - called_at + title: DeliveryAttemptDetails + Document: + properties: + id: + type: string + title: Id + type: + $ref: '#/components/schemas/DocumentType' + status: + $ref: '#/components/schemas/DocumentStatus' + exception_reason: + type: string + title: Exception Reason + name: + type: string + title: Name + type: object + required: + - id + - type + - status + title: Document + DocumentStatus: + type: string + enum: + - PENDING_UPLOAD + - PENDING_REVIEW + - APPROVED + - INVALID + title: DocumentStatus + description: An enumeration. + DocumentType: + type: string + enum: + - ID_FRONT + - ID_BACK + - SELFIE + - IDENTIFICATION_NUMBER_VERIFICATION + - ADDRESS_VERIFICATION + - PASSPORT + - EIN_CONFIRMATION + - OPERATING_AGREEMENT + - PARTNERSHIP_AGREEMENT + - ARTICLES_OF_INCORPORATION + - BYLAWS + - PROOF_OF_501_STATUS + - ARTICLES_OF_ASSOCIATION + - CORPORATE_CHARTER + - TRUST_FORMATION_RECORDS + - LIST_OF_TRUSTEES + - LEGAL_ANALYSIS_OF_BUSINESS_MODEL + - COINS_AND_TOKENS_LISTED_AND_OFFERED + - COIN_RATING_POLICY_AND_PROCEDURES + - TYPE_OF_BLOCKCHAIN_ANALYTICS_USED + - MARKET_MANIPULATION_POLICY + - BSA_AML_OFAC_POLICIES + - INDEPENDENT_AML_AUDIT_REPORT + - BSA_AML_OFAC_INTERNAL_RISK_ASSESSMENT + - ARTICLES_OF_ORGANIZATION + - FLOW_OF_FUNDS + - BANK_STATEMENTS_1 + - BANK_STATEMENTS_2 + - BANK_STATEMENTS_3 + - WIRE_COUNTERPARTY_VERIFICATION + - OTHER + title: DocumentType + description: An enumeration. + EmployedInvestmentProfile: + properties: + income: + allOf: + - $ref: '#/components/schemas/AnnualPersonalIncome' + description: Applicant's estimated annual income in USD. + net_worth: + allOf: + - $ref: '#/components/schemas/AveragePersonalNetWorth' + description: Applicant's estimated average personal net worth in USD. + bd_association: + type: string + maxLength: 200 + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + director_policy_maker_of_company: + type: string + maxLength: 200 + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + occupation: + type: string + maxLength: 200 + minLength: 2 + title: Occupation + description: Applicant's occupation + employment_status: + type: string + enum: + - EMPLOYED + title: Employment Status + type: object + required: + - income + - net_worth + - occupation + - employment_status + title: EmployedInvestmentProfile + EncryptionKeysResponse: + properties: + set_pin: + type: string + title: Set Pin + default: '' + env_names: + - public_key__set_pin + additionalProperties: false + type: object + title: EncryptionKeysResponse + description: |- + Encryption keys are currently stored as environment variables. + + Variables are declared in + `services/partner-api/secret-(dev|staging|sandbox|partners).yaml` + EventDetails: + oneOf: + - $ref: '#/components/schemas/ApplicationUpdateEvent' + - $ref: '#/components/schemas/CardStatusUpdateEvent' + - $ref: '#/components/schemas/ACHIncomingEvent' + - $ref: '#/components/schemas/ACHOutgoingEvent' + - $ref: '#/components/schemas/CardTransactionEvent' + - $ref: '#/components/schemas/OutgoingWireEvent' + - $ref: '#/components/schemas/OnUsTransferEvent' + title: EventDetails + discriminator: + propertyName: event_type + mapping: + application.approved: '#/components/schemas/ApplicationUpdateEvent' + application.manual_review: '#/components/schemas/ApplicationUpdateEvent' + application.documents_needed: '#/components/schemas/ApplicationUpdateEvent' + application.rejected: '#/components/schemas/ApplicationUpdateEvent' + card.status.closed: '#/components/schemas/CardStatusUpdateEvent' + card.status.open: '#/components/schemas/CardStatusUpdateEvent' + card.status.frozen: '#/components/schemas/CardStatusUpdateEvent' + card.status.locked: '#/components/schemas/CardStatusUpdateEvent' + transfers.ach.in.success: '#/components/schemas/ACHIncomingEvent' + transfers.ach.in.rejected: '#/components/schemas/ACHIncomingEvent' + transfers.ach.out.success: '#/components/schemas/ACHOutgoingEvent' + transfers.ach.out.rejected: '#/components/schemas/ACHOutgoingEvent' + transfers.ach.out.sent: '#/components/schemas/ACHOutgoingEvent' + card.transaction.approved: '#/components/schemas/CardTransactionEvent' + card.transaction.on_hold: '#/components/schemas/CardTransactionEvent' + card.transaction.reversed: '#/components/schemas/CardTransactionEvent' + card.transaction.rejected: '#/components/schemas/CardTransactionEvent' + transfers.wire.out.success: '#/components/schemas/OutgoingWireEvent' + transfers.wire.out.processing: '#/components/schemas/OutgoingWireEvent' + transfers.wire.out.rejected: '#/components/schemas/OutgoingWireEvent' + transfers.on-us.success: '#/components/schemas/OnUsTransferEvent' + transfers.on-us.processing: '#/components/schemas/OnUsTransferEvent' + transfers.on-us.rejected: '#/components/schemas/OnUsTransferEvent' + EventListResponse: + properties: + offset: + type: integer + title: Offset + count: + type: integer + title: Count + items: + items: + $ref: '#/components/schemas/EventType' + type: array + title: Items + description: List of available events to subscribe to + object_type: + type: string + title: Object Type + default: List + type: object + required: + - offset + - count + - items + title: EventListResponse + description: >- + Generic models are only supported in pydantic for python 3.7+, so until + then + + items will be of type Any. As such, this class needs to be subclassed + + and its item field overridden in it using the proper type. + EventType: + properties: + event: + type: string + title: Event + type: object + required: + - event + title: EventType + Fee: + properties: + type: + type: string + enum: + - AUM_FEE + title: Type + amount: + $ref: '#/components/schemas/Amount' + type: object + required: + - type + - amount + title: Fee + FirstMonthDepositAmount: + type: string + enum: + - 1M_OR_LESS + - BETWEEN_1M_AND_5M + - BETWEEN_5M_AND_20M + - BETWEEN_20M_AND_50M + - 50M_OR_MORE + title: FirstMonthDepositAmount + description: An enumeration. + FullWithdrawal: + properties: + type: + type: string + enum: + - FULL_WITHDRAWAL + title: Type + type: object + required: + - type + title: Full withdrawal + description: Fully liquidates all T-Bills from the source account. + FundPortalRequest: + properties: + account_id: + type: string + format: uuid + title: Account Id + amount_usdc: + type: integer + exclusiveMaximum: 5000000 + exclusiveMinimum: 0 + title: Amount Usdc + company_name: + type: string + maxLength: 16 + title: Company Name + default: FakeCompany + count: + type: integer + exclusiveMaximum: 10 + exclusiveMinimum: 0 + title: Count + default: 1 + type: object + required: + - account_id + - amount_usdc + title: FundPortalRequest + GeneralAddress: + properties: + street_address: + type: string + maxLength: 250 + title: Street Address + description: Street address + street_address2: + type: string + maxLength: 250 + title: Street Address2 + description: Apartment, Suite, Box number, etc. + city: + type: string + maxLength: 250 + title: City + description: City / Town + postal_code: + type: string + maxLength: 50 + title: Postal Code + description: Postal code / ZIP code + state: + type: string + title: State + description: 'State (Postal Abbreviations. Example: "AL", "NJ", "OH")' + country: + type: string + title: Country + description: 'A ISO-3166 Alpha-2 country code (Abbreviated. Example: "US")' + type: object + required: + - street_address + - city + - postal_code + - country + title: GeneralAddress + GeneratePhysicalCardFromOrder: + properties: + card_order_id: + type: string + format: uuid + title: Card Order Id + type: object + required: + - card_order_id + title: GeneratePhysicalCardFromOrder + HTTPValidationError: + properties: + detail: + items: + $ref: '#/components/schemas/ValidationError' + type: array + title: Detail + type: object + title: HTTPValidationError + ISOAddress: + properties: + street_address: + type: string + maxLength: 250 + title: Street Address + description: Street address + street_address2: + type: string + maxLength: 250 + title: Street Address2 + description: Apartment, Suite, Box number, etc. + city: + type: string + maxLength: 250 + title: City + description: City / Town + postal_code: + type: string + maxLength: 50 + title: Postal Code + description: Postal code / ZIP code + state: + type: string + title: State + description: 'State (Postal Abbreviations. Example: "AL", "NJ", "OH")' + country: + type: string + title: Country + description: 'A ISO-3166 Alpha-2 country code (Abbreviated. Example: "US")' + type: object + required: + - street_address + - city + - postal_code + - country + title: ISOAddress + IndependentInvestmentProfile: + properties: + income: + allOf: + - $ref: '#/components/schemas/AnnualPersonalIncome' + description: Applicant's estimated annual income in USD. + net_worth: + allOf: + - $ref: '#/components/schemas/AveragePersonalNetWorth' + description: Applicant's estimated average personal net worth in USD. + bd_association: + type: string + maxLength: 200 + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + director_policy_maker_of_company: + type: string + maxLength: 200 + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + occupation: + type: string + maxLength: 200 + title: Occupation + description: Applicant's occupation + employment_status: + type: string + enum: + - INDEPENDENT + title: Employment Status + type: object + required: + - income + - net_worth + - employment_status + title: IndependentInvestmentProfile + Individual: + properties: + address: + $ref: '#/components/schemas/GeneralAddress' + email: + type: string + title: Email + phone_number: + type: string + title: Phone Number + account_status: + $ref: '#/components/schemas/CustomerAccountStatus' + type: + type: string + enum: + - INDIVIDUAL + title: Type + name: + $ref: '#/components/schemas/Name' + date_of_birth: + type: string + format: date + title: Date Of Birth + type: object + required: + - address + - email + - phone_number + - account_status + - type + - name + - date_of_birth + title: Individual + IndividualIdentificationNumber: + properties: + identification_number: + type: string + title: Identification Number + identification_type: + $ref: '#/components/schemas/IndividualIdentificationNumberType' + type: object + required: + - identification_number + - identification_type + title: IndividualIdentificationNumber + IndividualIdentificationNumberMasked: + properties: + identification_number: + type: string + title: Identification Number + identification_type: + $ref: '#/components/schemas/IndividualIdentificationNumberType' + type: object + required: + - identification_number + - identification_type + title: IndividualIdentificationNumberMasked + IndividualIdentificationNumberType: + type: string + enum: + - SSN + - PASSPORT + - NON_US_ID + title: IndividualIdentificationNumberType + description: An enumeration. + Industry: + type: string + enum: + - ACCOUNTING_AND_BOOKKEEPING + - ADVERTISING + - ART + - ATM_OPERATOR + - BEAUTY_AND_COSMETIC_SERVICES + - BIOTECH + - BUSINESS_MANAGEMENT + - CLEANING_SERVICES + - CONSTRUCTION + - CONSULTING + - CRYPTOCURRENCY + - DESIGN + - ECOMMERCE + - EDUCATION + - ENERGY + - ENTERTAINMENT + - FINANCIAL_SERVICES + - FITNESS + - FOOD + - GAMBLING + - HARDWARE + - HEALTHCARE + - HOSPITALITY + - INSURANCE + - INVESTMENTS + - LEGAL_SERVICES + - MARKETING + - MARKETPLACE + - NONPROFIT + - OTHER + - PARKING_GARAGE + - PROFESSIONAL_TECHNICAL_OR_MECHANICAL_SERVICES + - REAL_ESTATE + - RECRUITING + - RESEARCH + - RESTAURANT + - RETAIL_STORES + - SECURITY + - SHIPPING_WAREHOUSING + - SOFTWARE + - SPORTS_TEAM + - SUPPORT_SERVICES + - TECHNOLOGY + - TRANSPORTATION + - TRAVEL + - WHOLESALE + - VENDING_MACHINE_OPERATOR + - WASTE_MANAGEMENT + title: Industry + description: An enumeration. + IndustryInfo: + properties: + industry: + $ref: '#/components/schemas/Industry' + other_industry: + type: string + title: Other Industry + type: object + title: IndustryInfo + InternalReallocationTransferRequest: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - INTERNAL_REALLOCATION + title: Type + description: Move funds between accounts belonging to the same customer. + amount_usdc: + type: integer + exclusiveMinimum: 0 + title: Amount USDC + description: The amount, in USD cents. **Deprecated**, use `amount` instead. + deprecated: true + amount: + oneOf: + - $ref: '#/components/schemas/RequestedAmount' + - $ref: '#/components/schemas/FullWithdrawal' + title: Amount + discriminator: + propertyName: type + mapping: + REQUESTED_AMOUNT: '#/components/schemas/RequestedAmount' + FULL_WITHDRAWAL: '#/components/schemas/FullWithdrawal' + type: object + required: + - from_account + - to_account + - type + title: Internal Reallocation + example: + transfer_id: cbb6cfce-f207-45e7-a6b3-1055ab43db51 + 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 + type: INTERNAL_REALLOCATION + amount: + type: REQUESTED_AMOUNT + amount_usdc: 10000 + InternalReallocationTransferResponse: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - INTERNAL_REALLOCATION + title: Type + amount: + $ref: '#/components/schemas/Amount' + type: object + required: + - from_account + - to_account + - type + - amount + title: Internal Reallocation + example: + transfer_id: cbb6cfce-f207-45e7-a6b3-1055ab43db51 + 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 + type: INTERNAL_REALLOCATION + amount: + type: REQUESTED_AMOUNT + amount_usdc: 10000 + InternationalApplication: + properties: + id: + type: string + format: uuid + title: Id + time_created: + type: string + format: date-time + title: Time Created + updated_at: + type: string + format: date-time + title: Updated At + phone_number: + type: string + title: Phone Number + description: >- + Applicant's phone number. **Note**: It will be required to include + country codes in accordance to the E.164 spec in a future release, + or `^\+[1-9]\d{1,14}$`. + default_region: US + agreement_consent: + $ref: '#/components/schemas/AgreementConsent' + exception_reasons: + items: + type: string + type: array + title: Exception Reasons + default: [] + email: + type: string + format: email + title: Email + status: + $ref: '#/components/schemas/ApplicationStatus' + name: + $ref: '#/components/schemas/Name' + date_of_birth: + $ref: '#/components/schemas/DateOfBirth' + investment_profile: + $ref: '#/components/schemas/InvestmentProfile' + customer_id: + type: string + format: uuid + title: Customer Id + description: '`null` until application status is `APPROVED`' + documents: + items: + $ref: '#/components/schemas/Document' + type: array + title: Documents + id_verification_documents_needed: + type: boolean + title: Id Verification Documents Needed + identification_number_verification_document_needed: + type: boolean + title: Identification Number Verification Document Needed + address_verification_document_needed: + type: boolean + title: Address Verification Document Needed + address: + allOf: + - $ref: '#/components/schemas/ISOAddress' + title: Address + description: Address object + citizenship_country: + type: string + title: Citizenship Country + description: >- + The applicant's citizenship country in ISO-3166 Alpha-2 format. + **Note:** This field will be made mandatory in a future release. + default: US + type: object + required: + - id + - time_created + - updated_at + - phone_number + - agreement_consent + - email + - status + - id_verification_documents_needed + - identification_number_verification_document_needed + - address_verification_document_needed + - address + title: InternationalApplication + InternationalApplicationRequest: + properties: + identification_number: + type: string + title: Identification Number + description: Applicant's Social Security Number + name: + allOf: + - $ref: '#/components/schemas/Name' + title: Name + description: Applicant's full name + email: + type: string + format: email + title: Email + description: Applicant's email address + date_of_birth: + type: string + format: date + title: Date Of Birth + description: Applicant's date of birth + investment_profile: + $ref: '#/components/schemas/InvestmentProfile' + agreement_consent: + allOf: + - $ref: '#/components/schemas/AgreementConsent' + title: Agreement Consent + description: Consent object for agreements + originally_onboarded_at: + type: string + format: date-time + title: Originally Onboarded At + description: Original onboarding time of applicant + identification_type: + allOf: + - $ref: '#/components/schemas/ApplicationIdentificationType' + description: >- + Type type of identification provided in the `identification_number` + field. The options are + * `SSN`: Social security number + * `TIN`: Tax ID number + * `DRIVERS_LICENSE`: A driver's license number + * `PASSPORT`: A passport number + + **Note:** This field will be made mandatory in a future release. Currently defaults to `SSN`. + default: SSN + address: + allOf: + - $ref: '#/components/schemas/ISOAddress' + title: Address + description: Address object + phone_number: + type: string + title: Phone Number + description: >- + Applicant's phone number. **Note**: It will be required to include + country codes in accordance to the E.164 spec in a future release, + or `^\+[1-9]\d{1,14}$`. + default_region: US + citizenship_country: + type: string + title: Citizenship Country + description: >- + The applicant's citizenship country in ISO-3166 Alpha-2 format. + **Note:** This field will be made mandatory in a future release. + default: US + type: object + required: + - identification_number + - name + - email + - date_of_birth + - investment_profile + - agreement_consent + - address + - phone_number + title: InternationalApplicationRequest + InvestmentProfile: + oneOf: + - $ref: '#/components/schemas/EmployedInvestmentProfile' + - $ref: '#/components/schemas/IndependentInvestmentProfile' + - $ref: '#/components/schemas/RetiredInvestmentProfile' + - $ref: '#/components/schemas/StudentInvestmentProfile' + - $ref: '#/components/schemas/UnemployedInvestmentProfile' + title: InvestmentProfile + description: >- + Investment profile contains information required by FINRA Suitability + Rule 2111 + discriminator: + propertyName: employment_status + mapping: + EMPLOYED: '#/components/schemas/EmployedInvestmentProfile' + INDEPENDENT: '#/components/schemas/IndependentInvestmentProfile' + RETIRED: '#/components/schemas/RetiredInvestmentProfile' + STUDENT: '#/components/schemas/StudentInvestmentProfile' + UNEMPLOYED: '#/components/schemas/UnemployedInvestmentProfile' + ListAccountsResponse: + properties: + offset: + type: integer + title: Offset + count: + type: integer + title: Count + items: + items: + $ref: '#/components/schemas/Account' + type: array + title: Items + description: Customer accounts + object_type: + type: string + title: Object Type + default: List + type: object + required: + - offset + - count + - items + title: ListAccountsResponse + description: >- + Generic models are only supported in pydantic for python 3.7+, so until + then + + items will be of type Any. As such, this class needs to be subclassed + + and its item field overridden in it using the proper type. + ListCounterpartiesResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Counterparty' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: ListCounterpartiesResponse + description: Base class for cursor_list responses from the Partner API + ListPortalsResponse: + properties: + count: + type: integer + title: Count + portals: + items: + $ref: '#/components/schemas/Portal' + type: array + minItems: 0 + title: Portals + object_type: + type: string + title: Object Type + default: List + type: object + required: + - count + - portals + title: ListPortalsResponse + LoginInput: + properties: + username: + type: string + maxLength: 128 + title: Username + password: + type: string + maxLength: 128 + title: Password + type: object + required: + - username + - password + title: LoginInput + LoginResponse: + properties: + token: + type: string + title: Token + expires: + type: string + format: date-time + title: Expires + type: object + required: + - token + - expires + title: LoginResponse + MinimalPhysicalCardOrderResponse: + properties: + card_id: + type: string + format: uuid + title: Card Id + card_order_id: + type: string + format: uuid + title: Card Order Id + status: + $ref: '#/components/schemas/PhysicalCardOrderStatus' + type: object + required: + - card_order_id + - status + title: MinimalPhysicalCardOrderResponse + MonthlyTransactions: + type: string + enum: + - 5_OR_LESS + - BETWEEN_5_AND_15 + - 15_OR_MORE + title: MonthlyTransactions + description: An enumeration. + Name: + properties: + first_name: + type: string + maxLength: 50 + title: First Name + description: First Name + middle_name: + type: string + maxLength: 50 + title: Middle Name + description: Middle Name + last_name: + type: string + maxLength: 50 + title: Last Name + description: Last Name + type: object + required: + - first_name + - last_name + title: Name + OnUsJikoAccountCounterparty: + properties: + id: + type: string + format: uuid + title: Id + type: + type: string + enum: + - JIKO_ACCOUNT + title: Type + type: object + required: + - id + - type + title: OnUsJikoAccountCounterparty + OnUsTransactionDetails: + properties: + on_us_transfer_id: + type: string + title: On Us Transfer Id + on_us_transfer_type: + type: string + title: On Us Transfer Type + source: + type: string + title: Source + target: + type: string + title: Target + type: object + required: + - on_us_transfer_id + - on_us_transfer_type + title: OnUsTransactionDetails + OnUsTransfer: + properties: + id: + type: string + format: uuid + title: Id + status: + $ref: '#/components/schemas/OnUsTransferStatus' + reason: + $ref: '#/components/schemas/TransferStateReason' + transfer: + $ref: '#/components/schemas/OnUsTransferDetails' + fees: + items: + $ref: '#/components/schemas/Fee' + type: array + title: Fees + type: object + required: + - id + - status + - transfer + - fees + title: OnUsTransfer + OnUsTransferDetails: + oneOf: + - $ref: '#/components/schemas/CustomerFundingTransferResponse' + - $ref: '#/components/schemas/CustomerDefundingTransferResponse' + - $ref: '#/components/schemas/InternalReallocationTransferResponse' + title: OnUsTransferDetails + discriminator: + propertyName: type + mapping: + PARTNER_CUSTOMER_FUNDING: '#/components/schemas/CustomerFundingTransferResponse' + PARTNER_CUSTOMER_DEFUNDING: '#/components/schemas/CustomerDefundingTransferResponse' + INTERNAL_REALLOCATION: '#/components/schemas/InternalReallocationTransferResponse' + OnUsTransferDetailsRequest: + oneOf: + - $ref: '#/components/schemas/CustomerFundingTransferRequest' + - $ref: '#/components/schemas/CustomerDefundingTransferRequest' + - $ref: '#/components/schemas/InternalReallocationTransferRequest' + title: OnUsTransferDetailsRequest + discriminator: + propertyName: type + mapping: + PARTNER_CUSTOMER_FUNDING: '#/components/schemas/CustomerFundingTransferRequest' + PARTNER_CUSTOMER_DEFUNDING: '#/components/schemas/CustomerDefundingTransferRequest' + INTERNAL_REALLOCATION: '#/components/schemas/InternalReallocationTransferRequest' + OnUsTransferEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/OnUsTransferPayload' + event_type: + type: string + enum: + - transfers.on-us.success + - transfers.on-us.processing + - transfers.on-us.rejected + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: OnUsTransferEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + OnUsTransferPayload: + properties: + on_us_id: + type: string + format: uuid + title: On Us Id + origin_account_id: + type: string + format: uuid + title: Origin Account Id + destination_account_id: + type: string + format: uuid + title: Destination Account Id + type: object + required: + - on_us_id + - origin_account_id + - destination_account_id + title: OnUsTransferPayload + OnUsTransferStatus: + type: string + enum: + - PENDING + - COMPLETED + - REJECTED + title: OnUsTransferStatus + description: An enumeration. + Order: + type: string + enum: + - desc + - asc + title: Order + description: An enumeration. + OutgoingWireEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/WireOutgoingPayload' + event_type: + type: string + enum: + - transfers.wire.out.success + - transfers.wire.out.processing + - transfers.wire.out.rejected + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: OutgoingWireEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + PEMEncodedPublicKey: + type: string + title: PEMEncodedPublicKey + PartnerEvent: + properties: + event: + $ref: '#/components/schemas/EventDetails' + delivery_attempts: + items: + $ref: '#/components/schemas/DeliveryAttemptDetails' + type: array + title: Delivery Attempts + type: object + required: + - event + - delivery_attempts + title: PartnerEvent + PhysicalCardOrder: + properties: + name_on_card: + type: string + maxLength: 100 + title: Name On Card + description: Card holder's full name. Should be a maximum of 26 characters. + shipping_address: + $ref: '#/components/schemas/ShippingAddress' + type: object + required: + - name_on_card + - shipping_address + title: PhysicalCardOrder + PhysicalCardOrderListResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/MinimalPhysicalCardOrderResponse' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: PhysicalCardOrderListResponse + description: Base class for cursor_list responses from the Partner API + PhysicalCardOrderResponse: + properties: + card_id: + type: string + format: uuid + title: Card Id + card_order_id: + type: string + format: uuid + title: Card Order Id + status: + $ref: '#/components/schemas/PhysicalCardOrderStatus' + name_on_card: + type: string + title: Name On Card + shipping_address: + $ref: '#/components/schemas/ShippingAddress' + type: object + required: + - card_order_id + - status + - name_on_card + - shipping_address + title: PhysicalCardOrderResponse + PhysicalCardOrderStatus: + type: string + enum: + - INITIAL + - CARD_CREATED + - ORDERED + - RECEIVED + title: PhysicalCardOrderStatus + description: An enumeration. + PlaidCreateCounterparties: + properties: + public_token: + type: string + title: Public Token + accounts: + items: + $ref: '#/components/schemas/PlaidCreateCounterpartiesAccount' + type: array + title: Accounts + institution_id: + type: string + title: Institution Id + type: object + required: + - public_token + - accounts + title: PlaidCreateCounterparties + PlaidCreateCounterpartiesAccount: + properties: + id: + type: string + title: Id + name: + type: string + title: Name + mask: + type: string + title: Mask + type: object + required: + - id + title: PlaidCreateCounterpartiesAccount + PlaidCreateCounterpartiesResponse: + properties: + items: + items: + $ref: '#/components/schemas/Counterparty' + type: array + title: Items + type: object + required: + - items + title: PlaidCreateCounterpartiesResponse + PlaidLinkToken: + properties: + link_token: + type: string + title: Link Token + expiration: + type: string + title: Expiration + type: object + required: + - link_token + - expiration + title: PlaidLinkToken + PlaidLinkTokenRequest: + properties: + client_name: + type: string + minLength: 1 + title: Client Name + redirect_uri: + type: string + title: Redirect Uri + description: '**Mutually exclusive with `android_package_name`**' + android_package_name: + type: string + title: Android Package Name + description: '**Mutually exclusive with `redirect_uri`**' + counterparty_id: + type: string + format: uuid + title: Counterparty Id + type: object + required: + - client_name + title: PlaidLinkTokenRequest + PlaidVerificationStatus: + type: string + enum: + - PENDING_AUTOMATIC_VERIFICATION + - PENDING_MANUAL_VERIFICATION + - AUTOMATICALLY_VERIFIED + - MANUALLY_VERIFIED + - VERIFICATION_EXPIRED + - VERIFICATION_FAILED + title: PlaidVerificationStatus + description: An enumeration. + Portal: + properties: + id: + type: string + format: uuid + title: Id + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + routing_number: + type: string + title: Routing Number + description: Routing number + account_number: + type: string + title: Account Number + description: Account number + status: + allOf: + - $ref: '#/components/schemas/PortalStatus' + description: Portal status + name: + type: string + title: Name + description: Portal name + type: object + required: + - id + - jiko_account_id + - routing_number + - account_number + - status + - name + title: Portal + PortalCreateRequest: + properties: + name: + type: string + maxLength: 128 + title: Name + type: object + required: + - name + title: PortalCreateRequest + PortalStatus: + type: string + enum: + - OPEN + - CLOSED + title: PortalStatus + description: An enumeration. + PortalUpdateRequest: + properties: + name: + type: string + maxLength: 50 + title: Name + description: Portal name + type: object + required: + - name + title: PortalUpdateRequest + Portfolio: + properties: + securities: + items: + $ref: '#/components/schemas/Security' + type: array + title: Securities + description: Securities currently held by the brokerage account + cash: + allOf: + - $ref: '#/components/schemas/Amount' + title: Cash + description: Cash currently held in the brokerage account. + all_time_earnings: + allOf: + - $ref: '#/components/schemas/Amount' + title: All Time Earnings + description: All time portfolio earnings + type: object + required: + - securities + - cash + - all_time_earnings + title: Portfolio + PublicKeyRequest: + properties: + public_key: + allOf: + - $ref: '#/components/schemas/PEMEncodedPublicKey' + title: Public Key + description: >- + Single-use 4096-bit PEM-encoded RSA public-key in PKCS#1 or PKCS#1.5 + format + min_bytes: 4096 + type: object + required: + - public_key + title: PublicKeyRequest + RelatedPartyApplicationRequest: + properties: + name: + $ref: '#/components/schemas/Name' + address: + $ref: '#/components/schemas/Address' + date_of_birth: + type: string + title: Date Of Birth + identification_number: + $ref: '#/components/schemas/IndividualIdentificationNumber' + phone_number: + type: string + title: Phone Number + title: + type: string + title: Title + roles: + items: + $ref: '#/components/schemas/RelatedPartyRole' + type: array + ownership_percentage: + type: string + title: Ownership Percentage + citizenship: + type: string + title: Citizenship + email: + type: string + title: Email + type: object + title: RelatedPartyApplicationRequest + RelatedPartyApplicationResponse: + properties: + name: + $ref: '#/components/schemas/Name' + address: + $ref: '#/components/schemas/Address' + date_of_birth: + type: string + title: Date Of Birth + identification_number: + $ref: '#/components/schemas/IndividualIdentificationNumberMasked' + phone_number: + type: string + title: Phone Number + title: + type: string + title: Title + roles: + items: + $ref: '#/components/schemas/RelatedPartyRole' + type: array + ownership_percentage: + type: string + title: Ownership Percentage + citizenship: + type: string + title: Citizenship + email: + type: string + title: Email + id: + type: string + format: uuid + title: Id + type: object + required: + - id + title: RelatedPartyApplicationResponse + RelatedPartyRole: + type: string + enum: + - CONTROL_PERSON + - AUTHORIZED_REPRESENTATIVE + title: RelatedPartyRole + description: An enumeration. + RequestedAmount: + properties: + amount_usdc: + type: integer + exclusiveMinimum: 0 + title: Amount USDC + type: + type: string + enum: + - REQUESTED_AMOUNT + title: Type + type: object + required: + - amount_usdc + - type + title: Requested amount + description: Creates a transfer for a specific, requested amount. + RetiredInvestmentProfile: + properties: + income: + allOf: + - $ref: '#/components/schemas/AnnualPersonalIncome' + description: Applicant's estimated annual income in USD. + net_worth: + allOf: + - $ref: '#/components/schemas/AveragePersonalNetWorth' + description: Applicant's estimated average personal net worth in USD. + bd_association: + type: string + maxLength: 200 + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + director_policy_maker_of_company: + type: string + maxLength: 200 + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + occupation: + type: string + maxLength: 200 + title: Occupation + description: Applicant's occupation + employment_status: + type: string + enum: + - RETIRED + title: Employment Status + type: object + required: + - income + - net_worth + - employment_status + title: RetiredInvestmentProfile + RiskCategory: + type: string + enum: + - INTERNET_GAMBLING + - CANNABIS + - CRYPTOCURRENCY + - CROWDFUNDING + - FINANCIAL_OR_MONEY_MOVEMENT + title: RiskCategory + description: An enumeration. + RiskInfo: + properties: + risk_categories: + items: + $ref: '#/components/schemas/RiskCategory' + type: array + company_mission: + type: string + title: Company Mission + has_current_enforcement_actions: + type: boolean + title: Has Current Enforcement Actions + primary_regulator: + type: string + title: Primary Regulator + business_activity_location: + $ref: '#/components/schemas/BusinessActivityLocation' + source_of_funds: + $ref: '#/components/schemas/SourceOfFunds' + account_usage: + $ref: '#/components/schemas/AccountUsage' + annual_revenue: + $ref: '#/components/schemas/AnnualRevenue' + monthly_transactions: + $ref: '#/components/schemas/MonthlyTransactions' + first_month_deposit: + $ref: '#/components/schemas/FirstMonthDepositAmount' + type: object + title: RiskInfo + Security: + properties: + tradable_id: + type: string + format: uuid + title: Tradable Id + security_type: + $ref: '#/components/schemas/SecurityType' + quantity: + type: integer + exclusiveMinimum: 0 + title: Quantity + description: Number of securities + market_value: + allOf: + - $ref: '#/components/schemas/Amount' + title: Market Value + description: The current market value of the securities + external_id: + type: string + title: External Id + maturity_date: + type: string + format: date + title: Maturity Date + description: Due date of the fixed income instrument + yield_to_maturity: + allOf: + - $ref: '#/components/schemas/Decimal' + title: Yield To Maturity + description: Rate of return if the security is held to the maturity date + ask: + allOf: + - $ref: '#/components/schemas/Decimal' + title: Ask + description: The current price the account is willing to sell the security at + bid: + allOf: + - $ref: '#/components/schemas/Decimal' + title: Bid + description: The current price the market is willing to pay for the security + description: + type: string + title: Description + description: A description of the security + type: object + required: + - tradable_id + - security_type + - quantity + - market_value + - external_id + - maturity_date + - yield_to_maturity + - ask + - bid + - description + title: Security + SecurityType: + type: string + enum: + - FIXED_INCOME + - OTHER + title: SecurityType + description: An enumeration. + SettableCardStatus: + type: string + enum: + - OPEN + - LOCKED + title: SettableCardStatus + description: An enumeration. + ShippingAddress: + properties: + street_address: + type: string + maxLength: 100 + title: Street Address + description: Street address + street_address2: + type: string + maxLength: 100 + title: Street Address2 + description: Apartment, Suite, Box number, etc. + city: + type: string + maxLength: 100 + title: City + description: City / Town + postal_code: + type: string + maxLength: 10 + title: Postal Code + description: Postal code / ZIP code + state: + allOf: + - $ref: '#/components/schemas/State' + description: 'State (Postal Abbreviations. Example: "AL", "NJ", "OH")' + country: + allOf: + - $ref: '#/components/schemas/Country' + description: 'A ISO-3166 Alpha-2 country code (Abbreviated. Example: "US")' + type: object + required: + - street_address + - city + - postal_code + - state + - country + title: ShippingAddress + SourceOfFunds: + type: string + enum: + - INTERNAL_FUNDS + - CLIENT_OR_EXTERNAL_FUNDS + title: SourceOfFunds + description: An enumeration. + State: + type: string + enum: + - AA + - AE + - AP + - AK + - AL + - AR + - AZ + - CA + - CO + - CT + - DC + - DE + - FL + - GA + - GU + - HI + - IA + - ID + - IL + - IN + - KS + - KY + - LA + - MA + - MD + - ME + - MI + - MN + - MO + - MS + - MT + - NC + - ND + - NE + - NH + - NJ + - NM + - NV + - NY + - OH + - OK + - OR + - PA + - PR + - RI + - SC + - SD + - TN + - TX + - UT + - VA + - VI + - VT + - WA + - WI + - WV + - WY + title: State + description: An enumeration. + Statement: + properties: + id: + type: string + format: uuid + title: Id + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + type: + $ref: '#/components/schemas/StatementType' + key: + type: string + title: Key + pdf_download_url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Pdf Download Url + time_created: + type: string + format: date-time + title: Time Created + type: object + required: + - id + - jiko_account_id + - type + - key + - pdf_download_url + - time_created + title: Statement + StatementListResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Statement' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: StatementListResponse + description: Base class for cursor_list responses from the Partner API + StatementType: + type: string + enum: + - 1099B + - 1099INT + - BANK + - BROKERAGE + title: StatementType + description: An enumeration. + StudentInvestmentProfile: + properties: + income: + allOf: + - $ref: '#/components/schemas/AnnualPersonalIncome' + description: Applicant's estimated annual income in USD. + net_worth: + allOf: + - $ref: '#/components/schemas/AveragePersonalNetWorth' + description: Applicant's estimated average personal net worth in USD. + bd_association: + type: string + maxLength: 200 + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + director_policy_maker_of_company: + type: string + maxLength: 200 + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + occupation: + type: string + maxLength: 200 + title: Occupation + description: Applicant's occupation + employment_status: + type: string + enum: + - STUDENT + title: Employment Status + type: object + required: + - income + - net_worth + - employment_status + title: StudentInvestmentProfile + Subscription: + properties: + description: + type: string + title: Description + description: A description of the webhook's intended use. + default: '' + events: + items: + type: string + type: array + minItems: 1 + title: Events + description: Which types of events this webhook should be invoked for. + url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Url + description: The webhook URL to invoke. + id: + type: string + format: uuid + title: Id + time_created: + type: string + format: date-time + title: Time Created + updated_at: + type: string + format: date-time + title: Updated At + status: + $ref: '#/components/schemas/SubscriptionStatus' + type: object + required: + - events + - url + - id + - time_created + - updated_at + - status + title: Subscription + SubscriptionStatus: + type: string + enum: + - enabled + - disabled + title: SubscriptionStatus + description: An enumeration. + Trade: + properties: + id: + type: string + format: uuid + title: Id + trade_datetime: + type: string + format: date-time + title: Trade Datetime + settled_date: + type: string + format: date + title: Settled Date + is_settled: + type: boolean + title: Is Settled + activity: + $ref: '#/components/schemas/TradeActivity' + cusip: + type: string + title: Cusip + description: + type: string + title: Description + notional: + $ref: '#/components/schemas/Amount' + quantity: + type: integer + title: Quantity + price: + $ref: '#/components/schemas/Decimal' + maturity_date: + type: string + format: date + title: Maturity Date + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + yield_to_maturity: + $ref: '#/components/schemas/Decimal' + tradable_id: + type: string + title: Tradable Id + type: object + required: + - id + - trade_datetime + - is_settled + - activity + - cusip + - description + - notional + - quantity + - price + - maturity_date + - jiko_account_id + - yield_to_maturity + - tradable_id + title: Trade + TradeActivity: + type: string + enum: + - BUY + - SELL + - MATURITY + title: TradeActivity + description: An enumeration. + TradeConfirmation: + properties: + url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Url + type: object + required: + - url + title: TradeConfirmation + example: + url: https://example.com/path-to-trade-confirmation-pdf + TradeListResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Trade' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: TradeListResponse + description: Base class for cursor_list responses from the Partner API + Transaction: + properties: + id: + type: string + format: uuid + title: Id + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + amount: + $ref: '#/components/schemas/Amount' + timestamp: + type: string + format: date-time + title: Timestamp + status: + $ref: '#/components/schemas/TransactionStatus' + details: + $ref: '#/components/schemas/TransactionDetails' + type: object + required: + - id + - jiko_account_id + - amount + - timestamp + - status + - details + title: Transaction + TransactionDetails: + properties: + transaction_type: + $ref: '#/components/schemas/TransactionType' + title: + type: string + title: Title + sub_title: + type: string + title: Sub Title + transaction_type_title: + type: string + title: Transaction Type Title + card_transaction: + $ref: '#/components/schemas/CardTransactionDetails' + ach_transaction: + $ref: '#/components/schemas/ACHTransactionDetails' + wire_transaction: + $ref: '#/components/schemas/WireTransactionDetails' + wire_fee_transaction: + $ref: '#/components/schemas/WireTransactionDetails' + cash_back_transaction: + $ref: '#/components/schemas/CashBackTransactionDetails' + on_us_transaction: + $ref: '#/components/schemas/OnUsTransactionDetails' + type: object + required: + - transaction_type + title: TransactionDetails + TransactionListResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Transaction' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: TransactionListResponse + description: Base class for cursor_list responses from the Partner API + TransactionLocation: + properties: + street_address: + type: string + title: Street Address + city: + type: string + title: City + state: + type: string + title: State + country: + type: string + title: Country + type: object + required: + - street_address + - city + - country + title: TransactionLocation + TransactionStatus: + type: string + enum: + - PENDING + - COMPLETED + title: TransactionStatus + description: An enumeration. + TransactionType: + type: string + enum: + - CARD + - CASH_BACK + - ACH + - WIRE + - WIRE_FEE + - GENERIC + - ON_US + title: TransactionType + description: An enumeration. + TransferStateReason: + type: string + enum: + - ACCOUNT_UNAVAILABLE + - CANCELED + - INSUFFICIENT_FUNDS + - INVALID_CURRENCY + - INVALID_TRANSFER + - SANCTION_SCREEN_FAILED + title: TransferStateReason + description: An enumeration. + UnemployedInvestmentProfile: + properties: + income: + allOf: + - $ref: '#/components/schemas/AnnualPersonalIncome' + description: Applicant's estimated annual income in USD. + net_worth: + allOf: + - $ref: '#/components/schemas/AveragePersonalNetWorth' + description: Applicant's estimated average personal net worth in USD. + bd_association: + type: string + maxLength: 200 + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + director_policy_maker_of_company: + type: string + maxLength: 200 + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + occupation: + type: string + maxLength: 200 + title: Occupation + description: Applicant's occupation + employment_status: + type: string + enum: + - UNEMPLOYED + title: Employment Status + type: object + required: + - income + - net_worth + - employment_status + title: UnemployedInvestmentProfile + UpdateSubscriptionRequest: + properties: + description: + type: string + title: Description + description: A description of the webhook's intended use. + default: '' + events: + items: + type: string + type: array + minItems: 1 + title: Events + description: Which types of events this webhook should be invoked for. + url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Url + description: The webhook URL to invoke. + shared_secret: + type: string + minLength: 16 + title: Shared Secret + description: >- + The shared secret used by the Partner API to sign requests made to + the webhook. The shared secret needs to be minimum 16 characters + long. + type: object + title: UpdateSubscriptionRequest + UploadDocumentResponse: + properties: + success: + type: boolean + title: Success + document_id: + type: string + format: uuid + title: Document Id + type: object + required: + - success + - document_id + title: UploadDocumentResponse + ValidationError: + properties: + loc: + items: + anyOf: + - type: string + - type: integer + type: array + title: Location + msg: + type: string + title: Message + type: + type: string + title: Error Type + type: object + required: + - loc + - msg + - type + title: ValidationError + VirtualCardResponse: + properties: + card_id: + type: string + format: uuid + title: Card Id + encrypted_pan: + type: string + title: Encrypted Pan + encrypted_cvv: + type: string + title: Encrypted Cvv + encrypted_expiration: + type: string + title: Encrypted Expiration + type: object + required: + - card_id + - encrypted_pan + - encrypted_cvv + - encrypted_expiration + title: VirtualCardResponse + WireCounterparty: + properties: + time_created: + type: string + format: date-time + title: Time Created + verification_type: + $ref: '#/components/schemas/ACHCounterpartyVerificationType' + status: + $ref: '#/components/schemas/ACHCounterpartyVerificationStatus' + account_number: + type: string + title: Account Number + routing_number: + type: string + title: Routing Number + name_on_account: + type: string + title: Name On Account + account_type: + $ref: '#/components/schemas/ACHCounterpartyAccountType' + institution_name: + type: string + title: Institution Name + type: object + required: + - time_created + - verification_type + - status + - account_number + - routing_number + - name_on_account + - account_type + - institution_name + title: WireCounterparty + WireOutgoingPayload: + properties: + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + wire_id: + type: string + format: uuid + title: Wire Id + type: object + required: + - jiko_account_id + - wire_id + title: WireOutgoingPayload + WireRequest: + properties: + counterparty_id: + type: string + format: uuid + title: Counterparty Id + amount_usdc: + type: integer + title: Amount Usdc + description: The amount, in USD cents. + created_by: + type: string + title: Created By + description: A string identifying the wire transfer originator. + description: + type: string + title: Description + description: A description of the transfer, visible on statements. + wire_id: + type: string + format: uuid + title: Wire Id + description: The ID for this wire transfer, auto-generated if not provided. + type: object + required: + - counterparty_id + title: WireRequest + WireTransactionDetails: + properties: + reference_number: + type: string + title: Reference Number + counterparty_name: + type: string + title: Counterparty Name + wire_id: + type: string + format: uuid + title: Wire Id + type: object + required: + - reference_number + - counterparty_name + title: WireTransactionDetails + securitySchemes: + HTTPBearer: + type: http + scheme: bearer +tags: + - name: Individuals + description: > + Use these endpoints to initiate, manage, and complete KYC for Individuals. + When an application has `status: “APPROVED”`, a + [Customer](https://docs.jiko.io/reference) is created for the Individual. + Customers can have multiple [Accounts](https://docs.jiko.io/reference). + - name: Businesses + description: > + Use these endpoints to initiate, manage, and complete KYB for Businesses. + When an application has `status: “APPROVED”`, a + [Customer](https://docs.jiko.io/reference) is created for the Business. + Customers can have multiple [Accounts](https://docs.jiko.io/reference). + - name: Accounts + description: > + 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. + - name: Customers + description: Use these endpoints to view and manage personal details for a Customer. + - name: Transactions + description: > + 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](https://docs.jiko.io/reference). + - name: Trades + description: >- + 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. + - name: Statements + description: >- + Use these endpoints to retrieve monthly statements for bank and brokerage + accounts. + - name: Portals + description: >- + 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. A single portal is created by + default upon account creation. + - name: ACH + description: Use these endpoints to create, view, and manage ACH Transfers. + - name: Wires + description: Use this endpoint to initiate Wire Transfers. + - name: On-Us Transfers + description: >- + Use these endpoints to create and view On-Us (Book) Transfers between Jiko + accounts. + - name: Counterparties + description: > + 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. + - name: 'Counterparties: Plaid' + description: Use these endpoints to create and view Counterparties using Plaid. + - name: Manage Cards + description: Use these endpoints to view and manage Card information. + - name: Physical Cards + description: Use these endpoints to create, view, and manage Physical Debit Cards. + - name: Virtual Cards + description: Use these endpoints to create, view, and manage Virtual Debit Cards. + - name: Security + description: Use these endpoints to authenticate requests to the Jiko API. + - name: Sandbox + description: Use these endpoints to initiate sandbox functionality. + - name: Subscriptions + description: >- + 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. + - name: Events + description: Use these endpoints to view Events. + - name: Health + description: Use these endpoints to setup automatic health checks for the Partner API. +x-tagGroups: + - name: Onboarding + tags: + - Individuals + - Businesses + - name: Accounts + tags: + - Accounts + - Customers + - Transactions + - Trades + - Statements + - name: Transfers + tags: + - Portals + - ACH + - Wires + - On-Us Transfers + - Counterparties + - 'Counterparties: Plaid' + - name: Cards + tags: + - Manage Cards + - Physical Cards + - Virtual Cards + - name: Platform + tags: + - Health + - Security + - Sandbox + - Subscriptions + - Events diff --git a/sdks/db/fixed-specs-cache/jiko-fixed-spec.yaml b/sdks/db/fixed-specs-cache/jiko-fixed-spec.yaml new file mode 100644 index 0000000000..91931e4414 --- /dev/null +++ b/sdks/db/fixed-specs-cache/jiko-fixed-spec.yaml @@ -0,0 +1,9507 @@ +publishJson: + company: Jiko + serviceName: false + sdkName: jiko-{language}-sdk + clientName: Jiko + metaDescription: >- + Jiko makes Treasuries bankable. We're a new type of bank that innovates US + Treasury bills to unlock yield, safety, and scale. + + + Backed by Upfront Ventures, Airbus Ventures, and others; headquartered in SF + with offices in NYC and Reykjavík. + apiStatusUrls: false + homepage: jiko.io + developerDocumentation: docs.jiko.io + categories: + - finance + - banking + - fintech + - financial_services +rawSpecString: | + openapi: 3.1.0 + info: + title: Jiko Partner API + description: > + # 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. + + +
+ + + At the core of our platform is the Jiko account: a pair consisting of a bank + account and a brokerage account. When money is deposited into an account, + 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 accounts, and each account 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 customer accounts via ACH or Wire + + - Viewing and managing accounts (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](mailto:partner.support@jiko.io) to request sandbox + access. + + # Partner obligations + + +
+ + + - Before onboarding, the end-user’s control over any email addresses or + phone numbers must be confirmed (for example, via confirmation codes) before + submitting an application to the API. + + - While onboarding, partners must comply with the disclosure requirements + listed [below](https://docs.jiko.io/reference). + + - Monthly statements are created for bank and brokerage accounts and must be + made available to the user. + - Partners are required to send an email to end users every month a new statement is available to comply with regulatory requirements. + - Partners can expect monthly statements to be available by the 15th of every month. + - It is required to make the past 6 years of brokerage statements available to the end user. + - It is advised to make at least the past 12 months of bank statements available to the end user. + - Trade confirmations must be made available to the user. + + + ## Disclosures and Agreements + + + - The bundle of customer disclosures and agreements served at the + [Agreements](https://docs.jiko.io/reference) endpoint must be presented to + users before signing up for an account. + This includes Risk and Limitation disclosures, Regulation E disclosures, Account agreements and more. + - The customer consent for these disclosures have to be versioned and time-stamped and sent with the application. + - Jiko reserves the right to update agreements from time to time. + If a change is _adverse_ to the customer, Jiko will notify partners, and they are then required to notify their end users 30 days in advance of the change. + - A change is deemed to be _adverse_ to the customer if it will result in increased fees, increased liability for the customer, fewer types of available transactions or stricter limitations on the frequency or dollar amount of transactions. + - When Jiko updates the bundle of agreements, the version number of the + agreement bundle will increment. + Jiko reserves the right to reject or manually review applications where customer consent does not match the latest agreement version. + Partners must re-fetch and display the agreements and disclosures links from the Agreements endpoint for every new application. This ensures each applicant is served the latest version of the agreements. + + # Authentication + + + **Jiko** provides partners with a `username` and a `password`, as well as a + `shared secret`. Partners are provided with a `bearer token` in the + [Login](https://docs.jiko.io/reference) response, which must be sent with + each request. + + +
+ + + Each request made to the partner API needs 3 parts in order for it to be + processed: + + + 1. An **Authorization** HTTP header containing the value + + + ```javascript + + Bearer + + ``` + + +
+ + + Where the `access_token` is the bearer token given in the + [Login](https://docs.jiko.io/reference) response. + + + 1. An **x-jiko-idempotency** HTTP header set to a random uuid for this + action, in order to signify a unique request to the API from the partner’s + perspective. + + 2. An **x-jiko-signature** HTTP header set to a base64 encoded HMAC-SHA256 + hash of `x-jiko-idempotency+request pathname+body` using the shared secret + as a key. + + + Below is a Node.js example showing how a potential request could be signed: + + +
+ + + ```javascript + + const crypto = require("crypto"); + + const uuid = require("uuid"); + + + const idempotency = uuid.v4(); + + const pathname = "/api/v1/agreements/"; + + const body = ""; + + + request.headers["x-jiko-signature"] = crypto + .createHmac("sha256", "shared-secret-here") + .update(idempotency + pathname + body, "utf-8") + .digest("base64"); + ``` + + +
+ + + **Partner** requests will need to be sent from an IP address whitelisted by + **Jiko**. + + **Jiko** will verify the request signature by repeating the steps above, + additionally checking for possible repeated requests. A request is + considered to be repeated if the idempotency key value provided in the + `x-jiko-idempotency` header has been used previously in the past 1 hour. + + +
+ + + Bearer tokens have a lifetime of 60 minutes. + + The partner will need to repeat the login process once a token has expired. + + + # Changelog + + + ## March 2024 + + - Added `tradable_id` field to [List Customer + Trades](https://docs.jiko.io/reference) and [List Customer + Transactions](https://docs.jiko.io/reference) API endpoint. + + - Added support for filtering by trade date to and from to [List Customer + Trades](https://docs.jiko.io/reference) and [List Customer + Transactions](https://docs.jiko.io/reference) API endpoints. + + + - Added support for filtering by types, timestamp_from and timestamp_to to + the [List Customer Transactions](https://docs.jiko.io/reference), [List + Account Transactions](https://docs.jiko.io/reference) API endpoints. + + + + ## February 2024 + + - Added support for filtering by status and direction to the [List ACH Originations](https://docs.jiko.io/reference) API endpoint + - Added support for filtering by portal id and card id to the [List Customer Transactions](https://docs.jiko.io/reference), [List Account Transactions](https://docs.jiko.io/reference) API endpoints. + + - Added support for filtering by status and direction to the [List ACH Originations](https://docs.jiko.io/reference) API endpoint + - Added support for filtering by card status to the [List Account Cards](https://docs.jiko.io/reference) endpoint. + - Added support for full withdrawals when performing on-us transfers by using the new `amount` field. + - Added support for listing fees deducted when performing on-us transfers. + + ## January 2024 + + - Added [Get Health Check](https://docs.jiko.io/reference) API endpoint. + + ## December 2023 + + + - Business Application additions: + + - Added [Create Application](https://docs.jiko.io/reference) API endpoint. + - Added [Get Application](https://docs.jiko.io/reference) API endpoint. + - Added [Update Application](https://docs.jiko.io/reference) API endpoint. + - Added [Apply](https://docs.jiko.io/reference) API endpoint. + + - Related Party Application additions: + + - Added [List Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Create Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Delete Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Update Related Party](https://docs.jiko.io/reference) API endpoint. + + - Document Upload additions: + + - Added [List Document Requests](https://docs.jiko.io/reference) API endpoint. + - Added [Upload Document](https://docs.jiko.io/reference) API endpoint. + + - Wire additions: + + - Added [Create Wire](https://docs.jiko.io/reference) API endpoint. + + ## November 2023 + + + - Added a new optional field `micro_deposit` to V1 `ACHCounterparty` model + that includes an indication of number of verification attempts for ACH + Counterparties verified via Micro Deposits + + - Added [Close Portal](https://docs.jiko.io/reference) API endpoint. + + - Added [Update Portal](https://docs.jiko.io/reference) API endpoint. + + + ## October 2023 + + + - Added enum value `PENDING` to the [Get Customer + Data](https://docs.jiko.io/reference) `account_status` field, signalling + that a customer has no open pocket. + + + ## July 2023 + + + - Added [Get Account Portal](https://docs.jiko.io/reference) API endpoint. + + + ## May 2023 + + + ### 2023-05-26 + + + - The response from uploading documents now includes a `document_id` field + for future reference. + + + ### 2023-05-15 + + + - Added [Create Portal](https://docs.jiko.io/reference) API endpoint. + + - Added a new `category` type E-SIGN for the Electronic Communications + Disclosure Statement and Consent which was previously in the GENERAL + category. + + + ### 2023-05-05 + + + - Added a new `WIRE_COUNTERPARTY_VERIFICATION` document type. + + - File size limits raised to 50 MB for files other than `ID_FRONT`, + `ID_BACK`, `SELFIE` and `PASSPORT` when uploading documents to a customer or + application. + + - Updated documentation for both file upload endpoints. + + + ## April 2023 + + + ### 2023-04-28 + + + - Adds a new `category` field for agreements returned by the [List + Agreements](https://docs.jiko.io/reference) endpoint. This `category` field + groups all agreements into 3 categories, BANK, BROKERAGE, or GENERAL. + + + ### 2023-04-19 + + + - Added a new sandbox endpoint for simulating webhook calls, [Trigger + Webhook](https://docs.jiko.io/reference). + + + ## March 2023 + + + ### 2023-03-30 + + + - Added a new `yield_to_maturity` field to the `Trade` model. + + + ### 2023-03-15 + + + - Added a new `name` field to the `Portal` model. + + + ## February 2023 + + + ### 2023-02-24 + + + - Added a sandbox endpoint to fund accounts via ACH portals. + + + ### 2023-02-16 + + + - Added a new disclosure type, `FORM_CRS`, for Customer Relationship Summary + Forms. + + + ### 2023-02-10 + + + - Added `wire_fee_transaction` and `WIRE_FEE` transaction type to the [List + Customer Transactions](https://docs.jiko.io/reference), [List Account + Transactions](https://docs.jiko.io/reference) and [Get Account + Transaction](https://docs.jiko.io/reference) endpoints. + + + ## January 2023 + + + ### 2023-01-25 + + + - Added [Create On-Us Transfer](https://docs.jiko.io/reference) API + endpoint. + + - Added [Get On-Us Transfer](https://docs.jiko.io/reference) API endpoint. + + + ### 2023-01-18 + + + - Added two optional filtering query parameters to the [List Customer + Statements](https://docs.jiko.io/reference) endpoint: + - The `type[]` query parameter makes it possible to filter by different types of statements, e.g. `?type[]=BANK&type[]=BROKERAGE` + - The `key` query parameter makes it possible to filter by either a specific month or a year, e.g. `?key=2023-01` or `?key=2022` + - Marked the [List Account Statements](https://docs.jiko.io/reference) + endpoint as deprecated. Please use the [List Customer + Statements](https://docs.jiko.io/reference) in future integrations. + + + ### 2023-01-09 + + + - Added a new transaction type and corresponding details object, + `on_us_transaction` to the response model in [List Customer + Transactions](https://docs.jiko.io/reference). + + + ### 2023-01-06 + + + - Added optional field `originally_onboarded_at` to request body in [Create + Application](https://docs.jiko.io/reference) + + + ## November 2022 + + + ### 2022-11-09 + + + - New counterparty type `WIRE` with a `wire` field, returned in [Get + Counterparty](https://docs.jiko.io/reference) and [List + Counterparties](https://docs.jiko.io/reference) + + + ## September 2022 + + + ### 2022-09-28 + + + - Added [List Customer Statements](https://docs.jiko.io/reference) API + endpoint. + + + ### 2022-09-27 + + + - Added [Get Customer Data](https://docs.jiko.io/reference) API endpoint. + + + ### 2022-09-07 + + + - Added [List Customer Trades](https://docs.jiko.io/reference) API endpoint. + + - Added [List Customer Transactions](https://docs.jiko.io/reference) API + endpoint. + + + ## August 2022 + + + ### 2022-08-29 + + + - Added `name` field to the [List Customer + Accounts](https://docs.jiko.io/reference) and [Get Customer + Account](https://docs.jiko.io/reference) API endpoints + + + ### 2022-08-16 + + + - Added [Get Account Transaction](https://docs.jiko.io/reference) API + endpoint + + + ### 2022-08-05 + + + - Added [List ACH Originations](https://docs.jiko.io/reference) API endpoint + version: 1.29.0 + servers: + - url: https://{partner}.partner-api.jikoservices.com + description: Production server + - url: https://{partner}.sandbox-api.jikoservices.com + description: Sandbox server + paths: + /api/v1/customers/{customer_id}/jiko-accounts/: + get: + tags: + - Accounts + summary: List Customer Accounts + description: Get a list of all accounts for a specified customer. + operationId: list_customer_accounts_api_v1_customers__customer_id__jiko_accounts__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: false + schema: + type: integer + minimum: 0 + title: Offset + default: 0 + name: offset + in: query + - required: false + schema: + type: integer + maximum: 100 + minimum: 1 + title: Limit + default: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListAccountsResponse' + example: + offset: 0 + count: 1 + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + name: J1 (4-week) + total_value: + value: 20708596 + currency: USD + formatted: $207,085.96 + status: OPEN + portfolio: + securities: + - tradable_id: 4b955c69-dd95-4f6a-a0ff-325ee029f240 + security_type: FIXED_INCOME + quantity: 2100 + market_value: + value: 20708596 + currency: USD + formatted: $207,085.96 + external_id: 912796RF6 + maturity_date: '2023-01-30' + yield_to_maturity: '0.0468' + ask: '98.628528' + bid: '98.612361' + description: US T-Bill + cash: + value: 0 + currency: USD + formatted: $0.00 + all_time_earnings: + value: 935404 + currency: USD + formatted: $9,354.04 + object_type: Account + object_type: List + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/: + get: + tags: + - Accounts + summary: Get Customer Account + description: Get a specific account. + operationId: get_customer_account_api_v1_jiko_accounts__account_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Account' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + name: J1 (4-week) + total_value: + value: 20708596 + currency: USD + formatted: $207,085.96 + status: OPEN + portfolio: + securities: + - tradable_id: 4b955c69-dd95-4f6a-a0ff-325ee029f240 + security_type: FIXED_INCOME + quantity: 2100 + market_value: + value: 20708596 + currency: USD + formatted: $207,085.96 + external_id: 912796RF6 + maturity_date: '2023-01-30' + yield_to_maturity: '0.0468' + ask: '98.628528' + bid: '98.612361' + description: US T-Bill + cash: + value: 0 + currency: USD + formatted: $0.00 + all_time_earnings: + value: 935404 + currency: USD + formatted: $9,354.04 + object_type: Account + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/transactions/: + get: + tags: + - Transactions + summary: List Customer Transactions + description: >- + Returns a list of transactions from a customer's **bank accounts**. It + does not include transactions between the **bank account** and + **brokerage account**. + operationId: >- + list_customer_transactions_api_v1_customers__customer_id__transactions__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - description: Ordered by the transaction timestamp, descending by default. + required: false + schema: + allOf: + - $ref: '#/components/schemas/Order' + description: Ordered by the transaction timestamp, descending by default. + default: desc + name: order + in: query + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Account[] + name: account[] + in: query + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Filter[Card] + name: filter[card] + in: query + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Filter[Portal] + name: filter[portal] + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/TransactionType' + type: array + name: filter[types] + in: query + - required: false + schema: + type: string + format: date-time + title: Timestamp From + name: timestamp_from + in: query + - required: false + schema: + type: string + format: date-time + title: Timestamp To + name: timestamp_to + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: CARD + title: 'ATM ABCD ID: TERM99 at 26 HOUSTON TEXAS CIR, HOUSTON TX' + transaction_type_title: ATM Withdrawal + card_transaction: + location: + street_address: 26 HOUSTON TEXAS CIR + city: HOUSTON + state: TX + country: US + counterparty: ABCD + terminal_id: TERM99 + merchant_type: ATM + pre_authorization: true + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: ACH + title: From VENMO (PAYMENT) + sub_title: 'IIN: 596425331 REF: 91000010211227' + transaction_type_title: ACH Electronic Debit + ach_transaction: + company_name: VENMO + company_entry_description: PAYMENT + individual_identification_number: '596425331' + trace_number: '091000010211227' + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: WIRE + title: From External Account + sub_title: 9999XXXX + transaction_type_title: Wire Transfer In + wire_transaction: + reference_number: 9999XXXX + counterparty_name: John Smith + wire_id: 4854014d-5540-4f0c-9efe-a0137f01e1da + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: CASH_BACK + title: 2022-06 Card Cash Back + transaction_type_title: Card Cash Back + cash_back_transaction: + period: 2022-06 + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01301 + object_type: Transaction + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/transactions/: + get: + tags: + - Transactions + summary: List Account Transactions + description: >- + Returns a list of **bank account** transactions. It does not include + transactions between the **bank account** and **brokerage account**. + operationId: >- + list_account_transactions_api_v1_jiko_accounts__account_id__transactions__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - description: Ordered by the transaction timestamp, descending by default. + required: false + schema: + allOf: + - $ref: '#/components/schemas/Order' + description: Ordered by the transaction timestamp, descending by default. + default: desc + name: order + in: query + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Filter[Card] + name: filter[card] + in: query + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Filter[Portal] + name: filter[portal] + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/TransactionType' + type: array + name: filter[types] + in: query + - required: false + schema: + type: string + format: date-time + title: Timestamp From + name: timestamp_from + in: query + - required: false + schema: + type: string + format: date-time + title: Timestamp To + name: timestamp_to + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: CARD + title: 'ATM ABCD ID: TERM99 at 26 HOUSTON TEXAS CIR, HOUSTON TX' + transaction_type_title: ATM Withdrawal + card_transaction: + location: + street_address: 26 HOUSTON TEXAS CIR + city: HOUSTON + state: TX + country: US + counterparty: ABCD + terminal_id: TERM99 + merchant_type: ATM + pre_authorization: true + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: ACH + title: From VENMO (PAYMENT) + sub_title: 'IIN: 596425331 REF: 91000010211227' + transaction_type_title: ACH Electronic Debit + ach_transaction: + company_name: VENMO + company_entry_description: PAYMENT + individual_identification_number: '596425331' + trace_number: '091000010211227' + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: WIRE + title: From External Account + sub_title: 9999XXXX + transaction_type_title: Wire Transfer In + wire_transaction: + reference_number: 9999XXXX + counterparty_name: John Smith + wire_id: 4854014d-5540-4f0c-9efe-a0137f01e1da + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: CASH_BACK + title: 2022-06 Card Cash Back + transaction_type_title: Card Cash Back + cash_back_transaction: + period: 2022-06 + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01301 + object_type: Transaction + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/transactions/{transaction_id}/: + get: + tags: + - Transactions + summary: Get Account Transaction + description: >- + Returns a specific transaction for a specific account, based on the + provided account_id and transaction_id in question. + operationId: >- + get_account_transaction_api_v1_jiko_accounts__account_id__transactions__transaction_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Transaction Id + name: transaction_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Transaction' + example: + id: 05964326-49b7-4e74-9783-81137ee3cf3b + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: WIRE + title: From External Account + sub_title: 9999XXXX + transaction_type_title: Wire Transfer In + wire_transaction: + reference_number: 9999XXXX + counterparty_name: John Smith + wire_id: 4854014d-5540-4f0c-9efe-a0137f01e1da + object_type: Transaction + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/trades/: + get: + tags: + - Trades + summary: List Customer Trades + description: Returns a list of trades from a customer's **brokerage accounts**. + operationId: list_customer_trades_api_v1_customers__customer_id__trades__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Account[] + name: account[] + in: query + - required: false + schema: + type: string + format: date-time + title: Trade Datetime From + name: trade_datetime_from + in: query + - required: false + schema: + type: string + format: date-time + title: Trade Datetime To + name: trade_datetime_to + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TradeListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + trade_datetime: '2023-01-01T12:00:00+00:00' + settled_date: '2023-01-01' + is_settled: true + activity: BUY + cusip: 912796RF6 + description: US T-Bill + notional: + value: 20935404 + currency: USD + formatted: $209,354.04 + quantity: 2123 + price: '98.612361' + maturity_date: '2023-01-30' + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + yield_to_maturity: '0.0468' + tradable_id: 912797HF7 + object_type: Trade + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/trades/: + get: + tags: + - Trades + summary: List Account Trades + description: >- + Get a list of trades. This is the equivalent of fetching transactions + for the **brokerage** account. + operationId: list_account_trades_api_v1_jiko_accounts__account_id__trades__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: false + schema: + type: string + format: date-time + title: Trade Datetime From + name: trade_datetime_from + in: query + - required: false + schema: + type: string + format: date-time + title: Trade Datetime To + name: trade_datetime_to + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TradeListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + trade_datetime: '2023-01-01T12:00:00+00:00' + settled_date: '2023-01-01' + is_settled: true + activity: BUY + cusip: 912796RF6 + description: US T-Bill + notional: + value: 20935404 + currency: USD + formatted: $209,354.04 + quantity: 2123 + price: '98.612361' + maturity_date: '2023-01-30' + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + yield_to_maturity: '0.0468' + tradable_id: 912797HF7 + object_type: Trade + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/trades/{trade_id}/confirmation/: + get: + tags: + - Trades + summary: Get Trade Confirmation + description: >- + Get a trade's trade confirmation. + + +
+ + + Trade confirmations are sensitive documents. For security reasons, we + return trade confirmations as PDFs through a URL with a 10-minute TTL. + Trade confirmation PDFs should be fetched and served just-in-time, not + stored in databases. Trades with "activity": "MATURITY" do not have + trade confirmations. + operationId: >- + get_trade_confirmation_api_v1_jiko_accounts__account_id__trades__trade_id__confirmation__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Trade Id + name: trade_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TradeConfirmation' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/applications/: + post: + tags: + - Individuals + summary: Create Application + description: >- + Create an application. You must [apply](https://docs.jiko.io/reference) + to potentially create a customer using the application, assuming KYC is + successful. + + +
+ + + When creating an application, keep in mind that customers must be at + least 18 years old to open an account with Jiko. + operationId: create_application_api_v1_applications__post + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InternationalApplicationRequest' + example: + identification_number: '999999999' + name: + first_name: Jiko + last_name: Customer + email: jiko@example.com + date_of_birth: '1970-01-01' + investment_profile: + income: BETWEEN_100K_AND_250K + net_worth: BETWEEN_1M_AND_5M + occupation: Investor + employment_status: EMPLOYED + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + phone_number: '+14155550100' + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/InternationalApplication' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T13:00:00+00:00' + status: CREATED + exception_reasons: [] + phone_number: '+14155550100' + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + email: jiko@example.com + name: + first_name: Jiko + last_name: Customer + date_of_birth: + date_of_birth: '1970-01-01' + investment_profile: + income: BETWEEN_100K_AND_250K + net_worth: BETWEEN_1M_AND_5M + occupation: Investor + employment_status: EMPLOYED + documents: [] + id_verification_documents_needed: false + identification_number_verification_document_needed: false + address_verification_document_needed: false + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: US + citizenship_country: US + object_type: InternationalApplication + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/applications/{application_id}/: + get: + tags: + - Individuals + summary: Get Application + description: Fetch and observe an existing application. + operationId: get_application_api_v1_applications__application_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/InternationalApplication' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T13:00:00+00:00' + status: CREATED + exception_reasons: [] + phone_number: '+14155550100' + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + email: jiko@example.com + name: + first_name: Jiko + last_name: Customer + date_of_birth: + date_of_birth: '1970-01-01' + investment_profile: + income: BETWEEN_100K_AND_250K + net_worth: BETWEEN_1M_AND_5M + occupation: Investor + employment_status: EMPLOYED + documents: [] + id_verification_documents_needed: false + identification_number_verification_document_needed: false + address_verification_document_needed: false + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: US + citizenship_country: US + object_type: InternationalApplication + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/applications/{application_id}/apply/: + post: + tags: + - Individuals + summary: Apply + description: >- + Initiate automatic KYC. Transitions the application from `CREATED` + status to `SUBMITTED` status. Once the async KYC process is completed, + the application will move from `SUBMITTED` to another status. + operationId: apply_api_v1_applications__application_id__apply__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/InternationalApplication' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T13:00:00+00:00' + status: DOCUMENTS_NEEDED + exception_reasons: [] + phone_number: '+14155550100' + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + email: jiko@example.com + name: + first_name: Jiko + last_name: Customer + date_of_birth: + date_of_birth: '1970-01-01' + investment_profile: + income: BETWEEN_100K_AND_250K + net_worth: BETWEEN_1M_AND_5M + occupation: Investor + employment_status: EMPLOYED + customer_id: 160c0c4b-9966-4dc1-a916-8407eb10d74e + documents: + - id: dcd70de2-9f18-4918-bd96-c3972c85dc4e + type: ID_FRONT + status: PENDING_UPLOAD + - id: 62cd7ac9-d882-43f5-ac19-ad85c0c5c533 + type: ID_BACK + status: PENDING_UPLOAD + - id: 1bd78e61-c86f-45b8-8848-34a51c863166 + type: PASSPORT + status: PENDING_UPLOAD + - id: 0ceee47c-946e-4a6d-8951-96e1f630a59c + type: SELFIE + status: PENDING_UPLOAD + id_verification_documents_needed: true + identification_number_verification_document_needed: false + address_verification_document_needed: false + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: US + citizenship_country: US + object_type: InternationalApplication + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/agreements/: + get: + tags: + - Individuals + summary: List Agreements + description: >- + Partner agreements and disclosures are available through the API in a + versioned bundle. The version of the fetched bundle must be attached to + all incoming applications. + operationId: list_agreements_api_v1_agreements__get + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Agreement' + example: + version: 1.0.0 + release_date: '2023-01-01' + documents: + - pdf_download_url: https://example.com/path-to-agreement-pdf + title: Jiko Privacy Policy + type: PRIVACY_POLICY + category: GENERAL + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/: + post: + tags: + - Businesses + summary: Create Application + description: >- + Create a Business Application. The **Business Application** object + contains general information related to the business and the overall + status of the application. + + +
+ + + See the [Onboarding Businesses + Guide](https://docs.jiko.io/guides/onboarding-businesses) for more. + operationId: create-business-application + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationRequest' + example: + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationResponse' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T12:00:00+00:00' + status: CREATED + exception_reasons: [] + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/{application_id}/: + get: + tags: + - Businesses + summary: Get Application + description: Fetch a Business Application. + operationId: get-business-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationResponse' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T12:00:00+00:00' + status: APPROVED + exception_reasons: [] + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + customer_id: 160c0c4b-9966-4dc1-a916-8407eb10d74e + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + patch: + tags: + - Businesses + summary: Update Application + operationId: update-business-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationRequest' + example: + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationResponse' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T12:00:00+00:00' + status: SUBMITTED + exception_reasons: [] + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/{application_id}/apply/: + post: + tags: + - Businesses + summary: Apply + description: >- + When the Business Application object has been completed, along with + Related Party Applications and Document Requests (see the [Onboarding + Businesses Guide](https://docs.jiko.io/guides/onboarding-businesses)), + call this endpoint to submit the business application for review. + operationId: business-application-apply + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationResponse' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T12:00:00+00:00' + status: SUBMITTED + exception_reasons: [] + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/{application_id}/related-party-applications/: + get: + tags: + - Businesses + summary: List Related Party Application + operationId: list-related-party-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + items: + $ref: '#/components/schemas/RelatedPartyApplicationResponse' + type: array + title: Response List-Related-Party-Application + example: + - name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + title: CEO + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + post: + tags: + - Businesses + summary: Create Related Party Application + operationId: create-related-party-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedPartyApplicationRequest' + example: + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + title: CEO + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedPartyApplicationResponse' + example: + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + title: CEO + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/{application_id}/related-party-applications/{related_party_application_id}/: + delete: + tags: + - Businesses + summary: Delete Related Party Application + operationId: delete-related-party-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: Related Party Application Id + name: related_party_application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + patch: + tags: + - Businesses + summary: Update Related Party Application + operationId: update-related-party-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: Related Party Application Id + name: related_party_application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedPartyApplicationRequest' + example: + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + title: CEO + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedPartyApplicationResponse' + example: + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + title: CEO + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/counterparties/: + get: + tags: + - Counterparties + summary: List Counterparties + description: List all counterparties for a customer. + operationId: list_counterparties_api_v1_customers__customer_id__counterparties__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListCounterpartiesResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: ACH + ach: + time_created: '2023-01-15T14:00:00+00:00' + verification_type: MICRO_DEPOSITS + status: IN_PROGRESS + account_number: '123456789' + routing_number: '9876456' + name_on_account: External Accountholder + account_type: SAVINGS + institution_name: External Bank NA + plaid: + mask: '0000' + verification_status: PENDING_AUTOMATIC_VERIFICATION + object_type: CounterpartyPlaid + wire: + time_created: '2023-01-15T14:00:00+00:00' + verification_type: INCOMING_WIRE + status: IN_PROGRESS + account_number: '1213456789' + routing_number: '9876456' + name_on_account: External Accountholder + account_type: SAVINGS + institution_name: External Bank NA + object_type: Counterparty + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/counterparties/{counterparty_id}/: + get: + tags: + - Counterparties + summary: Get Counterparty + description: >- + Poll this endpoint to monitor the progress of the verification process + for a single counterparty. + + +
+ + + > ### Plaid: + + > If `plaid.verification_status` is `PENDING_MANUAL_VERIFICATION`, the + user is in the Same Day Micro-deposits + flow and must return in 1-2 business days and go through the Plaid Link + flow again, this time using a new Link token where the *counterparty_id* + is passed to Jiko. + operationId: >- + get_counterparty_api_v1_customers__customer_id__counterparties__counterparty_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + type: string + format: uuid + title: Counterparty Id + name: counterparty_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Counterparty' + example: + id: b5a776db-8960-4157-afe5-519b6708bb79 + type: WIRE + wire: + time_created: '2023-01-15T14:00:00+00:00' + verification_type: INCOMING_WIRE + status: IN_PROGRESS + account_number: '1213456789' + routing_number: '9876456' + name_on_account: External Accountholder + account_type: SAVINGS + institution_name: External Bank NA + object_type: Counterparty + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/cards/: + get: + tags: + - Manage Cards + summary: List Account Cards + description: >- + Get all cards for a specific account. Includes the `card_id` and + metadata, but sensitive data like CVV's, expiration dates and card + numbers are omitted. + operationId: list_account_cards_api_v1_jiko_accounts__account_id__cards__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: false + schema: + type: integer + title: Limit + default: 100 + name: limit + in: query + - required: false + schema: + type: string + title: Cursor + name: cursor + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/CardStatus' + type: array + uniqueItems: true + name: filter[status] + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CardListResponse' + example: + offset: 0 + count: 1 + items: + - card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + name: Jiko Virtual Debit Card + status: OPEN + type: VIRTUAL + object_type: List + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/cards/{card_id}/status/: + get: + tags: + - Manage Cards + summary: Get Card Status + description: Get a card's current status. + operationId: >- + get_card_status_api_v1_jiko_accounts__account_id__cards__card_id__status__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CardStatusResponse' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + patch: + tags: + - Manage Cards + summary: Set Card Status + description: >- + Set a card's status. Note that once a card's status is set to `CLOSED`, + it can never be used again. + operationId: >- + set_card_status_api_v1_jiko_accounts__account_id__cards__card_id__status__patch + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChangeCardStatusRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CardStatusResponse' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/cards/{card_id}/pin/: + post: + tags: + - Manage Cards + summary: Set Card PIN + description: Set PIN for physical cards (by `card_id`) before they are activated. + operationId: set_card_pin_api_v1_jiko_accounts__account_id__cards__card_id__pin__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CardPinBase' + example: + encrypted_pin: >- + KzJXZ0DgR/rvWnxexTeObSsOaByNGHKt67kLwbAEWULV4szPTeOTp1wSVQalGn/ykE0qgEUV8PEZGUbyvfj3j0gpuxIMdgbxg0ujXp6UfiuOMIbmP+HDg4E2BoSduh8XygMhwiWycnqA6lnKHRjGSb8vOwnNgxTGuUX9w3k0NJl3u62JWs2FzSa/HedpxKu+U1VTRmW9Y7tee7QYC/72xseV2wKMx+iFG3Sw2D9ruC4sgVE3tdi7E9FBsSVWawle9UrTF+wdX+cfImb7lKI2Pw5MiEf29xe7moNU8RHzGgyOrbyQcx0/j8t8mLqHSs/ioRGeSNevw4pXlpJBRD+hamyRdVQdaLrWB5xEKx9Ih9fGlMYE5RJHWMveB0NQ2Oxl2h/4/Om/bbP0JDA1doY6l/ovkey9lu0c494R05tdWmch93v+f/SqAoBcXf4hDeUgLhWkRNykzzwoQOACFNcBk9TUWJH8S90TYQM3sdgIfcNFru45VGJa5jlyheqNYeU3EqsWyVFmZAJUFJUSBMJdAVkSg5jxDPdzyk7GLrk5xu2N1orq4NKzR8O6WL+PhFtJF/7pZDWawq8TZRX3nqbyYUY+5ZlnBEVXywsn0L5Fp6od4oAelyhzrjzMlhtEMpuwOFhLvcb3Fm0Z4EIDeX6l3MIhDTDExKxOJsCLG2dbbIA= + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CardPinResponse' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/cards/{card_id}/close/: + post: + tags: + - Manage Cards + summary: Close Card + description: >- + Close a card, virtual or physical. Physical cards require a + `closure_reason`. If the reason is `STOLEN` or `LOST`, a + `lost_stolen_date` is required. + operationId: close_card_api_v1_jiko_accounts__account_id__cards__card_id__close__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CloseCardRequest' + example: + closure_reason: STOLEN + lost_stolen_date: '2023-01-01' + required: true + responses: + '204': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/card-orders/: + get: + tags: + - Physical Cards + summary: List Card Orders + description: List all card orders for this account. + operationId: list_card_orders_api_v1_jiko_accounts__account_id__card_orders__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PhysicalCardOrderListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + card_order_id: d66e74c4-66f9-4937-8518-1a94f39ba0f9 + status: INITIAL + object_type: MinimalPhysicalCardOrderResponse + object_type: CursorList + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + post: + tags: + - Physical Cards + summary: Create Physical Card Order + description: >- + Order a new, physical card for an account. It will be delivered to the + specified address. + operationId: >- + create_physical_card_order_api_v1_jiko_accounts__account_id__card_orders__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PhysicalCardOrder' + example: + name_on_card: Jiko Customer + shipping_address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PhysicalCardOrderResponse' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + card_order_id: d66e74c4-66f9-4937-8518-1a94f39ba0f9 + status: INITIAL + name_on_card: Jiko Customer + shipping_address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + object_type: PhysicalCardOrderResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/card-orders/{card_order_id}/: + get: + tags: + - Physical Cards + summary: Get Card Order + description: Retrieve card order information by provided `card_order_id`. + operationId: >- + get_card_order_api_v1_jiko_accounts__account_id__card_orders__card_order_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Order Id + name: card_order_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PhysicalCardOrderResponse' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + card_order_id: d66e74c4-66f9-4937-8518-1a94f39ba0f9 + status: INITIAL + name_on_card: Jiko Customer + shipping_address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + object_type: PhysicalCardOrderResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/virtual-cards/{card_id}/: + post: + tags: + - Virtual Cards + summary: Get Virtual Card + description: >- + Retrieve virtual card detail by given `card_id`. Generate a single-use + 4096-bit RSA key-pair at the (end user) client side and pass the public + key PEM encoded upstream in PKCS#1 or PKCS#1.5 format to ensure + confidentiality and encryption of the card's PAN, CVV and expiration + date. + operationId: >- + get_virtual_card_api_v1_jiko_accounts__account_id__virtual_cards__card_id___post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PublicKeyRequest' + example: + public_key: "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzmZv8spzSU9z+/bhFzX0\r\ns4xVXE9ZOApQUMoM3Q1VDiJujyWJ61uoTsWT1uQlIXHdUQ3NcXw0WYDUEaM8fj1b\r\nB2k1zSXmRD4VmxAIRNVfs3Cp3GKqC/WjyvDw25+SYBFwiaYJblpyZPiunXvXRyK8\r\nvdDaPliwTN5p7pjHQvcfXOl20ZtWnZTGMulJ+smNCYKWckW1hEOMjJP8FLMJpSHa\r\n6yGOpAYAxoHxodiJCI4X6fG206gBtyFps1CyxCz8WDjALqJYfeArTFv7/2AyuVCF\r\n5zLE7tzPrJeVxfqa+CI+7mWFhEKZLAd/PEzEL7P2VZr9BRd0lyxBipEEG/DGMEvY\r\n1dcx+3J56ZxVURAqeXPGkqVfz/IdisQt/okp6vSVKQdImeyzpJvwvBc7T7tKyRZR\r\nvtL8XLYzZBujqWCezMxU97TAb7BlQ2nPJCQFMZD7y1KldgWuGnjXha1TFIYvfrYW\r\noDFK221Z6LYlKWeRFGXhoNOX1Qm/CX3wi9Tfo01LTxbCY2Y1mbv6e8Xt12MzhicD\r\nZsFvVrtRaVrjmqXXDq8X2r7puPTLOQf7Dow3944XnTZQURE4oPIwCfTBmfMow+TB\r\n+ZUYWRXwg0/hl9AOBSGLVNlaGZD8sAu98knish5LJv34lx5mIiLLpGpIt+mzZikU\r\nFt9siIkltvk49qcmTuI8GJUCAwEAAQ==\r\n-----END PUBLIC KEY-----" + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualCardResponse' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + encrypted_pan: LBHyVQggqNZvbYriaL8omZSFnQfS4yMFEO8hpVmgrtn70uYz56... + encrypted_cvv: GLuGA7uI2iYrzE03XkKMH1IJZD6cxR+WJmgw9Z0VuervNqnkUq... + encrypted_expiration: amAxcZuURFfOi38kbM1LXfa6gBmuaSCt10Kic8243kM1V+Llsb... + object_type: VirtualCardResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + delete: + tags: + - Virtual Cards + summary: Close Virtual Card + description: Close a virtual card. This is an irreversible action. + operationId: >- + close_virtual_card_api_v1_jiko_accounts__account_id__virtual_cards__card_id___delete + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/virtual-cards/: + post: + tags: + - Virtual Cards + summary: Create Virtual Card + description: >- + Create a virtual card for an account. Generate a single-use 4096-bit RSA + key-pair at the (end user) client side and pass the public key PEM + encoded upstream in PKCS#1 or PKCS#1.5 format to ensure confidentiality + and encryption of the card's PAN, CVV and expiration date. + operationId: >- + create_virtual_card_api_v1_jiko_accounts__account_id__virtual_cards__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PublicKeyRequest' + example: + public_key: "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzmZv8spzSU9z+/bhFzX0\r\ns4xVXE9ZOApQUMoM3Q1VDiJujyWJ61uoTsWT1uQlIXHdUQ3NcXw0WYDUEaM8fj1b\r\nB2k1zSXmRD4VmxAIRNVfs3Cp3GKqC/WjyvDw25+SYBFwiaYJblpyZPiunXvXRyK8\r\nvdDaPliwTN5p7pjHQvcfXOl20ZtWnZTGMulJ+smNCYKWckW1hEOMjJP8FLMJpSHa\r\n6yGOpAYAxoHxodiJCI4X6fG206gBtyFps1CyxCz8WDjALqJYfeArTFv7/2AyuVCF\r\n5zLE7tzPrJeVxfqa+CI+7mWFhEKZLAd/PEzEL7P2VZr9BRd0lyxBipEEG/DGMEvY\r\n1dcx+3J56ZxVURAqeXPGkqVfz/IdisQt/okp6vSVKQdImeyzpJvwvBc7T7tKyRZR\r\nvtL8XLYzZBujqWCezMxU97TAb7BlQ2nPJCQFMZD7y1KldgWuGnjXha1TFIYvfrYW\r\noDFK221Z6LYlKWeRFGXhoNOX1Qm/CX3wi9Tfo01LTxbCY2Y1mbv6e8Xt12MzhicD\r\nZsFvVrtRaVrjmqXXDq8X2r7puPTLOQf7Dow3944XnTZQURE4oPIwCfTBmfMow+TB\r\n+ZUYWRXwg0/hl9AOBSGLVNlaGZD8sAu98knish5LJv34lx5mIiLLpGpIt+mzZikU\r\nFt9siIkltvk49qcmTuI8GJUCAwEAAQ==\r\n-----END PUBLIC KEY-----" + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualCardResponse' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + encrypted_pan: LBHyVQggqNZvbYriaL8omZSFnQfS4yMFEO8hpVmgrtn70uYz56... + encrypted_cvv: GLuGA7uI2iYrzE03XkKMH1IJZD6cxR+WJmgw9Z0VuervNqnkUq... + encrypted_expiration: amAxcZuURFfOi38kbM1LXfa6gBmuaSCt10Kic8243kM1V+Llsb... + object_type: VirtualCardResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/events/types/: + get: + tags: + - Events + summary: List Event Types + description: List all event types. + operationId: list_event_types_api_v1_events_types__get + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/EventListResponse' + example: + offset: 0 + count: 14 + items: + - event: application.approved + object_type: EventType + - event: application.documents_needed + object_type: EventType + - event: application.manual_review + object_type: EventType + - event: application.rejected + object_type: EventType + - event: card.status.closed + object_type: EventType + - event: card.status.frozen + object_type: EventType + - event: card.status.locked + object_type: EventType + - event: card.status.open + object_type: EventType + - event: card.transaction.approved + object_type: EventType + - event: card.transaction.rejected + object_type: EventType + - event: transfers.ach.in.success + object_type: EventType + - event: transfers.ach.in.rejected + object_type: EventType + - event: transfers.ach.out.success + object_type: EventType + - event: transfers.ach.out.rejected + object_type: EventType + object_type: List + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/events/: + get: + tags: + - Events + summary: List Events + description: List all past events. + operationId: list_events_api_v1_events__get + parameters: + - required: false + schema: + type: string + format: uuid + title: Subscription Id + name: subscription_id + in: query + - required: false + schema: + type: string + format: date-time + title: After + name: after + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CursorListResponse_PartnerEvent_' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - event: + event_id: a7a26ff2-e851-45b6-9634-d595f45458b7 + timestamp: '2023-01-01T14:00:00+00:00' + payload: + application_id: 48ac72d0-a829-4896-a067-dcb1c2b0f30c + event_type: application.approved + delivery_attempts: + - delivery_attempt_id: 5326238f-7f19-4e5f-b374-402eed7b1c7b + subscription_id: aa11a4c2-a467-43db-b413-c4ab0f5cf627 + success: true + response_code: 200 + response_message: OK + called_at: '2023-01-01T14:00:00+00:00' + object_type: PartnerEvent + object_type: CursorList + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/counterparties/plaid/link-token/: + post: + tags: + - 'Counterparties: Plaid' + summary: Create Plaid Link Token + description: >- + To initiate the Plaid Link flow in your app, a link token must be + created to identify the data flowing between your app, Plaid and Jiko. + If the Plaid Link flow has to be accessed again later to complete + account ownership verification (Same Day Micro-deposits), you must + include the *counterparty_id* for the counterparty in question. + *redirect_uri* allows you to use OAuth. + + +
+ + + **NOTE**: `android_package_name` and `redirect_uri` are mutually + exclusive. Only one should be provided, depending on your use case. + operationId: >- + create_plaid_link_token_api_v1_customers__customer_id__counterparties_plaid_link_token__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PlaidLinkTokenRequest' + example: + client_name: My App + redirect_uri: https://example.com/plaid-oauth + android_package_name: com.example.myapp + counterparty_id: fd38dae9-b300-4017-a630-101c4279eafd + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PlaidLinkToken' + example: + link_token: link-af1a0311-da53-4636-b754-dd15cc058176 + expiration: '2023-01-01T12:00:00+00:00' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/counterparties/plaid/: + post: + tags: + - 'Counterparties: Plaid' + summary: Create Plaid Counterparties + description: >- + Once your user has completed the Plaid Link flow, you must forward some + data from Plaid to Jiko to create the counterparty. This includes + information about the third party financial institution and the specific + accounts selected by the user. The *institution_id* is required in all + cases except in the Same Day Micro-deposits flow. + operationId: >- + create_plaid_counterparties_api_v1_customers__customer_id__counterparties_plaid__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PlaidCreateCounterparties' + example: + public_token: public-b0e2c4ee-a763-4df5-bfe9-46a46bce993d + accounts: + - id: blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo + name: Plaid Checking + mask: '0000' + institution_id: ins_109508 + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PlaidCreateCounterpartiesResponse' + example: + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: ACH + ach: + time_created: '2023-01-15T14:00:00+00:00' + verification_type: MICRO_DEPOSITS + status: IN_PROGRESS + account_number: '123456789' + routing_number: '9876456' + name_on_account: External Accountholder + account_type: SAVINGS + institution_name: External Bank NA + plaid: + mask: '0000' + verification_status: PENDING_AUTOMATIC_VERIFICATION + object_type: CounterpartyPlaid + object_type: Counterparty + object_type: PlaidCreateCounterpartiesResponse + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/counterparties/{counterparty_id}/plaid/verify/: + post: + tags: + - 'Counterparties: Plaid' + summary: Verify Plaid Counterparty + description: >- + If and when a user completes the Same Day Micro-deposits flow, call this + endpoint to notify it has been completed. Then, go back to polling the + counterparty until verification is complete. + operationId: >- + verify_plaid_counterparty_api_v1_customers__customer_id__counterparties__counterparty_id__plaid_verify__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + type: string + format: uuid + title: Counterparty Id + name: counterparty_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/subscriptions/: + get: + tags: + - Subscriptions + summary: List Subscriptions + description: List a partner's subscriptions. + operationId: list_subscriptions_api_v1_subscriptions__get + parameters: + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CursorListResponse_Subscription_' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - description: Jiko API Webhook Subscriptions + events: + - application.approved + - application.documents_needed + - application.manual_review + - application.rejected + - card.status.closed + - card.status.frozen + - card.status.locked + - card.status.open + - card.transaction.approved + - card.transaction.rejected + - transfers.ach.in.success + - transfers.ach.in.rejected + - transfers.ach.out.success + - transfers.ach.out.rejected + url: https://example.com/webhooks + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T14:00:00+00:00' + updated_at: '2023-01-01T14:00:00+00:00' + status: enabled + object_type: Subscription + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + post: + tags: + - Subscriptions + summary: Create Subscription + description: >- + Creates a webhook subscription for the specified event types and the + given URL. + operationId: create_subscription_api_v1_subscriptions__post + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriptionRequest' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success + shared_secret: '1234567890123456' + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T14:00:00+00:00' + updated_at: '2023-01-01T14:00:00+00:00' + status: enabled + object_type: Subscription + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/subscriptions/{subscription_id}/: + get: + tags: + - Subscriptions + summary: Get Subscription + description: Retrieve a webhook subscription by given `subscription_id`. + operationId: get_subscription_api_v1_subscriptions__subscription_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Subscription Id + name: subscription_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T14:00:00+00:00' + updated_at: '2023-01-01T14:00:00+00:00' + status: enabled + object_type: Subscription + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + delete: + tags: + - Subscriptions + summary: Delete Subscription + description: Deletes a webhook subscription matching the given ID. + operationId: delete_subscription_api_v1_subscriptions__subscription_id___delete + parameters: + - required: true + schema: + type: string + format: uuid + title: Subscription Id + name: subscription_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + patch: + tags: + - Subscriptions + summary: Update Subscription + description: Updates webhook subscription by specified `subscription_id`. + operationId: update_subscription_api_v1_subscriptions__subscription_id___patch + parameters: + - required: true + schema: + type: string + format: uuid + title: Subscription Id + name: subscription_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriptionRequest' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success-new + shared_secret: '1234567890123456' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success-new + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T14:00:00+00:00' + updated_at: '2023-01-01T16:00:00+00:00' + status: enabled + object_type: Subscription + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/ach-originating/: + get: + tags: + - ACH + summary: List ACH Originations + description: List all ACH transfer originations. + operationId: >- + list_ach_originations_api_v1_jiko_accounts__account_id__ach_originating__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: false + schema: + items: + $ref: '#/components/schemas/ACHStatus' + type: array + name: filter[status] + in: query + - required: false + schema: + $ref: '#/components/schemas/ACHDirection' + name: direction + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CursorListResponse_ACHResponse_' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - counterparty_id: fd38dae9-b300-4017-a630-101c42791afd + direction: CREDIT + sec_code: WEB + payment_related_information: + - Transferring funds to Jiko from an external account + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + status: PROCESSED + time_created: '2023-01-01T14:00:00+00:00' + company_entry_description: Incoming ACH Transfer + object_type: ACHResponse + object_type: CursorList + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + post: + tags: + - ACH + summary: Create ACH Origination + description: >- + Originate an ACH transaction with the counterparty. + + This can only be done after creating a + [Counterparty](https://docs.jiko.io/reference) for the account. + + +
+ + + ### ACH Origination Limitations + + +
+ + + - All transfers that are below 25k and scheduled before 12:00 ET are + sent with settlement same-day + + - All transfers above 25k scheduled before 12:00 ET are sent with + settlement next day + + - All transfers scheduled after 12:00 ET follow the above rules the + following day + operationId: >- + create_ach_origination_api_v1_jiko_accounts__account_id__ach_originating__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ACHRequest' + example: + counterparty_id: fd38dae9-b300-4017-a630-101c4279eafd + direction: CREDIT + sec_code: WEB + payment_related_information: + - Transferring funds to Jiko from an external account + amount_usdc: 100000 + company_entry_description: ACH TXN IN + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ACHResponse' + example: + counterparty_id: fd38dae9-b300-4017-a630-101c42791afd + direction: CREDIT + sec_code: WEB + payment_related_information: + - Transferring funds to Jiko from an external account + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + status: PROCESSED + time_created: '2023-01-01T14:00:00+00:00' + company_entry_description: Incoming ACH Transfer + object_type: ACHResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/ach-originating/{transfer_id}/: + get: + tags: + - ACH + summary: Get ACH Origination + description: Get a specific ACH transfer origination. + operationId: >- + get_ach_origination_api_v1_jiko_accounts__account_id__ach_originating__transfer_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Transfer Id + name: transfer_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ACHResponse' + example: + counterparty_id: fd38dae9-b300-4017-a630-101c42791afd + direction: CREDIT + sec_code: WEB + payment_related_information: + - Transferring funds to Jiko from an external account + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + status: PROCESSED + time_created: '2023-01-01T14:00:00+00:00' + company_entry_description: Incoming ACH Transfer + object_type: ACHResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/wires/: + post: + tags: + - Wires + summary: Create Wire + description: >- + Initiates a Wire Transfer. Wires can only be sent to accounts created + and verified via [Create + Counterparty](https://docs.jiko.io/reference/v2#tag/Counterparties/operation/create-counterparty-v2). + Initiating outgoing wire transfers isn’t available by default and must + be enabled — please contact your Jiko point-of-contact to learn more. + operationId: create-wire + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WireRequest' + example: + counterparty_id: fd38dae9-b300-4017-a630-101c4279eafd + amount_usdc: 1000000 + created_by: jiko@example.com + description: Wiring funds to external account + wire_id: 6b14d0c0-277f-4a32-b5ac-c2e1c7d99f15 + required: true + responses: + '201': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/transfers/on-us/: + post: + tags: + - On-Us Transfers + summary: Create On-Us Transfer + description: >- + Initiates an On-Us Transfer between two Pockets. + + + On-Us Transfers can be made in three 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 + + + 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`. + operationId: create-on-us-transfer + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OnUsTransferDetailsRequest' + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/OnUsTransfer' + example: + 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: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_FUNDING + source: '123456789' + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + fees: + - type: AUM_FEE + amount: + value: 10 + currency: USD + formatted: $0.10 + object_type: OnUsTransfer + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/transfers/on-us/{transfer_id}/: + get: + tags: + - On-Us Transfers + summary: Get On-Us Transfer + description: Gets a single on-us transfer by ID. + operationId: get-on-us-transfer + parameters: + - required: true + schema: + type: string + format: uuid + title: Transfer Id + name: transfer_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/OnUsTransfer' + example: + 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: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_FUNDING + source: '123456789' + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + fees: + - type: AUM_FEE + amount: + value: 10 + currency: USD + formatted: $0.10 + object_type: OnUsTransfer + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/: + get: + tags: + - Customers + summary: Get Customer Data + description: Retrieve customer details for the customer given by the customer ID. + operationId: get_customer_data_api_v1_customers__customer_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Customer' + example: + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + email: jiko@example.com + phone_number: '15551234567' + account_status: OPEN + type: INDIVIDUAL + name: + first_name: Jiko + last_name: Customer + date_of_birth: '1970-01-01' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/statements/: + get: + tags: + - Statements + summary: List Customer Statements + description: Get all statements for all accounts of a specific customer. + operationId: list_customer_statements_api_v1_customers__customer_id__statements__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Account[] + name: account[] + in: query + - required: false + schema: + allOf: + - $ref: '#/components/schemas/Order' + default: desc + name: order + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/StatementType' + type: array + default: [] + name: type[] + in: query + - description: Date formatted either `YYYY` or `YYYY-MM` + required: false + schema: + type: string + pattern: ^\d{4}(-\d{2})?$ + title: Key + description: Date formatted either `YYYY` or `YYYY-MM` + name: key + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 150 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/StatementListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + type: BANK + key: '2023-01-01' + pdf_download_url: https://example.com/path-to-statement-pdf + time_created: '2023-01-15T14:00:00+00:00' + object_type: Statement + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/statements/: + get: + tags: + - Statements + summary: List Account Statements + description: >- + Lists all statements for an account. Partners can expect monthly + statements to be available by the 15th of every month. + + +
+ + + Bank and Broker dealer statements are sensitive documents. For security + reasons, these URLs have a 10 minute TTL. Therefore, they should be + fetched and served just-in-time, not stored in databases. + operationId: >- + list_account_statements_api_v1_jiko_accounts__account_id__statements__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: false + schema: + allOf: + - $ref: '#/components/schemas/Order' + default: desc + name: order + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/StatementType' + type: array + default: [] + name: type[] + in: query + - description: Date formatted either `YYYY` or `YYYY-MM` + required: false + schema: + type: string + pattern: ^\d{4}(-\d{2})?$ + title: Key + description: Date formatted either `YYYY` or `YYYY-MM` + name: key + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 150 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/StatementListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + type: BANK + key: '2023-01-01' + pdf_download_url: https://example.com/path-to-statement-pdf + time_created: '2023-01-15T14:00:00+00:00' + object_type: Statement + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + deprecated: true + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/portals/: + get: + tags: + - Portals + summary: List Portals + description: Get a list of portals associated with an account. + operationId: list_account_portals_api_v1_jiko_accounts__account_id__portals__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListPortalsResponse' + example: + count: 1 + portals: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + routing_number: '123456789' + account_number: '987654321' + status: OPEN + name: Payroll + object_type: Portal + object_type: List + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + post: + tags: + - Portals + summary: Create Portal + description: Create a portal for an account. + operationId: create_portal_api_v1_jiko_accounts__account_id__portals__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PortalCreateRequest' + example: + name: Payroll + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Portal' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + routing_number: '123456789' + account_number: '987654321' + status: OPEN + name: Payroll + object_type: Portal + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/portals/{portal_id}/: + get: + tags: + - Portals + summary: Get Account Portal + description: Get a specific portal associated with an account. + operationId: get-account-portal + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Portal Id + name: portal_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Portal' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + routing_number: '123456789' + account_number: '987654321' + status: OPEN + name: Payroll + object_type: Portal + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + patch: + tags: + - Portals + summary: Update Portal + description: Update a portal's name. + operationId: >- + update_portal_api_v1_jiko_accounts__account_id__portals__portal_id___patch + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Portal Id + name: portal_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PortalUpdateRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Portal' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + routing_number: '123456789' + account_number: '987654321' + status: OPEN + name: Payroll + object_type: Portal + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/portals/{portal_id}/close/: + post: + tags: + - Portals + summary: Close Portal + description: Close a portal. This is an irreversible action. + operationId: >- + close_portal_api_v1_jiko_accounts__account_id__portals__portal_id__close__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Portal Id + name: portal_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '404': + description: Not found + '412': + description: Portal is already closed. + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/applications/{application_id}/documents/{document_type}/file/: + post: + tags: + - Individuals + summary: Upload Document To Application + description: >- + Upload documents to the application for more detailed KYC or manual + review. + + + As with all other endpoints, the bearer token and `x-jiko-idempotency` + is needed, but `x-jiko-signature` is not needed. + + The file should be posted unprocessed in the request body, in the same + manner as `curl -X POST --data-binary @my_file.png` does. + + The maximum file size for `ID_FRONT`, `ID_BACK`, `SELFIE` and `PASSPORT` + is 5 MB. Other files can be up to 50 MB. + + + + Documents can be uploaded before and after calling + [Apply](https://docs.jiko.io/reference). + operationId: >- + Upload_document_to_Application_api_v1_applications__application_id__documents__document_type__file__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + $ref: '#/components/schemas/DocumentType' + name: document_type + in: path + - required: true + schema: + type: string + pattern: image/png + title: Content-Type + name: content-type + in: header + - required: true + schema: + type: integer + exclusiveMaximum: 52428800 + exclusiveMinimum: 0 + title: Content-Length + name: content-length + in: header + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/UploadDocumentResponse' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/documents/{document_type}/file/: + post: + tags: + - Customers + summary: Upload Document To Customer + description: >- + Upload files for an approved customer. Used to verify customer requests + (e.g. Customer change request, close account request, ACH request). + Refer to the [Upload Document To + Application](https://docs.jiko.io/reference) for more detailed info. + operationId: upload-customer-document + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + $ref: '#/components/schemas/DocumentType' + name: document_type + in: path + - required: true + schema: + type: string + pattern: image/png + title: Content-Type + name: content-type + in: header + - required: true + schema: + type: integer + exclusiveMaximum: 52428800 + exclusiveMinimum: 0 + title: Content-Length + name: content-length + in: header + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/UploadDocumentResponse' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/{application_id}/documents/: + get: + tags: + - Businesses + summary: List Document Requests + description: >- + Fetch the list of outstanding Document Requests. Document Requests vary + depending on the information provided in the Business Application and + Related Party Application objects. + + +
+ + + See the [Onboarding Businesses + Guide](https://docs.jiko.io/guides/onboarding-businesses) for more. + operationId: list-document-requests-businesses + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + items: + $ref: '#/components/schemas/Document' + type: array + title: Response List-Document-Requests-Businesses + example: + - id: 61c23eb1-002a-4459-aa9a-624428281e14 + type: OPERATING_AGREEMENT + status: PENDING_UPLOAD + exception_reason: '' + name: '' + - id: 96e70040-eb4e-48d1-98af-0c793a6ee137 + type: ARTICLES_OF_INCORPORATION + status: INVALID + exception_reason: IMAGE_QUALITY_ERROR_CUTOFF + name: articles_of_incorporation.png + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/documents/{document_id}/: + post: + tags: + - Businesses + summary: Upload Document + operationId: upload-business-application-document + parameters: + - required: true + schema: + type: string + format: uuid + title: Document Id + name: document_id + in: path + - required: true + schema: + type: string + pattern: image/png + title: Content-Type + name: content-type + in: header + - required: true + schema: + type: integer + exclusiveMaximum: 52428800 + exclusiveMinimum: 0 + title: Content-Length + name: content-length + in: header + - required: true + schema: + type: string + title: Content-Disposition + name: content-disposition + in: header + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Document' + example: + id: 96e70040-eb4e-48d1-98af-0c793a6ee137 + type: ARTICLES_OF_INCORPORATION + status: APPROVED + exception_reason: '' + name: articles_of_incorporation.png + '404': + description: Not found + '412': + description: Document has already been reviewed and approved. + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/login/: + post: + tags: + - Security + summary: Login + description: >- + Provide the username and password in a request body to receive a bearer + token to authenticate to the API's other endpoints. + + +
+ + + See [Authentication](https://docs.jiko.io/reference). + operationId: login_api_v1_login__post + requestBody: + required: true + content: + application/json: + schema: + title: Login Info + examples: + username: username + password: password + allOf: + - $ref: '#/components/schemas/LoginInput' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/LoginResponse' + example: + token: LBHyVQggqNZvbYriaL8omZSFnQfS4yMFEO8hpVmgrtn= + expires: '2023-01-01T14:00:00+00:00' + '401': + description: Unauthorized + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/public-keys/: + get: + tags: + - Security + summary: List Public Keys + description: Returns all relevant asymmetric encryption keys. + operationId: list_public_keys_api_v1_public_keys__get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/EncryptionKeysResponse' + example: + set_pin: "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzmZv8spzSU9z+/bhFzX0\r\ns4xVXE9ZOApQUMoM3Q1VDiJujyWJ61uoTsWT1uQlIXHdUQ3NcXw0WYDUEaM8fj1b\r\nB2k1zSXmRD4VmxAIRNVfs3Cp3GKqC/WjyvDw25+SYBFwiaYJblpyZPiunXvXRyK8\r\nvdDaPliwTN5p7pjHQvcfXOl20ZtWnZTGMulJ+smNCYKWckW1hEOMjJP8FLMJpSHa\r\n6yGOpAYAxoHxodiJCI4X6fG206gBtyFps1CyxCz8WDjALqJYfeArTFv7/2AyuVCF\r\n5zLE7tzPrJeVxfqa+CI+7mWFhEKZLAd/PEzEL7P2VZr9BRd0lyxBipEEG/DGMEvY\r\n1dcx+3J56ZxVURAqeXPGkqVfz/IdisQt/okp6vSVKQdImeyzpJvwvBc7T7tKyRZR\r\nvtL8XLYzZBujqWCezMxU97TAb7BlQ2nPJCQFMZD7y1KldgWuGnjXha1TFIYvfrYW\r\noDFK221Z6LYlKWeRFGXhoNOX1Qm/CX3wi9Tfo01LTxbCY2Y1mbv6e8Xt12MzhicD\r\nZsFvVrtRaVrjmqXXDq8X2r7puPTLOQf7Dow3944XnTZQURE4oPIwCfTBmfMow+TB\r\n+ZUYWRXwg0/hl9AOBSGLVNlaGZD8sAu98knish5LJv34lx5mIiLLpGpIt+mzZikU\r\nFt9siIkltvk49qcmTuI8GJUCAwEAAQ==\r\n-----END PUBLIC KEY-----" + /health: + get: + tags: + - Health + summary: Get Health Check + description: >- + A health check endpoint, which returns "OK" if the Partner API is up and + running. + operationId: get-health-check + responses: + '200': + description: Successful Response + content: + application/json: + schema: + type: string + enum: + - OK + title: Response Get-Health-Check + /api/v1/sandbox/card-swipe/: + post: + tags: + - Sandbox + summary: Submit Card Swipe + description: >- + Simulate a card swipe with the given `card_id` for a given `amount_usdc` + in USD cents. **Note**: Only for virtual cards at the moment. + operationId: submit_card_swipe_api_v1_sandbox_card_swipe__post + parameters: + - required: false + schema: + type: string + title: X-Branch-Name + name: x-branch-name + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CardSwipe' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + amount_usdc: 100000 + required: true + responses: + '202': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/sandbox/generate-card/: + post: + tags: + - Sandbox + summary: Generate Physical Card From Order + description: Generate a physical card from a card order with a given `card_order_id`. + operationId: generate_physical_card_from_order_api_v1_sandbox_generate_card__post + parameters: + - required: false + schema: + type: string + title: X-Branch-Name + name: x-branch-name + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GeneratePhysicalCardFromOrder' + required: true + responses: + '202': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/sandbox/webhook/: + post: + tags: + - Sandbox + summary: Trigger Webhook + description: >- + Simulates a webhook event according to the payload. This will trigger + requests to subscribed callback URLs, if any. + operationId: trigger-webhook + parameters: + - required: false + schema: + type: string + title: X-Branch-Name + name: x-branch-name + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EventDetails' + required: true + responses: + '202': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/sandbox/fund/: + post: + tags: + - Sandbox + summary: Fund Account + description: >- + Simulates an ACH credit to the provided Jiko account. Requires a portal + to use. A portal can be created using the [Create + Portal](https://docs.jiko.io/reference) endpoint. + operationId: fund_account_api_v1_sandbox_fund__post + parameters: + - required: false + schema: + type: string + title: X-Branch-Name + name: x-branch-name + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FundPortalRequest' + required: true + responses: + '202': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + components: + schemas: + ACHCounterparty: + properties: + time_created: + type: string + format: date-time + title: Time Created + verification_type: + $ref: '#/components/schemas/ACHCounterpartyVerificationType' + status: + $ref: '#/components/schemas/ACHCounterpartyVerificationStatus' + account_number: + type: string + title: Account Number + routing_number: + type: string + title: Routing Number + name_on_account: + type: string + title: Name On Account + account_type: + $ref: '#/components/schemas/ACHCounterpartyAccountType' + institution_name: + type: string + title: Institution Name + plaid: + $ref: '#/components/schemas/CounterpartyPlaid' + micro_deposits: + $ref: '#/components/schemas/CounterpartyMicroDeposits' + type: object + required: + - time_created + - verification_type + - status + - account_number + - routing_number + - name_on_account + - account_type + - institution_name + title: ACHCounterparty + ACHCounterpartyAccountType: + type: string + enum: + - SAVINGS + - CHECKING + title: ACHCounterpartyAccountType + description: An enumeration. + ACHCounterpartyVerificationStatus: + type: string + enum: + - IN_PROGRESS + - FAILED + - VERIFIED + title: ACHCounterpartyVerificationStatus + description: An enumeration. + ACHCounterpartyVerificationType: + type: string + enum: + - MICRO_DEPOSITS + - PLAID + - PRE_VERIFIED + - INCOMING_WIRE + - SUPPORTING_DOCUMENTS + title: ACHCounterpartyVerificationType + description: An enumeration. + ACHDirection: + type: string + enum: + - DEBIT + - CREDIT + title: ACHDirection + description: An enumeration. + ACHIncomingEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/ACHIncomingPayload' + event_type: + type: string + enum: + - transfers.ach.in.success + - transfers.ach.in.rejected + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: ACHIncomingEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + ACHIncomingPayload: + properties: + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + type: object + required: + - jiko_account_id + title: ACHIncomingPayload + ACHOutgoingEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/ACHOutgoingPayload' + event_type: + type: string + enum: + - transfers.ach.out.success + - transfers.ach.out.rejected + - transfers.ach.out.sent + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: ACHOutgoingEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + ACHOutgoingPayload: + properties: + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + type: object + required: + - jiko_account_id + title: ACHOutgoingPayload + ACHRequest: + properties: + counterparty_id: + type: string + format: uuid + title: Counterparty Id + direction: + $ref: '#/components/schemas/ACHDirection' + sec_code: + allOf: + - $ref: '#/components/schemas/ACHSECCodeInput' + default: WEB + payment_related_information: + items: + type: string + type: array + title: Payment Related Information + default: [] + amount_usdc: + type: integer + title: Amount Usdc + company_entry_description: + type: string + pattern: ^[ a-zA-Z0-9]{1,10}$ + title: Company Entry Description + description: >- + Short description of the purpose of the entry (Maximum of 10 + characters). Required for sec_code `"CCD"` and `"PPD"`. For sec_code + `"WEB"` the default value for DEBIT is "Funding TX" and "Release TX" + for CREDIT. + type: object + required: + - counterparty_id + - direction + - amount_usdc + title: ACHRequest + ACHResponse: + properties: + counterparty_id: + type: string + format: uuid + title: Counterparty Id + direction: + $ref: '#/components/schemas/ACHDirection' + sec_code: + $ref: '#/components/schemas/ACHSECCode' + payment_related_information: + items: + type: string + type: array + title: Payment Related Information + id: + type: string + format: uuid + title: Id + amount: + $ref: '#/components/schemas/Amount' + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + status: + $ref: '#/components/schemas/ACHStatus' + time_created: + type: string + format: date-time + title: Time Created + company_entry_description: + type: string + title: Company Entry Description + type: object + required: + - counterparty_id + - direction + - sec_code + - payment_related_information + - id + - amount + - jiko_account_id + - status + - time_created + - company_entry_description + title: ACHResponse + ACHSECCode: + type: string + enum: + - CCD + - PPD + - WEB + title: ACHSECCode + description: An enumeration. + ACHSECCodeInput: + type: string + enum: + - CCD + - WEB + title: ACHSECCodeInput + description: An enumeration. + ACHStatus: + type: string + enum: + - PENDING + - FAILED + - REJECTED + - PROCESSED + - APPROVED + - IN_TRANSIT + - CANCELLED + title: ACHStatus + description: An enumeration. + ACHTransactionDetails: + properties: + company_name: + type: string + title: Company Name + company_entry_description: + type: string + title: Company Entry Description + individual_identification_number: + type: string + title: Individual Identification Number + trace_number: + type: string + title: Trace Number + type: object + required: + - company_name + title: ACHTransactionDetails + Account: + properties: + id: + type: string + format: uuid + title: Id + name: + type: string + title: Name + description: The account name + total_value: + allOf: + - $ref: '#/components/schemas/Amount' + title: Total Value + description: Current total value of account + status: + allOf: + - $ref: '#/components/schemas/AccountStatus' + description: Account status + portfolio: + allOf: + - $ref: '#/components/schemas/Portfolio' + title: Portfolio + description: Total liquid cash and holdings + type: object + required: + - id + - name + - total_value + - status + - portfolio + title: Account + AccountStatus: + type: string + enum: + - OPEN + - CLOSED + - FROZEN + title: AccountStatus + description: An enumeration. + AccountUsage: + type: string + enum: + - MONEY_STORAGE + title: AccountUsage + description: An enumeration. + Address: + properties: + street_address: + type: string + maxLength: 250 + title: Street Address + description: Street address + street_address2: + type: string + maxLength: 250 + title: Street Address2 + description: Apartment, Suite, Box number, etc. + city: + type: string + maxLength: 250 + title: City + description: City / Town + postal_code: + type: string + maxLength: 50 + title: Postal Code + description: Postal code / ZIP code + state: + $ref: '#/components/schemas/State' + country: + type: string + title: Country + type: object + required: + - street_address + - city + - postal_code + - country + title: Address + Agreement: + properties: + version: + type: string + title: Version + release_date: + type: string + format: date + title: Release Date + documents: + items: + $ref: '#/components/schemas/AgreementDocument' + type: array + title: Documents + type: object + required: + - version + - release_date + - documents + title: Agreement + AgreementCategory: + type: string + enum: + - BANK + - BROKERAGE + - GENERAL + - E-SIGN + title: AgreementCategory + description: An enumeration. + AgreementConsent: + properties: + version: + type: string + title: Version + description: Agreement version + timestamp: + type: string + format: date-time + title: Timestamp + description: Timestamp of applicant's acknowledgement of the agreements + type: object + required: + - version + - timestamp + title: AgreementConsent + AgreementDocument: + properties: + pdf_download_url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Pdf Download Url + title: + type: string + title: Title + type: + $ref: '#/components/schemas/AgreementType' + category: + $ref: '#/components/schemas/AgreementCategory' + type: object + required: + - pdf_download_url + - title + - type + - category + title: AgreementDocument + AgreementType: + type: string + enum: + - PRIVACY_POLICY + - PRIVACY_NOTICE + - BUSINESS_CONTINUITY_PLAN + - FINANCIAL_STATEMENT + - US_TREASURIES_RISK + - ELECTRONIC_COMMUNICATIONS + - TAX_CERTIFICATION_FOR_US_PERSON + - BANK_ACCOUNT + - LIMITATIONS + - BROKERAGE + - CARD + - CASHBACK + - FORM_CRS + - AUTHORIZED_REPRESENTATIVE_CERTIFICATION + - TERMS_OF_USE + - ELECTRONIC_FUND_TRANSFERS + - TRUTH_IN_SAVINGS + - FEE_NOTICE + - FUNDS_AVAILABILITY + - REGULATION_E + title: AgreementType + description: An enumeration. + Amount: + properties: + value: + type: integer + title: Value + description: USD values are always in cents. + currency: + type: string + title: Currency + formatted: + type: string + title: Formatted + default: '' + type: object + required: + - value + - currency + title: Amount + AnnualPersonalIncome: + type: string + enum: + - BELOW_50K + - BETWEEN_50K_AND_100K + - BETWEEN_100K_AND_250K + - OVER_250K + title: AnnualPersonalIncome + description: An enumeration. + AnnualRevenue: + type: string + enum: + - PRE_REVENUE + - 5M_OR_LESS + - BETWEEN_5M_100M + - 100M_OR_MORE + title: AnnualRevenue + description: An enumeration. + ApplicationIdentificationType: + type: string + enum: + - SSN + - PASSPORT + - TIN + - DRIVERS_LICENSE + title: ApplicationIdentificationType + description: An enumeration. + ApplicationStatus: + type: string + enum: + - CREATED + - PENDING + - SUBMITTED + - DOCUMENTS_NEEDED + - APPROVED + - REJECTED + - MANUAL_REVIEW + title: ApplicationStatus + description: An enumeration. + ApplicationUpdateEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/ApplicationUpdatePayload' + event_type: + type: string + enum: + - application.approved + - application.manual_review + - application.documents_needed + - application.rejected + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: ApplicationUpdateEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + ApplicationUpdatePayload: + properties: + application_id: + type: string + format: uuid + title: Application Id + type: object + required: + - application_id + title: ApplicationUpdatePayload + AveragePersonalNetWorth: + type: string + enum: + - BELOW_50K + - BETWEEN_50K_AND_200K + - BETWEEN_200K_AND_1M + - BETWEEN_1M_AND_5M + - OVER_5M + title: AveragePersonalNetWorth + description: An enumeration. + Business: + properties: + address: + $ref: '#/components/schemas/GeneralAddress' + email: + type: string + title: Email + phone_number: + type: string + title: Phone Number + account_status: + $ref: '#/components/schemas/CustomerAccountStatus' + type: + type: string + enum: + - BUSINESS + title: Type + name: + type: string + title: Name + identification_number: + $ref: '#/components/schemas/BusinessIdentificationNumber' + type: object + required: + - address + - email + - phone_number + - account_status + - type + - name + - identification_number + title: Business + BusinessActivityLocation: + type: string + enum: + - PRIMARILY_US + - MIX_OF_US_AND_NON_US + - PRIMARILY_NON_US + title: BusinessActivityLocation + description: An enumeration. + BusinessApplicationRequest: + properties: + name: + type: string + title: Name + entity_type: + $ref: '#/components/schemas/BusinessEntityType' + doing_business_as: + type: string + title: Doing Business As + identification_number: + $ref: '#/components/schemas/BusinessIdentificationNumber' + address: + $ref: '#/components/schemas/Address' + website: + type: string + title: Website + contact: + $ref: '#/components/schemas/BusinessContact' + formation_date: + type: string + title: Formation Date + risk_info: + $ref: '#/components/schemas/RiskInfo' + industry: + $ref: '#/components/schemas/IndustryInfo' + agreement_consent: + $ref: '#/components/schemas/AgreementConsent' + type: object + title: BusinessApplicationRequest + BusinessApplicationResponse: + properties: + name: + type: string + title: Name + entity_type: + $ref: '#/components/schemas/BusinessEntityType' + doing_business_as: + type: string + title: Doing Business As + identification_number: + $ref: '#/components/schemas/BusinessIdentificationNumber' + address: + $ref: '#/components/schemas/Address' + website: + type: string + title: Website + contact: + $ref: '#/components/schemas/BusinessContact' + formation_date: + type: string + title: Formation Date + risk_info: + $ref: '#/components/schemas/RiskInfo' + industry: + $ref: '#/components/schemas/IndustryInfo' + agreement_consent: + $ref: '#/components/schemas/AgreementConsent' + id: + type: string + format: uuid + title: Id + time_created: + type: string + format: date-time + title: Time Created + updated_at: + type: string + format: date-time + title: Updated At + status: + $ref: '#/components/schemas/BusinessApplicationStatus' + exception_reasons: + items: + type: string + type: array + title: Exception Reasons + default: [] + customer_id: + type: string + format: uuid + title: Customer Id + description: '`null` until application status is `APPROVED`' + type: object + required: + - id + - time_created + - updated_at + - status + title: BusinessApplicationResponse + BusinessApplicationStatus: + type: string + enum: + - CREATED + - SUBMITTED + - CLOSED + - APPROVED + - REJECTED + - MANUAL_REVIEW + - DOCUMENTS_NEEDED + - PENDING + title: BusinessApplicationStatus + description: An enumeration. + BusinessContact: + properties: + name: + $ref: '#/components/schemas/Name' + phone_number: + type: string + title: Phone Number + email: + type: string + format: email + title: Email + type: object + title: BusinessContact + BusinessEntityType: + type: string + enum: + - SOLE_PROPRIETOR + - CORPORATE + - LLC + - PARTNERSHIP + - INCORPORATED_ASSOCIATION + - UNINCORPORATED_ASSOCIATION + title: BusinessEntityType + description: An enumeration. + BusinessIdentificationNumber: + properties: + identification_number: + type: string + title: Identification Number + type: + $ref: '#/components/schemas/BusinessIdentificationNumberType' + type: object + required: + - identification_number + - type + title: BusinessIdentificationNumber + BusinessIdentificationNumberType: + type: string + enum: + - TIN + - EIN + - NON_US_BUSINESS_ID + title: BusinessIdentificationNumberType + description: An enumeration. + Card: + properties: + card_id: + type: string + format: uuid + title: Card Id + name: + type: string + title: Name + status: + $ref: '#/components/schemas/CardStatus' + type: + $ref: '#/components/schemas/CardType' + type: object + required: + - card_id + - name + - status + - type + title: Card + CardClosureReason: + type: string + enum: + - LOST + - STOLEN + - DAMAGED + - NEVER_RECEIVED + - EXPIRED + - CANCELED + title: CardClosureReason + description: An enumeration. + CardListResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Card' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: CardListResponse + description: Base class for cursor_list responses from the Partner API + CardPinBase: + properties: + encrypted_pin: + type: string + format: password + title: Encrypted PIN + description: 4 digit PIN encrypted by `set_pin` public key + writeOnly: true + type: object + required: + - encrypted_pin + title: CardPinBase + CardPinResponse: + properties: + success: + type: boolean + title: Success + type: object + required: + - success + title: CardPinResponse + CardStatus: + type: string + enum: + - OPEN + - LOCKED + - CLOSED + - NOT_ACTIVATED + - FROZEN + title: CardStatus + description: An enumeration. + CardStatusResponse: + properties: + card_id: + type: string + format: uuid + title: Card Id + status: + $ref: '#/components/schemas/CardStatus' + type: object + required: + - card_id + - status + title: CardStatusResponse + CardStatusUpdateEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/CardStatusUpdatePayload' + event_type: + type: string + enum: + - card.status.closed + - card.status.open + - card.status.frozen + - card.status.locked + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: CardStatusUpdateEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + example: + event_id: 1a7749fd-a39f-4746-add2-861f270103d5 + timestamp: '2023-01-01T12:00:00+00:00' + event_type: card.status.closed + payload: + card_id: f1246d4a-97b9-461e-8afa-2e8dedfbaece + status: CLOSED + CardStatusUpdatePayload: + properties: + card_id: + type: string + format: uuid + title: Card Id + status: + $ref: '#/components/schemas/CardStatus' + type: object + required: + - card_id + - status + title: CardStatusUpdatePayload + CardSwipe: + properties: + card_id: + type: string + format: uuid + title: Card Id + amount_usdc: + type: integer + exclusiveMinimum: 0 + title: Amount Usdc + type: object + required: + - card_id + - amount_usdc + title: CardSwipe + CardTransactionDetails: + properties: + location: + $ref: '#/components/schemas/TransactionLocation' + counterparty: + type: string + title: Counterparty + terminal_id: + type: string + title: Terminal Id + merchant_type: + type: string + title: Merchant Type + pre_authorization: + type: boolean + title: Pre Authorization + issue_id: + type: string + title: Issue Id + type: object + required: + - pre_authorization + title: CardTransactionDetails + CardTransactionEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/CardTransactionPayload' + event_type: + type: string + enum: + - card.transaction.approved + - card.transaction.on_hold + - card.transaction.reversed + - card.transaction.rejected + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: CardTransactionEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + CardTransactionPayload: + properties: + card_id: + type: string + format: uuid + title: Card Id + amount: + type: integer + title: Amount + account_id: + type: string + format: uuid + title: Account Id + type: object + required: + - card_id + - amount + - account_id + title: CardTransactionPayload + CardType: + type: string + enum: + - VIRTUAL + - PHYSICAL + title: CardType + description: An enumeration. + CashBackTransactionDetails: + properties: + period: + type: string + title: Period + description: Which period the cash back was calculated for, in YYYY-MM format. + card_id: + type: string + format: uuid + title: Card Id + type: object + required: + - period + - card_id + title: CashBackTransactionDetails + ChangeCardStatusRequest: + properties: + status: + $ref: '#/components/schemas/SettableCardStatus' + type: object + title: ChangeCardStatusRequest + CloseCardRequest: + properties: + closure_reason: + $ref: '#/components/schemas/CardClosureReason' + lost_stolen_date: + type: string + format: date + title: Lost Stolen Date + type: object + required: + - closure_reason + title: CloseCardRequest + Counterparty: + properties: + id: + type: string + format: uuid + title: Id + type: + $ref: '#/components/schemas/CounterpartyType' + ach: + $ref: '#/components/schemas/ACHCounterparty' + wire: + $ref: '#/components/schemas/WireCounterparty' + type: object + required: + - id + - type + title: Counterparty + CounterpartyMicroDeposits: + properties: + verification_failure_count: + type: integer + title: Verification Failure Count + type: object + required: + - verification_failure_count + title: CounterpartyMicroDeposits + CounterpartyPlaid: + properties: + mask: + type: string + title: Mask + verification_status: + $ref: '#/components/schemas/PlaidVerificationStatus' + type: object + required: + - mask + title: CounterpartyPlaid + CounterpartyType: + type: string + enum: + - ACH + - WIRE + title: CounterpartyType + description: An enumeration. + Country: + type: string + enum: + - USA + - US + title: Country + description: An enumeration. + CreateSubscriptionRequest: + properties: + description: + type: string + title: Description + description: A description of the webhook's intended use. + default: '' + events: + items: + type: string + type: array + minItems: 1 + title: Events + description: Which types of events this webhook should be invoked for. + url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Url + description: The webhook URL to invoke. + shared_secret: + type: string + minLength: 16 + title: Shared Secret + description: >- + The shared secret used by the Partner API to sign requests made to + the webhook. The shared secret needs to be minimum 16 characters + long. + type: object + required: + - events + - url + - shared_secret + title: CreateSubscriptionRequest + CursorListResponse_ACHResponse_: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/ACHResponse' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: CursorListResponse[ACHResponse] + description: Base class for cursor_list responses from the Partner API + CursorListResponse_PartnerEvent_: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/PartnerEvent' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: CursorListResponse[PartnerEvent] + description: Base class for cursor_list responses from the Partner API + CursorListResponse_Subscription_: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Subscription' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: CursorListResponse[Subscription] + description: Base class for cursor_list responses from the Partner API + Customer: + oneOf: + - $ref: '#/components/schemas/Individual' + - $ref: '#/components/schemas/Business' + title: Customer + discriminator: + propertyName: type + mapping: + INDIVIDUAL: '#/components/schemas/Individual' + BUSINESS: '#/components/schemas/Business' + CustomerAccountStatus: + type: string + enum: + - OPEN + - CLOSED + - FROZEN + - PENDING + title: CustomerAccountStatus + description: An enumeration. + CustomerDefundingTransferRequest: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - PARTNER_CUSTOMER_DEFUNDING + title: Type + description: Withdraw funds from customer to partner. + target: + type: string + maxLength: 200 + title: Target + description: >- + The funds destination belonging to the customer at the Partner + institution. + amount_usdc: + type: integer + exclusiveMinimum: 0 + title: Amount USDC + description: The amount, in USD cents. **Deprecated**, use `amount` instead. + deprecated: true + amount: + oneOf: + - $ref: '#/components/schemas/RequestedAmount' + - $ref: '#/components/schemas/FullWithdrawal' + title: Amount + discriminator: + propertyName: type + mapping: + REQUESTED_AMOUNT: '#/components/schemas/RequestedAmount' + FULL_WITHDRAWAL: '#/components/schemas/FullWithdrawal' + type: object + required: + - from_account + - to_account + - type + - target + title: Partner-Customer Defunding + description: >- + A transfer of customer funds from a customer account at Jiko to a + partner-owned facilitation account. + example: + transfer_id: d64e7b7e-7fd2-44a4-8bfd-68a31252afaa + description: Withdrawing funds from customer to partner + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_DEFUNDING + target: '123456789' + amount: + type: FULL_WITHDRAWAL + CustomerDefundingTransferResponse: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - PARTNER_CUSTOMER_DEFUNDING + title: Type + target: + type: string + maxLength: 200 + title: Target + description: >- + The funds destination belonging to the customer at the Partner + institution. + amount: + $ref: '#/components/schemas/Amount' + type: object + required: + - from_account + - to_account + - type + - target + - amount + title: Partner-Customer Defunding + description: >- + A transfer of customer funds from a customer account at Jiko to a + partner-owned facilitation account. + example: + transfer_id: d64e7b7e-7fd2-44a4-8bfd-68a31252afaa + description: Withdrawing funds from customer to partner + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_DEFUNDING + target: '123456789' + amount: + type: FULL_WITHDRAWAL + CustomerFundingTransferRequest: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - PARTNER_CUSTOMER_FUNDING + title: Type + description: Disburse funds from partner to customer. + source: + type: string + maxLength: 200 + title: Source + description: The source of customer funds at the Partner institution. + amount_usdc: + type: integer + exclusiveMinimum: 0 + title: Amount USDC + description: The amount, in USD cents. **Deprecated**, use `amount` instead. + deprecated: true + amount: + $ref: '#/components/schemas/RequestedAmount' + type: object + required: + - from_account + - to_account + - type + - source + title: Partner-Customer Funding + description: >- + A transfer of customer funds to a customer account at Jiko from a + partner-owned facilitation account. + example: + transfer_id: d4a2d8dd-7def-4545-a062-761683b9aa05 + description: Disbursing funds from partner to customer + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_FUNDING + source: '123456789' + amount: + amount_usdc: 100000 + type: REQUESTED_AMOUNT + CustomerFundingTransferResponse: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - PARTNER_CUSTOMER_FUNDING + title: Type + source: + type: string + maxLength: 200 + title: Source + description: The source of customer funds at the Partner institution. + amount: + $ref: '#/components/schemas/Amount' + type: object + required: + - from_account + - to_account + - type + - source + - amount + title: Partner-Customer Funding + description: >- + A transfer of customer funds to a customer account at Jiko from a + partner-owned facilitation account. + example: + transfer_id: d4a2d8dd-7def-4545-a062-761683b9aa05 + description: Disbursing funds from partner to customer + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_FUNDING + source: '123456789' + amount: + amount_usdc: 100000 + type: REQUESTED_AMOUNT + DateOfBirth: + properties: + date_of_birth: + type: string + format: date + title: Date Of Birth + type: object + required: + - date_of_birth + title: DateOfBirth + Decimal: + type: string + title: Decimal + DeliveryAttemptDetails: + properties: + delivery_attempt_id: + type: string + format: uuid + title: Delivery Attempt Id + subscription_id: + type: string + format: uuid + title: Subscription Id + success: + type: boolean + title: Success + response_code: + type: integer + title: Response Code + response_message: + type: string + title: Response Message + called_at: + type: string + format: date-time + title: Called At + type: object + required: + - delivery_attempt_id + - subscription_id + - success + - response_code + - called_at + title: DeliveryAttemptDetails + Document: + properties: + id: + type: string + title: Id + type: + $ref: '#/components/schemas/DocumentType' + status: + $ref: '#/components/schemas/DocumentStatus' + exception_reason: + type: string + title: Exception Reason + name: + type: string + title: Name + type: object + required: + - id + - type + - status + title: Document + DocumentStatus: + type: string + enum: + - PENDING_UPLOAD + - PENDING_REVIEW + - APPROVED + - INVALID + title: DocumentStatus + description: An enumeration. + DocumentType: + type: string + enum: + - ID_FRONT + - ID_BACK + - SELFIE + - IDENTIFICATION_NUMBER_VERIFICATION + - ADDRESS_VERIFICATION + - PASSPORT + - EIN_CONFIRMATION + - OPERATING_AGREEMENT + - PARTNERSHIP_AGREEMENT + - ARTICLES_OF_INCORPORATION + - BYLAWS + - PROOF_OF_501_STATUS + - ARTICLES_OF_ASSOCIATION + - CORPORATE_CHARTER + - TRUST_FORMATION_RECORDS + - LIST_OF_TRUSTEES + - LEGAL_ANALYSIS_OF_BUSINESS_MODEL + - COINS_AND_TOKENS_LISTED_AND_OFFERED + - COIN_RATING_POLICY_AND_PROCEDURES + - TYPE_OF_BLOCKCHAIN_ANALYTICS_USED + - MARKET_MANIPULATION_POLICY + - BSA_AML_OFAC_POLICIES + - INDEPENDENT_AML_AUDIT_REPORT + - BSA_AML_OFAC_INTERNAL_RISK_ASSESSMENT + - ARTICLES_OF_ORGANIZATION + - FLOW_OF_FUNDS + - BANK_STATEMENTS_1 + - BANK_STATEMENTS_2 + - BANK_STATEMENTS_3 + - WIRE_COUNTERPARTY_VERIFICATION + - OTHER + title: DocumentType + description: An enumeration. + EmployedInvestmentProfile: + properties: + income: + allOf: + - $ref: '#/components/schemas/AnnualPersonalIncome' + description: Applicant's estimated annual income in USD. + net_worth: + allOf: + - $ref: '#/components/schemas/AveragePersonalNetWorth' + description: Applicant's estimated average personal net worth in USD. + bd_association: + type: string + maxLength: 200 + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + director_policy_maker_of_company: + type: string + maxLength: 200 + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + occupation: + type: string + maxLength: 200 + minLength: 2 + title: Occupation + description: Applicant's occupation + employment_status: + type: string + enum: + - EMPLOYED + title: Employment Status + type: object + required: + - income + - net_worth + - occupation + - employment_status + title: EmployedInvestmentProfile + EncryptionKeysResponse: + properties: + set_pin: + type: string + title: Set Pin + default: '' + env_names: + - public_key__set_pin + additionalProperties: false + type: object + title: EncryptionKeysResponse + description: |- + Encryption keys are currently stored as environment variables. + + Variables are declared in + `services/partner-api/secret-(dev|staging|sandbox|partners).yaml` + EventDetails: + oneOf: + - $ref: '#/components/schemas/ApplicationUpdateEvent' + - $ref: '#/components/schemas/CardStatusUpdateEvent' + - $ref: '#/components/schemas/ACHIncomingEvent' + - $ref: '#/components/schemas/ACHOutgoingEvent' + - $ref: '#/components/schemas/CardTransactionEvent' + - $ref: '#/components/schemas/OutgoingWireEvent' + - $ref: '#/components/schemas/OnUsTransferEvent' + title: EventDetails + discriminator: + propertyName: event_type + mapping: + application.approved: '#/components/schemas/ApplicationUpdateEvent' + application.manual_review: '#/components/schemas/ApplicationUpdateEvent' + application.documents_needed: '#/components/schemas/ApplicationUpdateEvent' + application.rejected: '#/components/schemas/ApplicationUpdateEvent' + card.status.closed: '#/components/schemas/CardStatusUpdateEvent' + card.status.open: '#/components/schemas/CardStatusUpdateEvent' + card.status.frozen: '#/components/schemas/CardStatusUpdateEvent' + card.status.locked: '#/components/schemas/CardStatusUpdateEvent' + transfers.ach.in.success: '#/components/schemas/ACHIncomingEvent' + transfers.ach.in.rejected: '#/components/schemas/ACHIncomingEvent' + transfers.ach.out.success: '#/components/schemas/ACHOutgoingEvent' + transfers.ach.out.rejected: '#/components/schemas/ACHOutgoingEvent' + transfers.ach.out.sent: '#/components/schemas/ACHOutgoingEvent' + card.transaction.approved: '#/components/schemas/CardTransactionEvent' + card.transaction.on_hold: '#/components/schemas/CardTransactionEvent' + card.transaction.reversed: '#/components/schemas/CardTransactionEvent' + card.transaction.rejected: '#/components/schemas/CardTransactionEvent' + transfers.wire.out.success: '#/components/schemas/OutgoingWireEvent' + transfers.wire.out.processing: '#/components/schemas/OutgoingWireEvent' + transfers.wire.out.rejected: '#/components/schemas/OutgoingWireEvent' + transfers.on-us.success: '#/components/schemas/OnUsTransferEvent' + transfers.on-us.processing: '#/components/schemas/OnUsTransferEvent' + transfers.on-us.rejected: '#/components/schemas/OnUsTransferEvent' + EventListResponse: + properties: + offset: + type: integer + title: Offset + count: + type: integer + title: Count + items: + items: + $ref: '#/components/schemas/EventType' + type: array + title: Items + description: List of available events to subscribe to + object_type: + type: string + title: Object Type + default: List + type: object + required: + - offset + - count + - items + title: EventListResponse + description: >- + Generic models are only supported in pydantic for python 3.7+, so until + then + + items will be of type Any. As such, this class needs to be subclassed + + and its item field overridden in it using the proper type. + EventType: + properties: + event: + type: string + title: Event + type: object + required: + - event + title: EventType + Fee: + properties: + type: + type: string + enum: + - AUM_FEE + title: Type + amount: + $ref: '#/components/schemas/Amount' + type: object + required: + - type + - amount + title: Fee + FirstMonthDepositAmount: + type: string + enum: + - 1M_OR_LESS + - BETWEEN_1M_AND_5M + - BETWEEN_5M_AND_20M + - BETWEEN_20M_AND_50M + - 50M_OR_MORE + title: FirstMonthDepositAmount + description: An enumeration. + FullWithdrawal: + properties: + type: + type: string + enum: + - FULL_WITHDRAWAL + title: Type + type: object + required: + - type + title: Full withdrawal + description: Fully liquidates all T-Bills from the source account. + FundPortalRequest: + properties: + account_id: + type: string + format: uuid + title: Account Id + amount_usdc: + type: integer + exclusiveMaximum: 5000000 + exclusiveMinimum: 0 + title: Amount Usdc + company_name: + type: string + maxLength: 16 + title: Company Name + default: FakeCompany + count: + type: integer + exclusiveMaximum: 10 + exclusiveMinimum: 0 + title: Count + default: 1 + type: object + required: + - account_id + - amount_usdc + title: FundPortalRequest + GeneralAddress: + properties: + street_address: + type: string + maxLength: 250 + title: Street Address + description: Street address + street_address2: + type: string + maxLength: 250 + title: Street Address2 + description: Apartment, Suite, Box number, etc. + city: + type: string + maxLength: 250 + title: City + description: City / Town + postal_code: + type: string + maxLength: 50 + title: Postal Code + description: Postal code / ZIP code + state: + type: string + title: State + description: 'State (Postal Abbreviations. Example: "AL", "NJ", "OH")' + country: + type: string + title: Country + description: 'A ISO-3166 Alpha-2 country code (Abbreviated. Example: "US")' + type: object + required: + - street_address + - city + - postal_code + - country + title: GeneralAddress + GeneratePhysicalCardFromOrder: + properties: + card_order_id: + type: string + format: uuid + title: Card Order Id + type: object + required: + - card_order_id + title: GeneratePhysicalCardFromOrder + HTTPValidationError: + properties: + detail: + items: + $ref: '#/components/schemas/ValidationError' + type: array + title: Detail + type: object + title: HTTPValidationError + ISOAddress: + properties: + street_address: + type: string + maxLength: 250 + title: Street Address + description: Street address + street_address2: + type: string + maxLength: 250 + title: Street Address2 + description: Apartment, Suite, Box number, etc. + city: + type: string + maxLength: 250 + title: City + description: City / Town + postal_code: + type: string + maxLength: 50 + title: Postal Code + description: Postal code / ZIP code + state: + type: string + title: State + description: 'State (Postal Abbreviations. Example: "AL", "NJ", "OH")' + country: + type: string + title: Country + description: 'A ISO-3166 Alpha-2 country code (Abbreviated. Example: "US")' + type: object + required: + - street_address + - city + - postal_code + - country + title: ISOAddress + IndependentInvestmentProfile: + properties: + income: + allOf: + - $ref: '#/components/schemas/AnnualPersonalIncome' + description: Applicant's estimated annual income in USD. + net_worth: + allOf: + - $ref: '#/components/schemas/AveragePersonalNetWorth' + description: Applicant's estimated average personal net worth in USD. + bd_association: + type: string + maxLength: 200 + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + director_policy_maker_of_company: + type: string + maxLength: 200 + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + occupation: + type: string + maxLength: 200 + title: Occupation + description: Applicant's occupation + employment_status: + type: string + enum: + - INDEPENDENT + title: Employment Status + type: object + required: + - income + - net_worth + - employment_status + title: IndependentInvestmentProfile + Individual: + properties: + address: + $ref: '#/components/schemas/GeneralAddress' + email: + type: string + title: Email + phone_number: + type: string + title: Phone Number + account_status: + $ref: '#/components/schemas/CustomerAccountStatus' + type: + type: string + enum: + - INDIVIDUAL + title: Type + name: + $ref: '#/components/schemas/Name' + date_of_birth: + type: string + format: date + title: Date Of Birth + type: object + required: + - address + - email + - phone_number + - account_status + - type + - name + - date_of_birth + title: Individual + IndividualIdentificationNumber: + properties: + identification_number: + type: string + title: Identification Number + identification_type: + $ref: '#/components/schemas/IndividualIdentificationNumberType' + type: object + required: + - identification_number + - identification_type + title: IndividualIdentificationNumber + IndividualIdentificationNumberMasked: + properties: + identification_number: + type: string + title: Identification Number + identification_type: + $ref: '#/components/schemas/IndividualIdentificationNumberType' + type: object + required: + - identification_number + - identification_type + title: IndividualIdentificationNumberMasked + IndividualIdentificationNumberType: + type: string + enum: + - SSN + - PASSPORT + - NON_US_ID + title: IndividualIdentificationNumberType + description: An enumeration. + Industry: + type: string + enum: + - ACCOUNTING_AND_BOOKKEEPING + - ADVERTISING + - ART + - ATM_OPERATOR + - BEAUTY_AND_COSMETIC_SERVICES + - BIOTECH + - BUSINESS_MANAGEMENT + - CLEANING_SERVICES + - CONSTRUCTION + - CONSULTING + - CRYPTOCURRENCY + - DESIGN + - ECOMMERCE + - EDUCATION + - ENERGY + - ENTERTAINMENT + - FINANCIAL_SERVICES + - FITNESS + - FOOD + - GAMBLING + - HARDWARE + - HEALTHCARE + - HOSPITALITY + - INSURANCE + - INVESTMENTS + - LEGAL_SERVICES + - MARKETING + - MARKETPLACE + - NONPROFIT + - OTHER + - PARKING_GARAGE + - PROFESSIONAL_TECHNICAL_OR_MECHANICAL_SERVICES + - REAL_ESTATE + - RECRUITING + - RESEARCH + - RESTAURANT + - RETAIL_STORES + - SECURITY + - SHIPPING_WAREHOUSING + - SOFTWARE + - SPORTS_TEAM + - SUPPORT_SERVICES + - TECHNOLOGY + - TRANSPORTATION + - TRAVEL + - WHOLESALE + - VENDING_MACHINE_OPERATOR + - WASTE_MANAGEMENT + title: Industry + description: An enumeration. + IndustryInfo: + properties: + industry: + $ref: '#/components/schemas/Industry' + other_industry: + type: string + title: Other Industry + type: object + title: IndustryInfo + InternalReallocationTransferRequest: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - INTERNAL_REALLOCATION + title: Type + description: Move funds between accounts belonging to the same customer. + amount_usdc: + type: integer + exclusiveMinimum: 0 + title: Amount USDC + description: The amount, in USD cents. **Deprecated**, use `amount` instead. + deprecated: true + amount: + oneOf: + - $ref: '#/components/schemas/RequestedAmount' + - $ref: '#/components/schemas/FullWithdrawal' + title: Amount + discriminator: + propertyName: type + mapping: + REQUESTED_AMOUNT: '#/components/schemas/RequestedAmount' + FULL_WITHDRAWAL: '#/components/schemas/FullWithdrawal' + type: object + required: + - from_account + - to_account + - type + title: Internal Reallocation + example: + transfer_id: cbb6cfce-f207-45e7-a6b3-1055ab43db51 + 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 + type: INTERNAL_REALLOCATION + amount: + type: REQUESTED_AMOUNT + amount_usdc: 10000 + InternalReallocationTransferResponse: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - INTERNAL_REALLOCATION + title: Type + amount: + $ref: '#/components/schemas/Amount' + type: object + required: + - from_account + - to_account + - type + - amount + title: Internal Reallocation + example: + transfer_id: cbb6cfce-f207-45e7-a6b3-1055ab43db51 + 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 + type: INTERNAL_REALLOCATION + amount: + type: REQUESTED_AMOUNT + amount_usdc: 10000 + InternationalApplication: + properties: + id: + type: string + format: uuid + title: Id + time_created: + type: string + format: date-time + title: Time Created + updated_at: + type: string + format: date-time + title: Updated At + phone_number: + type: string + title: Phone Number + description: >- + Applicant's phone number. **Note**: It will be required to include + country codes in accordance to the E.164 spec in a future release, + or `^\+[1-9]\d{1,14}$`. + default_region: US + agreement_consent: + $ref: '#/components/schemas/AgreementConsent' + exception_reasons: + items: + type: string + type: array + title: Exception Reasons + default: [] + email: + type: string + format: email + title: Email + status: + $ref: '#/components/schemas/ApplicationStatus' + name: + $ref: '#/components/schemas/Name' + date_of_birth: + $ref: '#/components/schemas/DateOfBirth' + investment_profile: + $ref: '#/components/schemas/InvestmentProfile' + customer_id: + type: string + format: uuid + title: Customer Id + description: '`null` until application status is `APPROVED`' + documents: + items: + $ref: '#/components/schemas/Document' + type: array + title: Documents + id_verification_documents_needed: + type: boolean + title: Id Verification Documents Needed + identification_number_verification_document_needed: + type: boolean + title: Identification Number Verification Document Needed + address_verification_document_needed: + type: boolean + title: Address Verification Document Needed + address: + allOf: + - $ref: '#/components/schemas/ISOAddress' + title: Address + description: Address object + citizenship_country: + type: string + title: Citizenship Country + description: >- + The applicant's citizenship country in ISO-3166 Alpha-2 format. + **Note:** This field will be made mandatory in a future release. + default: US + type: object + required: + - id + - time_created + - updated_at + - phone_number + - agreement_consent + - email + - status + - id_verification_documents_needed + - identification_number_verification_document_needed + - address_verification_document_needed + - address + title: InternationalApplication + InternationalApplicationRequest: + properties: + identification_number: + type: string + title: Identification Number + description: Applicant's Social Security Number + name: + allOf: + - $ref: '#/components/schemas/Name' + title: Name + description: Applicant's full name + email: + type: string + format: email + title: Email + description: Applicant's email address + date_of_birth: + type: string + format: date + title: Date Of Birth + description: Applicant's date of birth + investment_profile: + $ref: '#/components/schemas/InvestmentProfile' + agreement_consent: + allOf: + - $ref: '#/components/schemas/AgreementConsent' + title: Agreement Consent + description: Consent object for agreements + originally_onboarded_at: + type: string + format: date-time + title: Originally Onboarded At + description: Original onboarding time of applicant + identification_type: + allOf: + - $ref: '#/components/schemas/ApplicationIdentificationType' + description: >- + Type type of identification provided in the `identification_number` + field. The options are + * `SSN`: Social security number + * `TIN`: Tax ID number + * `DRIVERS_LICENSE`: A driver's license number + * `PASSPORT`: A passport number + + **Note:** This field will be made mandatory in a future release. Currently defaults to `SSN`. + default: SSN + address: + allOf: + - $ref: '#/components/schemas/ISOAddress' + title: Address + description: Address object + phone_number: + type: string + title: Phone Number + description: >- + Applicant's phone number. **Note**: It will be required to include + country codes in accordance to the E.164 spec in a future release, + or `^\+[1-9]\d{1,14}$`. + default_region: US + citizenship_country: + type: string + title: Citizenship Country + description: >- + The applicant's citizenship country in ISO-3166 Alpha-2 format. + **Note:** This field will be made mandatory in a future release. + default: US + type: object + required: + - identification_number + - name + - email + - date_of_birth + - investment_profile + - agreement_consent + - address + - phone_number + title: InternationalApplicationRequest + InvestmentProfile: + oneOf: + - $ref: '#/components/schemas/EmployedInvestmentProfile' + - $ref: '#/components/schemas/IndependentInvestmentProfile' + - $ref: '#/components/schemas/RetiredInvestmentProfile' + - $ref: '#/components/schemas/StudentInvestmentProfile' + - $ref: '#/components/schemas/UnemployedInvestmentProfile' + title: InvestmentProfile + description: >- + Investment profile contains information required by FINRA Suitability + Rule 2111 + discriminator: + propertyName: employment_status + mapping: + EMPLOYED: '#/components/schemas/EmployedInvestmentProfile' + INDEPENDENT: '#/components/schemas/IndependentInvestmentProfile' + RETIRED: '#/components/schemas/RetiredInvestmentProfile' + STUDENT: '#/components/schemas/StudentInvestmentProfile' + UNEMPLOYED: '#/components/schemas/UnemployedInvestmentProfile' + ListAccountsResponse: + properties: + offset: + type: integer + title: Offset + count: + type: integer + title: Count + items: + items: + $ref: '#/components/schemas/Account' + type: array + title: Items + description: Customer accounts + object_type: + type: string + title: Object Type + default: List + type: object + required: + - offset + - count + - items + title: ListAccountsResponse + description: >- + Generic models are only supported in pydantic for python 3.7+, so until + then + + items will be of type Any. As such, this class needs to be subclassed + + and its item field overridden in it using the proper type. + ListCounterpartiesResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Counterparty' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: ListCounterpartiesResponse + description: Base class for cursor_list responses from the Partner API + ListPortalsResponse: + properties: + count: + type: integer + title: Count + portals: + items: + $ref: '#/components/schemas/Portal' + type: array + minItems: 0 + title: Portals + object_type: + type: string + title: Object Type + default: List + type: object + required: + - count + - portals + title: ListPortalsResponse + LoginInput: + properties: + username: + type: string + maxLength: 128 + title: Username + password: + type: string + maxLength: 128 + title: Password + type: object + required: + - username + - password + title: LoginInput + LoginResponse: + properties: + token: + type: string + title: Token + expires: + type: string + format: date-time + title: Expires + type: object + required: + - token + - expires + title: LoginResponse + MinimalPhysicalCardOrderResponse: + properties: + card_id: + type: string + format: uuid + title: Card Id + card_order_id: + type: string + format: uuid + title: Card Order Id + status: + $ref: '#/components/schemas/PhysicalCardOrderStatus' + type: object + required: + - card_order_id + - status + title: MinimalPhysicalCardOrderResponse + MonthlyTransactions: + type: string + enum: + - 5_OR_LESS + - BETWEEN_5_AND_15 + - 15_OR_MORE + title: MonthlyTransactions + description: An enumeration. + Name: + properties: + first_name: + type: string + maxLength: 50 + title: First Name + description: First Name + middle_name: + type: string + maxLength: 50 + title: Middle Name + description: Middle Name + last_name: + type: string + maxLength: 50 + title: Last Name + description: Last Name + type: object + required: + - first_name + - last_name + title: Name + OnUsJikoAccountCounterparty: + properties: + id: + type: string + format: uuid + title: Id + type: + type: string + enum: + - JIKO_ACCOUNT + title: Type + type: object + required: + - id + - type + title: OnUsJikoAccountCounterparty + OnUsTransactionDetails: + properties: + on_us_transfer_id: + type: string + title: On Us Transfer Id + on_us_transfer_type: + type: string + title: On Us Transfer Type + source: + type: string + title: Source + target: + type: string + title: Target + type: object + required: + - on_us_transfer_id + - on_us_transfer_type + title: OnUsTransactionDetails + OnUsTransfer: + properties: + id: + type: string + format: uuid + title: Id + status: + $ref: '#/components/schemas/OnUsTransferStatus' + reason: + $ref: '#/components/schemas/TransferStateReason' + transfer: + $ref: '#/components/schemas/OnUsTransferDetails' + fees: + items: + $ref: '#/components/schemas/Fee' + type: array + title: Fees + type: object + required: + - id + - status + - transfer + - fees + title: OnUsTransfer + OnUsTransferDetails: + oneOf: + - $ref: '#/components/schemas/CustomerFundingTransferResponse' + - $ref: '#/components/schemas/CustomerDefundingTransferResponse' + - $ref: '#/components/schemas/InternalReallocationTransferResponse' + title: OnUsTransferDetails + discriminator: + propertyName: type + mapping: + PARTNER_CUSTOMER_FUNDING: '#/components/schemas/CustomerFundingTransferResponse' + PARTNER_CUSTOMER_DEFUNDING: '#/components/schemas/CustomerDefundingTransferResponse' + INTERNAL_REALLOCATION: '#/components/schemas/InternalReallocationTransferResponse' + OnUsTransferDetailsRequest: + oneOf: + - $ref: '#/components/schemas/CustomerFundingTransferRequest' + - $ref: '#/components/schemas/CustomerDefundingTransferRequest' + - $ref: '#/components/schemas/InternalReallocationTransferRequest' + title: OnUsTransferDetailsRequest + discriminator: + propertyName: type + mapping: + PARTNER_CUSTOMER_FUNDING: '#/components/schemas/CustomerFundingTransferRequest' + PARTNER_CUSTOMER_DEFUNDING: '#/components/schemas/CustomerDefundingTransferRequest' + INTERNAL_REALLOCATION: '#/components/schemas/InternalReallocationTransferRequest' + OnUsTransferEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/OnUsTransferPayload' + event_type: + type: string + enum: + - transfers.on-us.success + - transfers.on-us.processing + - transfers.on-us.rejected + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: OnUsTransferEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + OnUsTransferPayload: + properties: + on_us_id: + type: string + format: uuid + title: On Us Id + origin_account_id: + type: string + format: uuid + title: Origin Account Id + destination_account_id: + type: string + format: uuid + title: Destination Account Id + type: object + required: + - on_us_id + - origin_account_id + - destination_account_id + title: OnUsTransferPayload + OnUsTransferStatus: + type: string + enum: + - PENDING + - COMPLETED + - REJECTED + title: OnUsTransferStatus + description: An enumeration. + Order: + type: string + enum: + - desc + - asc + title: Order + description: An enumeration. + OutgoingWireEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/WireOutgoingPayload' + event_type: + type: string + enum: + - transfers.wire.out.success + - transfers.wire.out.processing + - transfers.wire.out.rejected + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: OutgoingWireEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + PEMEncodedPublicKey: + type: string + title: PEMEncodedPublicKey + PartnerEvent: + properties: + event: + $ref: '#/components/schemas/EventDetails' + delivery_attempts: + items: + $ref: '#/components/schemas/DeliveryAttemptDetails' + type: array + title: Delivery Attempts + type: object + required: + - event + - delivery_attempts + title: PartnerEvent + PhysicalCardOrder: + properties: + name_on_card: + type: string + maxLength: 100 + title: Name On Card + description: Card holder's full name. Should be a maximum of 26 characters. + shipping_address: + $ref: '#/components/schemas/ShippingAddress' + type: object + required: + - name_on_card + - shipping_address + title: PhysicalCardOrder + PhysicalCardOrderListResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/MinimalPhysicalCardOrderResponse' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: PhysicalCardOrderListResponse + description: Base class for cursor_list responses from the Partner API + PhysicalCardOrderResponse: + properties: + card_id: + type: string + format: uuid + title: Card Id + card_order_id: + type: string + format: uuid + title: Card Order Id + status: + $ref: '#/components/schemas/PhysicalCardOrderStatus' + name_on_card: + type: string + title: Name On Card + shipping_address: + $ref: '#/components/schemas/ShippingAddress' + type: object + required: + - card_order_id + - status + - name_on_card + - shipping_address + title: PhysicalCardOrderResponse + PhysicalCardOrderStatus: + type: string + enum: + - INITIAL + - CARD_CREATED + - ORDERED + - RECEIVED + title: PhysicalCardOrderStatus + description: An enumeration. + PlaidCreateCounterparties: + properties: + public_token: + type: string + title: Public Token + accounts: + items: + $ref: '#/components/schemas/PlaidCreateCounterpartiesAccount' + type: array + title: Accounts + institution_id: + type: string + title: Institution Id + type: object + required: + - public_token + - accounts + title: PlaidCreateCounterparties + PlaidCreateCounterpartiesAccount: + properties: + id: + type: string + title: Id + name: + type: string + title: Name + mask: + type: string + title: Mask + type: object + required: + - id + title: PlaidCreateCounterpartiesAccount + PlaidCreateCounterpartiesResponse: + properties: + items: + items: + $ref: '#/components/schemas/Counterparty' + type: array + title: Items + type: object + required: + - items + title: PlaidCreateCounterpartiesResponse + PlaidLinkToken: + properties: + link_token: + type: string + title: Link Token + expiration: + type: string + title: Expiration + type: object + required: + - link_token + - expiration + title: PlaidLinkToken + PlaidLinkTokenRequest: + properties: + client_name: + type: string + minLength: 1 + title: Client Name + redirect_uri: + type: string + title: Redirect Uri + description: '**Mutually exclusive with `android_package_name`**' + android_package_name: + type: string + title: Android Package Name + description: '**Mutually exclusive with `redirect_uri`**' + counterparty_id: + type: string + format: uuid + title: Counterparty Id + type: object + required: + - client_name + title: PlaidLinkTokenRequest + PlaidVerificationStatus: + type: string + enum: + - PENDING_AUTOMATIC_VERIFICATION + - PENDING_MANUAL_VERIFICATION + - AUTOMATICALLY_VERIFIED + - MANUALLY_VERIFIED + - VERIFICATION_EXPIRED + - VERIFICATION_FAILED + title: PlaidVerificationStatus + description: An enumeration. + Portal: + properties: + id: + type: string + format: uuid + title: Id + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + routing_number: + type: string + title: Routing Number + description: Routing number + account_number: + type: string + title: Account Number + description: Account number + status: + allOf: + - $ref: '#/components/schemas/PortalStatus' + description: Portal status + name: + type: string + title: Name + description: Portal name + type: object + required: + - id + - jiko_account_id + - routing_number + - account_number + - status + - name + title: Portal + PortalCreateRequest: + properties: + name: + type: string + maxLength: 128 + title: Name + type: object + required: + - name + title: PortalCreateRequest + PortalStatus: + type: string + enum: + - OPEN + - CLOSED + title: PortalStatus + description: An enumeration. + PortalUpdateRequest: + properties: + name: + type: string + maxLength: 50 + title: Name + description: Portal name + type: object + required: + - name + title: PortalUpdateRequest + Portfolio: + properties: + securities: + items: + $ref: '#/components/schemas/Security' + type: array + title: Securities + description: Securities currently held by the brokerage account + cash: + allOf: + - $ref: '#/components/schemas/Amount' + title: Cash + description: Cash currently held in the brokerage account. + all_time_earnings: + allOf: + - $ref: '#/components/schemas/Amount' + title: All Time Earnings + description: All time portfolio earnings + type: object + required: + - securities + - cash + - all_time_earnings + title: Portfolio + PublicKeyRequest: + properties: + public_key: + allOf: + - $ref: '#/components/schemas/PEMEncodedPublicKey' + title: Public Key + description: >- + Single-use 4096-bit PEM-encoded RSA public-key in PKCS#1 or PKCS#1.5 + format + min_bytes: 4096 + type: object + required: + - public_key + title: PublicKeyRequest + RelatedPartyApplicationRequest: + properties: + name: + $ref: '#/components/schemas/Name' + address: + $ref: '#/components/schemas/Address' + date_of_birth: + type: string + title: Date Of Birth + identification_number: + $ref: '#/components/schemas/IndividualIdentificationNumber' + phone_number: + type: string + title: Phone Number + title: + type: string + title: Title + roles: + items: + $ref: '#/components/schemas/RelatedPartyRole' + type: array + ownership_percentage: + type: string + title: Ownership Percentage + citizenship: + type: string + title: Citizenship + email: + type: string + title: Email + type: object + title: RelatedPartyApplicationRequest + RelatedPartyApplicationResponse: + properties: + name: + $ref: '#/components/schemas/Name' + address: + $ref: '#/components/schemas/Address' + date_of_birth: + type: string + title: Date Of Birth + identification_number: + $ref: '#/components/schemas/IndividualIdentificationNumberMasked' + phone_number: + type: string + title: Phone Number + title: + type: string + title: Title + roles: + items: + $ref: '#/components/schemas/RelatedPartyRole' + type: array + ownership_percentage: + type: string + title: Ownership Percentage + citizenship: + type: string + title: Citizenship + email: + type: string + title: Email + id: + type: string + format: uuid + title: Id + type: object + required: + - id + title: RelatedPartyApplicationResponse + RelatedPartyRole: + type: string + enum: + - CONTROL_PERSON + - AUTHORIZED_REPRESENTATIVE + title: RelatedPartyRole + description: An enumeration. + RequestedAmount: + properties: + amount_usdc: + type: integer + exclusiveMinimum: 0 + title: Amount USDC + type: + type: string + enum: + - REQUESTED_AMOUNT + title: Type + type: object + required: + - amount_usdc + - type + title: Requested amount + description: Creates a transfer for a specific, requested amount. + RetiredInvestmentProfile: + properties: + income: + allOf: + - $ref: '#/components/schemas/AnnualPersonalIncome' + description: Applicant's estimated annual income in USD. + net_worth: + allOf: + - $ref: '#/components/schemas/AveragePersonalNetWorth' + description: Applicant's estimated average personal net worth in USD. + bd_association: + type: string + maxLength: 200 + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + director_policy_maker_of_company: + type: string + maxLength: 200 + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + occupation: + type: string + maxLength: 200 + title: Occupation + description: Applicant's occupation + employment_status: + type: string + enum: + - RETIRED + title: Employment Status + type: object + required: + - income + - net_worth + - employment_status + title: RetiredInvestmentProfile + RiskCategory: + type: string + enum: + - INTERNET_GAMBLING + - CANNABIS + - CRYPTOCURRENCY + - CROWDFUNDING + - FINANCIAL_OR_MONEY_MOVEMENT + title: RiskCategory + description: An enumeration. + RiskInfo: + properties: + risk_categories: + items: + $ref: '#/components/schemas/RiskCategory' + type: array + company_mission: + type: string + title: Company Mission + has_current_enforcement_actions: + type: boolean + title: Has Current Enforcement Actions + primary_regulator: + type: string + title: Primary Regulator + business_activity_location: + $ref: '#/components/schemas/BusinessActivityLocation' + source_of_funds: + $ref: '#/components/schemas/SourceOfFunds' + account_usage: + $ref: '#/components/schemas/AccountUsage' + annual_revenue: + $ref: '#/components/schemas/AnnualRevenue' + monthly_transactions: + $ref: '#/components/schemas/MonthlyTransactions' + first_month_deposit: + $ref: '#/components/schemas/FirstMonthDepositAmount' + type: object + title: RiskInfo + Security: + properties: + tradable_id: + type: string + format: uuid + title: Tradable Id + security_type: + $ref: '#/components/schemas/SecurityType' + quantity: + type: integer + exclusiveMinimum: 0 + title: Quantity + description: Number of securities + market_value: + allOf: + - $ref: '#/components/schemas/Amount' + title: Market Value + description: The current market value of the securities + external_id: + type: string + title: External Id + maturity_date: + type: string + format: date + title: Maturity Date + description: Due date of the fixed income instrument + yield_to_maturity: + allOf: + - $ref: '#/components/schemas/Decimal' + title: Yield To Maturity + description: Rate of return if the security is held to the maturity date + ask: + allOf: + - $ref: '#/components/schemas/Decimal' + title: Ask + description: The current price the account is willing to sell the security at + bid: + allOf: + - $ref: '#/components/schemas/Decimal' + title: Bid + description: The current price the market is willing to pay for the security + description: + type: string + title: Description + description: A description of the security + type: object + required: + - tradable_id + - security_type + - quantity + - market_value + - external_id + - maturity_date + - yield_to_maturity + - ask + - bid + - description + title: Security + SecurityType: + type: string + enum: + - FIXED_INCOME + - OTHER + title: SecurityType + description: An enumeration. + SettableCardStatus: + type: string + enum: + - OPEN + - LOCKED + title: SettableCardStatus + description: An enumeration. + ShippingAddress: + properties: + street_address: + type: string + maxLength: 100 + title: Street Address + description: Street address + street_address2: + type: string + maxLength: 100 + title: Street Address2 + description: Apartment, Suite, Box number, etc. + city: + type: string + maxLength: 100 + title: City + description: City / Town + postal_code: + type: string + maxLength: 10 + title: Postal Code + description: Postal code / ZIP code + state: + allOf: + - $ref: '#/components/schemas/State' + description: 'State (Postal Abbreviations. Example: "AL", "NJ", "OH")' + country: + allOf: + - $ref: '#/components/schemas/Country' + description: 'A ISO-3166 Alpha-2 country code (Abbreviated. Example: "US")' + type: object + required: + - street_address + - city + - postal_code + - state + - country + title: ShippingAddress + SourceOfFunds: + type: string + enum: + - INTERNAL_FUNDS + - CLIENT_OR_EXTERNAL_FUNDS + title: SourceOfFunds + description: An enumeration. + State: + type: string + enum: + - AA + - AE + - AP + - AK + - AL + - AR + - AZ + - CA + - CO + - CT + - DC + - DE + - FL + - GA + - GU + - HI + - IA + - ID + - IL + - IN + - KS + - KY + - LA + - MA + - MD + - ME + - MI + - MN + - MO + - MS + - MT + - NC + - ND + - NE + - NH + - NJ + - NM + - NV + - NY + - OH + - OK + - OR + - PA + - PR + - RI + - SC + - SD + - TN + - TX + - UT + - VA + - VI + - VT + - WA + - WI + - WV + - WY + title: State + description: An enumeration. + Statement: + properties: + id: + type: string + format: uuid + title: Id + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + type: + $ref: '#/components/schemas/StatementType' + key: + type: string + title: Key + pdf_download_url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Pdf Download Url + time_created: + type: string + format: date-time + title: Time Created + type: object + required: + - id + - jiko_account_id + - type + - key + - pdf_download_url + - time_created + title: Statement + StatementListResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Statement' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: StatementListResponse + description: Base class for cursor_list responses from the Partner API + StatementType: + type: string + enum: + - 1099B + - 1099INT + - BANK + - BROKERAGE + title: StatementType + description: An enumeration. + StudentInvestmentProfile: + properties: + income: + allOf: + - $ref: '#/components/schemas/AnnualPersonalIncome' + description: Applicant's estimated annual income in USD. + net_worth: + allOf: + - $ref: '#/components/schemas/AveragePersonalNetWorth' + description: Applicant's estimated average personal net worth in USD. + bd_association: + type: string + maxLength: 200 + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + director_policy_maker_of_company: + type: string + maxLength: 200 + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + occupation: + type: string + maxLength: 200 + title: Occupation + description: Applicant's occupation + employment_status: + type: string + enum: + - STUDENT + title: Employment Status + type: object + required: + - income + - net_worth + - employment_status + title: StudentInvestmentProfile + Subscription: + properties: + description: + type: string + title: Description + description: A description of the webhook's intended use. + default: '' + events: + items: + type: string + type: array + minItems: 1 + title: Events + description: Which types of events this webhook should be invoked for. + url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Url + description: The webhook URL to invoke. + id: + type: string + format: uuid + title: Id + time_created: + type: string + format: date-time + title: Time Created + updated_at: + type: string + format: date-time + title: Updated At + status: + $ref: '#/components/schemas/SubscriptionStatus' + type: object + required: + - events + - url + - id + - time_created + - updated_at + - status + title: Subscription + SubscriptionStatus: + type: string + enum: + - enabled + - disabled + title: SubscriptionStatus + description: An enumeration. + Trade: + properties: + id: + type: string + format: uuid + title: Id + trade_datetime: + type: string + format: date-time + title: Trade Datetime + settled_date: + type: string + format: date + title: Settled Date + is_settled: + type: boolean + title: Is Settled + activity: + $ref: '#/components/schemas/TradeActivity' + cusip: + type: string + title: Cusip + description: + type: string + title: Description + notional: + $ref: '#/components/schemas/Amount' + quantity: + type: integer + title: Quantity + price: + $ref: '#/components/schemas/Decimal' + maturity_date: + type: string + format: date + title: Maturity Date + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + yield_to_maturity: + $ref: '#/components/schemas/Decimal' + tradable_id: + type: string + title: Tradable Id + type: object + required: + - id + - trade_datetime + - is_settled + - activity + - cusip + - description + - notional + - quantity + - price + - maturity_date + - jiko_account_id + - yield_to_maturity + - tradable_id + title: Trade + TradeActivity: + type: string + enum: + - BUY + - SELL + - MATURITY + title: TradeActivity + description: An enumeration. + TradeConfirmation: + properties: + url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Url + type: object + required: + - url + title: TradeConfirmation + example: + url: https://example.com/path-to-trade-confirmation-pdf + TradeListResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Trade' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: TradeListResponse + description: Base class for cursor_list responses from the Partner API + Transaction: + properties: + id: + type: string + format: uuid + title: Id + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + amount: + $ref: '#/components/schemas/Amount' + timestamp: + type: string + format: date-time + title: Timestamp + status: + $ref: '#/components/schemas/TransactionStatus' + details: + $ref: '#/components/schemas/TransactionDetails' + type: object + required: + - id + - jiko_account_id + - amount + - timestamp + - status + - details + title: Transaction + TransactionDetails: + properties: + transaction_type: + $ref: '#/components/schemas/TransactionType' + title: + type: string + title: Title + sub_title: + type: string + title: Sub Title + transaction_type_title: + type: string + title: Transaction Type Title + card_transaction: + $ref: '#/components/schemas/CardTransactionDetails' + ach_transaction: + $ref: '#/components/schemas/ACHTransactionDetails' + wire_transaction: + $ref: '#/components/schemas/WireTransactionDetails' + wire_fee_transaction: + $ref: '#/components/schemas/WireTransactionDetails' + cash_back_transaction: + $ref: '#/components/schemas/CashBackTransactionDetails' + on_us_transaction: + $ref: '#/components/schemas/OnUsTransactionDetails' + type: object + required: + - transaction_type + title: TransactionDetails + TransactionListResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Transaction' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: TransactionListResponse + description: Base class for cursor_list responses from the Partner API + TransactionLocation: + properties: + street_address: + type: string + title: Street Address + city: + type: string + title: City + state: + type: string + title: State + country: + type: string + title: Country + type: object + required: + - street_address + - city + - country + title: TransactionLocation + TransactionStatus: + type: string + enum: + - PENDING + - COMPLETED + title: TransactionStatus + description: An enumeration. + TransactionType: + type: string + enum: + - CARD + - CASH_BACK + - ACH + - WIRE + - WIRE_FEE + - GENERIC + - ON_US + title: TransactionType + description: An enumeration. + TransferStateReason: + type: string + enum: + - ACCOUNT_UNAVAILABLE + - CANCELED + - INSUFFICIENT_FUNDS + - INVALID_CURRENCY + - INVALID_TRANSFER + - SANCTION_SCREEN_FAILED + title: TransferStateReason + description: An enumeration. + UnemployedInvestmentProfile: + properties: + income: + allOf: + - $ref: '#/components/schemas/AnnualPersonalIncome' + description: Applicant's estimated annual income in USD. + net_worth: + allOf: + - $ref: '#/components/schemas/AveragePersonalNetWorth' + description: Applicant's estimated average personal net worth in USD. + bd_association: + type: string + maxLength: 200 + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + director_policy_maker_of_company: + type: string + maxLength: 200 + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + occupation: + type: string + maxLength: 200 + title: Occupation + description: Applicant's occupation + employment_status: + type: string + enum: + - UNEMPLOYED + title: Employment Status + type: object + required: + - income + - net_worth + - employment_status + title: UnemployedInvestmentProfile + UpdateSubscriptionRequest: + properties: + description: + type: string + title: Description + description: A description of the webhook's intended use. + default: '' + events: + items: + type: string + type: array + minItems: 1 + title: Events + description: Which types of events this webhook should be invoked for. + url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Url + description: The webhook URL to invoke. + shared_secret: + type: string + minLength: 16 + title: Shared Secret + description: >- + The shared secret used by the Partner API to sign requests made to + the webhook. The shared secret needs to be minimum 16 characters + long. + type: object + title: UpdateSubscriptionRequest + UploadDocumentResponse: + properties: + success: + type: boolean + title: Success + document_id: + type: string + format: uuid + title: Document Id + type: object + required: + - success + - document_id + title: UploadDocumentResponse + ValidationError: + properties: + loc: + items: + anyOf: + - type: string + - type: integer + type: array + title: Location + msg: + type: string + title: Message + type: + type: string + title: Error Type + type: object + required: + - loc + - msg + - type + title: ValidationError + VirtualCardResponse: + properties: + card_id: + type: string + format: uuid + title: Card Id + encrypted_pan: + type: string + title: Encrypted Pan + encrypted_cvv: + type: string + title: Encrypted Cvv + encrypted_expiration: + type: string + title: Encrypted Expiration + type: object + required: + - card_id + - encrypted_pan + - encrypted_cvv + - encrypted_expiration + title: VirtualCardResponse + WireCounterparty: + properties: + time_created: + type: string + format: date-time + title: Time Created + verification_type: + $ref: '#/components/schemas/ACHCounterpartyVerificationType' + status: + $ref: '#/components/schemas/ACHCounterpartyVerificationStatus' + account_number: + type: string + title: Account Number + routing_number: + type: string + title: Routing Number + name_on_account: + type: string + title: Name On Account + account_type: + $ref: '#/components/schemas/ACHCounterpartyAccountType' + institution_name: + type: string + title: Institution Name + type: object + required: + - time_created + - verification_type + - status + - account_number + - routing_number + - name_on_account + - account_type + - institution_name + title: WireCounterparty + WireOutgoingPayload: + properties: + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + wire_id: + type: string + format: uuid + title: Wire Id + type: object + required: + - jiko_account_id + - wire_id + title: WireOutgoingPayload + WireRequest: + properties: + counterparty_id: + type: string + format: uuid + title: Counterparty Id + amount_usdc: + type: integer + title: Amount Usdc + description: The amount, in USD cents. + created_by: + type: string + title: Created By + description: A string identifying the wire transfer originator. + description: + type: string + title: Description + description: A description of the transfer, visible on statements. + wire_id: + type: string + format: uuid + title: Wire Id + description: The ID for this wire transfer, auto-generated if not provided. + type: object + required: + - counterparty_id + title: WireRequest + WireTransactionDetails: + properties: + reference_number: + type: string + title: Reference Number + counterparty_name: + type: string + title: Counterparty Name + wire_id: + type: string + format: uuid + title: Wire Id + type: object + required: + - reference_number + - counterparty_name + title: WireTransactionDetails + securitySchemes: + HTTPBearer: + type: http + scheme: bearer + tags: + - name: Individuals + description: > + Use these endpoints to initiate, manage, and complete KYC for Individuals. + When an application has `status: “APPROVED”`, a + [Customer](https://docs.jiko.io/reference) is created for the Individual. + Customers can have multiple [Accounts](https://docs.jiko.io/reference). + - name: Businesses + description: > + Use these endpoints to initiate, manage, and complete KYB for Businesses. + When an application has `status: “APPROVED”`, a + [Customer](https://docs.jiko.io/reference) is created for the Business. + Customers can have multiple [Accounts](https://docs.jiko.io/reference). + - name: Accounts + description: > + 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. + - name: Customers + description: Use these endpoints to view and manage personal details for a Customer. + - name: Transactions + description: > + 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](https://docs.jiko.io/reference). + - name: Trades + description: >- + 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. + - name: Statements + description: >- + Use these endpoints to retrieve monthly statements for bank and brokerage + accounts. + - name: Portals + description: >- + 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. A single portal is created by + default upon account creation. + - name: ACH + description: Use these endpoints to create, view, and manage ACH Transfers. + - name: Wires + description: Use this endpoint to initiate Wire Transfers. + - name: On-Us Transfers + description: >- + Use these endpoints to create and view On-Us (Book) Transfers between Jiko + accounts. + - name: Counterparties + description: > + 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. + - name: 'Counterparties: Plaid' + description: Use these endpoints to create and view Counterparties using Plaid. + - name: Manage Cards + description: Use these endpoints to view and manage Card information. + - name: Physical Cards + description: Use these endpoints to create, view, and manage Physical Debit Cards. + - name: Virtual Cards + description: Use these endpoints to create, view, and manage Virtual Debit Cards. + - name: Security + description: Use these endpoints to authenticate requests to the Jiko API. + - name: Sandbox + description: Use these endpoints to initiate sandbox functionality. + - name: Subscriptions + description: >- + 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. + - name: Events + description: Use these endpoints to view Events. + - name: Health + description: Use these endpoints to setup automatic health checks for the Partner API. + x-tagGroups: + - name: Onboarding + tags: + - Individuals + - Businesses + - name: Accounts + tags: + - Accounts + - Customers + - Transactions + - Trades + - Statements + - name: Transfers + tags: + - Portals + - ACH + - Wires + - On-Us Transfers + - Counterparties + - 'Counterparties: Plaid' + - name: Cards + tags: + - Manage Cards + - Physical Cards + - Virtual Cards + - name: Platform + tags: + - Health + - Security + - Sandbox + - Subscriptions + - Events +konfigCliVersion: 1.38.34 diff --git a/sdks/db/fixed-specs/jiko-fixed-spec.yaml b/sdks/db/fixed-specs/jiko-fixed-spec.yaml new file mode 100644 index 0000000000..2f82f6043f --- /dev/null +++ b/sdks/db/fixed-specs/jiko-fixed-spec.yaml @@ -0,0 +1,9469 @@ +openapi: 3.0.3 +info: + title: Jiko Partner API + description: > + # 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. + + +
+ + + At the core of our platform is the Jiko account: a pair consisting of a bank + account and a brokerage account. When money is deposited into an account, + 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 accounts, and each account 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 customer accounts via ACH or Wire + + - Viewing and managing accounts (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](mailto:partner.support@jiko.io) to request sandbox + access. + + # Partner obligations + + +
+ + + - Before onboarding, the end-user’s control over any email addresses or + phone numbers must be confirmed (for example, via confirmation codes) before + submitting an application to the API. + + - While onboarding, partners must comply with the disclosure requirements + listed [below](https://docs.jiko.io/reference). + + - Monthly statements are created for bank and brokerage accounts and must be + made available to the user. + - Partners are required to send an email to end users every month a new statement is available to comply with regulatory requirements. + - Partners can expect monthly statements to be available by the 15th of every month. + - It is required to make the past 6 years of brokerage statements available to the end user. + - It is advised to make at least the past 12 months of bank statements available to the end user. + - Trade confirmations must be made available to the user. + + + ## Disclosures and Agreements + + + - The bundle of customer disclosures and agreements served at the + [Agreements](https://docs.jiko.io/reference) endpoint must be presented to + users before signing up for an account. + This includes Risk and Limitation disclosures, Regulation E disclosures, Account agreements and more. + - The customer consent for these disclosures have to be versioned and time-stamped and sent with the application. + - Jiko reserves the right to update agreements from time to time. + If a change is _adverse_ to the customer, Jiko will notify partners, and they are then required to notify their end users 30 days in advance of the change. + - A change is deemed to be _adverse_ to the customer if it will result in increased fees, increased liability for the customer, fewer types of available transactions or stricter limitations on the frequency or dollar amount of transactions. + - When Jiko updates the bundle of agreements, the version number of the + agreement bundle will increment. + Jiko reserves the right to reject or manually review applications where customer consent does not match the latest agreement version. + Partners must re-fetch and display the agreements and disclosures links from the Agreements endpoint for every new application. This ensures each applicant is served the latest version of the agreements. + + # Authentication + + + **Jiko** provides partners with a `username` and a `password`, as well as a + `shared secret`. Partners are provided with a `bearer token` in the + [Login](https://docs.jiko.io/reference) response, which must be sent with + each request. + + +
+ + + Each request made to the partner API needs 3 parts in order for it to be + processed: + + + 1. An **Authorization** HTTP header containing the value + + + ```javascript + + Bearer + + ``` + + +
+ + + Where the `access_token` is the bearer token given in the + [Login](https://docs.jiko.io/reference) response. + + + 1. An **x-jiko-idempotency** HTTP header set to a random uuid for this + action, in order to signify a unique request to the API from the partner’s + perspective. + + 2. An **x-jiko-signature** HTTP header set to a base64 encoded HMAC-SHA256 + hash of `x-jiko-idempotency+request pathname+body` using the shared secret + as a key. + + + Below is a Node.js example showing how a potential request could be signed: + + +
+ + + ```javascript + + const crypto = require("crypto"); + + const uuid = require("uuid"); + + + const idempotency = uuid.v4(); + + const pathname = "/api/v1/agreements/"; + + const body = ""; + + + request.headers["x-jiko-signature"] = crypto + .createHmac("sha256", "shared-secret-here") + .update(idempotency + pathname + body, "utf-8") + .digest("base64"); + ``` + + +
+ + + **Partner** requests will need to be sent from an IP address whitelisted by + **Jiko**. + + **Jiko** will verify the request signature by repeating the steps above, + additionally checking for possible repeated requests. A request is + considered to be repeated if the idempotency key value provided in the + `x-jiko-idempotency` header has been used previously in the past 1 hour. + + +
+ + + Bearer tokens have a lifetime of 60 minutes. + + The partner will need to repeat the login process once a token has expired. + + + # Changelog + + + ## March 2024 + + - Added `tradable_id` field to [List Customer + Trades](https://docs.jiko.io/reference) and [List Customer + Transactions](https://docs.jiko.io/reference) API endpoint. + + - Added support for filtering by trade date to and from to [List Customer + Trades](https://docs.jiko.io/reference) and [List Customer + Transactions](https://docs.jiko.io/reference) API endpoints. + + + - Added support for filtering by types, timestamp_from and timestamp_to to + the [List Customer Transactions](https://docs.jiko.io/reference), [List + Account Transactions](https://docs.jiko.io/reference) API endpoints. + + + + ## February 2024 + + - Added support for filtering by status and direction to the [List ACH Originations](https://docs.jiko.io/reference) API endpoint + - Added support for filtering by portal id and card id to the [List Customer Transactions](https://docs.jiko.io/reference), [List Account Transactions](https://docs.jiko.io/reference) API endpoints. + + - Added support for filtering by status and direction to the [List ACH Originations](https://docs.jiko.io/reference) API endpoint + - Added support for filtering by card status to the [List Account Cards](https://docs.jiko.io/reference) endpoint. + - Added support for full withdrawals when performing on-us transfers by using the new `amount` field. + - Added support for listing fees deducted when performing on-us transfers. + + ## January 2024 + + - Added [Get Health Check](https://docs.jiko.io/reference) API endpoint. + + ## December 2023 + + + - Business Application additions: + + - Added [Create Application](https://docs.jiko.io/reference) API endpoint. + - Added [Get Application](https://docs.jiko.io/reference) API endpoint. + - Added [Update Application](https://docs.jiko.io/reference) API endpoint. + - Added [Apply](https://docs.jiko.io/reference) API endpoint. + + - Related Party Application additions: + + - Added [List Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Create Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Delete Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Update Related Party](https://docs.jiko.io/reference) API endpoint. + + - Document Upload additions: + + - Added [List Document Requests](https://docs.jiko.io/reference) API endpoint. + - Added [Upload Document](https://docs.jiko.io/reference) API endpoint. + + - Wire additions: + + - Added [Create Wire](https://docs.jiko.io/reference) API endpoint. + + ## November 2023 + + + - Added a new optional field `micro_deposit` to V1 `ACHCounterparty` model + that includes an indication of number of verification attempts for ACH + Counterparties verified via Micro Deposits + + - Added [Close Portal](https://docs.jiko.io/reference) API endpoint. + + - Added [Update Portal](https://docs.jiko.io/reference) API endpoint. + + + ## October 2023 + + + - Added enum value `PENDING` to the [Get Customer + Data](https://docs.jiko.io/reference) `account_status` field, signalling + that a customer has no open pocket. + + + ## July 2023 + + + - Added [Get Account Portal](https://docs.jiko.io/reference) API endpoint. + + + ## May 2023 + + + ### 2023-05-26 + + + - The response from uploading documents now includes a `document_id` field + for future reference. + + + ### 2023-05-15 + + + - Added [Create Portal](https://docs.jiko.io/reference) API endpoint. + + - Added a new `category` type E-SIGN for the Electronic Communications + Disclosure Statement and Consent which was previously in the GENERAL + category. + + + ### 2023-05-05 + + + - Added a new `WIRE_COUNTERPARTY_VERIFICATION` document type. + + - File size limits raised to 50 MB for files other than `ID_FRONT`, + `ID_BACK`, `SELFIE` and `PASSPORT` when uploading documents to a customer or + application. + + - Updated documentation for both file upload endpoints. + + + ## April 2023 + + + ### 2023-04-28 + + + - Adds a new `category` field for agreements returned by the [List + Agreements](https://docs.jiko.io/reference) endpoint. This `category` field + groups all agreements into 3 categories, BANK, BROKERAGE, or GENERAL. + + + ### 2023-04-19 + + + - Added a new sandbox endpoint for simulating webhook calls, [Trigger + Webhook](https://docs.jiko.io/reference). + + + ## March 2023 + + + ### 2023-03-30 + + + - Added a new `yield_to_maturity` field to the `Trade` model. + + + ### 2023-03-15 + + + - Added a new `name` field to the `Portal` model. + + + ## February 2023 + + + ### 2023-02-24 + + + - Added a sandbox endpoint to fund accounts via ACH portals. + + + ### 2023-02-16 + + + - Added a new disclosure type, `FORM_CRS`, for Customer Relationship Summary + Forms. + + + ### 2023-02-10 + + + - Added `wire_fee_transaction` and `WIRE_FEE` transaction type to the [List + Customer Transactions](https://docs.jiko.io/reference), [List Account + Transactions](https://docs.jiko.io/reference) and [Get Account + Transaction](https://docs.jiko.io/reference) endpoints. + + + ## January 2023 + + + ### 2023-01-25 + + + - Added [Create On-Us Transfer](https://docs.jiko.io/reference) API + endpoint. + + - Added [Get On-Us Transfer](https://docs.jiko.io/reference) API endpoint. + + + ### 2023-01-18 + + + - Added two optional filtering query parameters to the [List Customer + Statements](https://docs.jiko.io/reference) endpoint: + - The `type[]` query parameter makes it possible to filter by different types of statements, e.g. `?type[]=BANK&type[]=BROKERAGE` + - The `key` query parameter makes it possible to filter by either a specific month or a year, e.g. `?key=2023-01` or `?key=2022` + - Marked the [List Account Statements](https://docs.jiko.io/reference) + endpoint as deprecated. Please use the [List Customer + Statements](https://docs.jiko.io/reference) in future integrations. + + + ### 2023-01-09 + + + - Added a new transaction type and corresponding details object, + `on_us_transaction` to the response model in [List Customer + Transactions](https://docs.jiko.io/reference). + + + ### 2023-01-06 + + + - Added optional field `originally_onboarded_at` to request body in [Create + Application](https://docs.jiko.io/reference) + + + ## November 2022 + + + ### 2022-11-09 + + + - New counterparty type `WIRE` with a `wire` field, returned in [Get + Counterparty](https://docs.jiko.io/reference) and [List + Counterparties](https://docs.jiko.io/reference) + + + ## September 2022 + + + ### 2022-09-28 + + + - Added [List Customer Statements](https://docs.jiko.io/reference) API + endpoint. + + + ### 2022-09-27 + + + - Added [Get Customer Data](https://docs.jiko.io/reference) API endpoint. + + + ### 2022-09-07 + + + - Added [List Customer Trades](https://docs.jiko.io/reference) API endpoint. + + - Added [List Customer Transactions](https://docs.jiko.io/reference) API + endpoint. + + + ## August 2022 + + + ### 2022-08-29 + + + - Added `name` field to the [List Customer + Accounts](https://docs.jiko.io/reference) and [Get Customer + Account](https://docs.jiko.io/reference) API endpoints + + + ### 2022-08-16 + + + - Added [Get Account Transaction](https://docs.jiko.io/reference) API + endpoint + + + ### 2022-08-05 + + + - Added [List ACH Originations](https://docs.jiko.io/reference) API endpoint + version: 1.29.0 + x-api-status-urls: false +servers: + - description: Production server + url: https://{partner}.partner-api.jikoservices.com + - description: Sandbox server + url: https://{partner}.sandbox-api.jikoservices.com +tags: + - description: > + Use these endpoints to initiate, manage, and complete KYB for Businesses. + When an application has `status: “APPROVED”`, a + [Customer](https://docs.jiko.io/reference) is created for the Business. + Customers can have multiple [Accounts](https://docs.jiko.io/reference). + name: Businesses + - description: > + Use these endpoints to initiate, manage, and complete KYC for Individuals. + When an application has `status: “APPROVED”`, a + [Customer](https://docs.jiko.io/reference) is created for the Individual. + Customers can have multiple [Accounts](https://docs.jiko.io/reference). + name: Individuals + - description: >- + 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. A single portal is created by + default upon account creation. + name: Portals + - description: Use these endpoints to view and manage Card information. + name: Manage Cards + - description: >- + 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. + name: Subscriptions + - description: Use these endpoints to initiate sandbox functionality. + name: Sandbox + - description: > + 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](https://docs.jiko.io/reference). + name: Transactions + - description: >- + 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. + name: Trades + - description: Use these endpoints to create, view, and manage ACH Transfers. + name: ACH + - description: Use these endpoints to create and view Counterparties using Plaid. + name: 'Counterparties: Plaid' + - description: Use these endpoints to create, view, and manage Physical Debit Cards. + name: Physical Cards + - description: Use these endpoints to create, view, and manage Virtual Debit Cards. + name: Virtual Cards + - description: > + 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. + name: Accounts + - description: Use these endpoints to view and manage personal details for a Customer. + name: Customers + - description: >- + Use these endpoints to retrieve monthly statements for bank and brokerage + accounts. + name: Statements + - description: >- + Use these endpoints to create and view On-Us (Book) Transfers between Jiko + accounts. + name: On-Us Transfers + - description: > + 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. + name: Counterparties + - description: Use these endpoints to authenticate requests to the Jiko API. + name: Security + - description: Use these endpoints to view Events. + name: Events + - description: Use this endpoint to initiate Wire Transfers. + name: Wires + - description: Use these endpoints to setup automatic health checks for the Partner API. + name: Health +paths: + /health: + get: + tags: + - Health + summary: Get Health Check + operationId: Health_statusCheck + description: >- + A health check endpoint, which returns "OK" if the Partner API is up and + running. + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/HealthStatusCheckResponse' + /api/v1/customers/{customer_id}/jiko-accounts: + get: + tags: + - Accounts + summary: List Customer Accounts + operationId: Accounts_listCustomerAccounts + security: + - HTTPBearer: [] + description: Get a list of all accounts for a specified customer. + parameters: + - required: true + schema: + title: Customer Id + type: string + format: uuid + name: customer_id + in: path + - required: false + schema: + title: Offset + type: integer + minimum: 0 + default: 0 + name: offset + in: query + - required: false + schema: + title: Limit + type: integer + maximum: 100 + minimum: 1 + default: 100 + name: limit + in: query + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListAccountsResponse' + example: + offset: 0 + count: 1 + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + name: J1 (4-week) + total_value: + value: 20708596 + currency: USD + formatted: $207,085.96 + status: OPEN + portfolio: + securities: + - description: US T-Bill + tradable_id: 4b955c69-dd95-4f6a-a0ff-325ee029f240 + security_type: FIXED_INCOME + quantity: 2100 + market_value: + value: 20708596 + currency: USD + formatted: $207,085.96 + external_id: 912796RF6 + maturity_date: '2023-01-30' + yield_to_maturity: '0.0468' + ask: '98.628528' + bid: '98.612361' + cash: + value: 0 + currency: USD + formatted: $0.00 + all_time_earnings: + value: 935404 + currency: USD + formatted: $9,354.04 + object_type: Account + object_type: List + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}: + get: + tags: + - Accounts + summary: Get Customer Account + operationId: Accounts_getSpecificAccount + security: + - HTTPBearer: [] + description: Get a specific account. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Account' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + name: J1 (4-week) + total_value: + value: 20708596 + currency: USD + formatted: $207,085.96 + status: OPEN + portfolio: + securities: + - description: US T-Bill + tradable_id: 4b955c69-dd95-4f6a-a0ff-325ee029f240 + security_type: FIXED_INCOME + quantity: 2100 + market_value: + value: 20708596 + currency: USD + formatted: $207,085.96 + external_id: 912796RF6 + maturity_date: '2023-01-30' + yield_to_maturity: '0.0468' + ask: '98.628528' + bid: '98.612361' + cash: + value: 0 + currency: USD + formatted: $0.00 + all_time_earnings: + value: 935404 + currency: USD + formatted: $9,354.04 + object_type: Account + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/customers/{customer_id}/transactions: + get: + tags: + - Transactions + summary: List Customer Transactions + operationId: Transactions_listCustomerTransactions + security: + - HTTPBearer: [] + description: >- + Returns a list of transactions from a customer's **bank accounts**. It + does not include transactions between the **bank account** and + **brokerage account**. + parameters: + - required: true + schema: + title: Customer Id + type: string + format: uuid + name: customer_id + in: path + - description: Ordered by the transaction timestamp, descending by default. + required: false + schema: + $ref: '#/components/schemas/Order' + name: order + in: query + - required: false + schema: + title: Account[] + items: + type: string + format: uuid + type: array + name: account[] + in: query + - required: false + schema: + title: Filter[Card] + items: + type: string + format: uuid + type: array + name: filter[card] + in: query + - required: false + schema: + title: Filter[Portal] + items: + type: string + format: uuid + type: array + name: filter[portal] + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/TransactionType' + type: array + name: filter[types] + in: query + - required: false + schema: + title: Timestamp From + type: string + format: date-time + name: timestamp_from + in: query + - required: false + schema: + title: Timestamp To + type: string + format: date-time + name: timestamp_to + in: query + - required: false + schema: + title: Cursor + type: string + default: '' + name: cursor + in: query + - required: false + schema: + title: Limit + type: integer + exclusiveMinimum: 0 + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + title: 'ATM ABCD ID: TERM99 at 26 HOUSTON TEXAS CIR, HOUSTON TX' + transaction_type: CARD + transaction_type_title: ATM Withdrawal + card_transaction: + location: + street_address: 26 HOUSTON TEXAS CIR + city: HOUSTON + state: TX + country: US + counterparty: ABCD + terminal_id: TERM99 + merchant_type: ATM + pre_authorization: true + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + title: From VENMO (PAYMENT) + transaction_type: ACH + sub_title: 'IIN: 596425331 REF: 91000010211227' + transaction_type_title: ACH Electronic Debit + ach_transaction: + company_name: VENMO + company_entry_description: PAYMENT + individual_identification_number: '596425331' + trace_number: '091000010211227' + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + title: From External Account + transaction_type: WIRE + sub_title: 9999XXXX + transaction_type_title: Wire Transfer In + wire_transaction: + reference_number: 9999XXXX + counterparty_name: John Smith + wire_id: 4854014d-5540-4f0c-9efe-a0137f01e1da + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + title: 2022-06 Card Cash Back + transaction_type: CASH_BACK + transaction_type_title: Card Cash Back + cash_back_transaction: + period: 2022-06 + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01301 + object_type: Transaction + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/transactions: + get: + tags: + - Transactions + summary: List Account Transactions + operationId: Transactions_listForAccount + security: + - HTTPBearer: [] + description: >- + Returns a list of **bank account** transactions. It does not include + transactions between the **bank account** and **brokerage account**. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - description: Ordered by the transaction timestamp, descending by default. + required: false + schema: + $ref: '#/components/schemas/Order' + name: order + in: query + - required: false + schema: + title: Filter[Card] + items: + type: string + format: uuid + type: array + name: filter[card] + in: query + - required: false + schema: + title: Filter[Portal] + items: + type: string + format: uuid + type: array + name: filter[portal] + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/TransactionType' + type: array + name: filter[types] + in: query + - required: false + schema: + title: Timestamp From + type: string + format: date-time + name: timestamp_from + in: query + - required: false + schema: + title: Timestamp To + type: string + format: date-time + name: timestamp_to + in: query + - required: false + schema: + title: Cursor + type: string + default: '' + name: cursor + in: query + - required: false + schema: + title: Limit + type: integer + exclusiveMinimum: 0 + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + title: 'ATM ABCD ID: TERM99 at 26 HOUSTON TEXAS CIR, HOUSTON TX' + transaction_type: CARD + transaction_type_title: ATM Withdrawal + card_transaction: + location: + street_address: 26 HOUSTON TEXAS CIR + city: HOUSTON + state: TX + country: US + counterparty: ABCD + terminal_id: TERM99 + merchant_type: ATM + pre_authorization: true + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + title: From VENMO (PAYMENT) + transaction_type: ACH + sub_title: 'IIN: 596425331 REF: 91000010211227' + transaction_type_title: ACH Electronic Debit + ach_transaction: + company_name: VENMO + company_entry_description: PAYMENT + individual_identification_number: '596425331' + trace_number: '091000010211227' + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + title: From External Account + transaction_type: WIRE + sub_title: 9999XXXX + transaction_type_title: Wire Transfer In + wire_transaction: + reference_number: 9999XXXX + counterparty_name: John Smith + wire_id: 4854014d-5540-4f0c-9efe-a0137f01e1da + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + title: 2022-06 Card Cash Back + transaction_type: CASH_BACK + transaction_type_title: Card Cash Back + cash_back_transaction: + period: 2022-06 + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01301 + object_type: Transaction + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/transactions/{transaction_id}: + get: + tags: + - Transactions + summary: Get Account Transaction + operationId: Transactions_getSpecificTransaction + security: + - HTTPBearer: [] + description: >- + Returns a specific transaction for a specific account, based on the + provided account_id and transaction_id in question. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: Transaction Id + type: string + format: uuid + name: transaction_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Transaction' + example: + id: 05964326-49b7-4e74-9783-81137ee3cf3b + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + title: From External Account + transaction_type: WIRE + sub_title: 9999XXXX + transaction_type_title: Wire Transfer In + wire_transaction: + reference_number: 9999XXXX + counterparty_name: John Smith + wire_id: 4854014d-5540-4f0c-9efe-a0137f01e1da + object_type: Transaction + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/customers/{customer_id}/trades: + get: + tags: + - Trades + summary: List Customer Trades + operationId: Trades_listCustomerTrades + security: + - HTTPBearer: [] + description: Returns a list of trades from a customer's **brokerage accounts**. + parameters: + - required: true + schema: + title: Customer Id + type: string + format: uuid + name: customer_id + in: path + - required: false + schema: + title: Account[] + items: + type: string + format: uuid + type: array + name: account[] + in: query + - required: false + schema: + title: Trade Datetime From + type: string + format: date-time + name: trade_datetime_from + in: query + - required: false + schema: + title: Trade Datetime To + type: string + format: date-time + name: trade_datetime_to + in: query + - required: false + schema: + title: Cursor + type: string + default: '' + name: cursor + in: query + - required: false + schema: + title: Limit + type: integer + exclusiveMinimum: 0 + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TradeListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - description: US T-Bill + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + trade_datetime: '2023-01-01T12:00:00+00:00' + settled_date: '2023-01-01' + is_settled: true + activity: BUY + cusip: 912796RF6 + notional: + value: 20935404 + currency: USD + formatted: $209,354.04 + quantity: 2123 + price: '98.612361' + maturity_date: '2023-01-30' + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + yield_to_maturity: '0.0468' + tradable_id: 912797HF7 + object_type: Trade + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/trades: + get: + tags: + - Trades + summary: List Account Trades + operationId: Trades_getAccountTransactions + security: + - HTTPBearer: [] + description: >- + Get a list of trades. This is the equivalent of fetching transactions + for the **brokerage** account. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: false + schema: + title: Trade Datetime From + type: string + format: date-time + name: trade_datetime_from + in: query + - required: false + schema: + title: Trade Datetime To + type: string + format: date-time + name: trade_datetime_to + in: query + - required: false + schema: + title: Cursor + type: string + default: '' + name: cursor + in: query + - required: false + schema: + title: Limit + type: integer + exclusiveMinimum: 0 + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TradeListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - description: US T-Bill + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + trade_datetime: '2023-01-01T12:00:00+00:00' + settled_date: '2023-01-01' + is_settled: true + activity: BUY + cusip: 912796RF6 + notional: + value: 20935404 + currency: USD + formatted: $209,354.04 + quantity: 2123 + price: '98.612361' + maturity_date: '2023-01-30' + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + yield_to_maturity: '0.0468' + tradable_id: 912797HF7 + object_type: Trade + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/trades/{trade_id}/confirmation: + get: + tags: + - Trades + summary: Get Trade Confirmation + operationId: Trades_getConfirmation + security: + - HTTPBearer: [] + description: >- + Get a trade's trade confirmation. + + +
+ + + Trade confirmations are sensitive documents. For security reasons, we + return trade confirmations as PDFs through a URL with a 10-minute TTL. + Trade confirmation PDFs should be fetched and served just-in-time, not + stored in databases. Trades with "activity": "MATURITY" do not have + trade confirmations. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: Trade Id + type: string + format: uuid + name: trade_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TradeConfirmation' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/applications: + post: + tags: + - Individuals + summary: Create Application + operationId: Individuals_createApplication + security: + - HTTPBearer: [] + description: >- + Create an application. You must [apply](https://docs.jiko.io/reference) + to potentially create a customer using the application, assuming KYC is + successful. + + +
+ + + When creating an application, keep in mind that customers must be at + least 18 years old to open an account with Jiko. + parameters: + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InternationalApplicationRequest' + example: + identification_number: '999999999' + name: + first_name: Jiko + last_name: Customer + email: jiko@example.com + date_of_birth: '1970-01-01' + investment_profile: + income: BETWEEN_100K_AND_250K + net_worth: BETWEEN_1M_AND_5M + occupation: Investor + employment_status: EMPLOYED + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + phone_number: '+14155550100' + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/InternationalApplication' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T13:00:00+00:00' + status: CREATED + exception_reasons: [] + phone_number: '+14155550100' + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + email: jiko@example.com + name: + first_name: Jiko + last_name: Customer + date_of_birth: + date_of_birth: '1970-01-01' + investment_profile: + income: BETWEEN_100K_AND_250K + net_worth: BETWEEN_1M_AND_5M + occupation: Investor + employment_status: EMPLOYED + documents: [] + id_verification_documents_needed: false + identification_number_verification_document_needed: false + address_verification_document_needed: false + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: US + citizenship_country: US + object_type: InternationalApplication + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/applications/{application_id}: + get: + tags: + - Individuals + summary: Get Application + operationId: Individuals_getApplication + security: + - HTTPBearer: [] + description: Fetch and observe an existing application. + parameters: + - required: true + schema: + title: Application Id + type: string + format: uuid + name: application_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/InternationalApplication' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T13:00:00+00:00' + status: CREATED + exception_reasons: [] + phone_number: '+14155550100' + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + email: jiko@example.com + name: + first_name: Jiko + last_name: Customer + date_of_birth: + date_of_birth: '1970-01-01' + investment_profile: + income: BETWEEN_100K_AND_250K + net_worth: BETWEEN_1M_AND_5M + occupation: Investor + employment_status: EMPLOYED + documents: [] + id_verification_documents_needed: false + identification_number_verification_document_needed: false + address_verification_document_needed: false + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: US + citizenship_country: US + object_type: InternationalApplication + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/applications/{application_id}/apply: + post: + tags: + - Individuals + summary: Apply + operationId: Individuals_initiateKycSubmission + security: + - HTTPBearer: [] + description: >- + Initiate automatic KYC. Transitions the application from `CREATED` + status to `SUBMITTED` status. Once the async KYC process is completed, + the application will move from `SUBMITTED` to another status. + parameters: + - required: true + schema: + title: Application Id + type: string + format: uuid + name: application_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/InternationalApplication' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T13:00:00+00:00' + status: DOCUMENTS_NEEDED + exception_reasons: [] + phone_number: '+14155550100' + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + email: jiko@example.com + name: + first_name: Jiko + last_name: Customer + date_of_birth: + date_of_birth: '1970-01-01' + investment_profile: + income: BETWEEN_100K_AND_250K + net_worth: BETWEEN_1M_AND_5M + occupation: Investor + employment_status: EMPLOYED + customer_id: 160c0c4b-9966-4dc1-a916-8407eb10d74e + documents: + - id: dcd70de2-9f18-4918-bd96-c3972c85dc4e + type: ID_FRONT + status: PENDING_UPLOAD + - id: 62cd7ac9-d882-43f5-ac19-ad85c0c5c533 + type: ID_BACK + status: PENDING_UPLOAD + - id: 1bd78e61-c86f-45b8-8848-34a51c863166 + type: PASSPORT + status: PENDING_UPLOAD + - id: 0ceee47c-946e-4a6d-8951-96e1f630a59c + type: SELFIE + status: PENDING_UPLOAD + id_verification_documents_needed: true + identification_number_verification_document_needed: false + address_verification_document_needed: false + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: US + citizenship_country: US + object_type: InternationalApplication + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/agreements: + get: + tags: + - Individuals + summary: List Agreements + operationId: Individuals_getAgreements + security: + - HTTPBearer: [] + description: >- + Partner agreements and disclosures are available through the API in a + versioned bundle. The version of the fetched bundle must be attached to + all incoming applications. + parameters: + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Agreement' + example: + version: 1.0.0 + release_date: '2023-01-01' + documents: + - title: Jiko Privacy Policy + pdf_download_url: https://example.com/path-to-agreement-pdf + type: PRIVACY_POLICY + category: GENERAL + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/business-applications: + post: + tags: + - Businesses + summary: Create Application + operationId: Businesses_createApplication + security: + - HTTPBearer: [] + description: >- + Create a Business Application. The **Business Application** object + contains general information related to the business and the overall + status of the application. + + +
+ + + See the [Onboarding Businesses + Guide](https://docs.jiko.io/guides/onboarding-businesses) for more. + parameters: + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationRequest' + example: + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationResponse' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T12:00:00+00:00' + status: CREATED + exception_reasons: [] + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/business-applications/{application_id}: + get: + tags: + - Businesses + summary: Get Application + operationId: Businesses_getApplication + security: + - HTTPBearer: [] + description: Fetch a Business Application. + parameters: + - required: true + schema: + title: Application Id + type: string + format: uuid + name: application_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationResponse' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T12:00:00+00:00' + status: APPROVED + exception_reasons: [] + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + customer_id: 160c0c4b-9966-4dc1-a916-8407eb10d74e + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + patch: + tags: + - Businesses + summary: Update Application + operationId: Businesses_updateApplication + security: + - HTTPBearer: [] + parameters: + - required: true + schema: + title: Application Id + type: string + format: uuid + name: application_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationRequest' + example: + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationResponse' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T12:00:00+00:00' + status: SUBMITTED + exception_reasons: [] + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/business-applications/{application_id}/apply: + post: + tags: + - Businesses + summary: Apply + operationId: Businesses_submitApplication + security: + - HTTPBearer: [] + description: >- + When the Business Application object has been completed, along with + Related Party Applications and Document Requests (see the [Onboarding + Businesses Guide](https://docs.jiko.io/guides/onboarding-businesses)), + call this endpoint to submit the business application for review. + parameters: + - required: true + schema: + title: Application Id + type: string + format: uuid + name: application_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationResponse' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T12:00:00+00:00' + status: SUBMITTED + exception_reasons: [] + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/business-applications/{application_id}/related-party-applications: + get: + tags: + - Businesses + summary: List Related Party Application + operationId: Businesses_listRelatedPartyApplications + security: + - HTTPBearer: [] + parameters: + - required: true + schema: + title: Application Id + type: string + format: uuid + name: application_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: >- + #/components/schemas/BusinessesListRelatedPartyApplicationsResponse + example: + - title: CEO + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + post: + tags: + - Businesses + summary: Create Related Party Application + operationId: Businesses_createRelatedPartyApplication + security: + - HTTPBearer: [] + parameters: + - required: true + schema: + title: Application Id + type: string + format: uuid + name: application_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedPartyApplicationRequest' + example: + title: CEO + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedPartyApplicationResponse' + example: + title: CEO + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/business-applications/{application_id}/related-party-applications/{related_party_application_id}: + delete: + tags: + - Businesses + summary: Delete Related Party Application + operationId: Businesses_deleteRelatedPartyApplication + security: + - HTTPBearer: [] + parameters: + - required: true + schema: + title: Application Id + type: string + format: uuid + name: application_id + in: path + - required: true + schema: + title: Related Party Application Id + type: string + format: uuid + name: related_party_application_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + patch: + tags: + - Businesses + summary: Update Related Party Application + operationId: Businesses_updateRelatedPartyApplication + security: + - HTTPBearer: [] + parameters: + - required: true + schema: + title: Application Id + type: string + format: uuid + name: application_id + in: path + - required: true + schema: + title: Related Party Application Id + type: string + format: uuid + name: related_party_application_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedPartyApplicationRequest' + example: + title: CEO + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedPartyApplicationResponse' + example: + title: CEO + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/customers/{customer_id}/counterparties: + get: + tags: + - Counterparties + summary: List Counterparties + operationId: Counterparties_listForCustomer + security: + - HTTPBearer: [] + description: List all counterparties for a customer. + parameters: + - required: true + schema: + title: Customer Id + type: string + format: uuid + name: customer_id + in: path + - required: false + schema: + title: Cursor + type: string + default: '' + name: cursor + in: query + - required: false + schema: + title: Limit + type: integer + exclusiveMinimum: 0 + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListCounterpartiesResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + type: ACH + ach: + time_created: '2023-01-15T14:00:00+00:00' + verification_type: MICRO_DEPOSITS + status: IN_PROGRESS + account_number: '123456789' + routing_number: '9876456' + name_on_account: External Accountholder + account_type: SAVINGS + institution_name: External Bank NA + plaid: + mask: '0000' + verification_status: PENDING_AUTOMATIC_VERIFICATION + object_type: CounterpartyPlaid + wire: + time_created: '2023-01-15T14:00:00+00:00' + verification_type: INCOMING_WIRE + status: IN_PROGRESS + account_number: '1213456789' + routing_number: '9876456' + name_on_account: External Accountholder + account_type: SAVINGS + institution_name: External Bank NA + object_type: Counterparty + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/customers/{customer_id}/counterparties/{counterparty_id}: + get: + tags: + - Counterparties + summary: Get Counterparty + operationId: Counterparties_getVerificationStatus + security: + - HTTPBearer: [] + description: >- + Poll this endpoint to monitor the progress of the verification process + for a single counterparty. + + +
+ + + > ### Plaid: + + > If `plaid.verification_status` is `PENDING_MANUAL_VERIFICATION`, the + user is in the Same Day Micro-deposits + flow and must return in 1-2 business days and go through the Plaid Link + flow again, this time using a new Link token where the *counterparty_id* + is passed to Jiko. + parameters: + - required: true + schema: + title: Customer Id + type: string + format: uuid + name: customer_id + in: path + - required: true + schema: + title: Counterparty Id + type: string + format: uuid + name: counterparty_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Counterparty' + example: + id: b5a776db-8960-4157-afe5-519b6708bb79 + type: WIRE + wire: + time_created: '2023-01-15T14:00:00+00:00' + verification_type: INCOMING_WIRE + status: IN_PROGRESS + account_number: '1213456789' + routing_number: '9876456' + name_on_account: External Accountholder + account_type: SAVINGS + institution_name: External Bank NA + object_type: Counterparty + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/cards: + get: + tags: + - Manage Cards + summary: List Account Cards + operationId: ManageCards_getAccountCards + security: + - HTTPBearer: [] + description: >- + Get all cards for a specific account. Includes the `card_id` and + metadata, but sensitive data like CVV's, expiration dates and card + numbers are omitted. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: false + schema: + title: Limit + type: integer + default: 100 + name: limit + in: query + - required: false + schema: + title: Cursor + type: string + name: cursor + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/CardStatus' + type: array + uniqueItems: true + name: filter[status] + in: query + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CardListResponse' + example: + offset: 0 + count: 1 + items: + - card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + name: Jiko Virtual Debit Card + status: OPEN + type: VIRTUAL + object_type: List + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/cards/{card_id}/status: + get: + tags: + - Manage Cards + summary: Get Card Status + operationId: ManageCards_getStatus + security: + - HTTPBearer: [] + description: Get a card's current status. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: Card Id + type: string + format: uuid + name: card_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CardStatusResponse' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + patch: + tags: + - Manage Cards + summary: Set Card Status + operationId: ManageCards_setCardStatus + security: + - HTTPBearer: [] + description: >- + Set a card's status. Note that once a card's status is set to `CLOSED`, + it can never be used again. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: Card Id + type: string + format: uuid + name: card_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChangeCardStatusRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CardStatusResponse' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/cards/{card_id}/pin: + post: + tags: + - Manage Cards + summary: Set Card PIN + operationId: ManageCards_setCardPin + security: + - HTTPBearer: [] + description: Set PIN for physical cards (by `card_id`) before they are activated. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: Card Id + type: string + format: uuid + name: card_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CardPinBase' + example: + encrypted_pin: >- + KzJXZ0DgR/rvWnxexTeObSsOaByNGHKt67kLwbAEWULV4szPTeOTp1wSVQalGn/ykE0qgEUV8PEZGUbyvfj3j0gpuxIMdgbxg0ujXp6UfiuOMIbmP+HDg4E2BoSduh8XygMhwiWycnqA6lnKHRjGSb8vOwnNgxTGuUX9w3k0NJl3u62JWs2FzSa/HedpxKu+U1VTRmW9Y7tee7QYC/72xseV2wKMx+iFG3Sw2D9ruC4sgVE3tdi7E9FBsSVWawle9UrTF+wdX+cfImb7lKI2Pw5MiEf29xe7moNU8RHzGgyOrbyQcx0/j8t8mLqHSs/ioRGeSNevw4pXlpJBRD+hamyRdVQdaLrWB5xEKx9Ih9fGlMYE5RJHWMveB0NQ2Oxl2h/4/Om/bbP0JDA1doY6l/ovkey9lu0c494R05tdWmch93v+f/SqAoBcXf4hDeUgLhWkRNykzzwoQOACFNcBk9TUWJH8S90TYQM3sdgIfcNFru45VGJa5jlyheqNYeU3EqsWyVFmZAJUFJUSBMJdAVkSg5jxDPdzyk7GLrk5xu2N1orq4NKzR8O6WL+PhFtJF/7pZDWawq8TZRX3nqbyYUY+5ZlnBEVXywsn0L5Fp6od4oAelyhzrjzMlhtEMpuwOFhLvcb3Fm0Z4EIDeX6l3MIhDTDExKxOJsCLG2dbbIA= + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CardPinResponse' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/cards/{card_id}/close: + post: + tags: + - Manage Cards + summary: Close Card + operationId: ManageCards_closeCard + security: + - HTTPBearer: [] + description: >- + Close a card, virtual or physical. Physical cards require a + `closure_reason`. If the reason is `STOLEN` or `LOST`, a + `lost_stolen_date` is required. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: Card Id + type: string + format: uuid + name: card_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CloseCardRequest' + example: + closure_reason: STOLEN + lost_stolen_date: '2023-01-01' + required: true + responses: + '204': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/card-orders: + get: + tags: + - Physical Cards + summary: List Card Orders + operationId: PhysicalCards_listCardOrders + security: + - HTTPBearer: [] + description: List all card orders for this account. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: false + schema: + title: Cursor + type: string + default: '' + name: cursor + in: query + - required: false + schema: + title: Limit + type: integer + exclusiveMinimum: 0 + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PhysicalCardOrderListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + card_order_id: d66e74c4-66f9-4937-8518-1a94f39ba0f9 + status: INITIAL + object_type: MinimalPhysicalCardOrderResponse + object_type: CursorList + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + post: + tags: + - Physical Cards + summary: Create Physical Card Order + operationId: PhysicalCards_createOrder + security: + - HTTPBearer: [] + description: >- + Order a new, physical card for an account. It will be delivered to the + specified address. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PhysicalCardOrder' + example: + name_on_card: Jiko Customer + shipping_address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PhysicalCardOrderResponse' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + card_order_id: d66e74c4-66f9-4937-8518-1a94f39ba0f9 + status: INITIAL + name_on_card: Jiko Customer + shipping_address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + object_type: PhysicalCardOrderResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/card-orders/{card_order_id}: + get: + tags: + - Physical Cards + summary: Get Card Order + operationId: PhysicalCards_getOrderInfo + security: + - HTTPBearer: [] + description: Retrieve card order information by provided `card_order_id`. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: Card Order Id + type: string + format: uuid + name: card_order_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PhysicalCardOrderResponse' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + card_order_id: d66e74c4-66f9-4937-8518-1a94f39ba0f9 + status: INITIAL + name_on_card: Jiko Customer + shipping_address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + object_type: PhysicalCardOrderResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/virtual-cards/{card_id}: + post: + tags: + - Virtual Cards + summary: Get Virtual Card + operationId: VirtualCards_getDetail + security: + - HTTPBearer: [] + description: >- + Retrieve virtual card detail by given `card_id`. Generate a single-use + 4096-bit RSA key-pair at the (end user) client side and pass the public + key PEM encoded upstream in PKCS#1 or PKCS#1.5 format to ensure + confidentiality and encryption of the card's PAN, CVV and expiration + date. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: Card Id + type: string + format: uuid + name: card_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PublicKeyRequest' + example: + public_key: "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzmZv8spzSU9z+/bhFzX0\r\ns4xVXE9ZOApQUMoM3Q1VDiJujyWJ61uoTsWT1uQlIXHdUQ3NcXw0WYDUEaM8fj1b\r\nB2k1zSXmRD4VmxAIRNVfs3Cp3GKqC/WjyvDw25+SYBFwiaYJblpyZPiunXvXRyK8\r\nvdDaPliwTN5p7pjHQvcfXOl20ZtWnZTGMulJ+smNCYKWckW1hEOMjJP8FLMJpSHa\r\n6yGOpAYAxoHxodiJCI4X6fG206gBtyFps1CyxCz8WDjALqJYfeArTFv7/2AyuVCF\r\n5zLE7tzPrJeVxfqa+CI+7mWFhEKZLAd/PEzEL7P2VZr9BRd0lyxBipEEG/DGMEvY\r\n1dcx+3J56ZxVURAqeXPGkqVfz/IdisQt/okp6vSVKQdImeyzpJvwvBc7T7tKyRZR\r\nvtL8XLYzZBujqWCezMxU97TAb7BlQ2nPJCQFMZD7y1KldgWuGnjXha1TFIYvfrYW\r\noDFK221Z6LYlKWeRFGXhoNOX1Qm/CX3wi9Tfo01LTxbCY2Y1mbv6e8Xt12MzhicD\r\nZsFvVrtRaVrjmqXXDq8X2r7puPTLOQf7Dow3944XnTZQURE4oPIwCfTBmfMow+TB\r\n+ZUYWRXwg0/hl9AOBSGLVNlaGZD8sAu98knish5LJv34lx5mIiLLpGpIt+mzZikU\r\nFt9siIkltvk49qcmTuI8GJUCAwEAAQ==\r\n-----END PUBLIC KEY-----" + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualCardResponse' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + encrypted_pan: LBHyVQggqNZvbYriaL8omZSFnQfS4yMFEO8hpVmgrtn70uYz56... + encrypted_cvv: GLuGA7uI2iYrzE03XkKMH1IJZD6cxR+WJmgw9Z0VuervNqnkUq... + encrypted_expiration: amAxcZuURFfOi38kbM1LXfa6gBmuaSCt10Kic8243kM1V+Llsb... + object_type: VirtualCardResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + delete: + tags: + - Virtual Cards + summary: Close Virtual Card + operationId: VirtualCards_closeCard + security: + - HTTPBearer: [] + description: Close a virtual card. This is an irreversible action. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: Card Id + type: string + format: uuid + name: card_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/virtual-cards: + post: + tags: + - Virtual Cards + summary: Create Virtual Card + operationId: VirtualCards_createCard + security: + - HTTPBearer: [] + description: >- + Create a virtual card for an account. Generate a single-use 4096-bit RSA + key-pair at the (end user) client side and pass the public key PEM + encoded upstream in PKCS#1 or PKCS#1.5 format to ensure confidentiality + and encryption of the card's PAN, CVV and expiration date. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PublicKeyRequest' + example: + public_key: "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzmZv8spzSU9z+/bhFzX0\r\ns4xVXE9ZOApQUMoM3Q1VDiJujyWJ61uoTsWT1uQlIXHdUQ3NcXw0WYDUEaM8fj1b\r\nB2k1zSXmRD4VmxAIRNVfs3Cp3GKqC/WjyvDw25+SYBFwiaYJblpyZPiunXvXRyK8\r\nvdDaPliwTN5p7pjHQvcfXOl20ZtWnZTGMulJ+smNCYKWckW1hEOMjJP8FLMJpSHa\r\n6yGOpAYAxoHxodiJCI4X6fG206gBtyFps1CyxCz8WDjALqJYfeArTFv7/2AyuVCF\r\n5zLE7tzPrJeVxfqa+CI+7mWFhEKZLAd/PEzEL7P2VZr9BRd0lyxBipEEG/DGMEvY\r\n1dcx+3J56ZxVURAqeXPGkqVfz/IdisQt/okp6vSVKQdImeyzpJvwvBc7T7tKyRZR\r\nvtL8XLYzZBujqWCezMxU97TAb7BlQ2nPJCQFMZD7y1KldgWuGnjXha1TFIYvfrYW\r\noDFK221Z6LYlKWeRFGXhoNOX1Qm/CX3wi9Tfo01LTxbCY2Y1mbv6e8Xt12MzhicD\r\nZsFvVrtRaVrjmqXXDq8X2r7puPTLOQf7Dow3944XnTZQURE4oPIwCfTBmfMow+TB\r\n+ZUYWRXwg0/hl9AOBSGLVNlaGZD8sAu98knish5LJv34lx5mIiLLpGpIt+mzZikU\r\nFt9siIkltvk49qcmTuI8GJUCAwEAAQ==\r\n-----END PUBLIC KEY-----" + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualCardResponse' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + encrypted_pan: LBHyVQggqNZvbYriaL8omZSFnQfS4yMFEO8hpVmgrtn70uYz56... + encrypted_cvv: GLuGA7uI2iYrzE03XkKMH1IJZD6cxR+WJmgw9Z0VuervNqnkUq... + encrypted_expiration: amAxcZuURFfOi38kbM1LXfa6gBmuaSCt10Kic8243kM1V+Llsb... + object_type: VirtualCardResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/events/types: + get: + tags: + - Events + summary: List Event Types + operationId: Events_listEventTypes + security: + - HTTPBearer: [] + description: List all event types. + parameters: + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/EventListResponse' + example: + offset: 0 + count: 14 + items: + - event: application.approved + object_type: EventType + - event: application.documents_needed + object_type: EventType + - event: application.manual_review + object_type: EventType + - event: application.rejected + object_type: EventType + - event: card.status.closed + object_type: EventType + - event: card.status.frozen + object_type: EventType + - event: card.status.locked + object_type: EventType + - event: card.status.open + object_type: EventType + - event: card.transaction.approved + object_type: EventType + - event: card.transaction.rejected + object_type: EventType + - event: transfers.ach.in.success + object_type: EventType + - event: transfers.ach.in.rejected + object_type: EventType + - event: transfers.ach.out.success + object_type: EventType + - event: transfers.ach.out.rejected + object_type: EventType + object_type: List + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/events: + get: + tags: + - Events + summary: List Events + operationId: Events_getPastEvents + security: + - HTTPBearer: [] + description: List all past events. + parameters: + - required: false + schema: + title: Subscription Id + type: string + format: uuid + name: subscription_id + in: query + - required: false + schema: + title: After + type: string + format: date-time + name: after + in: query + - required: false + schema: + title: Cursor + type: string + default: '' + name: cursor + in: query + - required: false + schema: + title: Limit + type: integer + exclusiveMinimum: 0 + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CursorListResponse_PartnerEvent_' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - event: + event_id: a7a26ff2-e851-45b6-9634-d595f45458b7 + timestamp: '2023-01-01T14:00:00+00:00' + payload: + application_id: 48ac72d0-a829-4896-a067-dcb1c2b0f30c + event_type: application.approved + delivery_attempts: + - delivery_attempt_id: 5326238f-7f19-4e5f-b374-402eed7b1c7b + subscription_id: aa11a4c2-a467-43db-b413-c4ab0f5cf627 + success: true + response_code: 200 + response_message: OK + called_at: '2023-01-01T14:00:00+00:00' + object_type: PartnerEvent + object_type: CursorList + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/customers/{customer_id}/counterparties/plaid/link-token: + post: + tags: + - 'Counterparties: Plaid' + summary: Create Plaid Link Token + operationId: CounterpartiesPlaid_createLinkToken + security: + - HTTPBearer: [] + description: >- + To initiate the Plaid Link flow in your app, a link token must be + created to identify the data flowing between your app, Plaid and Jiko. + If the Plaid Link flow has to be accessed again later to complete + account ownership verification (Same Day Micro-deposits), you must + include the *counterparty_id* for the counterparty in question. + *redirect_uri* allows you to use OAuth. + + +
+ + + **NOTE**: `android_package_name` and `redirect_uri` are mutually + exclusive. Only one should be provided, depending on your use case. + parameters: + - required: true + schema: + title: Customer Id + type: string + format: uuid + name: customer_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PlaidLinkTokenRequest' + example: + client_name: My App + redirect_uri: https://example.com/plaid-oauth + android_package_name: com.example.myapp + counterparty_id: fd38dae9-b300-4017-a630-101c4279eafd + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PlaidLinkToken' + example: + link_token: link-af1a0311-da53-4636-b754-dd15cc058176 + expiration: '2023-01-01T12:00:00+00:00' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/customers/{customer_id}/counterparties/plaid: + post: + tags: + - 'Counterparties: Plaid' + summary: Create Plaid Counterparties + operationId: CounterpartiesPlaid_createPlaidCounterparties + security: + - HTTPBearer: [] + description: >- + Once your user has completed the Plaid Link flow, you must forward some + data from Plaid to Jiko to create the counterparty. This includes + information about the third party financial institution and the specific + accounts selected by the user. The *institution_id* is required in all + cases except in the Same Day Micro-deposits flow. + parameters: + - required: true + schema: + title: Customer Id + type: string + format: uuid + name: customer_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PlaidCreateCounterparties' + example: + public_token: public-b0e2c4ee-a763-4df5-bfe9-46a46bce993d + accounts: + - id: blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo + name: Plaid Checking + mask: '0000' + institution_id: ins_109508 + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PlaidCreateCounterpartiesResponse' + example: + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + type: ACH + ach: + time_created: '2023-01-15T14:00:00+00:00' + verification_type: MICRO_DEPOSITS + status: IN_PROGRESS + account_number: '123456789' + routing_number: '9876456' + name_on_account: External Accountholder + account_type: SAVINGS + institution_name: External Bank NA + plaid: + mask: '0000' + verification_status: PENDING_AUTOMATIC_VERIFICATION + object_type: CounterpartyPlaid + object_type: Counterparty + object_type: PlaidCreateCounterpartiesResponse + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/customers/{customer_id}/counterparties/{counterparty_id}/plaid/verify: + post: + tags: + - 'Counterparties: Plaid' + summary: Verify Plaid Counterparty + operationId: CounterpartiesPlaid_completeVerification + security: + - HTTPBearer: [] + description: >- + If and when a user completes the Same Day Micro-deposits flow, call this + endpoint to notify it has been completed. Then, go back to polling the + counterparty until verification is complete. + parameters: + - required: true + schema: + title: Customer Id + type: string + format: uuid + name: customer_id + in: path + - required: true + schema: + title: Counterparty Id + type: string + format: uuid + name: counterparty_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/subscriptions: + get: + tags: + - Subscriptions + summary: List Subscriptions + operationId: Subscriptions_listPartnerSubscriptions + security: + - HTTPBearer: [] + description: List a partner's subscriptions. + parameters: + - required: false + schema: + title: Cursor + type: string + default: '' + name: cursor + in: query + - required: false + schema: + title: Limit + type: integer + exclusiveMinimum: 0 + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CursorListResponse_Subscription_' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - description: Jiko API Webhook Subscriptions + events: + - application.approved + - application.documents_needed + - application.manual_review + - application.rejected + - card.status.closed + - card.status.frozen + - card.status.locked + - card.status.open + - card.transaction.approved + - card.transaction.rejected + - transfers.ach.in.success + - transfers.ach.in.rejected + - transfers.ach.out.success + - transfers.ach.out.rejected + url: https://example.com/webhooks + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + time_created: '2023-01-01T14:00:00+00:00' + updated_at: '2023-01-01T14:00:00+00:00' + status: enabled + object_type: Subscription + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + post: + tags: + - Subscriptions + summary: Create Subscription + operationId: Subscriptions_createWebhookSubscription + security: + - HTTPBearer: [] + description: >- + Creates a webhook subscription for the specified event types and the + given URL. + parameters: + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriptionRequest' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success + shared_secret: '1234567890123456' + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + time_created: '2023-01-01T14:00:00+00:00' + updated_at: '2023-01-01T14:00:00+00:00' + status: enabled + object_type: Subscription + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/subscriptions/{subscription_id}: + get: + tags: + - Subscriptions + summary: Get Subscription + operationId: Subscriptions_getWebhookSubscription + security: + - HTTPBearer: [] + description: Retrieve a webhook subscription by given `subscription_id`. + parameters: + - required: true + schema: + title: Subscription Id + type: string + format: uuid + name: subscription_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + time_created: '2023-01-01T14:00:00+00:00' + updated_at: '2023-01-01T14:00:00+00:00' + status: enabled + object_type: Subscription + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + delete: + tags: + - Subscriptions + summary: Delete Subscription + operationId: Subscriptions_deleteWebhookSubscription + security: + - HTTPBearer: [] + description: Deletes a webhook subscription matching the given ID. + parameters: + - required: true + schema: + title: Subscription Id + type: string + format: uuid + name: subscription_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + patch: + tags: + - Subscriptions + summary: Update Subscription + operationId: Subscriptions_updateWebhookSubscription + security: + - HTTPBearer: [] + description: Updates webhook subscription by specified `subscription_id`. + parameters: + - required: true + schema: + title: Subscription Id + type: string + format: uuid + name: subscription_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriptionRequest' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success-new + shared_secret: '1234567890123456' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success-new + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + time_created: '2023-01-01T14:00:00+00:00' + updated_at: '2023-01-01T16:00:00+00:00' + status: enabled + object_type: Subscription + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/ach-originating: + get: + tags: + - ACH + summary: List ACH Originations + operationId: Ach_listAchOriginations + security: + - HTTPBearer: [] + description: List all ACH transfer originations. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: false + schema: + items: + $ref: '#/components/schemas/ACHStatus' + type: array + name: filter[status] + in: query + - required: false + schema: + $ref: '#/components/schemas/ACHDirection' + name: direction + in: query + - required: false + schema: + title: Cursor + type: string + default: '' + name: cursor + in: query + - required: false + schema: + title: Limit + type: integer + exclusiveMinimum: 0 + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CursorListResponse_ACHResponse_' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - counterparty_id: fd38dae9-b300-4017-a630-101c42791afd + direction: CREDIT + sec_code: WEB + payment_related_information: + - Transferring funds to Jiko from an external account + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + status: PROCESSED + time_created: '2023-01-01T14:00:00+00:00' + company_entry_description: Incoming ACH Transfer + object_type: ACHResponse + object_type: CursorList + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + post: + tags: + - ACH + summary: Create ACH Origination + operationId: Ach_originateTransaction + security: + - HTTPBearer: [] + description: >- + Originate an ACH transaction with the counterparty. + + This can only be done after creating a + [Counterparty](https://docs.jiko.io/reference) for the account. + + +
+ + + ### ACH Origination Limitations + + +
+ + + - All transfers that are below 25k and scheduled before 12:00 ET are + sent with settlement same-day + + - All transfers above 25k scheduled before 12:00 ET are sent with + settlement next day + + - All transfers scheduled after 12:00 ET follow the above rules the + following day + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ACHRequest' + example: + counterparty_id: fd38dae9-b300-4017-a630-101c4279eafd + direction: CREDIT + sec_code: WEB + payment_related_information: + - Transferring funds to Jiko from an external account + amount_usdc: 100000 + company_entry_description: ACH TXN IN + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ACHResponse' + example: + counterparty_id: fd38dae9-b300-4017-a630-101c42791afd + direction: CREDIT + sec_code: WEB + payment_related_information: + - Transferring funds to Jiko from an external account + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + status: PROCESSED + time_created: '2023-01-01T14:00:00+00:00' + company_entry_description: Incoming ACH Transfer + object_type: ACHResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/ach-originating/{transfer_id}: + get: + tags: + - ACH + summary: Get ACH Origination + operationId: Ach_getTransferOrigination + security: + - HTTPBearer: [] + description: Get a specific ACH transfer origination. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: Transfer Id + type: string + format: uuid + name: transfer_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ACHResponse' + example: + counterparty_id: fd38dae9-b300-4017-a630-101c42791afd + direction: CREDIT + sec_code: WEB + payment_related_information: + - Transferring funds to Jiko from an external account + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + status: PROCESSED + time_created: '2023-01-01T14:00:00+00:00' + company_entry_description: Incoming ACH Transfer + object_type: ACHResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/wires: + post: + tags: + - Wires + summary: Create Wire + operationId: Wires_initiateWireTransfer + security: + - HTTPBearer: [] + description: >- + Initiates a Wire Transfer. Wires can only be sent to accounts created + and verified via [Create + Counterparty](https://docs.jiko.io/reference/v2#tag/Counterparties/operation/create-counterparty-v2). + Initiating outgoing wire transfers isn’t available by default and must + be enabled — please contact your Jiko point-of-contact to learn more. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WireRequest' + example: + description: Wiring funds to external account + counterparty_id: fd38dae9-b300-4017-a630-101c4279eafd + amount_usdc: 1000000 + created_by: jiko@example.com + wire_id: 6b14d0c0-277f-4a32-b5ac-c2e1c7d99f15 + required: true + responses: + '201': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/transfers/on-us: + post: + tags: + - On-Us Transfers + summary: Create On-Us Transfer + operationId: OnUsTransfers_createTransfer + security: + - HTTPBearer: [] + description: >- + Initiates an On-Us Transfer between two Pockets. + + + On-Us Transfers can be made in three 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 + + + 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`. + parameters: + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OnUsTransferDetailsRequest' + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/OnUsTransfer' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + status: PENDING + transfer: + description: Disbursing funds from partner to customer + transfer_id: d4a2d8dd-7def-4545-a062-761683b9aa05 + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_FUNDING + source: '123456789' + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + fees: + - type: AUM_FEE + amount: + value: 10 + currency: USD + formatted: $0.10 + object_type: OnUsTransfer + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/transfers/on-us/{transfer_id}: + get: + tags: + - On-Us Transfers + summary: Get On-Us Transfer + operationId: OnUsTransfers_getById + security: + - HTTPBearer: [] + description: Gets a single on-us transfer by ID. + parameters: + - required: true + schema: + title: Transfer Id + type: string + format: uuid + name: transfer_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/OnUsTransfer' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + status: PENDING + transfer: + description: Disbursing funds from partner to customer + transfer_id: d4a2d8dd-7def-4545-a062-761683b9aa05 + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_FUNDING + source: '123456789' + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + fees: + - type: AUM_FEE + amount: + value: 10 + currency: USD + formatted: $0.10 + object_type: OnUsTransfer + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/customers/{customer_id}: + get: + tags: + - Customers + summary: Get Customer Data + operationId: Customers_getDetails + security: + - HTTPBearer: [] + description: Retrieve customer details for the customer given by the customer ID. + parameters: + - required: true + schema: + title: Customer Id + type: string + format: uuid + name: customer_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Customer' + example: + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + email: jiko@example.com + phone_number: '15551234567' + account_status: OPEN + type: INDIVIDUAL + name: + first_name: Jiko + last_name: Customer + date_of_birth: '1970-01-01' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/customers/{customer_id}/statements: + get: + tags: + - Statements + summary: List Customer Statements + operationId: Statements_listForCustomer + security: + - HTTPBearer: [] + description: Get all statements for all accounts of a specific customer. + parameters: + - required: true + schema: + title: Customer Id + type: string + format: uuid + name: customer_id + in: path + - required: false + schema: + title: Account[] + items: + type: string + format: uuid + type: array + name: account[] + in: query + - required: false + schema: + $ref: '#/components/schemas/Order' + name: order + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/StatementType' + type: array + default: [] + name: type[] + in: query + - description: Date formatted either `YYYY` or `YYYY-MM` + required: false + schema: + title: Key + description: Date formatted either `YYYY` or `YYYY-MM` + type: string + pattern: ^\d{4}(-\d{2})?$ + name: key + in: query + - required: false + schema: + title: Cursor + type: string + default: '' + name: cursor + in: query + - required: false + schema: + title: Limit + type: integer + exclusiveMinimum: 0 + default: 30 + lte: 150 + name: limit + in: query + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/StatementListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + type: BANK + key: '2023-01-01' + pdf_download_url: https://example.com/path-to-statement-pdf + time_created: '2023-01-15T14:00:00+00:00' + object_type: Statement + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/statements: + get: + tags: + - Statements + summary: List Account Statements + operationId: Statements_getAccountStatements + security: + - HTTPBearer: [] + description: >- + Lists all statements for an account. Partners can expect monthly + statements to be available by the 15th of every month. + + +
+ + + Bank and Broker dealer statements are sensitive documents. For security + reasons, these URLs have a 10 minute TTL. Therefore, they should be + fetched and served just-in-time, not stored in databases. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: false + schema: + $ref: '#/components/schemas/Order' + name: order + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/StatementType' + type: array + default: [] + name: type[] + in: query + - description: Date formatted either `YYYY` or `YYYY-MM` + required: false + schema: + title: Key + description: Date formatted either `YYYY` or `YYYY-MM` + type: string + pattern: ^\d{4}(-\d{2})?$ + name: key + in: query + - required: false + schema: + title: Cursor + type: string + default: '' + name: cursor + in: query + - required: false + schema: + title: Limit + type: integer + exclusiveMinimum: 0 + default: 30 + lte: 150 + name: limit + in: query + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/StatementListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + type: BANK + key: '2023-01-01' + pdf_download_url: https://example.com/path-to-statement-pdf + time_created: '2023-01-15T14:00:00+00:00' + object_type: Statement + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + deprecated: true + /api/v1/jiko-accounts/{account_id}/portals: + get: + tags: + - Portals + summary: List Portals + operationId: Portals_list + security: + - HTTPBearer: [] + description: Get a list of portals associated with an account. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListPortalsResponse' + example: + count: 1 + portals: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + routing_number: '123456789' + account_number: '987654321' + status: OPEN + name: Payroll + object_type: Portal + object_type: List + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + post: + tags: + - Portals + summary: Create Portal + operationId: Portals_createPortal + security: + - HTTPBearer: [] + description: Create a portal for an account. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PortalCreateRequest' + example: + name: Payroll + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Portal' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + routing_number: '123456789' + account_number: '987654321' + status: OPEN + name: Payroll + object_type: Portal + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/portals/{portal_id}: + get: + tags: + - Portals + summary: Get Account Portal + operationId: Portals_getPortal + security: + - HTTPBearer: [] + description: Get a specific portal associated with an account. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: Portal Id + type: string + format: uuid + name: portal_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Portal' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + routing_number: '123456789' + account_number: '987654321' + status: OPEN + name: Payroll + object_type: Portal + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + patch: + tags: + - Portals + summary: Update Portal + operationId: Portals_updateName + security: + - HTTPBearer: [] + description: Update a portal's name. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: Portal Id + type: string + format: uuid + name: portal_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PortalUpdateRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Portal' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + routing_number: '123456789' + account_number: '987654321' + status: OPEN + name: Payroll + object_type: Portal + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/jiko-accounts/{account_id}/portals/{portal_id}/close: + post: + tags: + - Portals + summary: Close Portal + operationId: Portals_closePortal + security: + - HTTPBearer: [] + description: Close a portal. This is an irreversible action. + parameters: + - required: true + schema: + title: Account Id + type: string + format: uuid + name: account_id + in: path + - required: true + schema: + title: Portal Id + type: string + format: uuid + name: portal_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + - required: true + schema: + title: X-Jiko-Signature + type: string + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '404': + description: Not found + '412': + description: Portal is already closed. + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/applications/{application_id}/documents/{document_type}/file: + post: + tags: + - Individuals + summary: Upload Document To Application + operationId: Individuals_uploadDocumentToApplication + security: + - HTTPBearer: [] + description: >- + Upload documents to the application for more detailed KYC or manual + review. + + + As with all other endpoints, the bearer token and `x-jiko-idempotency` + is needed, but `x-jiko-signature` is not needed. + + The file should be posted unprocessed in the request body, in the same + manner as `curl -X POST --data-binary @my_file.png` does. + + The maximum file size for `ID_FRONT`, `ID_BACK`, `SELFIE` and `PASSPORT` + is 5 MB. Other files can be up to 50 MB. + + + + Documents can be uploaded before and after calling + [Apply](https://docs.jiko.io/reference). + parameters: + - required: true + schema: + title: Application Id + type: string + format: uuid + name: application_id + in: path + - required: true + schema: + $ref: '#/components/schemas/DocumentType' + name: document_type + in: path + - required: true + schema: + title: Content-Type + type: string + pattern: image/png + name: content-type + in: header + - required: true + schema: + title: Content-Length + type: integer + exclusiveMaximum: 52428800 + exclusiveMinimum: 0 + name: content-length + in: header + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/UploadDocumentResponse' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/customers/{customer_id}/documents/{document_type}/file: + post: + tags: + - Customers + summary: Upload Document To Customer + operationId: Customers_uploadDocumentToCustomer + security: + - HTTPBearer: [] + description: >- + Upload files for an approved customer. Used to verify customer requests + (e.g. Customer change request, close account request, ACH request). + Refer to the [Upload Document To + Application](https://docs.jiko.io/reference) for more detailed info. + parameters: + - required: true + schema: + title: Customer Id + type: string + format: uuid + name: customer_id + in: path + - required: true + schema: + $ref: '#/components/schemas/DocumentType' + name: document_type + in: path + - required: true + schema: + title: Content-Type + type: string + pattern: image/png + name: content-type + in: header + - required: true + schema: + title: Content-Length + type: integer + exclusiveMaximum: 52428800 + exclusiveMinimum: 0 + name: content-length + in: header + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/UploadDocumentResponse' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/business-applications/{application_id}/documents: + get: + tags: + - Businesses + summary: List Document Requests + operationId: Businesses_listDocumentRequests + security: + - HTTPBearer: [] + description: >- + Fetch the list of outstanding Document Requests. Document Requests vary + depending on the information provided in the Business Application and + Related Party Application objects. + + +
+ + + See the [Onboarding Businesses + Guide](https://docs.jiko.io/guides/onboarding-businesses) for more. + parameters: + - required: true + schema: + title: Application Id + type: string + format: uuid + name: application_id + in: path + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessesListDocumentRequestsResponse' + example: + - id: 61c23eb1-002a-4459-aa9a-624428281e14 + type: OPERATING_AGREEMENT + status: PENDING_UPLOAD + exception_reason: '' + name: '' + - id: 96e70040-eb4e-48d1-98af-0c793a6ee137 + type: ARTICLES_OF_INCORPORATION + status: INVALID + exception_reason: IMAGE_QUALITY_ERROR_CUTOFF + name: articles_of_incorporation.png + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/documents/{document_id}: + post: + tags: + - Businesses + summary: Upload Document + operationId: Businesses_uploadDocument + security: + - HTTPBearer: [] + parameters: + - required: true + schema: + title: Document Id + type: string + format: uuid + name: document_id + in: path + - required: true + schema: + title: Content-Type + type: string + pattern: image/png + name: content-type + in: header + - required: true + schema: + title: Content-Length + type: integer + exclusiveMaximum: 52428800 + exclusiveMinimum: 0 + name: content-length + in: header + - required: true + schema: + title: Content-Disposition + type: string + name: content-disposition + in: header + - required: true + schema: + title: X-Jiko-Idempotency + type: string + format: uuid + name: x-jiko-idempotency + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Document' + example: + id: 96e70040-eb4e-48d1-98af-0c793a6ee137X + type: ARTICLES_OF_INCORPORATION + status: APPROVED + exception_reason: '' + name: articles_of_incorporation.png + '404': + description: Not found + '412': + description: Document has already been reviewed and approved. + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/login: + post: + tags: + - Security + summary: Login + operationId: Security_authenticateUser + description: >- + Provide the username and password in a request body to receive a bearer + token to authenticate to the API's other endpoints. + + +
+ + + See [Authentication](https://docs.jiko.io/reference). + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/LoginInput' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/LoginResponse' + example: + token: LBHyVQggqNZvbYriaL8omZSFnQfS4yMFEO8hpVmgrtn= + expires: '2023-01-01T14:00:00+00:00' + '401': + description: Unauthorized + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/public-keys: + get: + tags: + - Security + summary: List Public Keys + operationId: Security_getEncryptionKeys + description: Returns all relevant asymmetric encryption keys. + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/EncryptionKeysResponse' + example: + set_pin: "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzmZv8spzSU9z+/bhFzX0\r\ns4xVXE9ZOApQUMoM3Q1VDiJujyWJ61uoTsWT1uQlIXHdUQ3NcXw0WYDUEaM8fj1b\r\nB2k1zSXmRD4VmxAIRNVfs3Cp3GKqC/WjyvDw25+SYBFwiaYJblpyZPiunXvXRyK8\r\nvdDaPliwTN5p7pjHQvcfXOl20ZtWnZTGMulJ+smNCYKWckW1hEOMjJP8FLMJpSHa\r\n6yGOpAYAxoHxodiJCI4X6fG206gBtyFps1CyxCz8WDjALqJYfeArTFv7/2AyuVCF\r\n5zLE7tzPrJeVxfqa+CI+7mWFhEKZLAd/PEzEL7P2VZr9BRd0lyxBipEEG/DGMEvY\r\n1dcx+3J56ZxVURAqeXPGkqVfz/IdisQt/okp6vSVKQdImeyzpJvwvBc7T7tKyRZR\r\nvtL8XLYzZBujqWCezMxU97TAb7BlQ2nPJCQFMZD7y1KldgWuGnjXha1TFIYvfrYW\r\noDFK221Z6LYlKWeRFGXhoNOX1Qm/CX3wi9Tfo01LTxbCY2Y1mbv6e8Xt12MzhicD\r\nZsFvVrtRaVrjmqXXDq8X2r7puPTLOQf7Dow3944XnTZQURE4oPIwCfTBmfMow+TB\r\n+ZUYWRXwg0/hl9AOBSGLVNlaGZD8sAu98knish5LJv34lx5mIiLLpGpIt+mzZikU\r\nFt9siIkltvk49qcmTuI8GJUCAwEAAQ==\r\n-----END PUBLIC KEY-----" + /api/v1/sandbox/card-swipe: + post: + tags: + - Sandbox + summary: Submit Card Swipe + operationId: Sandbox_simulateCardSwipe + security: + - HTTPBearer: [] + description: >- + Simulate a card swipe with the given `card_id` for a given `amount_usdc` + in USD cents. **Note**: Only for virtual cards at the moment. + parameters: + - required: false + schema: + title: X-Branch-Name + type: string + name: x-branch-name + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CardSwipe' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + amount_usdc: 100000 + required: true + responses: + '202': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/sandbox/generate-card: + post: + tags: + - Sandbox + summary: Generate Physical Card From Order + operationId: Sandbox_generatePhysicalCardFromOrder + security: + - HTTPBearer: [] + description: Generate a physical card from a card order with a given `card_order_id`. + parameters: + - required: false + schema: + title: X-Branch-Name + type: string + name: x-branch-name + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GeneratePhysicalCardFromOrder' + required: true + responses: + '202': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/sandbox/webhook: + post: + tags: + - Sandbox + summary: Trigger Webhook + operationId: Sandbox_simulateWebhookEvent + security: + - HTTPBearer: [] + description: >- + Simulates a webhook event according to the payload. This will trigger + requests to subscribed callback URLs, if any. + parameters: + - required: false + schema: + title: X-Branch-Name + type: string + name: x-branch-name + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EventDetails' + required: true + responses: + '202': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/sandbox/fund: + post: + tags: + - Sandbox + summary: Fund Account + operationId: Sandbox_simulateAchCredit + security: + - HTTPBearer: [] + description: >- + Simulates an ACH credit to the provided Jiko account. Requires a portal + to use. A portal can be created using the [Create + Portal](https://docs.jiko.io/reference) endpoint. + parameters: + - required: false + schema: + title: X-Branch-Name + type: string + name: x-branch-name + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FundPortalRequest' + required: true + responses: + '202': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' +components: + schemas: + ACHCounterparty: + title: ACHCounterparty + properties: + time_created: + title: Time Created + type: string + format: date-time + verification_type: + $ref: '#/components/schemas/ACHCounterpartyVerificationType' + status: + $ref: '#/components/schemas/ACHCounterpartyVerificationStatus' + account_number: + title: Account Number + type: string + routing_number: + title: Routing Number + type: string + name_on_account: + title: Name On Account + type: string + account_type: + $ref: '#/components/schemas/ACHCounterpartyAccountType' + institution_name: + title: Institution Name + type: string + plaid: + $ref: '#/components/schemas/CounterpartyPlaid' + micro_deposits: + $ref: '#/components/schemas/CounterpartyMicroDeposits' + type: object + required: + - time_created + - verification_type + - status + - account_number + - routing_number + - name_on_account + - account_type + - institution_name + ACHCounterpartyAccountType: + title: ACHCounterpartyAccountType + description: An enumeration. + type: string + enum: + - SAVINGS + - CHECKING + ACHCounterpartyVerificationStatus: + title: ACHCounterpartyVerificationStatus + description: An enumeration. + type: string + enum: + - IN_PROGRESS + - FAILED + - VERIFIED + ACHCounterpartyVerificationType: + title: ACHCounterpartyVerificationType + description: An enumeration. + type: string + enum: + - MICRO_DEPOSITS + - PLAID + - PRE_VERIFIED + - INCOMING_WIRE + - SUPPORTING_DOCUMENTS + ACHDirection: + title: ACHDirection + description: An enumeration. + type: string + enum: + - DEBIT + - CREDIT + ACHIncomingEvent: + title: ACHIncomingEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + properties: + event_id: + title: Event Id + type: string + format: uuid + timestamp: + title: Timestamp + type: string + format: date-time + payload: + $ref: '#/components/schemas/ACHIncomingPayload' + event_type: + title: Event Type + type: string + enum: + - transfers.ach.in.success + - transfers.ach.in.rejected + type: object + required: + - event_id + - timestamp + - payload + - event_type + ACHIncomingPayload: + title: ACHIncomingPayload + properties: + jiko_account_id: + title: Jiko Account Id + type: string + format: uuid + type: object + required: + - jiko_account_id + ACHOutgoingEvent: + title: ACHOutgoingEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + properties: + event_id: + title: Event Id + type: string + format: uuid + timestamp: + title: Timestamp + type: string + format: date-time + payload: + $ref: '#/components/schemas/ACHOutgoingPayload' + event_type: + title: Event Type + type: string + enum: + - transfers.ach.out.success + - transfers.ach.out.rejected + - transfers.ach.out.sent + type: object + required: + - event_id + - timestamp + - payload + - event_type + ACHOutgoingPayload: + title: ACHOutgoingPayload + properties: + jiko_account_id: + title: Jiko Account Id + type: string + format: uuid + type: object + required: + - jiko_account_id + ACHRequest: + title: ACHRequest + properties: + counterparty_id: + title: Counterparty Id + type: string + format: uuid + direction: + $ref: '#/components/schemas/ACHDirection' + sec_code: + $ref: '#/components/schemas/ACHSECCodeInput' + payment_related_information: + title: Payment Related Information + items: + type: string + type: array + default: [] + amount_usdc: + title: Amount Usdc + type: integer + company_entry_description: + title: Company Entry Description + description: >- + Short description of the purpose of the entry (Maximum of 10 + characters). Required for sec_code `"CCD"` and `"PPD"`. For sec_code + `"WEB"` the default value for DEBIT is "Funding TX" and "Release TX" + for CREDIT. + type: string + pattern: ^[ a-zA-Z0-9]{1,10}$ + type: object + required: + - counterparty_id + - direction + - amount_usdc + x-konfig-properties: + sec_code: + default: WEB + ACHResponse: + title: ACHResponse + properties: + counterparty_id: + title: Counterparty Id + type: string + format: uuid + direction: + $ref: '#/components/schemas/ACHDirection' + sec_code: + $ref: '#/components/schemas/ACHSECCode' + payment_related_information: + title: Payment Related Information + items: + type: string + type: array + id: + title: Id + type: string + format: uuid + amount: + $ref: '#/components/schemas/Amount' + jiko_account_id: + title: Jiko Account Id + type: string + format: uuid + status: + $ref: '#/components/schemas/ACHStatus' + time_created: + title: Time Created + type: string + format: date-time + company_entry_description: + title: Company Entry Description + type: string + type: object + required: + - counterparty_id + - direction + - sec_code + - payment_related_information + - id + - amount + - jiko_account_id + - status + - time_created + - company_entry_description + ACHSECCode: + title: ACHSECCode + description: An enumeration. + type: string + enum: + - CCD + - PPD + - WEB + ACHSECCodeInput: + title: ACHSECCodeInput + description: An enumeration. + type: string + enum: + - CCD + - WEB + ACHStatus: + title: ACHStatus + description: An enumeration. + type: string + enum: + - PENDING + - FAILED + - REJECTED + - PROCESSED + - APPROVED + - IN_TRANSIT + - CANCELLED + ACHTransactionDetails: + title: ACHTransactionDetails + properties: + company_name: + title: Company Name + type: string + company_entry_description: + title: Company Entry Description + type: string + individual_identification_number: + title: Individual Identification Number + type: string + trace_number: + title: Trace Number + type: string + type: object + required: + - company_name + Account: + title: Account + properties: + id: + title: Id + type: string + format: uuid + name: + title: Name + description: The account name + type: string + total_value: + $ref: '#/components/schemas/Amount' + status: + $ref: '#/components/schemas/AccountStatus' + portfolio: + $ref: '#/components/schemas/Portfolio' + type: object + required: + - id + - name + - total_value + - status + - portfolio + x-konfig-properties: + total_value: + title: Total Value + description: Current total value of account + status: + description: Account status + portfolio: + title: Portfolio + description: Total liquid cash and holdings + AccountStatus: + title: AccountStatus + description: An enumeration. + type: string + enum: + - OPEN + - CLOSED + - FROZEN + AccountUsage: + title: AccountUsage + description: An enumeration. + type: string + enum: + - MONEY_STORAGE + Address: + title: Address + properties: + street_address: + title: Street Address + description: Street address + type: string + maxLength: 250 + street_address2: + title: Street Address2 + description: Apartment, Suite, Box number, etc. + type: string + maxLength: 250 + city: + title: City + description: City / Town + type: string + maxLength: 250 + postal_code: + title: Postal Code + description: Postal code / ZIP code + type: string + maxLength: 50 + state: + $ref: '#/components/schemas/State' + country: + title: Country + type: string + type: object + required: + - street_address + - city + - postal_code + - country + Agreement: + title: Agreement + properties: + version: + title: Version + type: string + release_date: + title: Release Date + type: string + format: date + documents: + title: Documents + items: + $ref: '#/components/schemas/AgreementDocument' + type: array + type: object + required: + - version + - release_date + - documents + AgreementCategory: + title: AgreementCategory + description: An enumeration. + type: string + enum: + - BANK + - BROKERAGE + - GENERAL + - E-SIGN + AgreementConsent: + title: AgreementConsent + properties: + version: + title: Version + description: Agreement version + type: string + timestamp: + title: Timestamp + description: Timestamp of applicant's acknowledgement of the agreements + type: string + format: date-time + type: object + required: + - version + - timestamp + AgreementDocument: + title: AgreementDocument + properties: + title: + title: Title + type: string + pdf_download_url: + title: Pdf Download Url + type: string + maxLength: 2083 + minLength: 1 + format: uri + type: + $ref: '#/components/schemas/AgreementType' + category: + $ref: '#/components/schemas/AgreementCategory' + type: object + required: + - pdf_download_url + - title + - type + - category + AgreementType: + title: AgreementType + description: An enumeration. + type: string + enum: + - PRIVACY_POLICY + - PRIVACY_NOTICE + - BUSINESS_CONTINUITY_PLAN + - FINANCIAL_STATEMENT + - US_TREASURIES_RISK + - ELECTRONIC_COMMUNICATIONS + - TAX_CERTIFICATION_FOR_US_PERSON + - BANK_ACCOUNT + - LIMITATIONS + - BROKERAGE + - CARD + - CASHBACK + - FORM_CRS + - AUTHORIZED_REPRESENTATIVE_CERTIFICATION + - TERMS_OF_USE + - ELECTRONIC_FUND_TRANSFERS + - TRUTH_IN_SAVINGS + - FEE_NOTICE + - FUNDS_AVAILABILITY + - REGULATION_E + Amount: + title: Amount + properties: + value: + title: Value + description: USD values are always in cents. + type: integer + currency: + title: Currency + type: string + formatted: + title: Formatted + type: string + default: '' + type: object + required: + - value + - currency + AnnualPersonalIncome: + title: AnnualPersonalIncome + description: An enumeration. + type: string + enum: + - BELOW_50K + - BETWEEN_50K_AND_100K + - BETWEEN_100K_AND_250K + - OVER_250K + AnnualRevenue: + title: AnnualRevenue + description: An enumeration. + type: string + enum: + - PRE_REVENUE + - 5M_OR_LESS + - BETWEEN_5M_100M + - 100M_OR_MORE + ApplicationIdentificationType: + title: ApplicationIdentificationType + description: An enumeration. + type: string + enum: + - SSN + - PASSPORT + - TIN + - DRIVERS_LICENSE + ApplicationStatus: + title: ApplicationStatus + description: An enumeration. + type: string + enum: + - CREATED + - PENDING + - SUBMITTED + - DOCUMENTS_NEEDED + - APPROVED + - REJECTED + - MANUAL_REVIEW + ApplicationUpdateEvent: + title: ApplicationUpdateEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + properties: + event_id: + title: Event Id + type: string + format: uuid + timestamp: + title: Timestamp + type: string + format: date-time + payload: + $ref: '#/components/schemas/ApplicationUpdatePayload' + event_type: + title: Event Type + type: string + enum: + - application.approved + - application.manual_review + - application.documents_needed + - application.rejected + type: object + required: + - event_id + - timestamp + - payload + - event_type + ApplicationUpdatePayload: + title: ApplicationUpdatePayload + properties: + application_id: + title: Application Id + type: string + format: uuid + type: object + required: + - application_id + AveragePersonalNetWorth: + title: AveragePersonalNetWorth + description: An enumeration. + type: string + enum: + - BELOW_50K + - BETWEEN_50K_AND_200K + - BETWEEN_200K_AND_1M + - BETWEEN_1M_AND_5M + - OVER_5M + Business: + title: Business + properties: + address: + $ref: '#/components/schemas/GeneralAddress' + email: + title: Email + type: string + phone_number: + title: Phone Number + type: string + account_status: + $ref: '#/components/schemas/CustomerAccountStatus' + type: + title: Type + type: string + enum: + - BUSINESS + name: + title: Name + type: string + identification_number: + $ref: '#/components/schemas/BusinessIdentificationNumber' + type: object + required: + - address + - email + - phone_number + - account_status + - type + - name + - identification_number + BusinessActivityLocation: + title: BusinessActivityLocation + description: An enumeration. + type: string + enum: + - PRIMARILY_US + - MIX_OF_US_AND_NON_US + - PRIMARILY_NON_US + BusinessApplicationRequest: + title: BusinessApplicationRequest + properties: + name: + title: Name + type: string + entity_type: + $ref: '#/components/schemas/BusinessEntityType' + doing_business_as: + title: Doing Business As + type: string + identification_number: + $ref: '#/components/schemas/BusinessIdentificationNumber' + address: + $ref: '#/components/schemas/Address' + website: + title: Website + type: string + contact: + $ref: '#/components/schemas/BusinessContact' + formation_date: + title: Formation Date + type: string + risk_info: + $ref: '#/components/schemas/RiskInfo' + industry: + $ref: '#/components/schemas/IndustryInfo' + agreement_consent: + $ref: '#/components/schemas/AgreementConsent' + type: object + BusinessApplicationResponse: + title: BusinessApplicationResponse + properties: + name: + title: Name + type: string + entity_type: + $ref: '#/components/schemas/BusinessEntityType' + doing_business_as: + title: Doing Business As + type: string + identification_number: + $ref: '#/components/schemas/BusinessIdentificationNumber' + address: + $ref: '#/components/schemas/Address' + website: + title: Website + type: string + contact: + $ref: '#/components/schemas/BusinessContact' + formation_date: + title: Formation Date + type: string + risk_info: + $ref: '#/components/schemas/RiskInfo' + industry: + $ref: '#/components/schemas/IndustryInfo' + agreement_consent: + $ref: '#/components/schemas/AgreementConsent' + id: + title: Id + type: string + format: uuid + time_created: + title: Time Created + type: string + format: date-time + updated_at: + title: Updated At + type: string + format: date-time + status: + $ref: '#/components/schemas/BusinessApplicationStatus' + exception_reasons: + title: Exception Reasons + items: + type: string + type: array + default: [] + customer_id: + title: Customer Id + description: '`null` until application status is `APPROVED`' + type: string + format: uuid + type: object + required: + - id + - time_created + - updated_at + - status + BusinessApplicationStatus: + title: BusinessApplicationStatus + description: An enumeration. + type: string + enum: + - CREATED + - SUBMITTED + - CLOSED + - APPROVED + - REJECTED + - MANUAL_REVIEW + - DOCUMENTS_NEEDED + - PENDING + BusinessContact: + title: BusinessContact + properties: + name: + $ref: '#/components/schemas/Name' + phone_number: + title: Phone Number + type: string + email: + title: Email + type: string + format: email + type: object + BusinessEntityType: + title: BusinessEntityType + description: An enumeration. + type: string + enum: + - SOLE_PROPRIETOR + - CORPORATE + - LLC + - PARTNERSHIP + - INCORPORATED_ASSOCIATION + - UNINCORPORATED_ASSOCIATION + BusinessIdentificationNumber: + title: BusinessIdentificationNumber + properties: + identification_number: + title: Identification Number + type: string + type: + $ref: '#/components/schemas/BusinessIdentificationNumberType' + type: object + required: + - identification_number + - type + BusinessIdentificationNumberType: + title: BusinessIdentificationNumberType + description: An enumeration. + type: string + enum: + - TIN + - EIN + - NON_US_BUSINESS_ID + Card: + title: Card + properties: + card_id: + title: Card Id + type: string + format: uuid + name: + title: Name + type: string + status: + $ref: '#/components/schemas/CardStatus' + type: + $ref: '#/components/schemas/CardType' + type: object + required: + - card_id + - name + - status + - type + CardClosureReason: + title: CardClosureReason + description: An enumeration. + type: string + enum: + - LOST + - STOLEN + - DAMAGED + - NEVER_RECEIVED + - EXPIRED + - CANCELED + CardListResponse: + title: CardListResponse + description: Base class for cursor_list responses from the Partner API + properties: + prev_page: + title: Prev Page + type: string + next_page: + title: Next Page + type: string + items: + title: Items + items: + $ref: '#/components/schemas/Card' + type: array + object_type: + title: Object Type + type: string + default: CursorList + type: object + required: + - items + CardPinBase: + title: CardPinBase + properties: + encrypted_pin: + title: Encrypted PIN + description: 4 digit PIN encrypted by `set_pin` public key + type: string + format: password + writeOnly: true + type: object + required: + - encrypted_pin + CardPinResponse: + title: CardPinResponse + properties: + success: + title: Success + type: boolean + type: object + required: + - success + CardStatus: + title: CardStatus + description: An enumeration. + type: string + enum: + - OPEN + - LOCKED + - CLOSED + - NOT_ACTIVATED + - FROZEN + CardStatusResponse: + title: CardStatusResponse + properties: + card_id: + title: Card Id + type: string + format: uuid + status: + $ref: '#/components/schemas/CardStatus' + type: object + required: + - card_id + - status + CardStatusUpdateEvent: + title: CardStatusUpdateEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + properties: + event_id: + title: Event Id + type: string + format: uuid + timestamp: + title: Timestamp + type: string + format: date-time + payload: + $ref: '#/components/schemas/CardStatusUpdatePayload' + event_type: + title: Event Type + type: string + enum: + - card.status.closed + - card.status.open + - card.status.frozen + - card.status.locked + type: object + required: + - event_id + - timestamp + - payload + - event_type + example: + event_id: 1a7749fd-a39f-4746-add2-861f270103d5 + timestamp: '2023-01-01T12:00:00+00:00' + event_type: card.status.closed + payload: + card_id: f1246d4a-97b9-461e-8afa-2e8dedfbaece + status: CLOSED + CardStatusUpdatePayload: + title: CardStatusUpdatePayload + properties: + card_id: + title: Card Id + type: string + format: uuid + status: + $ref: '#/components/schemas/CardStatus' + type: object + required: + - card_id + - status + CardSwipe: + title: CardSwipe + properties: + card_id: + title: Card Id + type: string + format: uuid + amount_usdc: + title: Amount Usdc + type: integer + exclusiveMinimum: 0 + type: object + required: + - card_id + - amount_usdc + CardTransactionDetails: + title: CardTransactionDetails + properties: + location: + $ref: '#/components/schemas/TransactionLocation' + counterparty: + title: Counterparty + type: string + terminal_id: + title: Terminal Id + type: string + merchant_type: + title: Merchant Type + type: string + pre_authorization: + title: Pre Authorization + type: boolean + issue_id: + title: Issue Id + type: string + type: object + required: + - pre_authorization + CardTransactionEvent: + title: CardTransactionEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + properties: + event_id: + title: Event Id + type: string + format: uuid + timestamp: + title: Timestamp + type: string + format: date-time + payload: + $ref: '#/components/schemas/CardTransactionPayload' + event_type: + title: Event Type + type: string + enum: + - card.transaction.approved + - card.transaction.on_hold + - card.transaction.reversed + - card.transaction.rejected + type: object + required: + - event_id + - timestamp + - payload + - event_type + CardTransactionPayload: + title: CardTransactionPayload + properties: + card_id: + title: Card Id + type: string + format: uuid + amount: + title: Amount + type: integer + account_id: + title: Account Id + type: string + format: uuid + type: object + required: + - card_id + - amount + - account_id + CardType: + title: CardType + description: An enumeration. + type: string + enum: + - VIRTUAL + - PHYSICAL + CashBackTransactionDetails: + title: CashBackTransactionDetails + properties: + period: + title: Period + description: Which period the cash back was calculated for, in YYYY-MM format. + type: string + card_id: + title: Card Id + type: string + format: uuid + type: object + required: + - period + - card_id + ChangeCardStatusRequest: + title: ChangeCardStatusRequest + properties: + status: + $ref: '#/components/schemas/SettableCardStatus' + type: object + CloseCardRequest: + title: CloseCardRequest + properties: + closure_reason: + $ref: '#/components/schemas/CardClosureReason' + lost_stolen_date: + title: Lost Stolen Date + type: string + format: date + type: object + required: + - closure_reason + Counterparty: + title: Counterparty + properties: + id: + title: Id + type: string + format: uuid + type: + $ref: '#/components/schemas/CounterpartyType' + ach: + $ref: '#/components/schemas/ACHCounterparty' + wire: + $ref: '#/components/schemas/WireCounterparty' + type: object + required: + - id + - type + CounterpartyMicroDeposits: + title: CounterpartyMicroDeposits + properties: + verification_failure_count: + title: Verification Failure Count + type: integer + type: object + required: + - verification_failure_count + CounterpartyPlaid: + title: CounterpartyPlaid + properties: + mask: + title: Mask + type: string + verification_status: + $ref: '#/components/schemas/PlaidVerificationStatus' + type: object + required: + - mask + CounterpartyType: + title: CounterpartyType + description: An enumeration. + type: string + enum: + - ACH + - WIRE + Country: + title: Country + description: An enumeration. + type: string + enum: + - USA + - US + CreateSubscriptionRequest: + title: CreateSubscriptionRequest + properties: + description: + title: Description + description: A description of the webhook's intended use. + type: string + default: '' + events: + title: Events + description: Which types of events this webhook should be invoked for. + items: + type: string + type: array + minItems: 1 + url: + title: Url + description: The webhook URL to invoke. + type: string + maxLength: 2083 + minLength: 1 + format: uri + shared_secret: + title: Shared Secret + description: >- + The shared secret used by the Partner API to sign requests made to + the webhook. The shared secret needs to be minimum 16 characters + long. + type: string + minLength: 16 + type: object + required: + - events + - url + - shared_secret + CursorListResponse_ACHResponse_: + title: CursorListResponse[ACHResponse] + description: Base class for cursor_list responses from the Partner API + properties: + prev_page: + title: Prev Page + type: string + next_page: + title: Next Page + type: string + items: + title: Items + items: + $ref: '#/components/schemas/ACHResponse' + type: array + object_type: + title: Object Type + type: string + default: CursorList + type: object + required: + - items + CursorListResponse_PartnerEvent_: + title: CursorListResponse[PartnerEvent] + description: Base class for cursor_list responses from the Partner API + properties: + prev_page: + title: Prev Page + type: string + next_page: + title: Next Page + type: string + items: + title: Items + items: + $ref: '#/components/schemas/PartnerEvent' + type: array + object_type: + title: Object Type + type: string + default: CursorList + type: object + required: + - items + CursorListResponse_Subscription_: + title: CursorListResponse[Subscription] + description: Base class for cursor_list responses from the Partner API + properties: + prev_page: + title: Prev Page + type: string + next_page: + title: Next Page + type: string + items: + title: Items + items: + $ref: '#/components/schemas/Subscription' + type: array + object_type: + title: Object Type + type: string + default: CursorList + type: object + required: + - items + Customer: + title: Customer + oneOf: + - $ref: '#/components/schemas/Individual' + - $ref: '#/components/schemas/Business' + discriminator: + propertyName: type + mapping: + INDIVIDUAL: '#/components/schemas/Individual' + BUSINESS: '#/components/schemas/Business' + CustomerAccountStatus: + title: CustomerAccountStatus + description: An enumeration. + type: string + enum: + - OPEN + - CLOSED + - FROZEN + - PENDING + CustomerDefundingTransferRequest: + title: Partner-Customer Defunding + description: >- + A transfer of customer funds from a customer account at Jiko to a + partner-owned facilitation account. + properties: + description: + title: Description + description: A description of the transfer, visible on statements. + type: string + maxLength: 100 + transfer_id: + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + type: string + format: uuid + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + title: Type + description: Withdraw funds from customer to partner. + type: string + enum: + - PARTNER_CUSTOMER_DEFUNDING + target: + title: Target + description: >- + The funds destination belonging to the customer at the Partner + institution. + type: string + maxLength: 200 + amount_usdc: + title: Amount USDC + description: The amount, in USD cents. **Deprecated**, use `amount` instead. + type: integer + exclusiveMinimum: 0 + deprecated: true + amount: + title: Amount + oneOf: + - $ref: '#/components/schemas/RequestedAmount' + - $ref: '#/components/schemas/FullWithdrawal' + discriminator: + propertyName: type + mapping: + REQUESTED_AMOUNT: '#/components/schemas/RequestedAmount' + FULL_WITHDRAWAL: '#/components/schemas/FullWithdrawal' + type: object + required: + - from_account + - to_account + - type + - target + example: + description: Withdrawing funds from customer to partner + transfer_id: d64e7b7e-7fd2-44a4-8bfd-68a31252afaa + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_DEFUNDING + target: '123456789' + amount: + type: FULL_WITHDRAWAL + CustomerDefundingTransferResponse: + title: Partner-Customer Defunding + description: >- + A transfer of customer funds from a customer account at Jiko to a + partner-owned facilitation account. + properties: + description: + title: Description + description: A description of the transfer, visible on statements. + type: string + maxLength: 100 + transfer_id: + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + type: string + format: uuid + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + title: Type + type: string + enum: + - PARTNER_CUSTOMER_DEFUNDING + target: + title: Target + description: >- + The funds destination belonging to the customer at the Partner + institution. + type: string + maxLength: 200 + amount: + $ref: '#/components/schemas/Amount' + type: object + required: + - from_account + - to_account + - type + - target + - amount + example: + description: Withdrawing funds from customer to partner + transfer_id: d64e7b7e-7fd2-44a4-8bfd-68a31252afaa + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_DEFUNDING + target: '123456789' + amount: + type: FULL_WITHDRAWAL + CustomerFundingTransferRequest: + title: Partner-Customer Funding + description: >- + A transfer of customer funds to a customer account at Jiko from a + partner-owned facilitation account. + properties: + description: + title: Description + description: A description of the transfer, visible on statements. + type: string + maxLength: 100 + transfer_id: + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + type: string + format: uuid + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + title: Type + description: Disburse funds from partner to customer. + type: string + enum: + - PARTNER_CUSTOMER_FUNDING + source: + title: Source + description: The source of customer funds at the Partner institution. + type: string + maxLength: 200 + amount_usdc: + title: Amount USDC + description: The amount, in USD cents. **Deprecated**, use `amount` instead. + type: integer + exclusiveMinimum: 0 + deprecated: true + amount: + $ref: '#/components/schemas/RequestedAmount' + type: object + required: + - from_account + - to_account + - type + - source + example: + description: Disbursing funds from partner to customer + transfer_id: d4a2d8dd-7def-4545-a062-761683b9aa05 + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_FUNDING + source: '123456789' + amount: + amount_usdc: 100000 + type: REQUESTED_AMOUNT + CustomerFundingTransferResponse: + title: Partner-Customer Funding + description: >- + A transfer of customer funds to a customer account at Jiko from a + partner-owned facilitation account. + properties: + description: + title: Description + description: A description of the transfer, visible on statements. + type: string + maxLength: 100 + transfer_id: + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + type: string + format: uuid + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + title: Type + type: string + enum: + - PARTNER_CUSTOMER_FUNDING + source: + title: Source + description: The source of customer funds at the Partner institution. + type: string + maxLength: 200 + amount: + $ref: '#/components/schemas/Amount' + type: object + required: + - from_account + - to_account + - type + - source + - amount + example: + description: Disbursing funds from partner to customer + transfer_id: d4a2d8dd-7def-4545-a062-761683b9aa05 + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_FUNDING + source: '123456789' + amount: + amount_usdc: 100000 + type: REQUESTED_AMOUNT + DateOfBirth: + title: DateOfBirth + properties: + date_of_birth: + title: Date Of Birth + type: string + format: date + type: object + required: + - date_of_birth + Decimal: + title: Decimal + type: string + DeliveryAttemptDetails: + title: DeliveryAttemptDetails + properties: + delivery_attempt_id: + title: Delivery Attempt Id + type: string + format: uuid + subscription_id: + title: Subscription Id + type: string + format: uuid + success: + title: Success + type: boolean + response_code: + title: Response Code + type: integer + response_message: + title: Response Message + type: string + called_at: + title: Called At + type: string + format: date-time + type: object + required: + - delivery_attempt_id + - subscription_id + - success + - response_code + - called_at + Document: + title: Document + properties: + id: + title: Id + type: string + type: + $ref: '#/components/schemas/DocumentType' + status: + $ref: '#/components/schemas/DocumentStatus' + exception_reason: + title: Exception Reason + type: string + name: + title: Name + type: string + type: object + required: + - id + - type + - status + DocumentStatus: + title: DocumentStatus + description: An enumeration. + type: string + enum: + - PENDING_UPLOAD + - PENDING_REVIEW + - APPROVED + - INVALID + DocumentType: + title: DocumentType + description: An enumeration. + type: string + enum: + - ID_FRONT + - ID_BACK + - SELFIE + - IDENTIFICATION_NUMBER_VERIFICATION + - ADDRESS_VERIFICATION + - PASSPORT + - EIN_CONFIRMATION + - OPERATING_AGREEMENT + - PARTNERSHIP_AGREEMENT + - ARTICLES_OF_INCORPORATION + - BYLAWS + - PROOF_OF_501_STATUS + - ARTICLES_OF_ASSOCIATION + - CORPORATE_CHARTER + - TRUST_FORMATION_RECORDS + - LIST_OF_TRUSTEES + - LEGAL_ANALYSIS_OF_BUSINESS_MODEL + - COINS_AND_TOKENS_LISTED_AND_OFFERED + - COIN_RATING_POLICY_AND_PROCEDURES + - TYPE_OF_BLOCKCHAIN_ANALYTICS_USED + - MARKET_MANIPULATION_POLICY + - BSA_AML_OFAC_POLICIES + - INDEPENDENT_AML_AUDIT_REPORT + - BSA_AML_OFAC_INTERNAL_RISK_ASSESSMENT + - ARTICLES_OF_ORGANIZATION + - FLOW_OF_FUNDS + - BANK_STATEMENTS_1 + - BANK_STATEMENTS_2 + - BANK_STATEMENTS_3 + - WIRE_COUNTERPARTY_VERIFICATION + - OTHER + EmployedInvestmentProfile: + title: EmployedInvestmentProfile + properties: + income: + $ref: '#/components/schemas/AnnualPersonalIncome' + net_worth: + $ref: '#/components/schemas/AveragePersonalNetWorth' + bd_association: + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + type: string + maxLength: 200 + director_policy_maker_of_company: + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + type: string + maxLength: 200 + occupation: + title: Occupation + description: Applicant's occupation + type: string + maxLength: 200 + minLength: 2 + employment_status: + title: Employment Status + type: string + enum: + - EMPLOYED + type: object + required: + - income + - net_worth + - occupation + - employment_status + x-konfig-properties: + income: + description: Applicant's estimated annual income in USD. + net_worth: + description: Applicant's estimated average personal net worth in USD. + EncryptionKeysResponse: + title: EncryptionKeysResponse + description: |- + Encryption keys are currently stored as environment variables. + + Variables are declared in + `services/partner-api/secret-(dev|staging|sandbox|partners).yaml` + properties: + set_pin: + title: Set Pin + type: string + default: '' + env_names: + - public_key__set_pin + type: object + EventDetails: + title: EventDetails + oneOf: + - $ref: '#/components/schemas/ApplicationUpdateEvent' + - $ref: '#/components/schemas/CardStatusUpdateEvent' + - $ref: '#/components/schemas/ACHIncomingEvent' + - $ref: '#/components/schemas/ACHOutgoingEvent' + - $ref: '#/components/schemas/CardTransactionEvent' + - $ref: '#/components/schemas/OutgoingWireEvent' + - $ref: '#/components/schemas/OnUsTransferEvent' + discriminator: + propertyName: event_type + mapping: + application.approved: '#/components/schemas/ApplicationUpdateEvent' + application.manual_review: '#/components/schemas/ApplicationUpdateEvent' + application.documents_needed: '#/components/schemas/ApplicationUpdateEvent' + application.rejected: '#/components/schemas/ApplicationUpdateEvent' + card.status.closed: '#/components/schemas/CardStatusUpdateEvent' + card.status.open: '#/components/schemas/CardStatusUpdateEvent' + card.status.frozen: '#/components/schemas/CardStatusUpdateEvent' + card.status.locked: '#/components/schemas/CardStatusUpdateEvent' + transfers.ach.in.success: '#/components/schemas/ACHIncomingEvent' + transfers.ach.in.rejected: '#/components/schemas/ACHIncomingEvent' + transfers.ach.out.success: '#/components/schemas/ACHOutgoingEvent' + transfers.ach.out.rejected: '#/components/schemas/ACHOutgoingEvent' + transfers.ach.out.sent: '#/components/schemas/ACHOutgoingEvent' + card.transaction.approved: '#/components/schemas/CardTransactionEvent' + card.transaction.on_hold: '#/components/schemas/CardTransactionEvent' + card.transaction.reversed: '#/components/schemas/CardTransactionEvent' + card.transaction.rejected: '#/components/schemas/CardTransactionEvent' + transfers.wire.out.success: '#/components/schemas/OutgoingWireEvent' + transfers.wire.out.processing: '#/components/schemas/OutgoingWireEvent' + transfers.wire.out.rejected: '#/components/schemas/OutgoingWireEvent' + transfers.on-us.success: '#/components/schemas/OnUsTransferEvent' + transfers.on-us.processing: '#/components/schemas/OnUsTransferEvent' + transfers.on-us.rejected: '#/components/schemas/OnUsTransferEvent' + EventListResponse: + title: EventListResponse + description: >- + Generic models are only supported in pydantic for python 3.7+, so until + then + + items will be of type Any. As such, this class needs to be subclassed + + and its item field overridden in it using the proper type. + properties: + offset: + title: Offset + type: integer + count: + title: Count + type: integer + items: + title: Items + description: List of available events to subscribe to + items: + $ref: '#/components/schemas/EventType' + type: array + object_type: + title: Object Type + type: string + default: List + type: object + required: + - offset + - count + - items + EventType: + title: EventType + properties: + event: + title: Event + type: string + type: object + required: + - event + Fee: + title: Fee + properties: + type: + title: Type + type: string + enum: + - AUM_FEE + amount: + $ref: '#/components/schemas/Amount' + type: object + required: + - type + - amount + FirstMonthDepositAmount: + title: FirstMonthDepositAmount + description: An enumeration. + type: string + enum: + - 1M_OR_LESS + - BETWEEN_1M_AND_5M + - BETWEEN_5M_AND_20M + - BETWEEN_20M_AND_50M + - 50M_OR_MORE + FullWithdrawal: + title: Full withdrawal + description: Fully liquidates all T-Bills from the source account. + properties: + type: + title: Type + type: string + enum: + - FULL_WITHDRAWAL + type: object + required: + - type + FundPortalRequest: + title: FundPortalRequest + properties: + account_id: + title: Account Id + type: string + format: uuid + amount_usdc: + title: Amount Usdc + type: integer + exclusiveMaximum: 5000000 + exclusiveMinimum: 0 + company_name: + title: Company Name + type: string + maxLength: 16 + default: FakeCompany + count: + title: Count + type: integer + exclusiveMaximum: 10 + exclusiveMinimum: 0 + default: 1 + type: object + required: + - account_id + - amount_usdc + GeneralAddress: + title: GeneralAddress + properties: + street_address: + title: Street Address + description: Street address + type: string + maxLength: 250 + street_address2: + title: Street Address2 + description: Apartment, Suite, Box number, etc. + type: string + maxLength: 250 + city: + title: City + description: City / Town + type: string + maxLength: 250 + postal_code: + title: Postal Code + description: Postal code / ZIP code + type: string + maxLength: 50 + state: + title: State + description: 'State (Postal Abbreviations. Example: "AL", "NJ", "OH")' + type: string + country: + title: Country + description: 'A ISO-3166 Alpha-2 country code (Abbreviated. Example: "US")' + type: string + type: object + required: + - street_address + - city + - postal_code + - country + GeneratePhysicalCardFromOrder: + title: GeneratePhysicalCardFromOrder + properties: + card_order_id: + title: Card Order Id + type: string + format: uuid + type: object + required: + - card_order_id + HTTPValidationError: + title: HTTPValidationError + properties: + detail: + title: Detail + items: + $ref: '#/components/schemas/ValidationError' + type: array + type: object + ISOAddress: + title: ISOAddress + properties: + street_address: + title: Street Address + description: Street address + type: string + maxLength: 250 + street_address2: + title: Street Address2 + description: Apartment, Suite, Box number, etc. + type: string + maxLength: 250 + city: + title: City + description: City / Town + type: string + maxLength: 250 + postal_code: + title: Postal Code + description: Postal code / ZIP code + type: string + maxLength: 50 + state: + title: State + description: 'State (Postal Abbreviations. Example: "AL", "NJ", "OH")' + type: string + country: + title: Country + description: 'A ISO-3166 Alpha-2 country code (Abbreviated. Example: "US")' + type: string + type: object + required: + - street_address + - city + - postal_code + - country + IndependentInvestmentProfile: + title: IndependentInvestmentProfile + properties: + income: + $ref: '#/components/schemas/AnnualPersonalIncome' + net_worth: + $ref: '#/components/schemas/AveragePersonalNetWorth' + bd_association: + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + type: string + maxLength: 200 + director_policy_maker_of_company: + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + type: string + maxLength: 200 + occupation: + title: Occupation + description: Applicant's occupation + type: string + maxLength: 200 + employment_status: + title: Employment Status + type: string + enum: + - INDEPENDENT + type: object + required: + - income + - net_worth + - employment_status + x-konfig-properties: + income: + description: Applicant's estimated annual income in USD. + net_worth: + description: Applicant's estimated average personal net worth in USD. + Individual: + title: Individual + properties: + address: + $ref: '#/components/schemas/GeneralAddress' + email: + title: Email + type: string + phone_number: + title: Phone Number + type: string + account_status: + $ref: '#/components/schemas/CustomerAccountStatus' + type: + title: Type + type: string + enum: + - INDIVIDUAL + name: + $ref: '#/components/schemas/Name' + date_of_birth: + title: Date Of Birth + type: string + format: date + type: object + required: + - address + - email + - phone_number + - account_status + - type + - name + - date_of_birth + IndividualIdentificationNumber: + title: IndividualIdentificationNumber + properties: + identification_number: + title: Identification Number + type: string + identification_type: + $ref: '#/components/schemas/IndividualIdentificationNumberType' + type: object + required: + - identification_number + - identification_type + IndividualIdentificationNumberMasked: + title: IndividualIdentificationNumberMasked + properties: + identification_number: + title: Identification Number + type: string + identification_type: + $ref: '#/components/schemas/IndividualIdentificationNumberType' + type: object + required: + - identification_number + - identification_type + IndividualIdentificationNumberType: + title: IndividualIdentificationNumberType + description: An enumeration. + type: string + enum: + - SSN + - PASSPORT + - NON_US_ID + Industry: + title: Industry + description: An enumeration. + type: string + enum: + - ACCOUNTING_AND_BOOKKEEPING + - ADVERTISING + - ART + - ATM_OPERATOR + - BEAUTY_AND_COSMETIC_SERVICES + - BIOTECH + - BUSINESS_MANAGEMENT + - CLEANING_SERVICES + - CONSTRUCTION + - CONSULTING + - CRYPTOCURRENCY + - DESIGN + - ECOMMERCE + - EDUCATION + - ENERGY + - ENTERTAINMENT + - FINANCIAL_SERVICES + - FITNESS + - FOOD + - GAMBLING + - HARDWARE + - HEALTHCARE + - HOSPITALITY + - INSURANCE + - INVESTMENTS + - LEGAL_SERVICES + - MARKETING + - MARKETPLACE + - NONPROFIT + - OTHER + - PARKING_GARAGE + - PROFESSIONAL_TECHNICAL_OR_MECHANICAL_SERVICES + - REAL_ESTATE + - RECRUITING + - RESEARCH + - RESTAURANT + - RETAIL_STORES + - SECURITY + - SHIPPING_WAREHOUSING + - SOFTWARE + - SPORTS_TEAM + - SUPPORT_SERVICES + - TECHNOLOGY + - TRANSPORTATION + - TRAVEL + - WHOLESALE + - VENDING_MACHINE_OPERATOR + - WASTE_MANAGEMENT + IndustryInfo: + title: IndustryInfo + properties: + industry: + $ref: '#/components/schemas/Industry' + other_industry: + title: Other Industry + type: string + type: object + InternalReallocationTransferRequest: + title: Internal Reallocation + properties: + description: + title: Description + description: A description of the transfer, visible on statements. + type: string + maxLength: 100 + transfer_id: + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + type: string + format: uuid + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + title: Type + description: Move funds between accounts belonging to the same customer. + type: string + enum: + - INTERNAL_REALLOCATION + amount_usdc: + title: Amount USDC + description: The amount, in USD cents. **Deprecated**, use `amount` instead. + type: integer + exclusiveMinimum: 0 + deprecated: true + amount: + title: Amount + oneOf: + - $ref: '#/components/schemas/RequestedAmount' + - $ref: '#/components/schemas/FullWithdrawal' + discriminator: + propertyName: type + mapping: + REQUESTED_AMOUNT: '#/components/schemas/RequestedAmount' + FULL_WITHDRAWAL: '#/components/schemas/FullWithdrawal' + type: object + required: + - from_account + - to_account + - type + example: + description: Moving funds between accounts belonging to the same customer + transfer_id: cbb6cfce-f207-45e7-a6b3-1055ab43db51 + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + type: JIKO_ACCOUNT + to_account: + id: 991dd8b5-f103-4158-8c6b-84480cb43652 + type: JIKO_ACCOUNT + type: INTERNAL_REALLOCATION + amount: + type: REQUESTED_AMOUNT + amount_usdc: 10000 + InternalReallocationTransferResponse: + title: Internal Reallocation + properties: + description: + title: Description + description: A description of the transfer, visible on statements. + type: string + maxLength: 100 + transfer_id: + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + type: string + format: uuid + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + title: Type + type: string + enum: + - INTERNAL_REALLOCATION + amount: + $ref: '#/components/schemas/Amount' + type: object + required: + - from_account + - to_account + - type + - amount + example: + description: Moving funds between accounts belonging to the same customer + transfer_id: cbb6cfce-f207-45e7-a6b3-1055ab43db51 + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08X + type: JIKO_ACCOUNT + to_account: + id: 991dd8b5-f103-4158-8c6b-84480cb43652X + type: JIKO_ACCOUNT + type: INTERNAL_REALLOCATION + amount: + type: REQUESTED_AMOUNT + amount_usdc: 10000 + InternationalApplication: + title: InternationalApplication + properties: + id: + title: Id + type: string + format: uuid + time_created: + title: Time Created + type: string + format: date-time + updated_at: + title: Updated At + type: string + format: date-time + phone_number: + title: Phone Number + description: >- + Applicant's phone number. **Note**: It will be required to include + country codes in accordance to the E.164 spec in a future release, + or `^\+[1-9]\d{1,14}$`. + type: string + default_region: US + agreement_consent: + $ref: '#/components/schemas/AgreementConsent' + exception_reasons: + title: Exception Reasons + items: + type: string + type: array + default: [] + email: + title: Email + type: string + format: email + status: + $ref: '#/components/schemas/ApplicationStatus' + name: + $ref: '#/components/schemas/Name' + date_of_birth: + $ref: '#/components/schemas/DateOfBirth' + investment_profile: + $ref: '#/components/schemas/InvestmentProfile' + customer_id: + title: Customer Id + description: '`null` until application status is `APPROVED`' + type: string + format: uuid + documents: + title: Documents + items: + $ref: '#/components/schemas/Document' + type: array + id_verification_documents_needed: + title: Id Verification Documents Needed + type: boolean + identification_number_verification_document_needed: + title: Identification Number Verification Document Needed + type: boolean + address_verification_document_needed: + title: Address Verification Document Needed + type: boolean + address: + $ref: '#/components/schemas/ISOAddress' + citizenship_country: + title: Citizenship Country + description: >- + The applicant's citizenship country in ISO-3166 Alpha-2 format. + **Note:** This field will be made mandatory in a future release. + type: string + default: US + type: object + required: + - id + - time_created + - updated_at + - phone_number + - agreement_consent + - email + - status + - id_verification_documents_needed + - identification_number_verification_document_needed + - address_verification_document_needed + - address + x-konfig-properties: + address: + title: Address + description: Address object + InternationalApplicationRequest: + title: InternationalApplicationRequest + properties: + identification_number: + title: Identification Number + description: Applicant's Social Security Number + type: string + name: + $ref: '#/components/schemas/Name' + email: + title: Email + description: Applicant's email address + type: string + format: email + date_of_birth: + title: Date Of Birth + description: Applicant's date of birth + type: string + format: date + investment_profile: + $ref: '#/components/schemas/InvestmentProfile' + agreement_consent: + $ref: '#/components/schemas/AgreementConsent' + originally_onboarded_at: + title: Originally Onboarded At + description: Original onboarding time of applicant + type: string + format: date-time + identification_type: + $ref: '#/components/schemas/ApplicationIdentificationType' + address: + $ref: '#/components/schemas/ISOAddress' + phone_number: + title: Phone Number + description: >- + Applicant's phone number. **Note**: It will be required to include + country codes in accordance to the E.164 spec in a future release, + or `^\+[1-9]\d{1,14}$`. + type: string + default_region: US + citizenship_country: + title: Citizenship Country + description: >- + The applicant's citizenship country in ISO-3166 Alpha-2 format. + **Note:** This field will be made mandatory in a future release. + type: string + default: US + type: object + required: + - identification_number + - name + - email + - date_of_birth + - investment_profile + - agreement_consent + - address + - phone_number + x-konfig-properties: + name: + title: Name + description: Applicant's full name + agreement_consent: + title: Agreement Consent + description: Consent object for agreements + identification_type: + description: >- + Type type of identification provided in the `identification_number` + field. The options are + * `SSN`: Social security number + * `TIN`: Tax ID number + * `DRIVERS_LICENSE`: A driver's license number + * `PASSPORT`: A passport number + + **Note:** This field will be made mandatory in a future release. Currently defaults to `SSN`. + default: SSN + address: + title: Address + description: Address object + InvestmentProfile: + title: InvestmentProfile + description: >- + Investment profile contains information required by FINRA Suitability + Rule 2111 + oneOf: + - $ref: '#/components/schemas/EmployedInvestmentProfile' + - $ref: '#/components/schemas/IndependentInvestmentProfile' + - $ref: '#/components/schemas/RetiredInvestmentProfile' + - $ref: '#/components/schemas/StudentInvestmentProfile' + - $ref: '#/components/schemas/UnemployedInvestmentProfile' + discriminator: + propertyName: employment_status + mapping: + EMPLOYED: '#/components/schemas/EmployedInvestmentProfile' + INDEPENDENT: '#/components/schemas/IndependentInvestmentProfile' + RETIRED: '#/components/schemas/RetiredInvestmentProfile' + STUDENT: '#/components/schemas/StudentInvestmentProfile' + UNEMPLOYED: '#/components/schemas/UnemployedInvestmentProfile' + ListAccountsResponse: + title: ListAccountsResponse + description: >- + Generic models are only supported in pydantic for python 3.7+, so until + then + + items will be of type Any. As such, this class needs to be subclassed + + and its item field overridden in it using the proper type. + properties: + offset: + title: Offset + type: integer + count: + title: Count + type: integer + items: + title: Items + description: Customer accounts + items: + $ref: '#/components/schemas/Account' + type: array + object_type: + title: Object Type + type: string + default: List + type: object + required: + - offset + - count + - items + ListCounterpartiesResponse: + title: ListCounterpartiesResponse + description: Base class for cursor_list responses from the Partner API + properties: + prev_page: + title: Prev Page + type: string + next_page: + title: Next Page + type: string + items: + title: Items + items: + $ref: '#/components/schemas/Counterparty' + type: array + object_type: + title: Object Type + type: string + default: CursorList + type: object + required: + - items + ListPortalsResponse: + title: ListPortalsResponse + properties: + count: + title: Count + type: integer + portals: + title: Portals + items: + $ref: '#/components/schemas/Portal' + type: array + minItems: 0 + object_type: + title: Object Type + type: string + default: List + type: object + required: + - count + - portals + LoginInput: + title: LoginInput + properties: + username: + title: Username + type: string + maxLength: 128 + password: + title: Password + type: string + maxLength: 128 + type: object + required: + - username + - password + LoginResponse: + title: LoginResponse + properties: + token: + title: Token + type: string + expires: + title: Expires + type: string + format: date-time + type: object + required: + - token + - expires + MinimalPhysicalCardOrderResponse: + title: MinimalPhysicalCardOrderResponse + properties: + card_id: + title: Card Id + type: string + format: uuid + card_order_id: + title: Card Order Id + type: string + format: uuid + status: + $ref: '#/components/schemas/PhysicalCardOrderStatus' + type: object + required: + - card_order_id + - status + MonthlyTransactions: + title: MonthlyTransactions + description: An enumeration. + type: string + enum: + - 5_OR_LESS + - BETWEEN_5_AND_15 + - 15_OR_MORE + Name: + title: Name + properties: + first_name: + title: First Name + description: First Name + type: string + maxLength: 50 + middle_name: + title: Middle Name + description: Middle Name + type: string + maxLength: 50 + last_name: + title: Last Name + description: Last Name + type: string + maxLength: 50 + type: object + required: + - first_name + - last_name + OnUsJikoAccountCounterparty: + title: OnUsJikoAccountCounterparty + properties: + id: + title: Id + type: string + format: uuid + type: + title: Type + type: string + enum: + - JIKO_ACCOUNT + type: object + required: + - id + - type + OnUsTransactionDetails: + title: OnUsTransactionDetails + properties: + on_us_transfer_id: + title: On Us Transfer Id + type: string + on_us_transfer_type: + title: On Us Transfer Type + type: string + source: + title: Source + type: string + target: + title: Target + type: string + type: object + required: + - on_us_transfer_id + - on_us_transfer_type + OnUsTransfer: + title: OnUsTransfer + properties: + id: + title: Id + type: string + format: uuid + status: + $ref: '#/components/schemas/OnUsTransferStatus' + reason: + $ref: '#/components/schemas/TransferStateReason' + transfer: + $ref: '#/components/schemas/OnUsTransferDetails' + fees: + title: Fees + items: + $ref: '#/components/schemas/Fee' + type: array + type: object + required: + - id + - status + - transfer + - fees + OnUsTransferDetails: + title: OnUsTransferDetails + oneOf: + - $ref: '#/components/schemas/CustomerFundingTransferResponse' + - $ref: '#/components/schemas/CustomerDefundingTransferResponse' + - $ref: '#/components/schemas/InternalReallocationTransferResponse' + discriminator: + propertyName: type + mapping: + PARTNER_CUSTOMER_FUNDING: '#/components/schemas/CustomerFundingTransferResponse' + PARTNER_CUSTOMER_DEFUNDING: '#/components/schemas/CustomerDefundingTransferResponse' + INTERNAL_REALLOCATION: '#/components/schemas/InternalReallocationTransferResponse' + OnUsTransferDetailsRequest: + title: OnUsTransferDetailsRequest + oneOf: + - $ref: '#/components/schemas/CustomerFundingTransferRequest' + - $ref: '#/components/schemas/CustomerDefundingTransferRequest' + - $ref: '#/components/schemas/InternalReallocationTransferRequest' + discriminator: + propertyName: type + mapping: + PARTNER_CUSTOMER_FUNDING: '#/components/schemas/CustomerFundingTransferRequest' + PARTNER_CUSTOMER_DEFUNDING: '#/components/schemas/CustomerDefundingTransferRequest' + INTERNAL_REALLOCATION: '#/components/schemas/InternalReallocationTransferRequest' + OnUsTransferEvent: + title: OnUsTransferEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + properties: + event_id: + title: Event Id + type: string + format: uuid + timestamp: + title: Timestamp + type: string + format: date-time + payload: + $ref: '#/components/schemas/OnUsTransferPayload' + event_type: + title: Event Type + type: string + enum: + - transfers.on-us.success + - transfers.on-us.processing + - transfers.on-us.rejected + type: object + required: + - event_id + - timestamp + - payload + - event_type + OnUsTransferPayload: + title: OnUsTransferPayload + properties: + on_us_id: + title: On Us Id + type: string + format: uuid + origin_account_id: + title: Origin Account Id + type: string + format: uuid + destination_account_id: + title: Destination Account Id + type: string + format: uuid + type: object + required: + - on_us_id + - origin_account_id + - destination_account_id + OnUsTransferStatus: + title: OnUsTransferStatus + description: An enumeration. + type: string + enum: + - PENDING + - COMPLETED + - REJECTED + Order: + title: Order + description: An enumeration. + type: string + enum: + - desc + - asc + OutgoingWireEvent: + title: OutgoingWireEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + properties: + event_id: + title: Event Id + type: string + format: uuid + timestamp: + title: Timestamp + type: string + format: date-time + payload: + $ref: '#/components/schemas/WireOutgoingPayload' + event_type: + title: Event Type + type: string + enum: + - transfers.wire.out.success + - transfers.wire.out.processing + - transfers.wire.out.rejected + type: object + required: + - event_id + - timestamp + - payload + - event_type + PEMEncodedPublicKey: + title: PEMEncodedPublicKey + type: string + PartnerEvent: + title: PartnerEvent + properties: + event: + $ref: '#/components/schemas/EventDetails' + delivery_attempts: + title: Delivery Attempts + items: + $ref: '#/components/schemas/DeliveryAttemptDetails' + type: array + type: object + required: + - event + - delivery_attempts + PhysicalCardOrder: + title: PhysicalCardOrder + properties: + name_on_card: + title: Name On Card + description: Card holder's full name. Should be a maximum of 26 characters. + type: string + maxLength: 100 + shipping_address: + $ref: '#/components/schemas/ShippingAddress' + type: object + required: + - name_on_card + - shipping_address + PhysicalCardOrderListResponse: + title: PhysicalCardOrderListResponse + description: Base class for cursor_list responses from the Partner API + properties: + prev_page: + title: Prev Page + type: string + next_page: + title: Next Page + type: string + items: + title: Items + items: + $ref: '#/components/schemas/MinimalPhysicalCardOrderResponse' + type: array + object_type: + title: Object Type + type: string + default: CursorList + type: object + required: + - items + PhysicalCardOrderResponse: + title: PhysicalCardOrderResponse + properties: + card_id: + title: Card Id + type: string + format: uuid + card_order_id: + title: Card Order Id + type: string + format: uuid + status: + $ref: '#/components/schemas/PhysicalCardOrderStatus' + name_on_card: + title: Name On Card + type: string + shipping_address: + $ref: '#/components/schemas/ShippingAddress' + type: object + required: + - card_order_id + - status + - name_on_card + - shipping_address + PhysicalCardOrderStatus: + title: PhysicalCardOrderStatus + description: An enumeration. + type: string + enum: + - INITIAL + - CARD_CREATED + - ORDERED + - RECEIVED + PlaidCreateCounterparties: + title: PlaidCreateCounterparties + properties: + public_token: + title: Public Token + type: string + accounts: + title: Accounts + items: + $ref: '#/components/schemas/PlaidCreateCounterpartiesAccount' + type: array + institution_id: + title: Institution Id + type: string + type: object + required: + - public_token + - accounts + PlaidCreateCounterpartiesAccount: + title: PlaidCreateCounterpartiesAccount + properties: + id: + title: Id + type: string + name: + title: Name + type: string + mask: + title: Mask + type: string + type: object + required: + - id + PlaidCreateCounterpartiesResponse: + title: PlaidCreateCounterpartiesResponse + properties: + items: + title: Items + items: + $ref: '#/components/schemas/Counterparty' + type: array + type: object + required: + - items + PlaidLinkToken: + title: PlaidLinkToken + properties: + link_token: + title: Link Token + type: string + expiration: + title: Expiration + type: string + type: object + required: + - link_token + - expiration + PlaidLinkTokenRequest: + title: PlaidLinkTokenRequest + properties: + client_name: + title: Client Name + type: string + minLength: 1 + redirect_uri: + title: Redirect Uri + description: '**Mutually exclusive with `android_package_name`**' + type: string + android_package_name: + title: Android Package Name + description: '**Mutually exclusive with `redirect_uri`**' + type: string + counterparty_id: + title: Counterparty Id + type: string + format: uuid + type: object + required: + - client_name + PlaidVerificationStatus: + title: PlaidVerificationStatus + description: An enumeration. + type: string + enum: + - PENDING_AUTOMATIC_VERIFICATION + - PENDING_MANUAL_VERIFICATION + - AUTOMATICALLY_VERIFIED + - MANUALLY_VERIFIED + - VERIFICATION_EXPIRED + - VERIFICATION_FAILED + Portal: + title: Portal + properties: + id: + title: Id + type: string + format: uuid + jiko_account_id: + title: Jiko Account Id + type: string + format: uuid + routing_number: + title: Routing Number + description: Routing number + type: string + account_number: + title: Account Number + description: Account number + type: string + status: + $ref: '#/components/schemas/PortalStatus' + name: + title: Name + description: Portal name + type: string + type: object + required: + - id + - jiko_account_id + - routing_number + - account_number + - status + - name + x-konfig-properties: + status: + description: Portal status + PortalCreateRequest: + title: PortalCreateRequest + properties: + name: + title: Name + type: string + maxLength: 128 + type: object + required: + - name + PortalStatus: + title: PortalStatus + description: An enumeration. + type: string + enum: + - OPEN + - CLOSED + PortalUpdateRequest: + title: PortalUpdateRequest + properties: + name: + title: Name + description: Portal name + type: string + maxLength: 50 + type: object + required: + - name + Portfolio: + title: Portfolio + properties: + securities: + title: Securities + description: Securities currently held by the brokerage account + items: + $ref: '#/components/schemas/Security' + type: array + cash: + $ref: '#/components/schemas/Amount' + all_time_earnings: + $ref: '#/components/schemas/Amount' + type: object + required: + - securities + - cash + - all_time_earnings + x-konfig-properties: + cash: + title: Cash + description: Cash currently held in the brokerage account. + all_time_earnings: + title: All Time Earnings + description: All time portfolio earnings + PublicKeyRequest: + title: PublicKeyRequest + properties: + public_key: + $ref: '#/components/schemas/PEMEncodedPublicKey' + type: object + required: + - public_key + x-konfig-properties: + public_key: + title: Public Key + description: >- + Single-use 4096-bit PEM-encoded RSA public-key in PKCS#1 or PKCS#1.5 + format + min_bytes: 4096 + RelatedPartyApplicationRequest: + title: RelatedPartyApplicationRequest + properties: + title: + title: Title + type: string + name: + $ref: '#/components/schemas/Name' + address: + $ref: '#/components/schemas/Address' + date_of_birth: + title: Date Of Birth + type: string + identification_number: + $ref: '#/components/schemas/IndividualIdentificationNumber' + phone_number: + title: Phone Number + type: string + roles: + items: + $ref: '#/components/schemas/RelatedPartyRole' + type: array + ownership_percentage: + title: Ownership Percentage + type: string + citizenship: + title: Citizenship + type: string + email: + title: Email + type: string + type: object + RelatedPartyApplicationResponse: + title: RelatedPartyApplicationResponse + properties: + title: + title: Title + type: string + name: + $ref: '#/components/schemas/Name' + address: + $ref: '#/components/schemas/Address' + date_of_birth: + title: Date Of Birth + type: string + identification_number: + $ref: '#/components/schemas/IndividualIdentificationNumberMasked' + phone_number: + title: Phone Number + type: string + roles: + items: + $ref: '#/components/schemas/RelatedPartyRole' + type: array + ownership_percentage: + title: Ownership Percentage + type: string + citizenship: + title: Citizenship + type: string + email: + title: Email + type: string + id: + title: Id + type: string + format: uuid + type: object + required: + - id + RelatedPartyRole: + title: RelatedPartyRole + description: An enumeration. + type: string + enum: + - CONTROL_PERSON + - AUTHORIZED_REPRESENTATIVE + RequestedAmount: + title: Requested amount + description: Creates a transfer for a specific, requested amount. + properties: + amount_usdc: + title: Amount USDC + type: integer + exclusiveMinimum: 0 + type: + title: Type + type: string + enum: + - REQUESTED_AMOUNT + type: object + required: + - amount_usdc + - type + RetiredInvestmentProfile: + title: RetiredInvestmentProfile + properties: + income: + $ref: '#/components/schemas/AnnualPersonalIncome' + net_worth: + $ref: '#/components/schemas/AveragePersonalNetWorth' + bd_association: + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + type: string + maxLength: 200 + director_policy_maker_of_company: + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + type: string + maxLength: 200 + occupation: + title: Occupation + description: Applicant's occupation + type: string + maxLength: 200 + employment_status: + title: Employment Status + type: string + enum: + - RETIRED + type: object + required: + - income + - net_worth + - employment_status + x-konfig-properties: + income: + description: Applicant's estimated annual income in USD. + net_worth: + description: Applicant's estimated average personal net worth in USD. + RiskCategory: + title: RiskCategory + description: An enumeration. + type: string + enum: + - INTERNET_GAMBLING + - CANNABIS + - CRYPTOCURRENCY + - CROWDFUNDING + - FINANCIAL_OR_MONEY_MOVEMENT + RiskInfo: + title: RiskInfo + properties: + risk_categories: + items: + $ref: '#/components/schemas/RiskCategory' + type: array + company_mission: + title: Company Mission + type: string + has_current_enforcement_actions: + title: Has Current Enforcement Actions + type: boolean + primary_regulator: + title: Primary Regulator + type: string + business_activity_location: + $ref: '#/components/schemas/BusinessActivityLocation' + source_of_funds: + $ref: '#/components/schemas/SourceOfFunds' + account_usage: + $ref: '#/components/schemas/AccountUsage' + annual_revenue: + $ref: '#/components/schemas/AnnualRevenue' + monthly_transactions: + $ref: '#/components/schemas/MonthlyTransactions' + first_month_deposit: + $ref: '#/components/schemas/FirstMonthDepositAmount' + type: object + Security: + title: Security + properties: + description: + title: Description + description: A description of the security + type: string + tradable_id: + title: Tradable Id + type: string + format: uuid + security_type: + $ref: '#/components/schemas/SecurityType' + quantity: + title: Quantity + description: Number of securities + type: integer + exclusiveMinimum: 0 + market_value: + $ref: '#/components/schemas/Amount' + external_id: + title: External Id + type: string + maturity_date: + title: Maturity Date + description: Due date of the fixed income instrument + type: string + format: date + yield_to_maturity: + $ref: '#/components/schemas/Decimal' + ask: + $ref: '#/components/schemas/Decimal' + bid: + $ref: '#/components/schemas/Decimal' + type: object + required: + - tradable_id + - security_type + - quantity + - market_value + - external_id + - maturity_date + - yield_to_maturity + - ask + - bid + - description + x-konfig-properties: + market_value: + title: Market Value + description: The current market value of the securities + yield_to_maturity: + title: Yield To Maturity + description: Rate of return if the security is held to the maturity date + ask: + title: Ask + description: The current price the account is willing to sell the security at + bid: + title: Bid + description: The current price the market is willing to pay for the security + SecurityType: + title: SecurityType + description: An enumeration. + type: string + enum: + - FIXED_INCOME + - OTHER + SettableCardStatus: + title: SettableCardStatus + description: An enumeration. + type: string + enum: + - OPEN + - LOCKED + ShippingAddress: + title: ShippingAddress + properties: + street_address: + title: Street Address + description: Street address + type: string + maxLength: 100 + street_address2: + title: Street Address2 + description: Apartment, Suite, Box number, etc. + type: string + maxLength: 100 + city: + title: City + description: City / Town + type: string + maxLength: 100 + postal_code: + title: Postal Code + description: Postal code / ZIP code + type: string + maxLength: 10 + state: + $ref: '#/components/schemas/State' + country: + $ref: '#/components/schemas/Country' + type: object + required: + - street_address + - city + - postal_code + - state + - country + x-konfig-properties: + state: + description: 'State (Postal Abbreviations. Example: "AL", "NJ", "OH")' + country: + description: 'A ISO-3166 Alpha-2 country code (Abbreviated. Example: "US")' + SourceOfFunds: + title: SourceOfFunds + description: An enumeration. + type: string + enum: + - INTERNAL_FUNDS + - CLIENT_OR_EXTERNAL_FUNDS + State: + title: State + description: An enumeration. + type: string + enum: + - AA + - AE + - AP + - AK + - AL + - AR + - AZ + - CA + - CO + - CT + - DC + - DE + - FL + - GA + - GU + - HI + - IA + - ID + - IL + - IN + - KS + - KY + - LA + - MA + - MD + - ME + - MI + - MN + - MO + - MS + - MT + - NC + - ND + - NE + - NH + - NJ + - NM + - NV + - NY + - OH + - OK + - OR + - PA + - PR + - RI + - SC + - SD + - TN + - TX + - UT + - VA + - VI + - VT + - WA + - WI + - WV + - WY + Statement: + title: Statement + properties: + id: + title: Id + type: string + format: uuid + jiko_account_id: + title: Jiko Account Id + type: string + format: uuid + type: + $ref: '#/components/schemas/StatementType' + key: + title: Key + type: string + pdf_download_url: + title: Pdf Download Url + type: string + maxLength: 2083 + minLength: 1 + format: uri + time_created: + title: Time Created + type: string + format: date-time + type: object + required: + - id + - jiko_account_id + - type + - key + - pdf_download_url + - time_created + StatementListResponse: + title: StatementListResponse + description: Base class for cursor_list responses from the Partner API + properties: + prev_page: + title: Prev Page + type: string + next_page: + title: Next Page + type: string + items: + title: Items + items: + $ref: '#/components/schemas/Statement' + type: array + object_type: + title: Object Type + type: string + default: CursorList + type: object + required: + - items + StatementType: + title: StatementType + description: An enumeration. + type: string + enum: + - 1099B + - 1099INT + - BANK + - BROKERAGE + StudentInvestmentProfile: + title: StudentInvestmentProfile + properties: + income: + $ref: '#/components/schemas/AnnualPersonalIncome' + net_worth: + $ref: '#/components/schemas/AveragePersonalNetWorth' + bd_association: + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + type: string + maxLength: 200 + director_policy_maker_of_company: + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + type: string + maxLength: 200 + occupation: + title: Occupation + description: Applicant's occupation + type: string + maxLength: 200 + employment_status: + title: Employment Status + type: string + enum: + - STUDENT + type: object + required: + - income + - net_worth + - employment_status + x-konfig-properties: + income: + description: Applicant's estimated annual income in USD. + net_worth: + description: Applicant's estimated average personal net worth in USD. + Subscription: + title: Subscription + properties: + description: + title: Description + description: A description of the webhook's intended use. + type: string + default: '' + events: + title: Events + description: Which types of events this webhook should be invoked for. + items: + type: string + type: array + minItems: 1 + url: + title: Url + description: The webhook URL to invoke. + type: string + maxLength: 2083 + minLength: 1 + format: uri + id: + title: Id + type: string + format: uuid + time_created: + title: Time Created + type: string + format: date-time + updated_at: + title: Updated At + type: string + format: date-time + status: + $ref: '#/components/schemas/SubscriptionStatus' + type: object + required: + - events + - url + - id + - time_created + - updated_at + - status + SubscriptionStatus: + title: SubscriptionStatus + description: An enumeration. + type: string + enum: + - enabled + - disabled + Trade: + title: Trade + properties: + description: + title: Description + type: string + id: + title: Id + type: string + format: uuid + trade_datetime: + title: Trade Datetime + type: string + format: date-time + settled_date: + title: Settled Date + type: string + format: date + is_settled: + title: Is Settled + type: boolean + activity: + $ref: '#/components/schemas/TradeActivity' + cusip: + title: Cusip + type: string + notional: + $ref: '#/components/schemas/Amount' + quantity: + title: Quantity + type: integer + price: + $ref: '#/components/schemas/Decimal' + maturity_date: + title: Maturity Date + type: string + format: date + jiko_account_id: + title: Jiko Account Id + type: string + format: uuid + yield_to_maturity: + $ref: '#/components/schemas/Decimal' + tradable_id: + title: Tradable Id + type: string + type: object + required: + - id + - trade_datetime + - is_settled + - activity + - cusip + - description + - notional + - quantity + - price + - maturity_date + - jiko_account_id + - yield_to_maturity + - tradable_id + TradeActivity: + title: TradeActivity + description: An enumeration. + type: string + enum: + - BUY + - SELL + - MATURITY + TradeConfirmation: + title: TradeConfirmation + properties: + url: + title: Url + type: string + maxLength: 2083 + minLength: 1 + format: uri + type: object + required: + - url + example: + url: https://example.com/path-to-trade-confirmation-pdf + TradeListResponse: + title: TradeListResponse + description: Base class for cursor_list responses from the Partner API + properties: + prev_page: + title: Prev Page + type: string + next_page: + title: Next Page + type: string + items: + title: Items + items: + $ref: '#/components/schemas/Trade' + type: array + object_type: + title: Object Type + type: string + default: CursorList + type: object + required: + - items + Transaction: + title: Transaction + properties: + id: + title: Id + type: string + format: uuid + jiko_account_id: + title: Jiko Account Id + type: string + format: uuid + amount: + $ref: '#/components/schemas/Amount' + timestamp: + title: Timestamp + type: string + format: date-time + status: + $ref: '#/components/schemas/TransactionStatus' + details: + $ref: '#/components/schemas/TransactionDetails' + type: object + required: + - id + - jiko_account_id + - amount + - timestamp + - status + - details + TransactionDetails: + title: TransactionDetails + properties: + title: + title: Title + type: string + transaction_type: + $ref: '#/components/schemas/TransactionType' + sub_title: + title: Sub Title + type: string + transaction_type_title: + title: Transaction Type Title + type: string + card_transaction: + $ref: '#/components/schemas/CardTransactionDetails' + ach_transaction: + $ref: '#/components/schemas/ACHTransactionDetails' + wire_transaction: + $ref: '#/components/schemas/WireTransactionDetails' + wire_fee_transaction: + $ref: '#/components/schemas/WireTransactionDetails' + cash_back_transaction: + $ref: '#/components/schemas/CashBackTransactionDetails' + on_us_transaction: + $ref: '#/components/schemas/OnUsTransactionDetails' + type: object + required: + - transaction_type + TransactionListResponse: + title: TransactionListResponse + description: Base class for cursor_list responses from the Partner API + properties: + prev_page: + title: Prev Page + type: string + next_page: + title: Next Page + type: string + items: + title: Items + items: + $ref: '#/components/schemas/Transaction' + type: array + object_type: + title: Object Type + type: string + default: CursorList + type: object + required: + - items + TransactionLocation: + title: TransactionLocation + properties: + street_address: + title: Street Address + type: string + city: + title: City + type: string + state: + title: State + type: string + country: + title: Country + type: string + type: object + required: + - street_address + - city + - country + TransactionStatus: + title: TransactionStatus + description: An enumeration. + type: string + enum: + - PENDING + - COMPLETED + TransactionType: + title: TransactionType + description: An enumeration. + type: string + enum: + - CARD + - CASH_BACK + - ACH + - WIRE + - WIRE_FEE + - GENERIC + - ON_US + TransferStateReason: + title: TransferStateReason + description: An enumeration. + type: string + enum: + - ACCOUNT_UNAVAILABLE + - CANCELED + - INSUFFICIENT_FUNDS + - INVALID_CURRENCY + - INVALID_TRANSFER + - SANCTION_SCREEN_FAILED + UnemployedInvestmentProfile: + title: UnemployedInvestmentProfile + properties: + income: + $ref: '#/components/schemas/AnnualPersonalIncome' + net_worth: + $ref: '#/components/schemas/AveragePersonalNetWorth' + bd_association: + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + type: string + maxLength: 200 + director_policy_maker_of_company: + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + type: string + maxLength: 200 + occupation: + title: Occupation + description: Applicant's occupation + type: string + maxLength: 200 + employment_status: + title: Employment Status + type: string + enum: + - UNEMPLOYED + type: object + required: + - income + - net_worth + - employment_status + x-konfig-properties: + income: + description: Applicant's estimated annual income in USD. + net_worth: + description: Applicant's estimated average personal net worth in USD. + UpdateSubscriptionRequest: + title: UpdateSubscriptionRequest + properties: + description: + title: Description + description: A description of the webhook's intended use. + type: string + default: '' + events: + title: Events + description: Which types of events this webhook should be invoked for. + items: + type: string + type: array + minItems: 1 + url: + title: Url + description: The webhook URL to invoke. + type: string + maxLength: 2083 + minLength: 1 + format: uri + shared_secret: + title: Shared Secret + description: >- + The shared secret used by the Partner API to sign requests made to + the webhook. The shared secret needs to be minimum 16 characters + long. + type: string + minLength: 16 + type: object + UploadDocumentResponse: + title: UploadDocumentResponse + properties: + success: + title: Success + type: boolean + document_id: + title: Document Id + type: string + format: uuid + type: object + required: + - success + - document_id + ValidationError: + title: ValidationError + properties: + loc: + title: Location + items: + anyOf: + - type: string + - type: integer + type: array + msg: + title: Message + type: string + type: + title: Error Type + type: string + type: object + required: + - loc + - msg + - type + VirtualCardResponse: + title: VirtualCardResponse + properties: + card_id: + title: Card Id + type: string + format: uuid + encrypted_pan: + title: Encrypted Pan + type: string + encrypted_cvv: + title: Encrypted Cvv + type: string + encrypted_expiration: + title: Encrypted Expiration + type: string + type: object + required: + - card_id + - encrypted_pan + - encrypted_cvv + - encrypted_expiration + WireCounterparty: + title: WireCounterparty + properties: + time_created: + title: Time Created + type: string + format: date-time + verification_type: + $ref: '#/components/schemas/ACHCounterpartyVerificationType' + status: + $ref: '#/components/schemas/ACHCounterpartyVerificationStatus' + account_number: + title: Account Number + type: string + routing_number: + title: Routing Number + type: string + name_on_account: + title: Name On Account + type: string + account_type: + $ref: '#/components/schemas/ACHCounterpartyAccountType' + institution_name: + title: Institution Name + type: string + type: object + required: + - time_created + - verification_type + - status + - account_number + - routing_number + - name_on_account + - account_type + - institution_name + WireOutgoingPayload: + title: WireOutgoingPayload + properties: + jiko_account_id: + title: Jiko Account Id + type: string + format: uuid + wire_id: + title: Wire Id + type: string + format: uuid + type: object + required: + - jiko_account_id + - wire_id + WireRequest: + title: WireRequest + properties: + description: + title: Description + description: A description of the transfer, visible on statements. + type: string + counterparty_id: + title: Counterparty Id + type: string + format: uuid + amount_usdc: + title: Amount Usdc + description: The amount, in USD cents. + type: integer + created_by: + title: Created By + description: A string identifying the wire transfer originator. + type: string + wire_id: + title: Wire Id + description: The ID for this wire transfer, auto-generated if not provided. + type: string + format: uuid + type: object + required: + - counterparty_id + WireTransactionDetails: + title: WireTransactionDetails + properties: + reference_number: + title: Reference Number + type: string + counterparty_name: + title: Counterparty Name + type: string + wire_id: + title: Wire Id + type: string + format: uuid + type: object + required: + - reference_number + - counterparty_name + HealthStatusCheckResponse: + title: Response Get-Health-Check + type: string + enum: + - OK + BusinessesListRelatedPartyApplicationsResponse: + title: Response List-Related-Party-Application + items: + $ref: '#/components/schemas/RelatedPartyApplicationResponse' + type: array + BusinessesListDocumentRequestsResponse: + title: Response List-Document-Requests-Businesses + items: + $ref: '#/components/schemas/Document' + type: array + securitySchemes: + HTTPBearer: + type: http + scheme: bearer +x-tagGroups: + - tags: + - Individuals + - Businesses + name: Onboarding + - tags: + - Accounts + - Customers + - Transactions + - Trades + - Statements + name: Accounts + - tags: + - Portals + - ACH + - Wires + - On-Us Transfers + - Counterparties + - 'Counterparties: Plaid' + name: Transfers + - tags: + - Manage Cards + - Physical Cards + - Virtual Cards + name: Cards + - tags: + - Health + - Security + - Sandbox + - Subscriptions + - Events + name: Platform diff --git a/sdks/db/generate-repository-description-cache/jiko.json b/sdks/db/generate-repository-description-cache/jiko.json new file mode 100644 index 0000000000..2526249c85 --- /dev/null +++ b/sdks/db/generate-repository-description-cache/jiko.json @@ -0,0 +1,3 @@ +{ + "Jiko makes Treasuries bankable. We're a new type of bank that innovates US Treasury bills to unlock yield, safety, and scale.\n\nBacked by Upfront Ventures, Airbus Ventures, and others; headquartered in SF with offices in NYC and Reykjavík.": "Jiko makes Treasuries bankable. We're a new type of bank that innovates US Treasury bills to unlock yield, safety, and scale. Backed by Upfront Ventures, Airbus Ventures, and others; headquartered in SF with offices in NYC and Reykjavík. Jiko's {language} SDK generated by Konfig (https://konfigthis.com/)." +} \ No newline at end of file diff --git a/sdks/db/intermediate-fixed-specs/jiko/openapi.yaml b/sdks/db/intermediate-fixed-specs/jiko/openapi.yaml new file mode 100644 index 0000000000..fd8d556eb2 --- /dev/null +++ b/sdks/db/intermediate-fixed-specs/jiko/openapi.yaml @@ -0,0 +1,9486 @@ +openapi: 3.1.0 +info: + title: Jiko Partner API + description: > + # 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. + + +
+ + + At the core of our platform is the Jiko account: a pair consisting of a bank + account and a brokerage account. When money is deposited into an account, + 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 accounts, and each account 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 customer accounts via ACH or Wire + + - Viewing and managing accounts (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](mailto:partner.support@jiko.io) to request sandbox + access. + + # Partner obligations + + +
+ + + - Before onboarding, the end-user’s control over any email addresses or + phone numbers must be confirmed (for example, via confirmation codes) before + submitting an application to the API. + + - While onboarding, partners must comply with the disclosure requirements + listed [below](https://docs.jiko.io/reference). + + - Monthly statements are created for bank and brokerage accounts and must be + made available to the user. + - Partners are required to send an email to end users every month a new statement is available to comply with regulatory requirements. + - Partners can expect monthly statements to be available by the 15th of every month. + - It is required to make the past 6 years of brokerage statements available to the end user. + - It is advised to make at least the past 12 months of bank statements available to the end user. + - Trade confirmations must be made available to the user. + + + ## Disclosures and Agreements + + + - The bundle of customer disclosures and agreements served at the + [Agreements](https://docs.jiko.io/reference) endpoint must be presented to + users before signing up for an account. + This includes Risk and Limitation disclosures, Regulation E disclosures, Account agreements and more. + - The customer consent for these disclosures have to be versioned and time-stamped and sent with the application. + - Jiko reserves the right to update agreements from time to time. + If a change is _adverse_ to the customer, Jiko will notify partners, and they are then required to notify their end users 30 days in advance of the change. + - A change is deemed to be _adverse_ to the customer if it will result in increased fees, increased liability for the customer, fewer types of available transactions or stricter limitations on the frequency or dollar amount of transactions. + - When Jiko updates the bundle of agreements, the version number of the + agreement bundle will increment. + Jiko reserves the right to reject or manually review applications where customer consent does not match the latest agreement version. + Partners must re-fetch and display the agreements and disclosures links from the Agreements endpoint for every new application. This ensures each applicant is served the latest version of the agreements. + + # Authentication + + + **Jiko** provides partners with a `username` and a `password`, as well as a + `shared secret`. Partners are provided with a `bearer token` in the + [Login](https://docs.jiko.io/reference) response, which must be sent with + each request. + + +
+ + + Each request made to the partner API needs 3 parts in order for it to be + processed: + + + 1. An **Authorization** HTTP header containing the value + + + ```javascript + + Bearer + + ``` + + +
+ + + Where the `access_token` is the bearer token given in the + [Login](https://docs.jiko.io/reference) response. + + + 1. An **x-jiko-idempotency** HTTP header set to a random uuid for this + action, in order to signify a unique request to the API from the partner’s + perspective. + + 2. An **x-jiko-signature** HTTP header set to a base64 encoded HMAC-SHA256 + hash of `x-jiko-idempotency+request pathname+body` using the shared secret + as a key. + + + Below is a Node.js example showing how a potential request could be signed: + + +
+ + + ```javascript + + const crypto = require("crypto"); + + const uuid = require("uuid"); + + + const idempotency = uuid.v4(); + + const pathname = "/api/v1/agreements/"; + + const body = ""; + + + request.headers["x-jiko-signature"] = crypto + .createHmac("sha256", "shared-secret-here") + .update(idempotency + pathname + body, "utf-8") + .digest("base64"); + ``` + + +
+ + + **Partner** requests will need to be sent from an IP address whitelisted by + **Jiko**. + + **Jiko** will verify the request signature by repeating the steps above, + additionally checking for possible repeated requests. A request is + considered to be repeated if the idempotency key value provided in the + `x-jiko-idempotency` header has been used previously in the past 1 hour. + + +
+ + + Bearer tokens have a lifetime of 60 minutes. + + The partner will need to repeat the login process once a token has expired. + + + # Changelog + + + ## March 2024 + + - Added `tradable_id` field to [List Customer + Trades](https://docs.jiko.io/reference) and [List Customer + Transactions](https://docs.jiko.io/reference) API endpoint. + + - Added support for filtering by trade date to and from to [List Customer + Trades](https://docs.jiko.io/reference) and [List Customer + Transactions](https://docs.jiko.io/reference) API endpoints. + + + - Added support for filtering by types, timestamp_from and timestamp_to to + the [List Customer Transactions](https://docs.jiko.io/reference), [List + Account Transactions](https://docs.jiko.io/reference) API endpoints. + + + + ## February 2024 + + - Added support for filtering by status and direction to the [List ACH Originations](https://docs.jiko.io/reference) API endpoint + - Added support for filtering by portal id and card id to the [List Customer Transactions](https://docs.jiko.io/reference), [List Account Transactions](https://docs.jiko.io/reference) API endpoints. + + - Added support for filtering by status and direction to the [List ACH Originations](https://docs.jiko.io/reference) API endpoint + - Added support for filtering by card status to the [List Account Cards](https://docs.jiko.io/reference) endpoint. + - Added support for full withdrawals when performing on-us transfers by using the new `amount` field. + - Added support for listing fees deducted when performing on-us transfers. + + ## January 2024 + + - Added [Get Health Check](https://docs.jiko.io/reference) API endpoint. + + ## December 2023 + + + - Business Application additions: + + - Added [Create Application](https://docs.jiko.io/reference) API endpoint. + - Added [Get Application](https://docs.jiko.io/reference) API endpoint. + - Added [Update Application](https://docs.jiko.io/reference) API endpoint. + - Added [Apply](https://docs.jiko.io/reference) API endpoint. + + - Related Party Application additions: + + - Added [List Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Create Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Delete Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Update Related Party](https://docs.jiko.io/reference) API endpoint. + + - Document Upload additions: + + - Added [List Document Requests](https://docs.jiko.io/reference) API endpoint. + - Added [Upload Document](https://docs.jiko.io/reference) API endpoint. + + - Wire additions: + + - Added [Create Wire](https://docs.jiko.io/reference) API endpoint. + + ## November 2023 + + + - Added a new optional field `micro_deposit` to V1 `ACHCounterparty` model + that includes an indication of number of verification attempts for ACH + Counterparties verified via Micro Deposits + + - Added [Close Portal](https://docs.jiko.io/reference) API endpoint. + + - Added [Update Portal](https://docs.jiko.io/reference) API endpoint. + + + ## October 2023 + + + - Added enum value `PENDING` to the [Get Customer + Data](https://docs.jiko.io/reference) `account_status` field, signalling + that a customer has no open pocket. + + + ## July 2023 + + + - Added [Get Account Portal](https://docs.jiko.io/reference) API endpoint. + + + ## May 2023 + + + ### 2023-05-26 + + + - The response from uploading documents now includes a `document_id` field + for future reference. + + + ### 2023-05-15 + + + - Added [Create Portal](https://docs.jiko.io/reference) API endpoint. + + - Added a new `category` type E-SIGN for the Electronic Communications + Disclosure Statement and Consent which was previously in the GENERAL + category. + + + ### 2023-05-05 + + + - Added a new `WIRE_COUNTERPARTY_VERIFICATION` document type. + + - File size limits raised to 50 MB for files other than `ID_FRONT`, + `ID_BACK`, `SELFIE` and `PASSPORT` when uploading documents to a customer or + application. + + - Updated documentation for both file upload endpoints. + + + ## April 2023 + + + ### 2023-04-28 + + + - Adds a new `category` field for agreements returned by the [List + Agreements](https://docs.jiko.io/reference) endpoint. This `category` field + groups all agreements into 3 categories, BANK, BROKERAGE, or GENERAL. + + + ### 2023-04-19 + + + - Added a new sandbox endpoint for simulating webhook calls, [Trigger + Webhook](https://docs.jiko.io/reference). + + + ## March 2023 + + + ### 2023-03-30 + + + - Added a new `yield_to_maturity` field to the `Trade` model. + + + ### 2023-03-15 + + + - Added a new `name` field to the `Portal` model. + + + ## February 2023 + + + ### 2023-02-24 + + + - Added a sandbox endpoint to fund accounts via ACH portals. + + + ### 2023-02-16 + + + - Added a new disclosure type, `FORM_CRS`, for Customer Relationship Summary + Forms. + + + ### 2023-02-10 + + + - Added `wire_fee_transaction` and `WIRE_FEE` transaction type to the [List + Customer Transactions](https://docs.jiko.io/reference), [List Account + Transactions](https://docs.jiko.io/reference) and [Get Account + Transaction](https://docs.jiko.io/reference) endpoints. + + + ## January 2023 + + + ### 2023-01-25 + + + - Added [Create On-Us Transfer](https://docs.jiko.io/reference) API + endpoint. + + - Added [Get On-Us Transfer](https://docs.jiko.io/reference) API endpoint. + + + ### 2023-01-18 + + + - Added two optional filtering query parameters to the [List Customer + Statements](https://docs.jiko.io/reference) endpoint: + - The `type[]` query parameter makes it possible to filter by different types of statements, e.g. `?type[]=BANK&type[]=BROKERAGE` + - The `key` query parameter makes it possible to filter by either a specific month or a year, e.g. `?key=2023-01` or `?key=2022` + - Marked the [List Account Statements](https://docs.jiko.io/reference) + endpoint as deprecated. Please use the [List Customer + Statements](https://docs.jiko.io/reference) in future integrations. + + + ### 2023-01-09 + + + - Added a new transaction type and corresponding details object, + `on_us_transaction` to the response model in [List Customer + Transactions](https://docs.jiko.io/reference). + + + ### 2023-01-06 + + + - Added optional field `originally_onboarded_at` to request body in [Create + Application](https://docs.jiko.io/reference) + + + ## November 2022 + + + ### 2022-11-09 + + + - New counterparty type `WIRE` with a `wire` field, returned in [Get + Counterparty](https://docs.jiko.io/reference) and [List + Counterparties](https://docs.jiko.io/reference) + + + ## September 2022 + + + ### 2022-09-28 + + + - Added [List Customer Statements](https://docs.jiko.io/reference) API + endpoint. + + + ### 2022-09-27 + + + - Added [Get Customer Data](https://docs.jiko.io/reference) API endpoint. + + + ### 2022-09-07 + + + - Added [List Customer Trades](https://docs.jiko.io/reference) API endpoint. + + - Added [List Customer Transactions](https://docs.jiko.io/reference) API + endpoint. + + + ## August 2022 + + + ### 2022-08-29 + + + - Added `name` field to the [List Customer + Accounts](https://docs.jiko.io/reference) and [Get Customer + Account](https://docs.jiko.io/reference) API endpoints + + + ### 2022-08-16 + + + - Added [Get Account Transaction](https://docs.jiko.io/reference) API + endpoint + + + ### 2022-08-05 + + + - Added [List ACH Originations](https://docs.jiko.io/reference) API endpoint + version: 1.29.0 + x-api-status-urls: false +servers: + - url: https://{partner}.partner-api.jikoservices.com + description: Production server + - url: https://{partner}.sandbox-api.jikoservices.com + description: Sandbox server +paths: + /api/v1/customers/{customer_id}/jiko-accounts/: + get: + tags: + - Accounts + summary: List Customer Accounts + description: Get a list of all accounts for a specified customer. + operationId: list_customer_accounts_api_v1_customers__customer_id__jiko_accounts__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: false + schema: + type: integer + minimum: 0 + title: Offset + default: 0 + name: offset + in: query + - required: false + schema: + type: integer + maximum: 100 + minimum: 1 + title: Limit + default: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListAccountsResponse' + example: + offset: 0 + count: 1 + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + name: J1 (4-week) + total_value: + value: 20708596 + currency: USD + formatted: $207,085.96 + status: OPEN + portfolio: + securities: + - tradable_id: 4b955c69-dd95-4f6a-a0ff-325ee029f240 + security_type: FIXED_INCOME + quantity: 2100 + market_value: + value: 20708596 + currency: USD + formatted: $207,085.96 + external_id: 912796RF6 + maturity_date: '2023-01-30' + yield_to_maturity: '0.0468' + ask: '98.628528' + bid: '98.612361' + description: US T-Bill + cash: + value: 0 + currency: USD + formatted: $0.00 + all_time_earnings: + value: 935404 + currency: USD + formatted: $9,354.04 + object_type: Account + object_type: List + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/: + get: + tags: + - Accounts + summary: Get Customer Account + description: Get a specific account. + operationId: get_customer_account_api_v1_jiko_accounts__account_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Account' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + name: J1 (4-week) + total_value: + value: 20708596 + currency: USD + formatted: $207,085.96 + status: OPEN + portfolio: + securities: + - tradable_id: 4b955c69-dd95-4f6a-a0ff-325ee029f240 + security_type: FIXED_INCOME + quantity: 2100 + market_value: + value: 20708596 + currency: USD + formatted: $207,085.96 + external_id: 912796RF6 + maturity_date: '2023-01-30' + yield_to_maturity: '0.0468' + ask: '98.628528' + bid: '98.612361' + description: US T-Bill + cash: + value: 0 + currency: USD + formatted: $0.00 + all_time_earnings: + value: 935404 + currency: USD + formatted: $9,354.04 + object_type: Account + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/transactions/: + get: + tags: + - Transactions + summary: List Customer Transactions + description: >- + Returns a list of transactions from a customer's **bank accounts**. It + does not include transactions between the **bank account** and + **brokerage account**. + operationId: >- + list_customer_transactions_api_v1_customers__customer_id__transactions__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - description: Ordered by the transaction timestamp, descending by default. + required: false + schema: + allOf: + - $ref: '#/components/schemas/Order' + description: Ordered by the transaction timestamp, descending by default. + default: desc + name: order + in: query + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Account[] + name: account[] + in: query + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Filter[Card] + name: filter[card] + in: query + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Filter[Portal] + name: filter[portal] + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/TransactionType' + type: array + name: filter[types] + in: query + - required: false + schema: + type: string + format: date-time + title: Timestamp From + name: timestamp_from + in: query + - required: false + schema: + type: string + format: date-time + title: Timestamp To + name: timestamp_to + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: CARD + title: 'ATM ABCD ID: TERM99 at 26 HOUSTON TEXAS CIR, HOUSTON TX' + transaction_type_title: ATM Withdrawal + card_transaction: + location: + street_address: 26 HOUSTON TEXAS CIR + city: HOUSTON + state: TX + country: US + counterparty: ABCD + terminal_id: TERM99 + merchant_type: ATM + pre_authorization: true + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: ACH + title: From VENMO (PAYMENT) + sub_title: 'IIN: 596425331 REF: 91000010211227' + transaction_type_title: ACH Electronic Debit + ach_transaction: + company_name: VENMO + company_entry_description: PAYMENT + individual_identification_number: '596425331' + trace_number: '091000010211227' + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: WIRE + title: From External Account + sub_title: 9999XXXX + transaction_type_title: Wire Transfer In + wire_transaction: + reference_number: 9999XXXX + counterparty_name: John Smith + wire_id: 4854014d-5540-4f0c-9efe-a0137f01e1da + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: CASH_BACK + title: 2022-06 Card Cash Back + transaction_type_title: Card Cash Back + cash_back_transaction: + period: 2022-06 + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01301 + object_type: Transaction + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/transactions/: + get: + tags: + - Transactions + summary: List Account Transactions + description: >- + Returns a list of **bank account** transactions. It does not include + transactions between the **bank account** and **brokerage account**. + operationId: >- + list_account_transactions_api_v1_jiko_accounts__account_id__transactions__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - description: Ordered by the transaction timestamp, descending by default. + required: false + schema: + allOf: + - $ref: '#/components/schemas/Order' + description: Ordered by the transaction timestamp, descending by default. + default: desc + name: order + in: query + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Filter[Card] + name: filter[card] + in: query + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Filter[Portal] + name: filter[portal] + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/TransactionType' + type: array + name: filter[types] + in: query + - required: false + schema: + type: string + format: date-time + title: Timestamp From + name: timestamp_from + in: query + - required: false + schema: + type: string + format: date-time + title: Timestamp To + name: timestamp_to + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: CARD + title: 'ATM ABCD ID: TERM99 at 26 HOUSTON TEXAS CIR, HOUSTON TX' + transaction_type_title: ATM Withdrawal + card_transaction: + location: + street_address: 26 HOUSTON TEXAS CIR + city: HOUSTON + state: TX + country: US + counterparty: ABCD + terminal_id: TERM99 + merchant_type: ATM + pre_authorization: true + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: ACH + title: From VENMO (PAYMENT) + sub_title: 'IIN: 596425331 REF: 91000010211227' + transaction_type_title: ACH Electronic Debit + ach_transaction: + company_name: VENMO + company_entry_description: PAYMENT + individual_identification_number: '596425331' + trace_number: '091000010211227' + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: WIRE + title: From External Account + sub_title: 9999XXXX + transaction_type_title: Wire Transfer In + wire_transaction: + reference_number: 9999XXXX + counterparty_name: John Smith + wire_id: 4854014d-5540-4f0c-9efe-a0137f01e1da + object_type: Transaction + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: CASH_BACK + title: 2022-06 Card Cash Back + transaction_type_title: Card Cash Back + cash_back_transaction: + period: 2022-06 + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01301 + object_type: Transaction + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/transactions/{transaction_id}/: + get: + tags: + - Transactions + summary: Get Account Transaction + description: >- + Returns a specific transaction for a specific account, based on the + provided account_id and transaction_id in question. + operationId: >- + get_account_transaction_api_v1_jiko_accounts__account_id__transactions__transaction_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Transaction Id + name: transaction_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Transaction' + example: + id: 05964326-49b7-4e74-9783-81137ee3cf3b + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + timestamp: '2023-01-01T12:00:00+00:00' + status: COMPLETED + details: + transaction_type: WIRE + title: From External Account + sub_title: 9999XXXX + transaction_type_title: Wire Transfer In + wire_transaction: + reference_number: 9999XXXX + counterparty_name: John Smith + wire_id: 4854014d-5540-4f0c-9efe-a0137f01e1da + object_type: Transaction + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/trades/: + get: + tags: + - Trades + summary: List Customer Trades + description: Returns a list of trades from a customer's **brokerage accounts**. + operationId: list_customer_trades_api_v1_customers__customer_id__trades__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Account[] + name: account[] + in: query + - required: false + schema: + type: string + format: date-time + title: Trade Datetime From + name: trade_datetime_from + in: query + - required: false + schema: + type: string + format: date-time + title: Trade Datetime To + name: trade_datetime_to + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TradeListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + trade_datetime: '2023-01-01T12:00:00+00:00' + settled_date: '2023-01-01' + is_settled: true + activity: BUY + cusip: 912796RF6 + description: US T-Bill + notional: + value: 20935404 + currency: USD + formatted: $209,354.04 + quantity: 2123 + price: '98.612361' + maturity_date: '2023-01-30' + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + yield_to_maturity: '0.0468' + tradable_id: 912797HF7 + object_type: Trade + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/trades/: + get: + tags: + - Trades + summary: List Account Trades + description: >- + Get a list of trades. This is the equivalent of fetching transactions + for the **brokerage** account. + operationId: list_account_trades_api_v1_jiko_accounts__account_id__trades__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: false + schema: + type: string + format: date-time + title: Trade Datetime From + name: trade_datetime_from + in: query + - required: false + schema: + type: string + format: date-time + title: Trade Datetime To + name: trade_datetime_to + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TradeListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + trade_datetime: '2023-01-01T12:00:00+00:00' + settled_date: '2023-01-01' + is_settled: true + activity: BUY + cusip: 912796RF6 + description: US T-Bill + notional: + value: 20935404 + currency: USD + formatted: $209,354.04 + quantity: 2123 + price: '98.612361' + maturity_date: '2023-01-30' + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + yield_to_maturity: '0.0468' + tradable_id: 912797HF7 + object_type: Trade + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/trades/{trade_id}/confirmation/: + get: + tags: + - Trades + summary: Get Trade Confirmation + description: >- + Get a trade's trade confirmation. + + +
+ + + Trade confirmations are sensitive documents. For security reasons, we + return trade confirmations as PDFs through a URL with a 10-minute TTL. + Trade confirmation PDFs should be fetched and served just-in-time, not + stored in databases. Trades with "activity": "MATURITY" do not have + trade confirmations. + operationId: >- + get_trade_confirmation_api_v1_jiko_accounts__account_id__trades__trade_id__confirmation__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Trade Id + name: trade_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/TradeConfirmation' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/applications/: + post: + tags: + - Individuals + summary: Create Application + description: >- + Create an application. You must [apply](https://docs.jiko.io/reference) + to potentially create a customer using the application, assuming KYC is + successful. + + +
+ + + When creating an application, keep in mind that customers must be at + least 18 years old to open an account with Jiko. + operationId: create_application_api_v1_applications__post + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/InternationalApplicationRequest' + example: + identification_number: '999999999' + name: + first_name: Jiko + last_name: Customer + email: jiko@example.com + date_of_birth: '1970-01-01' + investment_profile: + income: BETWEEN_100K_AND_250K + net_worth: BETWEEN_1M_AND_5M + occupation: Investor + employment_status: EMPLOYED + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + phone_number: '+14155550100' + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/InternationalApplication' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T13:00:00+00:00' + status: CREATED + exception_reasons: [] + phone_number: '+14155550100' + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + email: jiko@example.com + name: + first_name: Jiko + last_name: Customer + date_of_birth: + date_of_birth: '1970-01-01' + investment_profile: + income: BETWEEN_100K_AND_250K + net_worth: BETWEEN_1M_AND_5M + occupation: Investor + employment_status: EMPLOYED + documents: [] + id_verification_documents_needed: false + identification_number_verification_document_needed: false + address_verification_document_needed: false + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: US + citizenship_country: US + object_type: InternationalApplication + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/applications/{application_id}/: + get: + tags: + - Individuals + summary: Get Application + description: Fetch and observe an existing application. + operationId: get_application_api_v1_applications__application_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/InternationalApplication' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T13:00:00+00:00' + status: CREATED + exception_reasons: [] + phone_number: '+14155550100' + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + email: jiko@example.com + name: + first_name: Jiko + last_name: Customer + date_of_birth: + date_of_birth: '1970-01-01' + investment_profile: + income: BETWEEN_100K_AND_250K + net_worth: BETWEEN_1M_AND_5M + occupation: Investor + employment_status: EMPLOYED + documents: [] + id_verification_documents_needed: false + identification_number_verification_document_needed: false + address_verification_document_needed: false + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: US + citizenship_country: US + object_type: InternationalApplication + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/applications/{application_id}/apply/: + post: + tags: + - Individuals + summary: Apply + description: >- + Initiate automatic KYC. Transitions the application from `CREATED` + status to `SUBMITTED` status. Once the async KYC process is completed, + the application will move from `SUBMITTED` to another status. + operationId: apply_api_v1_applications__application_id__apply__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/InternationalApplication' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T13:00:00+00:00' + status: DOCUMENTS_NEEDED + exception_reasons: [] + phone_number: '+14155550100' + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + email: jiko@example.com + name: + first_name: Jiko + last_name: Customer + date_of_birth: + date_of_birth: '1970-01-01' + investment_profile: + income: BETWEEN_100K_AND_250K + net_worth: BETWEEN_1M_AND_5M + occupation: Investor + employment_status: EMPLOYED + customer_id: 160c0c4b-9966-4dc1-a916-8407eb10d74e + documents: + - id: dcd70de2-9f18-4918-bd96-c3972c85dc4e + type: ID_FRONT + status: PENDING_UPLOAD + - id: 62cd7ac9-d882-43f5-ac19-ad85c0c5c533 + type: ID_BACK + status: PENDING_UPLOAD + - id: 1bd78e61-c86f-45b8-8848-34a51c863166 + type: PASSPORT + status: PENDING_UPLOAD + - id: 0ceee47c-946e-4a6d-8951-96e1f630a59c + type: SELFIE + status: PENDING_UPLOAD + id_verification_documents_needed: true + identification_number_verification_document_needed: false + address_verification_document_needed: false + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: US + citizenship_country: US + object_type: InternationalApplication + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/agreements/: + get: + tags: + - Individuals + summary: List Agreements + description: >- + Partner agreements and disclosures are available through the API in a + versioned bundle. The version of the fetched bundle must be attached to + all incoming applications. + operationId: list_agreements_api_v1_agreements__get + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Agreement' + example: + version: 1.0.0 + release_date: '2023-01-01' + documents: + - pdf_download_url: https://example.com/path-to-agreement-pdf + title: Jiko Privacy Policy + type: PRIVACY_POLICY + category: GENERAL + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/: + post: + tags: + - Businesses + summary: Create Application + description: >- + Create a Business Application. The **Business Application** object + contains general information related to the business and the overall + status of the application. + + +
+ + + See the [Onboarding Businesses + Guide](https://docs.jiko.io/guides/onboarding-businesses) for more. + operationId: create-business-application + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationRequest' + example: + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationResponse' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T12:00:00+00:00' + status: CREATED + exception_reasons: [] + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/{application_id}/: + get: + tags: + - Businesses + summary: Get Application + description: Fetch a Business Application. + operationId: get-business-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationResponse' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T12:00:00+00:00' + status: APPROVED + exception_reasons: [] + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + customer_id: 160c0c4b-9966-4dc1-a916-8407eb10d74e + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + patch: + tags: + - Businesses + summary: Update Application + operationId: update-business-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationRequest' + example: + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationResponse' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T12:00:00+00:00' + status: SUBMITTED + exception_reasons: [] + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/{application_id}/apply/: + post: + tags: + - Businesses + summary: Apply + description: >- + When the Business Application object has been completed, along with + Related Party Applications and Document Requests (see the [Onboarding + Businesses Guide](https://docs.jiko.io/guides/onboarding-businesses)), + call this endpoint to submit the business application for review. + operationId: business-application-apply + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/BusinessApplicationResponse' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T12:00:00+00:00' + updated_at: '2023-01-01T12:00:00+00:00' + status: SUBMITTED + exception_reasons: [] + name: Jiko Group, Inc. + entity_type: CORPORATE + doing_business_as: Jiko + identification_number: + identification_number: '987654321' + type: TIN + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + website: https://www.jiko.io + contact: + name: + first_name: Jiko + middle_name: '' + last_name: Contact + phone_number: '+15551234567' + email: contact@jiko.io + formation_date: '2017-01-04' + risk_info: + risk_categories: [] + has_current_enforcement_actions: false + business_activity_location: PRIMARILY_US + source_of_funds: INTERNAL_FUNDS + account_usage: MONEY_STORAGE + annual_revenue: PRE_REVENUE + monthly_transactions: 5_OR_LESS + first_month_deposit: 1M_OR_LESS + industry: + industry: ACCOUNTING_AND_BOOKKEEPING + agreement_consent: + version: '1' + timestamp: '2023-01-01T12:00:00+00:00' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/{application_id}/related-party-applications/: + get: + tags: + - Businesses + summary: List Related Party Application + operationId: list-related-party-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + items: + $ref: '#/components/schemas/RelatedPartyApplicationResponse' + type: array + title: Response List-Related-Party-Application + example: + - name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + title: CEO + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + post: + tags: + - Businesses + summary: Create Related Party Application + operationId: create-related-party-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedPartyApplicationRequest' + example: + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + title: CEO + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedPartyApplicationResponse' + example: + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + title: CEO + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/{application_id}/related-party-applications/{related_party_application_id}/: + delete: + tags: + - Businesses + summary: Delete Related Party Application + operationId: delete-related-party-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: Related Party Application Id + name: related_party_application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + patch: + tags: + - Businesses + summary: Update Related Party Application + operationId: update-related-party-application + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: Related Party Application Id + name: related_party_application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedPartyApplicationRequest' + example: + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + title: CEO + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/RelatedPartyApplicationResponse' + example: + name: + first_name: Related + middle_name: '' + last_name: Party + address: + street_address: 101 Mission Street + street_address2: 7th Floor + city: San Francisco + postal_code: '94105' + state: CA + country: US + date_of_birth: '1970-01-01' + identification_number: + identification_number: '987654321' + identification_type: SSN + phone_number: '+15551234567' + title: CEO + roles: + - CONTROL_PERSON + ownership_percentage: '0.51' + citizenship: US + email: relatedparty@jiko.io + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/counterparties/: + get: + tags: + - Counterparties + summary: List Counterparties + description: List all counterparties for a customer. + operationId: list_counterparties_api_v1_customers__customer_id__counterparties__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListCounterpartiesResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: ACH + ach: + time_created: '2023-01-15T14:00:00+00:00' + verification_type: MICRO_DEPOSITS + status: IN_PROGRESS + account_number: '123456789' + routing_number: '9876456' + name_on_account: External Accountholder + account_type: SAVINGS + institution_name: External Bank NA + plaid: + mask: '0000' + verification_status: PENDING_AUTOMATIC_VERIFICATION + object_type: CounterpartyPlaid + wire: + time_created: '2023-01-15T14:00:00+00:00' + verification_type: INCOMING_WIRE + status: IN_PROGRESS + account_number: '1213456789' + routing_number: '9876456' + name_on_account: External Accountholder + account_type: SAVINGS + institution_name: External Bank NA + object_type: Counterparty + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/counterparties/{counterparty_id}/: + get: + tags: + - Counterparties + summary: Get Counterparty + description: >- + Poll this endpoint to monitor the progress of the verification process + for a single counterparty. + + +
+ + + > ### Plaid: + + > If `plaid.verification_status` is `PENDING_MANUAL_VERIFICATION`, the + user is in the Same Day Micro-deposits + flow and must return in 1-2 business days and go through the Plaid Link + flow again, this time using a new Link token where the *counterparty_id* + is passed to Jiko. + operationId: >- + get_counterparty_api_v1_customers__customer_id__counterparties__counterparty_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + type: string + format: uuid + title: Counterparty Id + name: counterparty_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Counterparty' + example: + id: b5a776db-8960-4157-afe5-519b6708bb79 + type: WIRE + wire: + time_created: '2023-01-15T14:00:00+00:00' + verification_type: INCOMING_WIRE + status: IN_PROGRESS + account_number: '1213456789' + routing_number: '9876456' + name_on_account: External Accountholder + account_type: SAVINGS + institution_name: External Bank NA + object_type: Counterparty + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/cards/: + get: + tags: + - Manage Cards + summary: List Account Cards + description: >- + Get all cards for a specific account. Includes the `card_id` and + metadata, but sensitive data like CVV's, expiration dates and card + numbers are omitted. + operationId: list_account_cards_api_v1_jiko_accounts__account_id__cards__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: false + schema: + type: integer + title: Limit + default: 100 + name: limit + in: query + - required: false + schema: + type: string + title: Cursor + name: cursor + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/CardStatus' + type: array + uniqueItems: true + name: filter[status] + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CardListResponse' + example: + offset: 0 + count: 1 + items: + - card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + name: Jiko Virtual Debit Card + status: OPEN + type: VIRTUAL + object_type: List + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/cards/{card_id}/status/: + get: + tags: + - Manage Cards + summary: Get Card Status + description: Get a card's current status. + operationId: >- + get_card_status_api_v1_jiko_accounts__account_id__cards__card_id__status__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CardStatusResponse' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + patch: + tags: + - Manage Cards + summary: Set Card Status + description: >- + Set a card's status. Note that once a card's status is set to `CLOSED`, + it can never be used again. + operationId: >- + set_card_status_api_v1_jiko_accounts__account_id__cards__card_id__status__patch + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ChangeCardStatusRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CardStatusResponse' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/cards/{card_id}/pin/: + post: + tags: + - Manage Cards + summary: Set Card PIN + description: Set PIN for physical cards (by `card_id`) before they are activated. + operationId: set_card_pin_api_v1_jiko_accounts__account_id__cards__card_id__pin__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CardPinBase' + example: + encrypted_pin: >- + KzJXZ0DgR/rvWnxexTeObSsOaByNGHKt67kLwbAEWULV4szPTeOTp1wSVQalGn/ykE0qgEUV8PEZGUbyvfj3j0gpuxIMdgbxg0ujXp6UfiuOMIbmP+HDg4E2BoSduh8XygMhwiWycnqA6lnKHRjGSb8vOwnNgxTGuUX9w3k0NJl3u62JWs2FzSa/HedpxKu+U1VTRmW9Y7tee7QYC/72xseV2wKMx+iFG3Sw2D9ruC4sgVE3tdi7E9FBsSVWawle9UrTF+wdX+cfImb7lKI2Pw5MiEf29xe7moNU8RHzGgyOrbyQcx0/j8t8mLqHSs/ioRGeSNevw4pXlpJBRD+hamyRdVQdaLrWB5xEKx9Ih9fGlMYE5RJHWMveB0NQ2Oxl2h/4/Om/bbP0JDA1doY6l/ovkey9lu0c494R05tdWmch93v+f/SqAoBcXf4hDeUgLhWkRNykzzwoQOACFNcBk9TUWJH8S90TYQM3sdgIfcNFru45VGJa5jlyheqNYeU3EqsWyVFmZAJUFJUSBMJdAVkSg5jxDPdzyk7GLrk5xu2N1orq4NKzR8O6WL+PhFtJF/7pZDWawq8TZRX3nqbyYUY+5ZlnBEVXywsn0L5Fp6od4oAelyhzrjzMlhtEMpuwOFhLvcb3Fm0Z4EIDeX6l3MIhDTDExKxOJsCLG2dbbIA= + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CardPinResponse' + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/cards/{card_id}/close/: + post: + tags: + - Manage Cards + summary: Close Card + description: >- + Close a card, virtual or physical. Physical cards require a + `closure_reason`. If the reason is `STOLEN` or `LOST`, a + `lost_stolen_date` is required. + operationId: close_card_api_v1_jiko_accounts__account_id__cards__card_id__close__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CloseCardRequest' + example: + closure_reason: STOLEN + lost_stolen_date: '2023-01-01' + required: true + responses: + '204': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/card-orders/: + get: + tags: + - Physical Cards + summary: List Card Orders + description: List all card orders for this account. + operationId: list_card_orders_api_v1_jiko_accounts__account_id__card_orders__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PhysicalCardOrderListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + card_order_id: d66e74c4-66f9-4937-8518-1a94f39ba0f9 + status: INITIAL + object_type: MinimalPhysicalCardOrderResponse + object_type: CursorList + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + post: + tags: + - Physical Cards + summary: Create Physical Card Order + description: >- + Order a new, physical card for an account. It will be delivered to the + specified address. + operationId: >- + create_physical_card_order_api_v1_jiko_accounts__account_id__card_orders__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PhysicalCardOrder' + example: + name_on_card: Jiko Customer + shipping_address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PhysicalCardOrderResponse' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + card_order_id: d66e74c4-66f9-4937-8518-1a94f39ba0f9 + status: INITIAL + name_on_card: Jiko Customer + shipping_address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + object_type: PhysicalCardOrderResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/card-orders/{card_order_id}/: + get: + tags: + - Physical Cards + summary: Get Card Order + description: Retrieve card order information by provided `card_order_id`. + operationId: >- + get_card_order_api_v1_jiko_accounts__account_id__card_orders__card_order_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Order Id + name: card_order_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PhysicalCardOrderResponse' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + card_order_id: d66e74c4-66f9-4937-8518-1a94f39ba0f9 + status: INITIAL + name_on_card: Jiko Customer + shipping_address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + object_type: PhysicalCardOrderResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/virtual-cards/{card_id}/: + post: + tags: + - Virtual Cards + summary: Get Virtual Card + description: >- + Retrieve virtual card detail by given `card_id`. Generate a single-use + 4096-bit RSA key-pair at the (end user) client side and pass the public + key PEM encoded upstream in PKCS#1 or PKCS#1.5 format to ensure + confidentiality and encryption of the card's PAN, CVV and expiration + date. + operationId: >- + get_virtual_card_api_v1_jiko_accounts__account_id__virtual_cards__card_id___post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PublicKeyRequest' + example: + public_key: "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzmZv8spzSU9z+/bhFzX0\r\ns4xVXE9ZOApQUMoM3Q1VDiJujyWJ61uoTsWT1uQlIXHdUQ3NcXw0WYDUEaM8fj1b\r\nB2k1zSXmRD4VmxAIRNVfs3Cp3GKqC/WjyvDw25+SYBFwiaYJblpyZPiunXvXRyK8\r\nvdDaPliwTN5p7pjHQvcfXOl20ZtWnZTGMulJ+smNCYKWckW1hEOMjJP8FLMJpSHa\r\n6yGOpAYAxoHxodiJCI4X6fG206gBtyFps1CyxCz8WDjALqJYfeArTFv7/2AyuVCF\r\n5zLE7tzPrJeVxfqa+CI+7mWFhEKZLAd/PEzEL7P2VZr9BRd0lyxBipEEG/DGMEvY\r\n1dcx+3J56ZxVURAqeXPGkqVfz/IdisQt/okp6vSVKQdImeyzpJvwvBc7T7tKyRZR\r\nvtL8XLYzZBujqWCezMxU97TAb7BlQ2nPJCQFMZD7y1KldgWuGnjXha1TFIYvfrYW\r\noDFK221Z6LYlKWeRFGXhoNOX1Qm/CX3wi9Tfo01LTxbCY2Y1mbv6e8Xt12MzhicD\r\nZsFvVrtRaVrjmqXXDq8X2r7puPTLOQf7Dow3944XnTZQURE4oPIwCfTBmfMow+TB\r\n+ZUYWRXwg0/hl9AOBSGLVNlaGZD8sAu98knish5LJv34lx5mIiLLpGpIt+mzZikU\r\nFt9siIkltvk49qcmTuI8GJUCAwEAAQ==\r\n-----END PUBLIC KEY-----" + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualCardResponse' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + encrypted_pan: LBHyVQggqNZvbYriaL8omZSFnQfS4yMFEO8hpVmgrtn70uYz56... + encrypted_cvv: GLuGA7uI2iYrzE03XkKMH1IJZD6cxR+WJmgw9Z0VuervNqnkUq... + encrypted_expiration: amAxcZuURFfOi38kbM1LXfa6gBmuaSCt10Kic8243kM1V+Llsb... + object_type: VirtualCardResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + delete: + tags: + - Virtual Cards + summary: Close Virtual Card + description: Close a virtual card. This is an irreversible action. + operationId: >- + close_virtual_card_api_v1_jiko_accounts__account_id__virtual_cards__card_id___delete + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Card Id + name: card_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/virtual-cards/: + post: + tags: + - Virtual Cards + summary: Create Virtual Card + description: >- + Create a virtual card for an account. Generate a single-use 4096-bit RSA + key-pair at the (end user) client side and pass the public key PEM + encoded upstream in PKCS#1 or PKCS#1.5 format to ensure confidentiality + and encryption of the card's PAN, CVV and expiration date. + operationId: >- + create_virtual_card_api_v1_jiko_accounts__account_id__virtual_cards__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PublicKeyRequest' + example: + public_key: "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzmZv8spzSU9z+/bhFzX0\r\ns4xVXE9ZOApQUMoM3Q1VDiJujyWJ61uoTsWT1uQlIXHdUQ3NcXw0WYDUEaM8fj1b\r\nB2k1zSXmRD4VmxAIRNVfs3Cp3GKqC/WjyvDw25+SYBFwiaYJblpyZPiunXvXRyK8\r\nvdDaPliwTN5p7pjHQvcfXOl20ZtWnZTGMulJ+smNCYKWckW1hEOMjJP8FLMJpSHa\r\n6yGOpAYAxoHxodiJCI4X6fG206gBtyFps1CyxCz8WDjALqJYfeArTFv7/2AyuVCF\r\n5zLE7tzPrJeVxfqa+CI+7mWFhEKZLAd/PEzEL7P2VZr9BRd0lyxBipEEG/DGMEvY\r\n1dcx+3J56ZxVURAqeXPGkqVfz/IdisQt/okp6vSVKQdImeyzpJvwvBc7T7tKyRZR\r\nvtL8XLYzZBujqWCezMxU97TAb7BlQ2nPJCQFMZD7y1KldgWuGnjXha1TFIYvfrYW\r\noDFK221Z6LYlKWeRFGXhoNOX1Qm/CX3wi9Tfo01LTxbCY2Y1mbv6e8Xt12MzhicD\r\nZsFvVrtRaVrjmqXXDq8X2r7puPTLOQf7Dow3944XnTZQURE4oPIwCfTBmfMow+TB\r\n+ZUYWRXwg0/hl9AOBSGLVNlaGZD8sAu98knish5LJv34lx5mIiLLpGpIt+mzZikU\r\nFt9siIkltvk49qcmTuI8GJUCAwEAAQ==\r\n-----END PUBLIC KEY-----" + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/VirtualCardResponse' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + encrypted_pan: LBHyVQggqNZvbYriaL8omZSFnQfS4yMFEO8hpVmgrtn70uYz56... + encrypted_cvv: GLuGA7uI2iYrzE03XkKMH1IJZD6cxR+WJmgw9Z0VuervNqnkUq... + encrypted_expiration: amAxcZuURFfOi38kbM1LXfa6gBmuaSCt10Kic8243kM1V+Llsb... + object_type: VirtualCardResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/events/types/: + get: + tags: + - Events + summary: List Event Types + description: List all event types. + operationId: list_event_types_api_v1_events_types__get + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/EventListResponse' + example: + offset: 0 + count: 14 + items: + - event: application.approved + object_type: EventType + - event: application.documents_needed + object_type: EventType + - event: application.manual_review + object_type: EventType + - event: application.rejected + object_type: EventType + - event: card.status.closed + object_type: EventType + - event: card.status.frozen + object_type: EventType + - event: card.status.locked + object_type: EventType + - event: card.status.open + object_type: EventType + - event: card.transaction.approved + object_type: EventType + - event: card.transaction.rejected + object_type: EventType + - event: transfers.ach.in.success + object_type: EventType + - event: transfers.ach.in.rejected + object_type: EventType + - event: transfers.ach.out.success + object_type: EventType + - event: transfers.ach.out.rejected + object_type: EventType + object_type: List + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/events/: + get: + tags: + - Events + summary: List Events + description: List all past events. + operationId: list_events_api_v1_events__get + parameters: + - required: false + schema: + type: string + format: uuid + title: Subscription Id + name: subscription_id + in: query + - required: false + schema: + type: string + format: date-time + title: After + name: after + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CursorListResponse_PartnerEvent_' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - event: + event_id: a7a26ff2-e851-45b6-9634-d595f45458b7 + timestamp: '2023-01-01T14:00:00+00:00' + payload: + application_id: 48ac72d0-a829-4896-a067-dcb1c2b0f30c + event_type: application.approved + delivery_attempts: + - delivery_attempt_id: 5326238f-7f19-4e5f-b374-402eed7b1c7b + subscription_id: aa11a4c2-a467-43db-b413-c4ab0f5cf627 + success: true + response_code: 200 + response_message: OK + called_at: '2023-01-01T14:00:00+00:00' + object_type: PartnerEvent + object_type: CursorList + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/counterparties/plaid/link-token/: + post: + tags: + - 'Counterparties: Plaid' + summary: Create Plaid Link Token + description: >- + To initiate the Plaid Link flow in your app, a link token must be + created to identify the data flowing between your app, Plaid and Jiko. + If the Plaid Link flow has to be accessed again later to complete + account ownership verification (Same Day Micro-deposits), you must + include the *counterparty_id* for the counterparty in question. + *redirect_uri* allows you to use OAuth. + + +
+ + + **NOTE**: `android_package_name` and `redirect_uri` are mutually + exclusive. Only one should be provided, depending on your use case. + operationId: >- + create_plaid_link_token_api_v1_customers__customer_id__counterparties_plaid_link_token__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PlaidLinkTokenRequest' + example: + client_name: My App + redirect_uri: https://example.com/plaid-oauth + android_package_name: com.example.myapp + counterparty_id: fd38dae9-b300-4017-a630-101c4279eafd + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PlaidLinkToken' + example: + link_token: link-af1a0311-da53-4636-b754-dd15cc058176 + expiration: '2023-01-01T12:00:00+00:00' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/counterparties/plaid/: + post: + tags: + - 'Counterparties: Plaid' + summary: Create Plaid Counterparties + description: >- + Once your user has completed the Plaid Link flow, you must forward some + data from Plaid to Jiko to create the counterparty. This includes + information about the third party financial institution and the specific + accounts selected by the user. The *institution_id* is required in all + cases except in the Same Day Micro-deposits flow. + operationId: >- + create_plaid_counterparties_api_v1_customers__customer_id__counterparties_plaid__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PlaidCreateCounterparties' + example: + public_token: public-b0e2c4ee-a763-4df5-bfe9-46a46bce993d + accounts: + - id: blgvvBlXw3cq5GMPwqB6s6q4dLKB9WcVqGDGo + name: Plaid Checking + mask: '0000' + institution_id: ins_109508 + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/PlaidCreateCounterpartiesResponse' + example: + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: ACH + ach: + time_created: '2023-01-15T14:00:00+00:00' + verification_type: MICRO_DEPOSITS + status: IN_PROGRESS + account_number: '123456789' + routing_number: '9876456' + name_on_account: External Accountholder + account_type: SAVINGS + institution_name: External Bank NA + plaid: + mask: '0000' + verification_status: PENDING_AUTOMATIC_VERIFICATION + object_type: CounterpartyPlaid + object_type: Counterparty + object_type: PlaidCreateCounterpartiesResponse + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/counterparties/{counterparty_id}/plaid/verify/: + post: + tags: + - 'Counterparties: Plaid' + summary: Verify Plaid Counterparty + description: >- + If and when a user completes the Same Day Micro-deposits flow, call this + endpoint to notify it has been completed. Then, go back to polling the + counterparty until verification is complete. + operationId: >- + verify_plaid_counterparty_api_v1_customers__customer_id__counterparties__counterparty_id__plaid_verify__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + type: string + format: uuid + title: Counterparty Id + name: counterparty_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/subscriptions/: + get: + tags: + - Subscriptions + summary: List Subscriptions + description: List a partner's subscriptions. + operationId: list_subscriptions_api_v1_subscriptions__get + parameters: + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CursorListResponse_Subscription_' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - description: Jiko API Webhook Subscriptions + events: + - application.approved + - application.documents_needed + - application.manual_review + - application.rejected + - card.status.closed + - card.status.frozen + - card.status.locked + - card.status.open + - card.transaction.approved + - card.transaction.rejected + - transfers.ach.in.success + - transfers.ach.in.rejected + - transfers.ach.out.success + - transfers.ach.out.rejected + url: https://example.com/webhooks + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T14:00:00+00:00' + updated_at: '2023-01-01T14:00:00+00:00' + status: enabled + object_type: Subscription + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + post: + tags: + - Subscriptions + summary: Create Subscription + description: >- + Creates a webhook subscription for the specified event types and the + given URL. + operationId: create_subscription_api_v1_subscriptions__post + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateSubscriptionRequest' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success + shared_secret: '1234567890123456' + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T14:00:00+00:00' + updated_at: '2023-01-01T14:00:00+00:00' + status: enabled + object_type: Subscription + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/subscriptions/{subscription_id}/: + get: + tags: + - Subscriptions + summary: Get Subscription + description: Retrieve a webhook subscription by given `subscription_id`. + operationId: get_subscription_api_v1_subscriptions__subscription_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Subscription Id + name: subscription_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T14:00:00+00:00' + updated_at: '2023-01-01T14:00:00+00:00' + status: enabled + object_type: Subscription + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + delete: + tags: + - Subscriptions + summary: Delete Subscription + description: Deletes a webhook subscription matching the given ID. + operationId: delete_subscription_api_v1_subscriptions__subscription_id___delete + parameters: + - required: true + schema: + type: string + format: uuid + title: Subscription Id + name: subscription_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + patch: + tags: + - Subscriptions + summary: Update Subscription + description: Updates webhook subscription by specified `subscription_id`. + operationId: update_subscription_api_v1_subscriptions__subscription_id___patch + parameters: + - required: true + schema: + type: string + format: uuid + title: Subscription Id + name: subscription_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateSubscriptionRequest' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success-new + shared_secret: '1234567890123456' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + example: + description: Incoming ACH Success Webhook + events: + - transfers.ach.in.success + url: https://example.com/webhooks/ach-incoming-success-new + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + time_created: '2023-01-01T14:00:00+00:00' + updated_at: '2023-01-01T16:00:00+00:00' + status: enabled + object_type: Subscription + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/ach-originating/: + get: + tags: + - ACH + summary: List ACH Originations + description: List all ACH transfer originations. + operationId: >- + list_ach_originations_api_v1_jiko_accounts__account_id__ach_originating__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: false + schema: + items: + $ref: '#/components/schemas/ACHStatus' + type: array + name: filter[status] + in: query + - required: false + schema: + $ref: '#/components/schemas/ACHDirection' + name: direction + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 100 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/CursorListResponse_ACHResponse_' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - counterparty_id: fd38dae9-b300-4017-a630-101c42791afd + direction: CREDIT + sec_code: WEB + payment_related_information: + - Transferring funds to Jiko from an external account + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + status: PROCESSED + time_created: '2023-01-01T14:00:00+00:00' + company_entry_description: Incoming ACH Transfer + object_type: ACHResponse + object_type: CursorList + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + post: + tags: + - ACH + summary: Create ACH Origination + description: >- + Originate an ACH transaction with the counterparty. + + This can only be done after creating a + [Counterparty](https://docs.jiko.io/reference) for the account. + + +
+ + + ### ACH Origination Limitations + + +
+ + + - All transfers that are below 25k and scheduled before 12:00 ET are + sent with settlement same-day + + - All transfers above 25k scheduled before 12:00 ET are sent with + settlement next day + + - All transfers scheduled after 12:00 ET follow the above rules the + following day + operationId: >- + create_ach_origination_api_v1_jiko_accounts__account_id__ach_originating__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ACHRequest' + example: + counterparty_id: fd38dae9-b300-4017-a630-101c4279eafd + direction: CREDIT + sec_code: WEB + payment_related_information: + - Transferring funds to Jiko from an external account + amount_usdc: 100000 + company_entry_description: ACH TXN IN + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ACHResponse' + example: + counterparty_id: fd38dae9-b300-4017-a630-101c42791afd + direction: CREDIT + sec_code: WEB + payment_related_information: + - Transferring funds to Jiko from an external account + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + status: PROCESSED + time_created: '2023-01-01T14:00:00+00:00' + company_entry_description: Incoming ACH Transfer + object_type: ACHResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/ach-originating/{transfer_id}/: + get: + tags: + - ACH + summary: Get ACH Origination + description: Get a specific ACH transfer origination. + operationId: >- + get_ach_origination_api_v1_jiko_accounts__account_id__ach_originating__transfer_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Transfer Id + name: transfer_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ACHResponse' + example: + counterparty_id: fd38dae9-b300-4017-a630-101c42791afd + direction: CREDIT + sec_code: WEB + payment_related_information: + - Transferring funds to Jiko from an external account + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + status: PROCESSED + time_created: '2023-01-01T14:00:00+00:00' + company_entry_description: Incoming ACH Transfer + object_type: ACHResponse + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/wires/: + post: + tags: + - Wires + summary: Create Wire + description: >- + Initiates a Wire Transfer. Wires can only be sent to accounts created + and verified via [Create + Counterparty](https://docs.jiko.io/reference/v2#tag/Counterparties/operation/create-counterparty-v2). + Initiating outgoing wire transfers isn’t available by default and must + be enabled — please contact your Jiko point-of-contact to learn more. + operationId: create-wire + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WireRequest' + example: + counterparty_id: fd38dae9-b300-4017-a630-101c4279eafd + amount_usdc: 1000000 + created_by: jiko@example.com + description: Wiring funds to external account + wire_id: 6b14d0c0-277f-4a32-b5ac-c2e1c7d99f15 + required: true + responses: + '201': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/transfers/on-us/: + post: + tags: + - On-Us Transfers + summary: Create On-Us Transfer + description: >- + Initiates an On-Us Transfer between two Pockets. + + + On-Us Transfers can be made in three 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 + + + 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`. + operationId: create-on-us-transfer + parameters: + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/OnUsTransferDetailsRequest' + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/OnUsTransfer' + example: + 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: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_FUNDING + source: '123456789' + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + fees: + - type: AUM_FEE + amount: + value: 10 + currency: USD + formatted: $0.10 + object_type: OnUsTransfer + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/transfers/on-us/{transfer_id}/: + get: + tags: + - On-Us Transfers + summary: Get On-Us Transfer + description: Gets a single on-us transfer by ID. + operationId: get-on-us-transfer + parameters: + - required: true + schema: + type: string + format: uuid + title: Transfer Id + name: transfer_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/OnUsTransfer' + example: + 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: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_FUNDING + source: '123456789' + amount: + value: 100000 + currency: USD + formatted: $1,000.00 + fees: + - type: AUM_FEE + amount: + value: 10 + currency: USD + formatted: $0.10 + object_type: OnUsTransfer + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/: + get: + tags: + - Customers + summary: Get Customer Data + description: Retrieve customer details for the customer given by the customer ID. + operationId: get_customer_data_api_v1_customers__customer_id___get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Customer' + example: + address: + street_address: 2000 Allston Way + city: Berkeley + postal_code: '94701' + state: CA + country: USA + email: jiko@example.com + phone_number: '15551234567' + account_status: OPEN + type: INDIVIDUAL + name: + first_name: Jiko + last_name: Customer + date_of_birth: '1970-01-01' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/statements/: + get: + tags: + - Statements + summary: List Customer Statements + description: Get all statements for all accounts of a specific customer. + operationId: list_customer_statements_api_v1_customers__customer_id__statements__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: false + schema: + items: + type: string + format: uuid + type: array + title: Account[] + name: account[] + in: query + - required: false + schema: + allOf: + - $ref: '#/components/schemas/Order' + default: desc + name: order + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/StatementType' + type: array + default: [] + name: type[] + in: query + - description: Date formatted either `YYYY` or `YYYY-MM` + required: false + schema: + type: string + pattern: ^\d{4}(-\d{2})?$ + title: Key + description: Date formatted either `YYYY` or `YYYY-MM` + name: key + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 150 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/StatementListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + type: BANK + key: '2023-01-01' + pdf_download_url: https://example.com/path-to-statement-pdf + time_created: '2023-01-15T14:00:00+00:00' + object_type: Statement + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/statements/: + get: + tags: + - Statements + summary: List Account Statements + description: >- + Lists all statements for an account. Partners can expect monthly + statements to be available by the 15th of every month. + + +
+ + + Bank and Broker dealer statements are sensitive documents. For security + reasons, these URLs have a 10 minute TTL. Therefore, they should be + fetched and served just-in-time, not stored in databases. + operationId: >- + list_account_statements_api_v1_jiko_accounts__account_id__statements__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: false + schema: + allOf: + - $ref: '#/components/schemas/Order' + default: desc + name: order + in: query + - required: false + schema: + items: + $ref: '#/components/schemas/StatementType' + type: array + default: [] + name: type[] + in: query + - description: Date formatted either `YYYY` or `YYYY-MM` + required: false + schema: + type: string + pattern: ^\d{4}(-\d{2})?$ + title: Key + description: Date formatted either `YYYY` or `YYYY-MM` + name: key + in: query + - required: false + schema: + type: string + title: Cursor + default: '' + name: cursor + in: query + - required: false + schema: + type: integer + exclusiveMinimum: 0 + title: Limit + default: 30 + lte: 150 + name: limit + in: query + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/StatementListResponse' + example: + prev_page: >- + cj0xJnA9MjAyMi0xMi0yMSsxNyUzQTIyJTNBMDguNjc5MzQ5JTJCMDAlM0EwMA== + next_page: cD0yMDIyLTEyLTE5KzE5JTNBNTQlM0EyNy4xODMyNzglMkIwMCUzQTAw + items: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + type: BANK + key: '2023-01-01' + pdf_download_url: https://example.com/path-to-statement-pdf + time_created: '2023-01-15T14:00:00+00:00' + object_type: Statement + object_type: CursorList + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + deprecated: true + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/portals/: + get: + tags: + - Portals + summary: List Portals + description: Get a list of portals associated with an account. + operationId: list_account_portals_api_v1_jiko_accounts__account_id__portals__get + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/ListPortalsResponse' + example: + count: 1 + portals: + - id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + routing_number: '123456789' + account_number: '987654321' + status: OPEN + name: Payroll + object_type: Portal + object_type: List + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + post: + tags: + - Portals + summary: Create Portal + description: Create a portal for an account. + operationId: create_portal_api_v1_jiko_accounts__account_id__portals__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PortalCreateRequest' + example: + name: Payroll + required: true + responses: + '201': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Portal' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + routing_number: '123456789' + account_number: '987654321' + status: OPEN + name: Payroll + object_type: Portal + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/portals/{portal_id}/: + get: + tags: + - Portals + summary: Get Account Portal + description: Get a specific portal associated with an account. + operationId: get-account-portal + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Portal Id + name: portal_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Portal' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + routing_number: '123456789' + account_number: '987654321' + status: OPEN + name: Payroll + object_type: Portal + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + patch: + tags: + - Portals + summary: Update Portal + description: Update a portal's name. + operationId: >- + update_portal_api_v1_jiko_accounts__account_id__portals__portal_id___patch + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Portal Id + name: portal_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PortalUpdateRequest' + required: true + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Portal' + example: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + jiko_account_id: 8a7ec6c0-2701-40a1-8954-68870964b50d + routing_number: '123456789' + account_number: '987654321' + status: OPEN + name: Payroll + object_type: Portal + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/jiko-accounts/{account_id}/portals/{portal_id}/close/: + post: + tags: + - Portals + summary: Close Portal + description: Close a portal. This is an irreversible action. + operationId: >- + close_portal_api_v1_jiko_accounts__account_id__portals__portal_id__close__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Account Id + name: account_id + in: path + - required: true + schema: + type: string + format: uuid + title: Portal Id + name: portal_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + - required: true + schema: + type: string + title: X-Jiko-Signature + name: x-jiko-signature + in: header + responses: + '204': + description: Successful Response + '404': + description: Not found + '412': + description: Portal is already closed. + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/applications/{application_id}/documents/{document_type}/file/: + post: + tags: + - Individuals + summary: Upload Document To Application + description: >- + Upload documents to the application for more detailed KYC or manual + review. + + + As with all other endpoints, the bearer token and `x-jiko-idempotency` + is needed, but `x-jiko-signature` is not needed. + + The file should be posted unprocessed in the request body, in the same + manner as `curl -X POST --data-binary @my_file.png` does. + + The maximum file size for `ID_FRONT`, `ID_BACK`, `SELFIE` and `PASSPORT` + is 5 MB. Other files can be up to 50 MB. + + + + Documents can be uploaded before and after calling + [Apply](https://docs.jiko.io/reference). + operationId: >- + Upload_document_to_Application_api_v1_applications__application_id__documents__document_type__file__post + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + $ref: '#/components/schemas/DocumentType' + name: document_type + in: path + - required: true + schema: + type: string + pattern: image/png + title: Content-Type + name: content-type + in: header + - required: true + schema: + type: integer + exclusiveMaximum: 52428800 + exclusiveMinimum: 0 + title: Content-Length + name: content-length + in: header + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/UploadDocumentResponse' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/customers/{customer_id}/documents/{document_type}/file/: + post: + tags: + - Customers + summary: Upload Document To Customer + description: >- + Upload files for an approved customer. Used to verify customer requests + (e.g. Customer change request, close account request, ACH request). + Refer to the [Upload Document To + Application](https://docs.jiko.io/reference) for more detailed info. + operationId: upload-customer-document + parameters: + - required: true + schema: + type: string + format: uuid + title: Customer Id + name: customer_id + in: path + - required: true + schema: + $ref: '#/components/schemas/DocumentType' + name: document_type + in: path + - required: true + schema: + type: string + pattern: image/png + title: Content-Type + name: content-type + in: header + - required: true + schema: + type: integer + exclusiveMaximum: 52428800 + exclusiveMinimum: 0 + title: Content-Length + name: content-length + in: header + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/UploadDocumentResponse' + '404': + description: Not found + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/business-applications/{application_id}/documents/: + get: + tags: + - Businesses + summary: List Document Requests + description: >- + Fetch the list of outstanding Document Requests. Document Requests vary + depending on the information provided in the Business Application and + Related Party Application objects. + + +
+ + + See the [Onboarding Businesses + Guide](https://docs.jiko.io/guides/onboarding-businesses) for more. + operationId: list-document-requests-businesses + parameters: + - required: true + schema: + type: string + format: uuid + title: Application Id + name: application_id + in: path + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + items: + $ref: '#/components/schemas/Document' + type: array + title: Response List-Document-Requests-Businesses + example: + - id: 61c23eb1-002a-4459-aa9a-624428281e14 + type: OPERATING_AGREEMENT + status: PENDING_UPLOAD + exception_reason: '' + name: '' + - id: 96e70040-eb4e-48d1-98af-0c793a6ee137 + type: ARTICLES_OF_INCORPORATION + status: INVALID + exception_reason: IMAGE_QUALITY_ERROR_CUTOFF + name: articles_of_incorporation.png + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/documents/{document_id}/: + post: + tags: + - Businesses + summary: Upload Document + operationId: upload-business-application-document + parameters: + - required: true + schema: + type: string + format: uuid + title: Document Id + name: document_id + in: path + - required: true + schema: + type: string + pattern: image/png + title: Content-Type + name: content-type + in: header + - required: true + schema: + type: integer + exclusiveMaximum: 52428800 + exclusiveMinimum: 0 + title: Content-Length + name: content-length + in: header + - required: true + schema: + type: string + title: Content-Disposition + name: content-disposition + in: header + - required: true + schema: + type: string + format: uuid + title: X-Jiko-Idempotency + name: x-jiko-idempotency + in: header + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/Document' + example: + id: 96e70040-eb4e-48d1-98af-0c793a6ee137 + type: ARTICLES_OF_INCORPORATION + status: APPROVED + exception_reason: '' + name: articles_of_incorporation.png + '404': + description: Not found + '412': + description: Document has already been reviewed and approved. + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/login/: + post: + tags: + - Security + summary: Login + description: >- + Provide the username and password in a request body to receive a bearer + token to authenticate to the API's other endpoints. + + +
+ + + See [Authentication](https://docs.jiko.io/reference). + operationId: login_api_v1_login__post + requestBody: + required: true + content: + application/json: + schema: + title: Login Info + examples: + username: username + password: password + allOf: + - $ref: '#/components/schemas/LoginInput' + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/LoginResponse' + example: + token: LBHyVQggqNZvbYriaL8omZSFnQfS4yMFEO8hpVmgrtn= + expires: '2023-01-01T14:00:00+00:00' + '401': + description: Unauthorized + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + /api/v1/public-keys/: + get: + tags: + - Security + summary: List Public Keys + description: Returns all relevant asymmetric encryption keys. + operationId: list_public_keys_api_v1_public_keys__get + responses: + '200': + description: Successful Response + content: + application/json: + schema: + $ref: '#/components/schemas/EncryptionKeysResponse' + example: + set_pin: "-----BEGIN PUBLIC KEY-----\r\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAzmZv8spzSU9z+/bhFzX0\r\ns4xVXE9ZOApQUMoM3Q1VDiJujyWJ61uoTsWT1uQlIXHdUQ3NcXw0WYDUEaM8fj1b\r\nB2k1zSXmRD4VmxAIRNVfs3Cp3GKqC/WjyvDw25+SYBFwiaYJblpyZPiunXvXRyK8\r\nvdDaPliwTN5p7pjHQvcfXOl20ZtWnZTGMulJ+smNCYKWckW1hEOMjJP8FLMJpSHa\r\n6yGOpAYAxoHxodiJCI4X6fG206gBtyFps1CyxCz8WDjALqJYfeArTFv7/2AyuVCF\r\n5zLE7tzPrJeVxfqa+CI+7mWFhEKZLAd/PEzEL7P2VZr9BRd0lyxBipEEG/DGMEvY\r\n1dcx+3J56ZxVURAqeXPGkqVfz/IdisQt/okp6vSVKQdImeyzpJvwvBc7T7tKyRZR\r\nvtL8XLYzZBujqWCezMxU97TAb7BlQ2nPJCQFMZD7y1KldgWuGnjXha1TFIYvfrYW\r\noDFK221Z6LYlKWeRFGXhoNOX1Qm/CX3wi9Tfo01LTxbCY2Y1mbv6e8Xt12MzhicD\r\nZsFvVrtRaVrjmqXXDq8X2r7puPTLOQf7Dow3944XnTZQURE4oPIwCfTBmfMow+TB\r\n+ZUYWRXwg0/hl9AOBSGLVNlaGZD8sAu98knish5LJv34lx5mIiLLpGpIt+mzZikU\r\nFt9siIkltvk49qcmTuI8GJUCAwEAAQ==\r\n-----END PUBLIC KEY-----" + /health: + get: + tags: + - Health + summary: Get Health Check + description: >- + A health check endpoint, which returns "OK" if the Partner API is up and + running. + operationId: get-health-check + responses: + '200': + description: Successful Response + content: + application/json: + schema: + type: string + enum: + - OK + title: Response Get-Health-Check + /api/v1/sandbox/card-swipe/: + post: + tags: + - Sandbox + summary: Submit Card Swipe + description: >- + Simulate a card swipe with the given `card_id` for a given `amount_usdc` + in USD cents. **Note**: Only for virtual cards at the moment. + operationId: submit_card_swipe_api_v1_sandbox_card_swipe__post + parameters: + - required: false + schema: + type: string + title: X-Branch-Name + name: x-branch-name + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CardSwipe' + example: + card_id: 66f6e46c-f6a1-4af8-a1bd-49666bc01304 + amount_usdc: 100000 + required: true + responses: + '202': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/sandbox/generate-card/: + post: + tags: + - Sandbox + summary: Generate Physical Card From Order + description: Generate a physical card from a card order with a given `card_order_id`. + operationId: generate_physical_card_from_order_api_v1_sandbox_generate_card__post + parameters: + - required: false + schema: + type: string + title: X-Branch-Name + name: x-branch-name + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GeneratePhysicalCardFromOrder' + required: true + responses: + '202': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/sandbox/webhook/: + post: + tags: + - Sandbox + summary: Trigger Webhook + description: >- + Simulates a webhook event according to the payload. This will trigger + requests to subscribed callback URLs, if any. + operationId: trigger-webhook + parameters: + - required: false + schema: + type: string + title: X-Branch-Name + name: x-branch-name + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EventDetails' + required: true + responses: + '202': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] + /api/v1/sandbox/fund/: + post: + tags: + - Sandbox + summary: Fund Account + description: >- + Simulates an ACH credit to the provided Jiko account. Requires a portal + to use. A portal can be created using the [Create + Portal](https://docs.jiko.io/reference) endpoint. + operationId: fund_account_api_v1_sandbox_fund__post + parameters: + - required: false + schema: + type: string + title: X-Branch-Name + name: x-branch-name + in: header + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FundPortalRequest' + required: true + responses: + '202': + description: Successful Response + '422': + description: Validation Error + content: + application/json: + schema: + $ref: '#/components/schemas/HTTPValidationError' + security: + - HTTPBearer: [] +components: + schemas: + ACHCounterparty: + properties: + time_created: + type: string + format: date-time + title: Time Created + verification_type: + $ref: '#/components/schemas/ACHCounterpartyVerificationType' + status: + $ref: '#/components/schemas/ACHCounterpartyVerificationStatus' + account_number: + type: string + title: Account Number + routing_number: + type: string + title: Routing Number + name_on_account: + type: string + title: Name On Account + account_type: + $ref: '#/components/schemas/ACHCounterpartyAccountType' + institution_name: + type: string + title: Institution Name + plaid: + $ref: '#/components/schemas/CounterpartyPlaid' + micro_deposits: + $ref: '#/components/schemas/CounterpartyMicroDeposits' + type: object + required: + - time_created + - verification_type + - status + - account_number + - routing_number + - name_on_account + - account_type + - institution_name + title: ACHCounterparty + ACHCounterpartyAccountType: + type: string + enum: + - SAVINGS + - CHECKING + title: ACHCounterpartyAccountType + description: An enumeration. + ACHCounterpartyVerificationStatus: + type: string + enum: + - IN_PROGRESS + - FAILED + - VERIFIED + title: ACHCounterpartyVerificationStatus + description: An enumeration. + ACHCounterpartyVerificationType: + type: string + enum: + - MICRO_DEPOSITS + - PLAID + - PRE_VERIFIED + - INCOMING_WIRE + - SUPPORTING_DOCUMENTS + title: ACHCounterpartyVerificationType + description: An enumeration. + ACHDirection: + type: string + enum: + - DEBIT + - CREDIT + title: ACHDirection + description: An enumeration. + ACHIncomingEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/ACHIncomingPayload' + event_type: + type: string + enum: + - transfers.ach.in.success + - transfers.ach.in.rejected + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: ACHIncomingEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + ACHIncomingPayload: + properties: + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + type: object + required: + - jiko_account_id + title: ACHIncomingPayload + ACHOutgoingEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/ACHOutgoingPayload' + event_type: + type: string + enum: + - transfers.ach.out.success + - transfers.ach.out.rejected + - transfers.ach.out.sent + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: ACHOutgoingEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + ACHOutgoingPayload: + properties: + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + type: object + required: + - jiko_account_id + title: ACHOutgoingPayload + ACHRequest: + properties: + counterparty_id: + type: string + format: uuid + title: Counterparty Id + direction: + $ref: '#/components/schemas/ACHDirection' + sec_code: + allOf: + - $ref: '#/components/schemas/ACHSECCodeInput' + default: WEB + payment_related_information: + items: + type: string + type: array + title: Payment Related Information + default: [] + amount_usdc: + type: integer + title: Amount Usdc + company_entry_description: + type: string + pattern: ^[ a-zA-Z0-9]{1,10}$ + title: Company Entry Description + description: >- + Short description of the purpose of the entry (Maximum of 10 + characters). Required for sec_code `"CCD"` and `"PPD"`. For sec_code + `"WEB"` the default value for DEBIT is "Funding TX" and "Release TX" + for CREDIT. + type: object + required: + - counterparty_id + - direction + - amount_usdc + title: ACHRequest + ACHResponse: + properties: + counterparty_id: + type: string + format: uuid + title: Counterparty Id + direction: + $ref: '#/components/schemas/ACHDirection' + sec_code: + $ref: '#/components/schemas/ACHSECCode' + payment_related_information: + items: + type: string + type: array + title: Payment Related Information + id: + type: string + format: uuid + title: Id + amount: + $ref: '#/components/schemas/Amount' + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + status: + $ref: '#/components/schemas/ACHStatus' + time_created: + type: string + format: date-time + title: Time Created + company_entry_description: + type: string + title: Company Entry Description + type: object + required: + - counterparty_id + - direction + - sec_code + - payment_related_information + - id + - amount + - jiko_account_id + - status + - time_created + - company_entry_description + title: ACHResponse + ACHSECCode: + type: string + enum: + - CCD + - PPD + - WEB + title: ACHSECCode + description: An enumeration. + ACHSECCodeInput: + type: string + enum: + - CCD + - WEB + title: ACHSECCodeInput + description: An enumeration. + ACHStatus: + type: string + enum: + - PENDING + - FAILED + - REJECTED + - PROCESSED + - APPROVED + - IN_TRANSIT + - CANCELLED + title: ACHStatus + description: An enumeration. + ACHTransactionDetails: + properties: + company_name: + type: string + title: Company Name + company_entry_description: + type: string + title: Company Entry Description + individual_identification_number: + type: string + title: Individual Identification Number + trace_number: + type: string + title: Trace Number + type: object + required: + - company_name + title: ACHTransactionDetails + Account: + properties: + id: + type: string + format: uuid + title: Id + name: + type: string + title: Name + description: The account name + total_value: + allOf: + - $ref: '#/components/schemas/Amount' + title: Total Value + description: Current total value of account + status: + allOf: + - $ref: '#/components/schemas/AccountStatus' + description: Account status + portfolio: + allOf: + - $ref: '#/components/schemas/Portfolio' + title: Portfolio + description: Total liquid cash and holdings + type: object + required: + - id + - name + - total_value + - status + - portfolio + title: Account + AccountStatus: + type: string + enum: + - OPEN + - CLOSED + - FROZEN + title: AccountStatus + description: An enumeration. + AccountUsage: + type: string + enum: + - MONEY_STORAGE + title: AccountUsage + description: An enumeration. + Address: + properties: + street_address: + type: string + maxLength: 250 + title: Street Address + description: Street address + street_address2: + type: string + maxLength: 250 + title: Street Address2 + description: Apartment, Suite, Box number, etc. + city: + type: string + maxLength: 250 + title: City + description: City / Town + postal_code: + type: string + maxLength: 50 + title: Postal Code + description: Postal code / ZIP code + state: + $ref: '#/components/schemas/State' + country: + type: string + title: Country + type: object + required: + - street_address + - city + - postal_code + - country + title: Address + Agreement: + properties: + version: + type: string + title: Version + release_date: + type: string + format: date + title: Release Date + documents: + items: + $ref: '#/components/schemas/AgreementDocument' + type: array + title: Documents + type: object + required: + - version + - release_date + - documents + title: Agreement + AgreementCategory: + type: string + enum: + - BANK + - BROKERAGE + - GENERAL + - E-SIGN + title: AgreementCategory + description: An enumeration. + AgreementConsent: + properties: + version: + type: string + title: Version + description: Agreement version + timestamp: + type: string + format: date-time + title: Timestamp + description: Timestamp of applicant's acknowledgement of the agreements + type: object + required: + - version + - timestamp + title: AgreementConsent + AgreementDocument: + properties: + pdf_download_url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Pdf Download Url + title: + type: string + title: Title + type: + $ref: '#/components/schemas/AgreementType' + category: + $ref: '#/components/schemas/AgreementCategory' + type: object + required: + - pdf_download_url + - title + - type + - category + title: AgreementDocument + AgreementType: + type: string + enum: + - PRIVACY_POLICY + - PRIVACY_NOTICE + - BUSINESS_CONTINUITY_PLAN + - FINANCIAL_STATEMENT + - US_TREASURIES_RISK + - ELECTRONIC_COMMUNICATIONS + - TAX_CERTIFICATION_FOR_US_PERSON + - BANK_ACCOUNT + - LIMITATIONS + - BROKERAGE + - CARD + - CASHBACK + - FORM_CRS + - AUTHORIZED_REPRESENTATIVE_CERTIFICATION + - TERMS_OF_USE + - ELECTRONIC_FUND_TRANSFERS + - TRUTH_IN_SAVINGS + - FEE_NOTICE + - FUNDS_AVAILABILITY + - REGULATION_E + title: AgreementType + description: An enumeration. + Amount: + properties: + value: + type: integer + title: Value + description: USD values are always in cents. + currency: + type: string + title: Currency + formatted: + type: string + title: Formatted + default: '' + type: object + required: + - value + - currency + title: Amount + AnnualPersonalIncome: + type: string + enum: + - BELOW_50K + - BETWEEN_50K_AND_100K + - BETWEEN_100K_AND_250K + - OVER_250K + title: AnnualPersonalIncome + description: An enumeration. + AnnualRevenue: + type: string + enum: + - PRE_REVENUE + - 5M_OR_LESS + - BETWEEN_5M_100M + - 100M_OR_MORE + title: AnnualRevenue + description: An enumeration. + ApplicationIdentificationType: + type: string + enum: + - SSN + - PASSPORT + - TIN + - DRIVERS_LICENSE + title: ApplicationIdentificationType + description: An enumeration. + ApplicationStatus: + type: string + enum: + - CREATED + - PENDING + - SUBMITTED + - DOCUMENTS_NEEDED + - APPROVED + - REJECTED + - MANUAL_REVIEW + title: ApplicationStatus + description: An enumeration. + ApplicationUpdateEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/ApplicationUpdatePayload' + event_type: + type: string + enum: + - application.approved + - application.manual_review + - application.documents_needed + - application.rejected + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: ApplicationUpdateEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + ApplicationUpdatePayload: + properties: + application_id: + type: string + format: uuid + title: Application Id + type: object + required: + - application_id + title: ApplicationUpdatePayload + AveragePersonalNetWorth: + type: string + enum: + - BELOW_50K + - BETWEEN_50K_AND_200K + - BETWEEN_200K_AND_1M + - BETWEEN_1M_AND_5M + - OVER_5M + title: AveragePersonalNetWorth + description: An enumeration. + Business: + properties: + address: + $ref: '#/components/schemas/GeneralAddress' + email: + type: string + title: Email + phone_number: + type: string + title: Phone Number + account_status: + $ref: '#/components/schemas/CustomerAccountStatus' + type: + type: string + enum: + - BUSINESS + title: Type + name: + type: string + title: Name + identification_number: + $ref: '#/components/schemas/BusinessIdentificationNumber' + type: object + required: + - address + - email + - phone_number + - account_status + - type + - name + - identification_number + title: Business + BusinessActivityLocation: + type: string + enum: + - PRIMARILY_US + - MIX_OF_US_AND_NON_US + - PRIMARILY_NON_US + title: BusinessActivityLocation + description: An enumeration. + BusinessApplicationRequest: + properties: + name: + type: string + title: Name + entity_type: + $ref: '#/components/schemas/BusinessEntityType' + doing_business_as: + type: string + title: Doing Business As + identification_number: + $ref: '#/components/schemas/BusinessIdentificationNumber' + address: + $ref: '#/components/schemas/Address' + website: + type: string + title: Website + contact: + $ref: '#/components/schemas/BusinessContact' + formation_date: + type: string + title: Formation Date + risk_info: + $ref: '#/components/schemas/RiskInfo' + industry: + $ref: '#/components/schemas/IndustryInfo' + agreement_consent: + $ref: '#/components/schemas/AgreementConsent' + type: object + title: BusinessApplicationRequest + BusinessApplicationResponse: + properties: + name: + type: string + title: Name + entity_type: + $ref: '#/components/schemas/BusinessEntityType' + doing_business_as: + type: string + title: Doing Business As + identification_number: + $ref: '#/components/schemas/BusinessIdentificationNumber' + address: + $ref: '#/components/schemas/Address' + website: + type: string + title: Website + contact: + $ref: '#/components/schemas/BusinessContact' + formation_date: + type: string + title: Formation Date + risk_info: + $ref: '#/components/schemas/RiskInfo' + industry: + $ref: '#/components/schemas/IndustryInfo' + agreement_consent: + $ref: '#/components/schemas/AgreementConsent' + id: + type: string + format: uuid + title: Id + time_created: + type: string + format: date-time + title: Time Created + updated_at: + type: string + format: date-time + title: Updated At + status: + $ref: '#/components/schemas/BusinessApplicationStatus' + exception_reasons: + items: + type: string + type: array + title: Exception Reasons + default: [] + customer_id: + type: string + format: uuid + title: Customer Id + description: '`null` until application status is `APPROVED`' + type: object + required: + - id + - time_created + - updated_at + - status + title: BusinessApplicationResponse + BusinessApplicationStatus: + type: string + enum: + - CREATED + - SUBMITTED + - CLOSED + - APPROVED + - REJECTED + - MANUAL_REVIEW + - DOCUMENTS_NEEDED + - PENDING + title: BusinessApplicationStatus + description: An enumeration. + BusinessContact: + properties: + name: + $ref: '#/components/schemas/Name' + phone_number: + type: string + title: Phone Number + email: + type: string + format: email + title: Email + type: object + title: BusinessContact + BusinessEntityType: + type: string + enum: + - SOLE_PROPRIETOR + - CORPORATE + - LLC + - PARTNERSHIP + - INCORPORATED_ASSOCIATION + - UNINCORPORATED_ASSOCIATION + title: BusinessEntityType + description: An enumeration. + BusinessIdentificationNumber: + properties: + identification_number: + type: string + title: Identification Number + type: + $ref: '#/components/schemas/BusinessIdentificationNumberType' + type: object + required: + - identification_number + - type + title: BusinessIdentificationNumber + BusinessIdentificationNumberType: + type: string + enum: + - TIN + - EIN + - NON_US_BUSINESS_ID + title: BusinessIdentificationNumberType + description: An enumeration. + Card: + properties: + card_id: + type: string + format: uuid + title: Card Id + name: + type: string + title: Name + status: + $ref: '#/components/schemas/CardStatus' + type: + $ref: '#/components/schemas/CardType' + type: object + required: + - card_id + - name + - status + - type + title: Card + CardClosureReason: + type: string + enum: + - LOST + - STOLEN + - DAMAGED + - NEVER_RECEIVED + - EXPIRED + - CANCELED + title: CardClosureReason + description: An enumeration. + CardListResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Card' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: CardListResponse + description: Base class for cursor_list responses from the Partner API + CardPinBase: + properties: + encrypted_pin: + type: string + format: password + title: Encrypted PIN + description: 4 digit PIN encrypted by `set_pin` public key + writeOnly: true + type: object + required: + - encrypted_pin + title: CardPinBase + CardPinResponse: + properties: + success: + type: boolean + title: Success + type: object + required: + - success + title: CardPinResponse + CardStatus: + type: string + enum: + - OPEN + - LOCKED + - CLOSED + - NOT_ACTIVATED + - FROZEN + title: CardStatus + description: An enumeration. + CardStatusResponse: + properties: + card_id: + type: string + format: uuid + title: Card Id + status: + $ref: '#/components/schemas/CardStatus' + type: object + required: + - card_id + - status + title: CardStatusResponse + CardStatusUpdateEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/CardStatusUpdatePayload' + event_type: + type: string + enum: + - card.status.closed + - card.status.open + - card.status.frozen + - card.status.locked + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: CardStatusUpdateEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + example: + event_id: 1a7749fd-a39f-4746-add2-861f270103d5 + timestamp: '2023-01-01T12:00:00+00:00' + event_type: card.status.closed + payload: + card_id: f1246d4a-97b9-461e-8afa-2e8dedfbaece + status: CLOSED + CardStatusUpdatePayload: + properties: + card_id: + type: string + format: uuid + title: Card Id + status: + $ref: '#/components/schemas/CardStatus' + type: object + required: + - card_id + - status + title: CardStatusUpdatePayload + CardSwipe: + properties: + card_id: + type: string + format: uuid + title: Card Id + amount_usdc: + type: integer + exclusiveMinimum: 0 + title: Amount Usdc + type: object + required: + - card_id + - amount_usdc + title: CardSwipe + CardTransactionDetails: + properties: + location: + $ref: '#/components/schemas/TransactionLocation' + counterparty: + type: string + title: Counterparty + terminal_id: + type: string + title: Terminal Id + merchant_type: + type: string + title: Merchant Type + pre_authorization: + type: boolean + title: Pre Authorization + issue_id: + type: string + title: Issue Id + type: object + required: + - pre_authorization + title: CardTransactionDetails + CardTransactionEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/CardTransactionPayload' + event_type: + type: string + enum: + - card.transaction.approved + - card.transaction.on_hold + - card.transaction.reversed + - card.transaction.rejected + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: CardTransactionEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + CardTransactionPayload: + properties: + card_id: + type: string + format: uuid + title: Card Id + amount: + type: integer + title: Amount + account_id: + type: string + format: uuid + title: Account Id + type: object + required: + - card_id + - amount + - account_id + title: CardTransactionPayload + CardType: + type: string + enum: + - VIRTUAL + - PHYSICAL + title: CardType + description: An enumeration. + CashBackTransactionDetails: + properties: + period: + type: string + title: Period + description: Which period the cash back was calculated for, in YYYY-MM format. + card_id: + type: string + format: uuid + title: Card Id + type: object + required: + - period + - card_id + title: CashBackTransactionDetails + ChangeCardStatusRequest: + properties: + status: + $ref: '#/components/schemas/SettableCardStatus' + type: object + title: ChangeCardStatusRequest + CloseCardRequest: + properties: + closure_reason: + $ref: '#/components/schemas/CardClosureReason' + lost_stolen_date: + type: string + format: date + title: Lost Stolen Date + type: object + required: + - closure_reason + title: CloseCardRequest + Counterparty: + properties: + id: + type: string + format: uuid + title: Id + type: + $ref: '#/components/schemas/CounterpartyType' + ach: + $ref: '#/components/schemas/ACHCounterparty' + wire: + $ref: '#/components/schemas/WireCounterparty' + type: object + required: + - id + - type + title: Counterparty + CounterpartyMicroDeposits: + properties: + verification_failure_count: + type: integer + title: Verification Failure Count + type: object + required: + - verification_failure_count + title: CounterpartyMicroDeposits + CounterpartyPlaid: + properties: + mask: + type: string + title: Mask + verification_status: + $ref: '#/components/schemas/PlaidVerificationStatus' + type: object + required: + - mask + title: CounterpartyPlaid + CounterpartyType: + type: string + enum: + - ACH + - WIRE + title: CounterpartyType + description: An enumeration. + Country: + type: string + enum: + - USA + - US + title: Country + description: An enumeration. + CreateSubscriptionRequest: + properties: + description: + type: string + title: Description + description: A description of the webhook's intended use. + default: '' + events: + items: + type: string + type: array + minItems: 1 + title: Events + description: Which types of events this webhook should be invoked for. + url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Url + description: The webhook URL to invoke. + shared_secret: + type: string + minLength: 16 + title: Shared Secret + description: >- + The shared secret used by the Partner API to sign requests made to + the webhook. The shared secret needs to be minimum 16 characters + long. + type: object + required: + - events + - url + - shared_secret + title: CreateSubscriptionRequest + CursorListResponse_ACHResponse_: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/ACHResponse' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: CursorListResponse[ACHResponse] + description: Base class for cursor_list responses from the Partner API + CursorListResponse_PartnerEvent_: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/PartnerEvent' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: CursorListResponse[PartnerEvent] + description: Base class for cursor_list responses from the Partner API + CursorListResponse_Subscription_: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Subscription' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: CursorListResponse[Subscription] + description: Base class for cursor_list responses from the Partner API + Customer: + oneOf: + - $ref: '#/components/schemas/Individual' + - $ref: '#/components/schemas/Business' + title: Customer + discriminator: + propertyName: type + mapping: + INDIVIDUAL: '#/components/schemas/Individual' + BUSINESS: '#/components/schemas/Business' + CustomerAccountStatus: + type: string + enum: + - OPEN + - CLOSED + - FROZEN + - PENDING + title: CustomerAccountStatus + description: An enumeration. + CustomerDefundingTransferRequest: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - PARTNER_CUSTOMER_DEFUNDING + title: Type + description: Withdraw funds from customer to partner. + target: + type: string + maxLength: 200 + title: Target + description: >- + The funds destination belonging to the customer at the Partner + institution. + amount_usdc: + type: integer + exclusiveMinimum: 0 + title: Amount USDC + description: The amount, in USD cents. **Deprecated**, use `amount` instead. + deprecated: true + amount: + oneOf: + - $ref: '#/components/schemas/RequestedAmount' + - $ref: '#/components/schemas/FullWithdrawal' + title: Amount + discriminator: + propertyName: type + mapping: + REQUESTED_AMOUNT: '#/components/schemas/RequestedAmount' + FULL_WITHDRAWAL: '#/components/schemas/FullWithdrawal' + type: object + required: + - from_account + - to_account + - type + - target + title: Partner-Customer Defunding + description: >- + A transfer of customer funds from a customer account at Jiko to a + partner-owned facilitation account. + example: + transfer_id: d64e7b7e-7fd2-44a4-8bfd-68a31252afaa + description: Withdrawing funds from customer to partner + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_DEFUNDING + target: '123456789' + amount: + type: FULL_WITHDRAWAL + CustomerDefundingTransferResponse: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - PARTNER_CUSTOMER_DEFUNDING + title: Type + target: + type: string + maxLength: 200 + title: Target + description: >- + The funds destination belonging to the customer at the Partner + institution. + amount: + $ref: '#/components/schemas/Amount' + type: object + required: + - from_account + - to_account + - type + - target + - amount + title: Partner-Customer Defunding + description: >- + A transfer of customer funds from a customer account at Jiko to a + partner-owned facilitation account. + example: + transfer_id: d64e7b7e-7fd2-44a4-8bfd-68a31252afaa + description: Withdrawing funds from customer to partner + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_DEFUNDING + target: '123456789' + amount: + type: FULL_WITHDRAWAL + CustomerFundingTransferRequest: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - PARTNER_CUSTOMER_FUNDING + title: Type + description: Disburse funds from partner to customer. + source: + type: string + maxLength: 200 + title: Source + description: The source of customer funds at the Partner institution. + amount_usdc: + type: integer + exclusiveMinimum: 0 + title: Amount USDC + description: The amount, in USD cents. **Deprecated**, use `amount` instead. + deprecated: true + amount: + $ref: '#/components/schemas/RequestedAmount' + type: object + required: + - from_account + - to_account + - type + - source + title: Partner-Customer Funding + description: >- + A transfer of customer funds to a customer account at Jiko from a + partner-owned facilitation account. + example: + transfer_id: d4a2d8dd-7def-4545-a062-761683b9aa05 + description: Disbursing funds from partner to customer + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_FUNDING + source: '123456789' + amount: + amount_usdc: 100000 + type: REQUESTED_AMOUNT + CustomerFundingTransferResponse: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - PARTNER_CUSTOMER_FUNDING + title: Type + source: + type: string + maxLength: 200 + title: Source + description: The source of customer funds at the Partner institution. + amount: + $ref: '#/components/schemas/Amount' + type: object + required: + - from_account + - to_account + - type + - source + - amount + title: Partner-Customer Funding + description: >- + A transfer of customer funds to a customer account at Jiko from a + partner-owned facilitation account. + example: + transfer_id: d4a2d8dd-7def-4545-a062-761683b9aa05 + description: Disbursing funds from partner to customer + from_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + to_account: + id: 497f6eca-6276-4993-bfeb-53cbbbba6f08 + type: JIKO_ACCOUNT + type: PARTNER_CUSTOMER_FUNDING + source: '123456789' + amount: + amount_usdc: 100000 + type: REQUESTED_AMOUNT + DateOfBirth: + properties: + date_of_birth: + type: string + format: date + title: Date Of Birth + type: object + required: + - date_of_birth + title: DateOfBirth + Decimal: + type: string + title: Decimal + DeliveryAttemptDetails: + properties: + delivery_attempt_id: + type: string + format: uuid + title: Delivery Attempt Id + subscription_id: + type: string + format: uuid + title: Subscription Id + success: + type: boolean + title: Success + response_code: + type: integer + title: Response Code + response_message: + type: string + title: Response Message + called_at: + type: string + format: date-time + title: Called At + type: object + required: + - delivery_attempt_id + - subscription_id + - success + - response_code + - called_at + title: DeliveryAttemptDetails + Document: + properties: + id: + type: string + title: Id + type: + $ref: '#/components/schemas/DocumentType' + status: + $ref: '#/components/schemas/DocumentStatus' + exception_reason: + type: string + title: Exception Reason + name: + type: string + title: Name + type: object + required: + - id + - type + - status + title: Document + DocumentStatus: + type: string + enum: + - PENDING_UPLOAD + - PENDING_REVIEW + - APPROVED + - INVALID + title: DocumentStatus + description: An enumeration. + DocumentType: + type: string + enum: + - ID_FRONT + - ID_BACK + - SELFIE + - IDENTIFICATION_NUMBER_VERIFICATION + - ADDRESS_VERIFICATION + - PASSPORT + - EIN_CONFIRMATION + - OPERATING_AGREEMENT + - PARTNERSHIP_AGREEMENT + - ARTICLES_OF_INCORPORATION + - BYLAWS + - PROOF_OF_501_STATUS + - ARTICLES_OF_ASSOCIATION + - CORPORATE_CHARTER + - TRUST_FORMATION_RECORDS + - LIST_OF_TRUSTEES + - LEGAL_ANALYSIS_OF_BUSINESS_MODEL + - COINS_AND_TOKENS_LISTED_AND_OFFERED + - COIN_RATING_POLICY_AND_PROCEDURES + - TYPE_OF_BLOCKCHAIN_ANALYTICS_USED + - MARKET_MANIPULATION_POLICY + - BSA_AML_OFAC_POLICIES + - INDEPENDENT_AML_AUDIT_REPORT + - BSA_AML_OFAC_INTERNAL_RISK_ASSESSMENT + - ARTICLES_OF_ORGANIZATION + - FLOW_OF_FUNDS + - BANK_STATEMENTS_1 + - BANK_STATEMENTS_2 + - BANK_STATEMENTS_3 + - WIRE_COUNTERPARTY_VERIFICATION + - OTHER + title: DocumentType + description: An enumeration. + EmployedInvestmentProfile: + properties: + income: + allOf: + - $ref: '#/components/schemas/AnnualPersonalIncome' + description: Applicant's estimated annual income in USD. + net_worth: + allOf: + - $ref: '#/components/schemas/AveragePersonalNetWorth' + description: Applicant's estimated average personal net worth in USD. + bd_association: + type: string + maxLength: 200 + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + director_policy_maker_of_company: + type: string + maxLength: 200 + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + occupation: + type: string + maxLength: 200 + minLength: 2 + title: Occupation + description: Applicant's occupation + employment_status: + type: string + enum: + - EMPLOYED + title: Employment Status + type: object + required: + - income + - net_worth + - occupation + - employment_status + title: EmployedInvestmentProfile + EncryptionKeysResponse: + properties: + set_pin: + type: string + title: Set Pin + default: '' + env_names: + - public_key__set_pin + additionalProperties: false + type: object + title: EncryptionKeysResponse + description: |- + Encryption keys are currently stored as environment variables. + + Variables are declared in + `services/partner-api/secret-(dev|staging|sandbox|partners).yaml` + EventDetails: + oneOf: + - $ref: '#/components/schemas/ApplicationUpdateEvent' + - $ref: '#/components/schemas/CardStatusUpdateEvent' + - $ref: '#/components/schemas/ACHIncomingEvent' + - $ref: '#/components/schemas/ACHOutgoingEvent' + - $ref: '#/components/schemas/CardTransactionEvent' + - $ref: '#/components/schemas/OutgoingWireEvent' + - $ref: '#/components/schemas/OnUsTransferEvent' + title: EventDetails + discriminator: + propertyName: event_type + mapping: + application.approved: '#/components/schemas/ApplicationUpdateEvent' + application.manual_review: '#/components/schemas/ApplicationUpdateEvent' + application.documents_needed: '#/components/schemas/ApplicationUpdateEvent' + application.rejected: '#/components/schemas/ApplicationUpdateEvent' + card.status.closed: '#/components/schemas/CardStatusUpdateEvent' + card.status.open: '#/components/schemas/CardStatusUpdateEvent' + card.status.frozen: '#/components/schemas/CardStatusUpdateEvent' + card.status.locked: '#/components/schemas/CardStatusUpdateEvent' + transfers.ach.in.success: '#/components/schemas/ACHIncomingEvent' + transfers.ach.in.rejected: '#/components/schemas/ACHIncomingEvent' + transfers.ach.out.success: '#/components/schemas/ACHOutgoingEvent' + transfers.ach.out.rejected: '#/components/schemas/ACHOutgoingEvent' + transfers.ach.out.sent: '#/components/schemas/ACHOutgoingEvent' + card.transaction.approved: '#/components/schemas/CardTransactionEvent' + card.transaction.on_hold: '#/components/schemas/CardTransactionEvent' + card.transaction.reversed: '#/components/schemas/CardTransactionEvent' + card.transaction.rejected: '#/components/schemas/CardTransactionEvent' + transfers.wire.out.success: '#/components/schemas/OutgoingWireEvent' + transfers.wire.out.processing: '#/components/schemas/OutgoingWireEvent' + transfers.wire.out.rejected: '#/components/schemas/OutgoingWireEvent' + transfers.on-us.success: '#/components/schemas/OnUsTransferEvent' + transfers.on-us.processing: '#/components/schemas/OnUsTransferEvent' + transfers.on-us.rejected: '#/components/schemas/OnUsTransferEvent' + EventListResponse: + properties: + offset: + type: integer + title: Offset + count: + type: integer + title: Count + items: + items: + $ref: '#/components/schemas/EventType' + type: array + title: Items + description: List of available events to subscribe to + object_type: + type: string + title: Object Type + default: List + type: object + required: + - offset + - count + - items + title: EventListResponse + description: >- + Generic models are only supported in pydantic for python 3.7+, so until + then + + items will be of type Any. As such, this class needs to be subclassed + + and its item field overridden in it using the proper type. + EventType: + properties: + event: + type: string + title: Event + type: object + required: + - event + title: EventType + Fee: + properties: + type: + type: string + enum: + - AUM_FEE + title: Type + amount: + $ref: '#/components/schemas/Amount' + type: object + required: + - type + - amount + title: Fee + FirstMonthDepositAmount: + type: string + enum: + - 1M_OR_LESS + - BETWEEN_1M_AND_5M + - BETWEEN_5M_AND_20M + - BETWEEN_20M_AND_50M + - 50M_OR_MORE + title: FirstMonthDepositAmount + description: An enumeration. + FullWithdrawal: + properties: + type: + type: string + enum: + - FULL_WITHDRAWAL + title: Type + type: object + required: + - type + title: Full withdrawal + description: Fully liquidates all T-Bills from the source account. + FundPortalRequest: + properties: + account_id: + type: string + format: uuid + title: Account Id + amount_usdc: + type: integer + exclusiveMaximum: 5000000 + exclusiveMinimum: 0 + title: Amount Usdc + company_name: + type: string + maxLength: 16 + title: Company Name + default: FakeCompany + count: + type: integer + exclusiveMaximum: 10 + exclusiveMinimum: 0 + title: Count + default: 1 + type: object + required: + - account_id + - amount_usdc + title: FundPortalRequest + GeneralAddress: + properties: + street_address: + type: string + maxLength: 250 + title: Street Address + description: Street address + street_address2: + type: string + maxLength: 250 + title: Street Address2 + description: Apartment, Suite, Box number, etc. + city: + type: string + maxLength: 250 + title: City + description: City / Town + postal_code: + type: string + maxLength: 50 + title: Postal Code + description: Postal code / ZIP code + state: + type: string + title: State + description: 'State (Postal Abbreviations. Example: "AL", "NJ", "OH")' + country: + type: string + title: Country + description: 'A ISO-3166 Alpha-2 country code (Abbreviated. Example: "US")' + type: object + required: + - street_address + - city + - postal_code + - country + title: GeneralAddress + GeneratePhysicalCardFromOrder: + properties: + card_order_id: + type: string + format: uuid + title: Card Order Id + type: object + required: + - card_order_id + title: GeneratePhysicalCardFromOrder + HTTPValidationError: + properties: + detail: + items: + $ref: '#/components/schemas/ValidationError' + type: array + title: Detail + type: object + title: HTTPValidationError + ISOAddress: + properties: + street_address: + type: string + maxLength: 250 + title: Street Address + description: Street address + street_address2: + type: string + maxLength: 250 + title: Street Address2 + description: Apartment, Suite, Box number, etc. + city: + type: string + maxLength: 250 + title: City + description: City / Town + postal_code: + type: string + maxLength: 50 + title: Postal Code + description: Postal code / ZIP code + state: + type: string + title: State + description: 'State (Postal Abbreviations. Example: "AL", "NJ", "OH")' + country: + type: string + title: Country + description: 'A ISO-3166 Alpha-2 country code (Abbreviated. Example: "US")' + type: object + required: + - street_address + - city + - postal_code + - country + title: ISOAddress + IndependentInvestmentProfile: + properties: + income: + allOf: + - $ref: '#/components/schemas/AnnualPersonalIncome' + description: Applicant's estimated annual income in USD. + net_worth: + allOf: + - $ref: '#/components/schemas/AveragePersonalNetWorth' + description: Applicant's estimated average personal net worth in USD. + bd_association: + type: string + maxLength: 200 + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + director_policy_maker_of_company: + type: string + maxLength: 200 + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + occupation: + type: string + maxLength: 200 + title: Occupation + description: Applicant's occupation + employment_status: + type: string + enum: + - INDEPENDENT + title: Employment Status + type: object + required: + - income + - net_worth + - employment_status + title: IndependentInvestmentProfile + Individual: + properties: + address: + $ref: '#/components/schemas/GeneralAddress' + email: + type: string + title: Email + phone_number: + type: string + title: Phone Number + account_status: + $ref: '#/components/schemas/CustomerAccountStatus' + type: + type: string + enum: + - INDIVIDUAL + title: Type + name: + $ref: '#/components/schemas/Name' + date_of_birth: + type: string + format: date + title: Date Of Birth + type: object + required: + - address + - email + - phone_number + - account_status + - type + - name + - date_of_birth + title: Individual + IndividualIdentificationNumber: + properties: + identification_number: + type: string + title: Identification Number + identification_type: + $ref: '#/components/schemas/IndividualIdentificationNumberType' + type: object + required: + - identification_number + - identification_type + title: IndividualIdentificationNumber + IndividualIdentificationNumberMasked: + properties: + identification_number: + type: string + title: Identification Number + identification_type: + $ref: '#/components/schemas/IndividualIdentificationNumberType' + type: object + required: + - identification_number + - identification_type + title: IndividualIdentificationNumberMasked + IndividualIdentificationNumberType: + type: string + enum: + - SSN + - PASSPORT + - NON_US_ID + title: IndividualIdentificationNumberType + description: An enumeration. + Industry: + type: string + enum: + - ACCOUNTING_AND_BOOKKEEPING + - ADVERTISING + - ART + - ATM_OPERATOR + - BEAUTY_AND_COSMETIC_SERVICES + - BIOTECH + - BUSINESS_MANAGEMENT + - CLEANING_SERVICES + - CONSTRUCTION + - CONSULTING + - CRYPTOCURRENCY + - DESIGN + - ECOMMERCE + - EDUCATION + - ENERGY + - ENTERTAINMENT + - FINANCIAL_SERVICES + - FITNESS + - FOOD + - GAMBLING + - HARDWARE + - HEALTHCARE + - HOSPITALITY + - INSURANCE + - INVESTMENTS + - LEGAL_SERVICES + - MARKETING + - MARKETPLACE + - NONPROFIT + - OTHER + - PARKING_GARAGE + - PROFESSIONAL_TECHNICAL_OR_MECHANICAL_SERVICES + - REAL_ESTATE + - RECRUITING + - RESEARCH + - RESTAURANT + - RETAIL_STORES + - SECURITY + - SHIPPING_WAREHOUSING + - SOFTWARE + - SPORTS_TEAM + - SUPPORT_SERVICES + - TECHNOLOGY + - TRANSPORTATION + - TRAVEL + - WHOLESALE + - VENDING_MACHINE_OPERATOR + - WASTE_MANAGEMENT + title: Industry + description: An enumeration. + IndustryInfo: + properties: + industry: + $ref: '#/components/schemas/Industry' + other_industry: + type: string + title: Other Industry + type: object + title: IndustryInfo + InternalReallocationTransferRequest: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - INTERNAL_REALLOCATION + title: Type + description: Move funds between accounts belonging to the same customer. + amount_usdc: + type: integer + exclusiveMinimum: 0 + title: Amount USDC + description: The amount, in USD cents. **Deprecated**, use `amount` instead. + deprecated: true + amount: + oneOf: + - $ref: '#/components/schemas/RequestedAmount' + - $ref: '#/components/schemas/FullWithdrawal' + title: Amount + discriminator: + propertyName: type + mapping: + REQUESTED_AMOUNT: '#/components/schemas/RequestedAmount' + FULL_WITHDRAWAL: '#/components/schemas/FullWithdrawal' + type: object + required: + - from_account + - to_account + - type + title: Internal Reallocation + example: + transfer_id: cbb6cfce-f207-45e7-a6b3-1055ab43db51 + 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 + type: INTERNAL_REALLOCATION + amount: + type: REQUESTED_AMOUNT + amount_usdc: 10000 + InternalReallocationTransferResponse: + properties: + transfer_id: + type: string + format: uuid + title: Transfer Id + description: The ID for this transfer, auto-generated if not provided. + description: + type: string + maxLength: 100 + title: Description + description: A description of the transfer, visible on statements. + from_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + to_account: + $ref: '#/components/schemas/OnUsJikoAccountCounterparty' + type: + type: string + enum: + - INTERNAL_REALLOCATION + title: Type + amount: + $ref: '#/components/schemas/Amount' + type: object + required: + - from_account + - to_account + - type + - amount + title: Internal Reallocation + example: + transfer_id: cbb6cfce-f207-45e7-a6b3-1055ab43db51 + 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 + type: INTERNAL_REALLOCATION + amount: + type: REQUESTED_AMOUNT + amount_usdc: 10000 + InternationalApplication: + properties: + id: + type: string + format: uuid + title: Id + time_created: + type: string + format: date-time + title: Time Created + updated_at: + type: string + format: date-time + title: Updated At + phone_number: + type: string + title: Phone Number + description: >- + Applicant's phone number. **Note**: It will be required to include + country codes in accordance to the E.164 spec in a future release, + or `^\+[1-9]\d{1,14}$`. + default_region: US + agreement_consent: + $ref: '#/components/schemas/AgreementConsent' + exception_reasons: + items: + type: string + type: array + title: Exception Reasons + default: [] + email: + type: string + format: email + title: Email + status: + $ref: '#/components/schemas/ApplicationStatus' + name: + $ref: '#/components/schemas/Name' + date_of_birth: + $ref: '#/components/schemas/DateOfBirth' + investment_profile: + $ref: '#/components/schemas/InvestmentProfile' + customer_id: + type: string + format: uuid + title: Customer Id + description: '`null` until application status is `APPROVED`' + documents: + items: + $ref: '#/components/schemas/Document' + type: array + title: Documents + id_verification_documents_needed: + type: boolean + title: Id Verification Documents Needed + identification_number_verification_document_needed: + type: boolean + title: Identification Number Verification Document Needed + address_verification_document_needed: + type: boolean + title: Address Verification Document Needed + address: + allOf: + - $ref: '#/components/schemas/ISOAddress' + title: Address + description: Address object + citizenship_country: + type: string + title: Citizenship Country + description: >- + The applicant's citizenship country in ISO-3166 Alpha-2 format. + **Note:** This field will be made mandatory in a future release. + default: US + type: object + required: + - id + - time_created + - updated_at + - phone_number + - agreement_consent + - email + - status + - id_verification_documents_needed + - identification_number_verification_document_needed + - address_verification_document_needed + - address + title: InternationalApplication + InternationalApplicationRequest: + properties: + identification_number: + type: string + title: Identification Number + description: Applicant's Social Security Number + name: + allOf: + - $ref: '#/components/schemas/Name' + title: Name + description: Applicant's full name + email: + type: string + format: email + title: Email + description: Applicant's email address + date_of_birth: + type: string + format: date + title: Date Of Birth + description: Applicant's date of birth + investment_profile: + $ref: '#/components/schemas/InvestmentProfile' + agreement_consent: + allOf: + - $ref: '#/components/schemas/AgreementConsent' + title: Agreement Consent + description: Consent object for agreements + originally_onboarded_at: + type: string + format: date-time + title: Originally Onboarded At + description: Original onboarding time of applicant + identification_type: + allOf: + - $ref: '#/components/schemas/ApplicationIdentificationType' + description: >- + Type type of identification provided in the `identification_number` + field. The options are + * `SSN`: Social security number + * `TIN`: Tax ID number + * `DRIVERS_LICENSE`: A driver's license number + * `PASSPORT`: A passport number + + **Note:** This field will be made mandatory in a future release. Currently defaults to `SSN`. + default: SSN + address: + allOf: + - $ref: '#/components/schemas/ISOAddress' + title: Address + description: Address object + phone_number: + type: string + title: Phone Number + description: >- + Applicant's phone number. **Note**: It will be required to include + country codes in accordance to the E.164 spec in a future release, + or `^\+[1-9]\d{1,14}$`. + default_region: US + citizenship_country: + type: string + title: Citizenship Country + description: >- + The applicant's citizenship country in ISO-3166 Alpha-2 format. + **Note:** This field will be made mandatory in a future release. + default: US + type: object + required: + - identification_number + - name + - email + - date_of_birth + - investment_profile + - agreement_consent + - address + - phone_number + title: InternationalApplicationRequest + InvestmentProfile: + oneOf: + - $ref: '#/components/schemas/EmployedInvestmentProfile' + - $ref: '#/components/schemas/IndependentInvestmentProfile' + - $ref: '#/components/schemas/RetiredInvestmentProfile' + - $ref: '#/components/schemas/StudentInvestmentProfile' + - $ref: '#/components/schemas/UnemployedInvestmentProfile' + title: InvestmentProfile + description: >- + Investment profile contains information required by FINRA Suitability + Rule 2111 + discriminator: + propertyName: employment_status + mapping: + EMPLOYED: '#/components/schemas/EmployedInvestmentProfile' + INDEPENDENT: '#/components/schemas/IndependentInvestmentProfile' + RETIRED: '#/components/schemas/RetiredInvestmentProfile' + STUDENT: '#/components/schemas/StudentInvestmentProfile' + UNEMPLOYED: '#/components/schemas/UnemployedInvestmentProfile' + ListAccountsResponse: + properties: + offset: + type: integer + title: Offset + count: + type: integer + title: Count + items: + items: + $ref: '#/components/schemas/Account' + type: array + title: Items + description: Customer accounts + object_type: + type: string + title: Object Type + default: List + type: object + required: + - offset + - count + - items + title: ListAccountsResponse + description: >- + Generic models are only supported in pydantic for python 3.7+, so until + then + + items will be of type Any. As such, this class needs to be subclassed + + and its item field overridden in it using the proper type. + ListCounterpartiesResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Counterparty' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: ListCounterpartiesResponse + description: Base class for cursor_list responses from the Partner API + ListPortalsResponse: + properties: + count: + type: integer + title: Count + portals: + items: + $ref: '#/components/schemas/Portal' + type: array + minItems: 0 + title: Portals + object_type: + type: string + title: Object Type + default: List + type: object + required: + - count + - portals + title: ListPortalsResponse + LoginInput: + properties: + username: + type: string + maxLength: 128 + title: Username + password: + type: string + maxLength: 128 + title: Password + type: object + required: + - username + - password + title: LoginInput + LoginResponse: + properties: + token: + type: string + title: Token + expires: + type: string + format: date-time + title: Expires + type: object + required: + - token + - expires + title: LoginResponse + MinimalPhysicalCardOrderResponse: + properties: + card_id: + type: string + format: uuid + title: Card Id + card_order_id: + type: string + format: uuid + title: Card Order Id + status: + $ref: '#/components/schemas/PhysicalCardOrderStatus' + type: object + required: + - card_order_id + - status + title: MinimalPhysicalCardOrderResponse + MonthlyTransactions: + type: string + enum: + - 5_OR_LESS + - BETWEEN_5_AND_15 + - 15_OR_MORE + title: MonthlyTransactions + description: An enumeration. + Name: + properties: + first_name: + type: string + maxLength: 50 + title: First Name + description: First Name + middle_name: + type: string + maxLength: 50 + title: Middle Name + description: Middle Name + last_name: + type: string + maxLength: 50 + title: Last Name + description: Last Name + type: object + required: + - first_name + - last_name + title: Name + OnUsJikoAccountCounterparty: + properties: + id: + type: string + format: uuid + title: Id + type: + type: string + enum: + - JIKO_ACCOUNT + title: Type + type: object + required: + - id + - type + title: OnUsJikoAccountCounterparty + OnUsTransactionDetails: + properties: + on_us_transfer_id: + type: string + title: On Us Transfer Id + on_us_transfer_type: + type: string + title: On Us Transfer Type + source: + type: string + title: Source + target: + type: string + title: Target + type: object + required: + - on_us_transfer_id + - on_us_transfer_type + title: OnUsTransactionDetails + OnUsTransfer: + properties: + id: + type: string + format: uuid + title: Id + status: + $ref: '#/components/schemas/OnUsTransferStatus' + reason: + $ref: '#/components/schemas/TransferStateReason' + transfer: + $ref: '#/components/schemas/OnUsTransferDetails' + fees: + items: + $ref: '#/components/schemas/Fee' + type: array + title: Fees + type: object + required: + - id + - status + - transfer + - fees + title: OnUsTransfer + OnUsTransferDetails: + oneOf: + - $ref: '#/components/schemas/CustomerFundingTransferResponse' + - $ref: '#/components/schemas/CustomerDefundingTransferResponse' + - $ref: '#/components/schemas/InternalReallocationTransferResponse' + title: OnUsTransferDetails + discriminator: + propertyName: type + mapping: + PARTNER_CUSTOMER_FUNDING: '#/components/schemas/CustomerFundingTransferResponse' + PARTNER_CUSTOMER_DEFUNDING: '#/components/schemas/CustomerDefundingTransferResponse' + INTERNAL_REALLOCATION: '#/components/schemas/InternalReallocationTransferResponse' + OnUsTransferDetailsRequest: + oneOf: + - $ref: '#/components/schemas/CustomerFundingTransferRequest' + - $ref: '#/components/schemas/CustomerDefundingTransferRequest' + - $ref: '#/components/schemas/InternalReallocationTransferRequest' + title: OnUsTransferDetailsRequest + discriminator: + propertyName: type + mapping: + PARTNER_CUSTOMER_FUNDING: '#/components/schemas/CustomerFundingTransferRequest' + PARTNER_CUSTOMER_DEFUNDING: '#/components/schemas/CustomerDefundingTransferRequest' + INTERNAL_REALLOCATION: '#/components/schemas/InternalReallocationTransferRequest' + OnUsTransferEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/OnUsTransferPayload' + event_type: + type: string + enum: + - transfers.on-us.success + - transfers.on-us.processing + - transfers.on-us.rejected + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: OnUsTransferEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + OnUsTransferPayload: + properties: + on_us_id: + type: string + format: uuid + title: On Us Id + origin_account_id: + type: string + format: uuid + title: Origin Account Id + destination_account_id: + type: string + format: uuid + title: Destination Account Id + type: object + required: + - on_us_id + - origin_account_id + - destination_account_id + title: OnUsTransferPayload + OnUsTransferStatus: + type: string + enum: + - PENDING + - COMPLETED + - REJECTED + title: OnUsTransferStatus + description: An enumeration. + Order: + type: string + enum: + - desc + - asc + title: Order + description: An enumeration. + OutgoingWireEvent: + properties: + event_id: + type: string + format: uuid + title: Event Id + timestamp: + type: string + format: date-time + title: Timestamp + payload: + $ref: '#/components/schemas/WireOutgoingPayload' + event_type: + type: string + enum: + - transfers.wire.out.success + - transfers.wire.out.processing + - transfers.wire.out.rejected + title: Event Type + type: object + required: + - event_id + - timestamp + - payload + - event_type + title: OutgoingWireEvent + description: |- + The schema of items in `payload` should reflect any new additions or + updates made in `src/proto/partner_events/grpc_contract/contract.proto` + + e.g: ACHOutgoingPayload + + `PartnerEvent` serialization could fail otherwise. + PEMEncodedPublicKey: + type: string + title: PEMEncodedPublicKey + PartnerEvent: + properties: + event: + $ref: '#/components/schemas/EventDetails' + delivery_attempts: + items: + $ref: '#/components/schemas/DeliveryAttemptDetails' + type: array + title: Delivery Attempts + type: object + required: + - event + - delivery_attempts + title: PartnerEvent + PhysicalCardOrder: + properties: + name_on_card: + type: string + maxLength: 100 + title: Name On Card + description: Card holder's full name. Should be a maximum of 26 characters. + shipping_address: + $ref: '#/components/schemas/ShippingAddress' + type: object + required: + - name_on_card + - shipping_address + title: PhysicalCardOrder + PhysicalCardOrderListResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/MinimalPhysicalCardOrderResponse' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: PhysicalCardOrderListResponse + description: Base class for cursor_list responses from the Partner API + PhysicalCardOrderResponse: + properties: + card_id: + type: string + format: uuid + title: Card Id + card_order_id: + type: string + format: uuid + title: Card Order Id + status: + $ref: '#/components/schemas/PhysicalCardOrderStatus' + name_on_card: + type: string + title: Name On Card + shipping_address: + $ref: '#/components/schemas/ShippingAddress' + type: object + required: + - card_order_id + - status + - name_on_card + - shipping_address + title: PhysicalCardOrderResponse + PhysicalCardOrderStatus: + type: string + enum: + - INITIAL + - CARD_CREATED + - ORDERED + - RECEIVED + title: PhysicalCardOrderStatus + description: An enumeration. + PlaidCreateCounterparties: + properties: + public_token: + type: string + title: Public Token + accounts: + items: + $ref: '#/components/schemas/PlaidCreateCounterpartiesAccount' + type: array + title: Accounts + institution_id: + type: string + title: Institution Id + type: object + required: + - public_token + - accounts + title: PlaidCreateCounterparties + PlaidCreateCounterpartiesAccount: + properties: + id: + type: string + title: Id + name: + type: string + title: Name + mask: + type: string + title: Mask + type: object + required: + - id + title: PlaidCreateCounterpartiesAccount + PlaidCreateCounterpartiesResponse: + properties: + items: + items: + $ref: '#/components/schemas/Counterparty' + type: array + title: Items + type: object + required: + - items + title: PlaidCreateCounterpartiesResponse + PlaidLinkToken: + properties: + link_token: + type: string + title: Link Token + expiration: + type: string + title: Expiration + type: object + required: + - link_token + - expiration + title: PlaidLinkToken + PlaidLinkTokenRequest: + properties: + client_name: + type: string + minLength: 1 + title: Client Name + redirect_uri: + type: string + title: Redirect Uri + description: '**Mutually exclusive with `android_package_name`**' + android_package_name: + type: string + title: Android Package Name + description: '**Mutually exclusive with `redirect_uri`**' + counterparty_id: + type: string + format: uuid + title: Counterparty Id + type: object + required: + - client_name + title: PlaidLinkTokenRequest + PlaidVerificationStatus: + type: string + enum: + - PENDING_AUTOMATIC_VERIFICATION + - PENDING_MANUAL_VERIFICATION + - AUTOMATICALLY_VERIFIED + - MANUALLY_VERIFIED + - VERIFICATION_EXPIRED + - VERIFICATION_FAILED + title: PlaidVerificationStatus + description: An enumeration. + Portal: + properties: + id: + type: string + format: uuid + title: Id + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + routing_number: + type: string + title: Routing Number + description: Routing number + account_number: + type: string + title: Account Number + description: Account number + status: + allOf: + - $ref: '#/components/schemas/PortalStatus' + description: Portal status + name: + type: string + title: Name + description: Portal name + type: object + required: + - id + - jiko_account_id + - routing_number + - account_number + - status + - name + title: Portal + PortalCreateRequest: + properties: + name: + type: string + maxLength: 128 + title: Name + type: object + required: + - name + title: PortalCreateRequest + PortalStatus: + type: string + enum: + - OPEN + - CLOSED + title: PortalStatus + description: An enumeration. + PortalUpdateRequest: + properties: + name: + type: string + maxLength: 50 + title: Name + description: Portal name + type: object + required: + - name + title: PortalUpdateRequest + Portfolio: + properties: + securities: + items: + $ref: '#/components/schemas/Security' + type: array + title: Securities + description: Securities currently held by the brokerage account + cash: + allOf: + - $ref: '#/components/schemas/Amount' + title: Cash + description: Cash currently held in the brokerage account. + all_time_earnings: + allOf: + - $ref: '#/components/schemas/Amount' + title: All Time Earnings + description: All time portfolio earnings + type: object + required: + - securities + - cash + - all_time_earnings + title: Portfolio + PublicKeyRequest: + properties: + public_key: + allOf: + - $ref: '#/components/schemas/PEMEncodedPublicKey' + title: Public Key + description: >- + Single-use 4096-bit PEM-encoded RSA public-key in PKCS#1 or PKCS#1.5 + format + min_bytes: 4096 + type: object + required: + - public_key + title: PublicKeyRequest + RelatedPartyApplicationRequest: + properties: + name: + $ref: '#/components/schemas/Name' + address: + $ref: '#/components/schemas/Address' + date_of_birth: + type: string + title: Date Of Birth + identification_number: + $ref: '#/components/schemas/IndividualIdentificationNumber' + phone_number: + type: string + title: Phone Number + title: + type: string + title: Title + roles: + items: + $ref: '#/components/schemas/RelatedPartyRole' + type: array + ownership_percentage: + type: string + title: Ownership Percentage + citizenship: + type: string + title: Citizenship + email: + type: string + title: Email + type: object + title: RelatedPartyApplicationRequest + RelatedPartyApplicationResponse: + properties: + name: + $ref: '#/components/schemas/Name' + address: + $ref: '#/components/schemas/Address' + date_of_birth: + type: string + title: Date Of Birth + identification_number: + $ref: '#/components/schemas/IndividualIdentificationNumberMasked' + phone_number: + type: string + title: Phone Number + title: + type: string + title: Title + roles: + items: + $ref: '#/components/schemas/RelatedPartyRole' + type: array + ownership_percentage: + type: string + title: Ownership Percentage + citizenship: + type: string + title: Citizenship + email: + type: string + title: Email + id: + type: string + format: uuid + title: Id + type: object + required: + - id + title: RelatedPartyApplicationResponse + RelatedPartyRole: + type: string + enum: + - CONTROL_PERSON + - AUTHORIZED_REPRESENTATIVE + title: RelatedPartyRole + description: An enumeration. + RequestedAmount: + properties: + amount_usdc: + type: integer + exclusiveMinimum: 0 + title: Amount USDC + type: + type: string + enum: + - REQUESTED_AMOUNT + title: Type + type: object + required: + - amount_usdc + - type + title: Requested amount + description: Creates a transfer for a specific, requested amount. + RetiredInvestmentProfile: + properties: + income: + allOf: + - $ref: '#/components/schemas/AnnualPersonalIncome' + description: Applicant's estimated annual income in USD. + net_worth: + allOf: + - $ref: '#/components/schemas/AveragePersonalNetWorth' + description: Applicant's estimated average personal net worth in USD. + bd_association: + type: string + maxLength: 200 + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + director_policy_maker_of_company: + type: string + maxLength: 200 + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + occupation: + type: string + maxLength: 200 + title: Occupation + description: Applicant's occupation + employment_status: + type: string + enum: + - RETIRED + title: Employment Status + type: object + required: + - income + - net_worth + - employment_status + title: RetiredInvestmentProfile + RiskCategory: + type: string + enum: + - INTERNET_GAMBLING + - CANNABIS + - CRYPTOCURRENCY + - CROWDFUNDING + - FINANCIAL_OR_MONEY_MOVEMENT + title: RiskCategory + description: An enumeration. + RiskInfo: + properties: + risk_categories: + items: + $ref: '#/components/schemas/RiskCategory' + type: array + company_mission: + type: string + title: Company Mission + has_current_enforcement_actions: + type: boolean + title: Has Current Enforcement Actions + primary_regulator: + type: string + title: Primary Regulator + business_activity_location: + $ref: '#/components/schemas/BusinessActivityLocation' + source_of_funds: + $ref: '#/components/schemas/SourceOfFunds' + account_usage: + $ref: '#/components/schemas/AccountUsage' + annual_revenue: + $ref: '#/components/schemas/AnnualRevenue' + monthly_transactions: + $ref: '#/components/schemas/MonthlyTransactions' + first_month_deposit: + $ref: '#/components/schemas/FirstMonthDepositAmount' + type: object + title: RiskInfo + Security: + properties: + tradable_id: + type: string + format: uuid + title: Tradable Id + security_type: + $ref: '#/components/schemas/SecurityType' + quantity: + type: integer + exclusiveMinimum: 0 + title: Quantity + description: Number of securities + market_value: + allOf: + - $ref: '#/components/schemas/Amount' + title: Market Value + description: The current market value of the securities + external_id: + type: string + title: External Id + maturity_date: + type: string + format: date + title: Maturity Date + description: Due date of the fixed income instrument + yield_to_maturity: + allOf: + - $ref: '#/components/schemas/Decimal' + title: Yield To Maturity + description: Rate of return if the security is held to the maturity date + ask: + allOf: + - $ref: '#/components/schemas/Decimal' + title: Ask + description: The current price the account is willing to sell the security at + bid: + allOf: + - $ref: '#/components/schemas/Decimal' + title: Bid + description: The current price the market is willing to pay for the security + description: + type: string + title: Description + description: A description of the security + type: object + required: + - tradable_id + - security_type + - quantity + - market_value + - external_id + - maturity_date + - yield_to_maturity + - ask + - bid + - description + title: Security + SecurityType: + type: string + enum: + - FIXED_INCOME + - OTHER + title: SecurityType + description: An enumeration. + SettableCardStatus: + type: string + enum: + - OPEN + - LOCKED + title: SettableCardStatus + description: An enumeration. + ShippingAddress: + properties: + street_address: + type: string + maxLength: 100 + title: Street Address + description: Street address + street_address2: + type: string + maxLength: 100 + title: Street Address2 + description: Apartment, Suite, Box number, etc. + city: + type: string + maxLength: 100 + title: City + description: City / Town + postal_code: + type: string + maxLength: 10 + title: Postal Code + description: Postal code / ZIP code + state: + allOf: + - $ref: '#/components/schemas/State' + description: 'State (Postal Abbreviations. Example: "AL", "NJ", "OH")' + country: + allOf: + - $ref: '#/components/schemas/Country' + description: 'A ISO-3166 Alpha-2 country code (Abbreviated. Example: "US")' + type: object + required: + - street_address + - city + - postal_code + - state + - country + title: ShippingAddress + SourceOfFunds: + type: string + enum: + - INTERNAL_FUNDS + - CLIENT_OR_EXTERNAL_FUNDS + title: SourceOfFunds + description: An enumeration. + State: + type: string + enum: + - AA + - AE + - AP + - AK + - AL + - AR + - AZ + - CA + - CO + - CT + - DC + - DE + - FL + - GA + - GU + - HI + - IA + - ID + - IL + - IN + - KS + - KY + - LA + - MA + - MD + - ME + - MI + - MN + - MO + - MS + - MT + - NC + - ND + - NE + - NH + - NJ + - NM + - NV + - NY + - OH + - OK + - OR + - PA + - PR + - RI + - SC + - SD + - TN + - TX + - UT + - VA + - VI + - VT + - WA + - WI + - WV + - WY + title: State + description: An enumeration. + Statement: + properties: + id: + type: string + format: uuid + title: Id + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + type: + $ref: '#/components/schemas/StatementType' + key: + type: string + title: Key + pdf_download_url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Pdf Download Url + time_created: + type: string + format: date-time + title: Time Created + type: object + required: + - id + - jiko_account_id + - type + - key + - pdf_download_url + - time_created + title: Statement + StatementListResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Statement' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: StatementListResponse + description: Base class for cursor_list responses from the Partner API + StatementType: + type: string + enum: + - 1099B + - 1099INT + - BANK + - BROKERAGE + title: StatementType + description: An enumeration. + StudentInvestmentProfile: + properties: + income: + allOf: + - $ref: '#/components/schemas/AnnualPersonalIncome' + description: Applicant's estimated annual income in USD. + net_worth: + allOf: + - $ref: '#/components/schemas/AveragePersonalNetWorth' + description: Applicant's estimated average personal net worth in USD. + bd_association: + type: string + maxLength: 200 + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + director_policy_maker_of_company: + type: string + maxLength: 200 + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + occupation: + type: string + maxLength: 200 + title: Occupation + description: Applicant's occupation + employment_status: + type: string + enum: + - STUDENT + title: Employment Status + type: object + required: + - income + - net_worth + - employment_status + title: StudentInvestmentProfile + Subscription: + properties: + description: + type: string + title: Description + description: A description of the webhook's intended use. + default: '' + events: + items: + type: string + type: array + minItems: 1 + title: Events + description: Which types of events this webhook should be invoked for. + url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Url + description: The webhook URL to invoke. + id: + type: string + format: uuid + title: Id + time_created: + type: string + format: date-time + title: Time Created + updated_at: + type: string + format: date-time + title: Updated At + status: + $ref: '#/components/schemas/SubscriptionStatus' + type: object + required: + - events + - url + - id + - time_created + - updated_at + - status + title: Subscription + SubscriptionStatus: + type: string + enum: + - enabled + - disabled + title: SubscriptionStatus + description: An enumeration. + Trade: + properties: + id: + type: string + format: uuid + title: Id + trade_datetime: + type: string + format: date-time + title: Trade Datetime + settled_date: + type: string + format: date + title: Settled Date + is_settled: + type: boolean + title: Is Settled + activity: + $ref: '#/components/schemas/TradeActivity' + cusip: + type: string + title: Cusip + description: + type: string + title: Description + notional: + $ref: '#/components/schemas/Amount' + quantity: + type: integer + title: Quantity + price: + $ref: '#/components/schemas/Decimal' + maturity_date: + type: string + format: date + title: Maturity Date + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + yield_to_maturity: + $ref: '#/components/schemas/Decimal' + tradable_id: + type: string + title: Tradable Id + type: object + required: + - id + - trade_datetime + - is_settled + - activity + - cusip + - description + - notional + - quantity + - price + - maturity_date + - jiko_account_id + - yield_to_maturity + - tradable_id + title: Trade + TradeActivity: + type: string + enum: + - BUY + - SELL + - MATURITY + title: TradeActivity + description: An enumeration. + TradeConfirmation: + properties: + url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Url + type: object + required: + - url + title: TradeConfirmation + example: + url: https://example.com/path-to-trade-confirmation-pdf + TradeListResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Trade' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: TradeListResponse + description: Base class for cursor_list responses from the Partner API + Transaction: + properties: + id: + type: string + format: uuid + title: Id + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + amount: + $ref: '#/components/schemas/Amount' + timestamp: + type: string + format: date-time + title: Timestamp + status: + $ref: '#/components/schemas/TransactionStatus' + details: + $ref: '#/components/schemas/TransactionDetails' + type: object + required: + - id + - jiko_account_id + - amount + - timestamp + - status + - details + title: Transaction + TransactionDetails: + properties: + transaction_type: + $ref: '#/components/schemas/TransactionType' + title: + type: string + title: Title + sub_title: + type: string + title: Sub Title + transaction_type_title: + type: string + title: Transaction Type Title + card_transaction: + $ref: '#/components/schemas/CardTransactionDetails' + ach_transaction: + $ref: '#/components/schemas/ACHTransactionDetails' + wire_transaction: + $ref: '#/components/schemas/WireTransactionDetails' + wire_fee_transaction: + $ref: '#/components/schemas/WireTransactionDetails' + cash_back_transaction: + $ref: '#/components/schemas/CashBackTransactionDetails' + on_us_transaction: + $ref: '#/components/schemas/OnUsTransactionDetails' + type: object + required: + - transaction_type + title: TransactionDetails + TransactionListResponse: + properties: + prev_page: + type: string + title: Prev Page + next_page: + type: string + title: Next Page + items: + items: + $ref: '#/components/schemas/Transaction' + type: array + title: Items + object_type: + type: string + title: Object Type + default: CursorList + type: object + required: + - items + title: TransactionListResponse + description: Base class for cursor_list responses from the Partner API + TransactionLocation: + properties: + street_address: + type: string + title: Street Address + city: + type: string + title: City + state: + type: string + title: State + country: + type: string + title: Country + type: object + required: + - street_address + - city + - country + title: TransactionLocation + TransactionStatus: + type: string + enum: + - PENDING + - COMPLETED + title: TransactionStatus + description: An enumeration. + TransactionType: + type: string + enum: + - CARD + - CASH_BACK + - ACH + - WIRE + - WIRE_FEE + - GENERIC + - ON_US + title: TransactionType + description: An enumeration. + TransferStateReason: + type: string + enum: + - ACCOUNT_UNAVAILABLE + - CANCELED + - INSUFFICIENT_FUNDS + - INVALID_CURRENCY + - INVALID_TRANSFER + - SANCTION_SCREEN_FAILED + title: TransferStateReason + description: An enumeration. + UnemployedInvestmentProfile: + properties: + income: + allOf: + - $ref: '#/components/schemas/AnnualPersonalIncome' + description: Applicant's estimated annual income in USD. + net_worth: + allOf: + - $ref: '#/components/schemas/AveragePersonalNetWorth' + description: Applicant's estimated average personal net worth in USD. + bd_association: + type: string + maxLength: 200 + title: Bd Association + description: >- + Name of broker-dealer association or employment. Disclosure is + required by law if applicable, else, leave empty + director_policy_maker_of_company: + type: string + maxLength: 200 + title: Director Policy Maker Of Company + description: >- + Name of company where customer is director or policy maker. + Disclosure is required by law if applicable, otherwise, leave empty + occupation: + type: string + maxLength: 200 + title: Occupation + description: Applicant's occupation + employment_status: + type: string + enum: + - UNEMPLOYED + title: Employment Status + type: object + required: + - income + - net_worth + - employment_status + title: UnemployedInvestmentProfile + UpdateSubscriptionRequest: + properties: + description: + type: string + title: Description + description: A description of the webhook's intended use. + default: '' + events: + items: + type: string + type: array + minItems: 1 + title: Events + description: Which types of events this webhook should be invoked for. + url: + type: string + maxLength: 2083 + minLength: 1 + format: uri + title: Url + description: The webhook URL to invoke. + shared_secret: + type: string + minLength: 16 + title: Shared Secret + description: >- + The shared secret used by the Partner API to sign requests made to + the webhook. The shared secret needs to be minimum 16 characters + long. + type: object + title: UpdateSubscriptionRequest + UploadDocumentResponse: + properties: + success: + type: boolean + title: Success + document_id: + type: string + format: uuid + title: Document Id + type: object + required: + - success + - document_id + title: UploadDocumentResponse + ValidationError: + properties: + loc: + items: + anyOf: + - type: string + - type: integer + type: array + title: Location + msg: + type: string + title: Message + type: + type: string + title: Error Type + type: object + required: + - loc + - msg + - type + title: ValidationError + VirtualCardResponse: + properties: + card_id: + type: string + format: uuid + title: Card Id + encrypted_pan: + type: string + title: Encrypted Pan + encrypted_cvv: + type: string + title: Encrypted Cvv + encrypted_expiration: + type: string + title: Encrypted Expiration + type: object + required: + - card_id + - encrypted_pan + - encrypted_cvv + - encrypted_expiration + title: VirtualCardResponse + WireCounterparty: + properties: + time_created: + type: string + format: date-time + title: Time Created + verification_type: + $ref: '#/components/schemas/ACHCounterpartyVerificationType' + status: + $ref: '#/components/schemas/ACHCounterpartyVerificationStatus' + account_number: + type: string + title: Account Number + routing_number: + type: string + title: Routing Number + name_on_account: + type: string + title: Name On Account + account_type: + $ref: '#/components/schemas/ACHCounterpartyAccountType' + institution_name: + type: string + title: Institution Name + type: object + required: + - time_created + - verification_type + - status + - account_number + - routing_number + - name_on_account + - account_type + - institution_name + title: WireCounterparty + WireOutgoingPayload: + properties: + jiko_account_id: + type: string + format: uuid + title: Jiko Account Id + wire_id: + type: string + format: uuid + title: Wire Id + type: object + required: + - jiko_account_id + - wire_id + title: WireOutgoingPayload + WireRequest: + properties: + counterparty_id: + type: string + format: uuid + title: Counterparty Id + amount_usdc: + type: integer + title: Amount Usdc + description: The amount, in USD cents. + created_by: + type: string + title: Created By + description: A string identifying the wire transfer originator. + description: + type: string + title: Description + description: A description of the transfer, visible on statements. + wire_id: + type: string + format: uuid + title: Wire Id + description: The ID for this wire transfer, auto-generated if not provided. + type: object + required: + - counterparty_id + title: WireRequest + WireTransactionDetails: + properties: + reference_number: + type: string + title: Reference Number + counterparty_name: + type: string + title: Counterparty Name + wire_id: + type: string + format: uuid + title: Wire Id + type: object + required: + - reference_number + - counterparty_name + title: WireTransactionDetails + securitySchemes: + HTTPBearer: + type: http + scheme: bearer +tags: + - name: Individuals + description: > + Use these endpoints to initiate, manage, and complete KYC for Individuals. + When an application has `status: “APPROVED”`, a + [Customer](https://docs.jiko.io/reference) is created for the Individual. + Customers can have multiple [Accounts](https://docs.jiko.io/reference). + - name: Businesses + description: > + Use these endpoints to initiate, manage, and complete KYB for Businesses. + When an application has `status: “APPROVED”`, a + [Customer](https://docs.jiko.io/reference) is created for the Business. + Customers can have multiple [Accounts](https://docs.jiko.io/reference). + - name: Accounts + description: > + 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. + - name: Customers + description: Use these endpoints to view and manage personal details for a Customer. + - name: Transactions + description: > + 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](https://docs.jiko.io/reference). + - name: Trades + description: >- + 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. + - name: Statements + description: >- + Use these endpoints to retrieve monthly statements for bank and brokerage + accounts. + - name: Portals + description: >- + 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. A single portal is created by + default upon account creation. + - name: ACH + description: Use these endpoints to create, view, and manage ACH Transfers. + - name: Wires + description: Use this endpoint to initiate Wire Transfers. + - name: On-Us Transfers + description: >- + Use these endpoints to create and view On-Us (Book) Transfers between Jiko + accounts. + - name: Counterparties + description: > + 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. + - name: 'Counterparties: Plaid' + description: Use these endpoints to create and view Counterparties using Plaid. + - name: Manage Cards + description: Use these endpoints to view and manage Card information. + - name: Physical Cards + description: Use these endpoints to create, view, and manage Physical Debit Cards. + - name: Virtual Cards + description: Use these endpoints to create, view, and manage Virtual Debit Cards. + - name: Security + description: Use these endpoints to authenticate requests to the Jiko API. + - name: Sandbox + description: Use these endpoints to initiate sandbox functionality. + - name: Subscriptions + description: >- + 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. + - name: Events + description: Use these endpoints to view Events. + - name: Health + description: Use these endpoints to setup automatic health checks for the Partner API. +x-tagGroups: + - name: Onboarding + tags: + - Individuals + - Businesses + - name: Accounts + tags: + - Accounts + - Customers + - Transactions + - Trades + - Statements + - name: Transfers + tags: + - Portals + - ACH + - Wires + - On-Us Transfers + - Counterparties + - 'Counterparties: Plaid' + - name: Cards + tags: + - Manage Cards + - Physical Cards + - Virtual Cards + - name: Platform + tags: + - Health + - Security + - Sandbox + - Subscriptions + - Events diff --git a/sdks/db/processed-custom-request-cache/jiko.io.yaml b/sdks/db/processed-custom-request-cache/jiko.io.yaml new file mode 100644 index 0000000000..75f68df21d --- /dev/null +++ b/sdks/db/processed-custom-request-cache/jiko.io.yaml @@ -0,0 +1,464 @@ +processed: + securitySchemes: + HTTPBearer: + type: http + scheme: bearer + apiBaseUrl: https://{partner}.partner-api.jikoservices.com + apiVersion: 1.29.0 + apiDescription: > + # 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. + + +
+ + + At the core of our platform is the Jiko account: a pair consisting of a bank + account and a brokerage account. When money is deposited into an account, + 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 accounts, and each account 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 customer accounts via ACH or Wire + + - Viewing and managing accounts (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](mailto:partner.support@jiko.io) to request sandbox + access. + + # Partner obligations + + +
+ + + - Before onboarding, the end-user’s control over any email addresses or + phone numbers must be confirmed (for example, via confirmation codes) before + submitting an application to the API. + + - While onboarding, partners must comply with the disclosure requirements + listed [below](https://docs.jiko.io/reference). + + - Monthly statements are created for bank and brokerage accounts and must be + made available to the user. + - Partners are required to send an email to end users every month a new statement is available to comply with regulatory requirements. + - Partners can expect monthly statements to be available by the 15th of every month. + - It is required to make the past 6 years of brokerage statements available to the end user. + - It is advised to make at least the past 12 months of bank statements available to the end user. + - Trade confirmations must be made available to the user. + + + ## Disclosures and Agreements + + + - The bundle of customer disclosures and agreements served at the + [Agreements](https://docs.jiko.io/reference) endpoint must be presented to + users before signing up for an account. + This includes Risk and Limitation disclosures, Regulation E disclosures, Account agreements and more. + - The customer consent for these disclosures have to be versioned and time-stamped and sent with the application. + - Jiko reserves the right to update agreements from time to time. + If a change is _adverse_ to the customer, Jiko will notify partners, and they are then required to notify their end users 30 days in advance of the change. + - A change is deemed to be _adverse_ to the customer if it will result in increased fees, increased liability for the customer, fewer types of available transactions or stricter limitations on the frequency or dollar amount of transactions. + - When Jiko updates the bundle of agreements, the version number of the + agreement bundle will increment. + Jiko reserves the right to reject or manually review applications where customer consent does not match the latest agreement version. + Partners must re-fetch and display the agreements and disclosures links from the Agreements endpoint for every new application. This ensures each applicant is served the latest version of the agreements. + + # Authentication + + + **Jiko** provides partners with a `username` and a `password`, as well as a + `shared secret`. Partners are provided with a `bearer token` in the + [Login](https://docs.jiko.io/reference) response, which must be sent with + each request. + + +
+ + + Each request made to the partner API needs 3 parts in order for it to be + processed: + + + 1. An **Authorization** HTTP header containing the value + + + ```javascript + + Bearer + + ``` + + +
+ + + Where the `access_token` is the bearer token given in the + [Login](https://docs.jiko.io/reference) response. + + + 1. An **x-jiko-idempotency** HTTP header set to a random uuid for this + action, in order to signify a unique request to the API from the partner’s + perspective. + + 2. An **x-jiko-signature** HTTP header set to a base64 encoded HMAC-SHA256 + hash of `x-jiko-idempotency+request pathname+body` using the shared secret + as a key. + + + Below is a Node.js example showing how a potential request could be signed: + + +
+ + + ```javascript + + const crypto = require("crypto"); + + const uuid = require("uuid"); + + + const idempotency = uuid.v4(); + + const pathname = "/api/v1/agreements/"; + + const body = ""; + + + request.headers["x-jiko-signature"] = crypto + .createHmac("sha256", "shared-secret-here") + .update(idempotency + pathname + body, "utf-8") + .digest("base64"); + ``` + + +
+ + + **Partner** requests will need to be sent from an IP address whitelisted by + **Jiko**. + + **Jiko** will verify the request signature by repeating the steps above, + additionally checking for possible repeated requests. A request is + considered to be repeated if the idempotency key value provided in the + `x-jiko-idempotency` header has been used previously in the past 1 hour. + + +
+ + + Bearer tokens have a lifetime of 60 minutes. + + The partner will need to repeat the login process once a token has expired. + + + # Changelog + + + ## March 2024 + + - Added `tradable_id` field to [List Customer + Trades](https://docs.jiko.io/reference) and [List Customer + Transactions](https://docs.jiko.io/reference) API endpoint. + + - Added support for filtering by trade date to and from to [List Customer + Trades](https://docs.jiko.io/reference) and [List Customer + Transactions](https://docs.jiko.io/reference) API endpoints. + + + - Added support for filtering by types, timestamp_from and timestamp_to to + the [List Customer Transactions](https://docs.jiko.io/reference), [List + Account Transactions](https://docs.jiko.io/reference) API endpoints. + + + + ## February 2024 + + - Added support for filtering by status and direction to the [List ACH Originations](https://docs.jiko.io/reference) API endpoint + - Added support for filtering by portal id and card id to the [List Customer Transactions](https://docs.jiko.io/reference), [List Account Transactions](https://docs.jiko.io/reference) API endpoints. + + - Added support for filtering by status and direction to the [List ACH Originations](https://docs.jiko.io/reference) API endpoint + - Added support for filtering by card status to the [List Account Cards](https://docs.jiko.io/reference) endpoint. + - Added support for full withdrawals when performing on-us transfers by using the new `amount` field. + - Added support for listing fees deducted when performing on-us transfers. + + ## January 2024 + + - Added [Get Health Check](https://docs.jiko.io/reference) API endpoint. + + ## December 2023 + + + - Business Application additions: + + - Added [Create Application](https://docs.jiko.io/reference) API endpoint. + - Added [Get Application](https://docs.jiko.io/reference) API endpoint. + - Added [Update Application](https://docs.jiko.io/reference) API endpoint. + - Added [Apply](https://docs.jiko.io/reference) API endpoint. + + - Related Party Application additions: + + - Added [List Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Create Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Delete Related Party](https://docs.jiko.io/reference) API endpoint. + - Added [Update Related Party](https://docs.jiko.io/reference) API endpoint. + + - Document Upload additions: + + - Added [List Document Requests](https://docs.jiko.io/reference) API endpoint. + - Added [Upload Document](https://docs.jiko.io/reference) API endpoint. + + - Wire additions: + + - Added [Create Wire](https://docs.jiko.io/reference) API endpoint. + + ## November 2023 + + + - Added a new optional field `micro_deposit` to V1 `ACHCounterparty` model + that includes an indication of number of verification attempts for ACH + Counterparties verified via Micro Deposits + + - Added [Close Portal](https://docs.jiko.io/reference) API endpoint. + + - Added [Update Portal](https://docs.jiko.io/reference) API endpoint. + + + ## October 2023 + + + - Added enum value `PENDING` to the [Get Customer + Data](https://docs.jiko.io/reference) `account_status` field, signalling + that a customer has no open pocket. + + + ## July 2023 + + + - Added [Get Account Portal](https://docs.jiko.io/reference) API endpoint. + + + ## May 2023 + + + ### 2023-05-26 + + + - The response from uploading documents now includes a `document_id` field + for future reference. + + + ### 2023-05-15 + + + - Added [Create Portal](https://docs.jiko.io/reference) API endpoint. + + - Added a new `category` type E-SIGN for the Electronic Communications + Disclosure Statement and Consent which was previously in the GENERAL + category. + + + ### 2023-05-05 + + + - Added a new `WIRE_COUNTERPARTY_VERIFICATION` document type. + + - File size limits raised to 50 MB for files other than `ID_FRONT`, + `ID_BACK`, `SELFIE` and `PASSPORT` when uploading documents to a customer or + application. + + - Updated documentation for both file upload endpoints. + + + ## April 2023 + + + ### 2023-04-28 + + + - Adds a new `category` field for agreements returned by the [List + Agreements](https://docs.jiko.io/reference) endpoint. This `category` field + groups all agreements into 3 categories, BANK, BROKERAGE, or GENERAL. + + + ### 2023-04-19 + + + - Added a new sandbox endpoint for simulating webhook calls, [Trigger + Webhook](https://docs.jiko.io/reference). + + + ## March 2023 + + + ### 2023-03-30 + + + - Added a new `yield_to_maturity` field to the `Trade` model. + + + ### 2023-03-15 + + + - Added a new `name` field to the `Portal` model. + + + ## February 2023 + + + ### 2023-02-24 + + + - Added a sandbox endpoint to fund accounts via ACH portals. + + + ### 2023-02-16 + + + - Added a new disclosure type, `FORM_CRS`, for Customer Relationship Summary + Forms. + + + ### 2023-02-10 + + + - Added `wire_fee_transaction` and `WIRE_FEE` transaction type to the [List + Customer Transactions](https://docs.jiko.io/reference), [List Account + Transactions](https://docs.jiko.io/reference) and [Get Account + Transaction](https://docs.jiko.io/reference) endpoints. + + + ## January 2023 + + + ### 2023-01-25 + + + - Added [Create On-Us Transfer](https://docs.jiko.io/reference) API + endpoint. + + - Added [Get On-Us Transfer](https://docs.jiko.io/reference) API endpoint. + + + ### 2023-01-18 + + + - Added two optional filtering query parameters to the [List Customer + Statements](https://docs.jiko.io/reference) endpoint: + - The `type[]` query parameter makes it possible to filter by different types of statements, e.g. `?type[]=BANK&type[]=BROKERAGE` + - The `key` query parameter makes it possible to filter by either a specific month or a year, e.g. `?key=2023-01` or `?key=2022` + - Marked the [List Account Statements](https://docs.jiko.io/reference) + endpoint as deprecated. Please use the [List Customer + Statements](https://docs.jiko.io/reference) in future integrations. + + + ### 2023-01-09 + + + - Added a new transaction type and corresponding details object, + `on_us_transaction` to the response model in [List Customer + Transactions](https://docs.jiko.io/reference). + + + ### 2023-01-06 + + + - Added optional field `originally_onboarded_at` to request body in [Create + Application](https://docs.jiko.io/reference) + + + ## November 2022 + + + ### 2022-11-09 + + + - New counterparty type `WIRE` with a `wire` field, returned in [Get + Counterparty](https://docs.jiko.io/reference) and [List + Counterparties](https://docs.jiko.io/reference) + + + ## September 2022 + + + ### 2022-09-28 + + + - Added [List Customer Statements](https://docs.jiko.io/reference) API + endpoint. + + + ### 2022-09-27 + + + - Added [Get Customer Data](https://docs.jiko.io/reference) API endpoint. + + + ### 2022-09-07 + + + - Added [List Customer Trades](https://docs.jiko.io/reference) API endpoint. + + - Added [List Customer Transactions](https://docs.jiko.io/reference) API + endpoint. + + + ## August 2022 + + + ### 2022-08-29 + + + - Added `name` field to the [List Customer + Accounts](https://docs.jiko.io/reference) and [Get Customer + Account](https://docs.jiko.io/reference) API endpoints + + + ### 2022-08-16 + + + - Added [Get Account Transaction](https://docs.jiko.io/reference) API + endpoint + + + ### 2022-08-05 + + + - Added [List ACH Originations](https://docs.jiko.io/reference) API endpoint + apiTitle: Jiko Partner API + endpoints: 56 + sdkMethods: 68 + schemas: 179 + parameters: 353 + originalCustomRequest: + lambda: true + customRequestSpecFilename: jiko.io.yaml + difficultyScore: 245.75 diff --git a/sdks/db/progress/jiko-progress.yaml b/sdks/db/progress/jiko-progress.yaml new file mode 100644 index 0000000000..f1db47394f --- /dev/null +++ b/sdks/db/progress/jiko-progress.yaml @@ -0,0 +1,199 @@ +examples: {} +examples_2: {} +examples_3: {} +operationIds: + /api/v1/agreements/: + get: Individuals_getAgreements + /api/v1/applications/: + post: Individuals_createApplication + /api/v1/applications/{application_id}/: + get: Individuals_getApplication + /api/v1/applications/{application_id}/apply/: + post: Individuals_initiateKycSubmission + /api/v1/applications/{application_id}/documents/{document_type}/file/: + post: Individuals_uploadDocumentToApplication + /api/v1/business-applications/: + post: Businesses_createApplication + /api/v1/business-applications/{application_id}/: + get: Businesses_getApplication + patch: Businesses_updateApplication + /api/v1/business-applications/{application_id}/apply/: + post: Businesses_submitApplication + /api/v1/business-applications/{application_id}/documents/: + get: Businesses_listDocumentRequests + /api/v1/business-applications/{application_id}/related-party-applications/: + get: Businesses_listRelatedPartyApplications + post: Businesses_createRelatedPartyApplication + /api/v1/business-applications/{application_id}/related-party-applications/{related_party_application_id}/: + delete: Businesses_deleteRelatedPartyApplication + patch: Businesses_updateRelatedPartyApplication + /api/v1/customers/{customer_id}/: + get: Customers_getDetails + /api/v1/customers/{customer_id}/counterparties/: + get: Counterparties_listForCustomer + /api/v1/customers/{customer_id}/counterparties/plaid/: + post: CounterpartiesPlaid_createPlaidCounterparties + /api/v1/customers/{customer_id}/counterparties/plaid/link-token/: + post: CounterpartiesPlaid_createLinkToken + /api/v1/customers/{customer_id}/counterparties/{counterparty_id}/: + get: Counterparties_getVerificationStatus + /api/v1/customers/{customer_id}/counterparties/{counterparty_id}/plaid/verify/: + post: CounterpartiesPlaid_completeVerification + /api/v1/customers/{customer_id}/documents/{document_type}/file/: + post: Customers_uploadDocumentToCustomer + /api/v1/customers/{customer_id}/jiko-accounts/: + get: Accounts_listCustomerAccounts + /api/v1/customers/{customer_id}/statements/: + get: Statements_listForCustomer + /api/v1/customers/{customer_id}/trades/: + get: Trades_listCustomerTrades + /api/v1/customers/{customer_id}/transactions/: + get: Transactions_listCustomerTransactions + /api/v1/documents/{document_id}/: + post: Businesses_uploadDocument + /api/v1/events/: + get: Events_getPastEvents + /api/v1/events/types/: + get: Events_listEventTypes + /api/v1/jiko-accounts/{account_id}/: + get: Accounts_getSpecificAccount + /api/v1/jiko-accounts/{account_id}/ach-originating/: + get: Ach_listAchOriginations + post: Ach_originateTransaction + /api/v1/jiko-accounts/{account_id}/ach-originating/{transfer_id}/: + get: Ach_getTransferOrigination + /api/v1/jiko-accounts/{account_id}/card-orders/: + get: PhysicalCards_listCardOrders + post: PhysicalCards_createOrder + /api/v1/jiko-accounts/{account_id}/card-orders/{card_order_id}/: + get: PhysicalCards_getOrderInfo + /api/v1/jiko-accounts/{account_id}/cards/: + get: ManageCards_getAccountCards + /api/v1/jiko-accounts/{account_id}/cards/{card_id}/close/: + post: ManageCards_closeCard + /api/v1/jiko-accounts/{account_id}/cards/{card_id}/pin/: + post: ManageCards_setCardPin + /api/v1/jiko-accounts/{account_id}/cards/{card_id}/status/: + get: ManageCards_getStatus + patch: ManageCards_setCardStatus + /api/v1/jiko-accounts/{account_id}/portals/: + get: Portals_list + post: Portals_createPortal + /api/v1/jiko-accounts/{account_id}/portals/{portal_id}/: + get: Portals_getPortal + patch: Portals_updateName + /api/v1/jiko-accounts/{account_id}/portals/{portal_id}/close/: + post: Portals_closePortal + /api/v1/jiko-accounts/{account_id}/statements/: + get: Statements_getAccountStatements + /api/v1/jiko-accounts/{account_id}/trades/: + get: Trades_getAccountTransactions + /api/v1/jiko-accounts/{account_id}/trades/{trade_id}/confirmation/: + get: Trades_getConfirmation + /api/v1/jiko-accounts/{account_id}/transactions/: + get: Transactions_listForAccount + /api/v1/jiko-accounts/{account_id}/transactions/{transaction_id}/: + get: Transactions_getSpecificTransaction + /api/v1/jiko-accounts/{account_id}/virtual-cards/: + post: VirtualCards_createCard + /api/v1/jiko-accounts/{account_id}/virtual-cards/{card_id}/: + delete: VirtualCards_closeCard + post: VirtualCards_getDetail + /api/v1/jiko-accounts/{account_id}/wires/: + post: Wires_initiateWireTransfer + /api/v1/login/: + post: Security_authenticateUser + /api/v1/public-keys/: + get: Security_getEncryptionKeys + /api/v1/sandbox/card-swipe/: + post: Sandbox_simulateCardSwipe + /api/v1/sandbox/fund/: + post: Sandbox_simulateAchCredit + /api/v1/sandbox/generate-card/: + post: Sandbox_generatePhysicalCardFromOrder + /api/v1/sandbox/webhook/: + post: Sandbox_simulateWebhookEvent + /api/v1/subscriptions/: + get: Subscriptions_listPartnerSubscriptions + post: Subscriptions_createWebhookSubscription + /api/v1/subscriptions/{subscription_id}/: + delete: Subscriptions_deleteWebhookSubscription + get: Subscriptions_getWebhookSubscription + patch: Subscriptions_updateWebhookSubscription + /api/v1/transfers/on-us/: + post: OnUsTransfers_createTransfer + /api/v1/transfers/on-us/{transfer_id}/: + get: OnUsTransfers_getById + /health: + get: Health_statusCheck +operationTags: {} +renameTags: {} +requestSchemaNames: {} +responseDescriptions: {} +responseSchemaNames: + /api/v1/business-applications/{application_id}/documents: + get: + '200': + application/json: BusinessesListDocumentRequestsResponse + /api/v1/business-applications/{application_id}/related-party-applications: + get: + '200': + application/json: BusinessesListRelatedPartyApplicationsResponse + /health: + get: + '200': + application/json: HealthStatusCheckResponse +securityParameters: + account[]: + query: false + after: + query: false + content-disposition: + header: false + content-length: + header: false + content-type: + header: false + cursor: + query: false + direction: + query: false + filter[card]: + query: false + filter[portal]: + query: false + filter[status]: + query: false + filter[types]: + query: false + key: + query: false + limit: + query: false + offset: + query: false + order: + query: false + subscription_id: + query: false + timestamp_from: + query: false + timestamp_to: + query: false + trade_datetime_from: + query: false + trade_datetime_to: + query: false + type[]: + query: false + x-branch-name: + header: false + x-jiko-idempotency: + header: false + x-jiko-signature: + header: false +validServerUrls: + https://{partner}.partner-api.jikoservices.com: + url: https://{partner}.partner-api.jikoservices.com + https://{partner}.sandbox-api.jikoservices.com: + url: https://{partner}.sandbox-api.jikoservices.com diff --git a/sdks/db/published/from-custom-request_jiko.io.json b/sdks/db/published/from-custom-request_jiko.io.json new file mode 100644 index 0000000000..92d8af8574 --- /dev/null +++ b/sdks/db/published/from-custom-request_jiko.io.json @@ -0,0 +1,3882 @@ +{ + "securitySchemes": { + "HTTPBearer": { + "type": "http", + "scheme": "bearer" + } + }, + "apiBaseUrl": "https://{partner}.partner-api.jikoservices.com", + "apiVersion": "1.29.0", + "apiDescription": "# Introduction\n\nWelcome to the Jiko API Reference! Jiko enables you to integrate money storage and movement, backed by the safety and security of US Treasury Bills.\n\n
\n\nAt the core of our platform is the Jiko account: a pair consisting of a bank account and a brokerage account. When money is deposited into an account, 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 accounts, and each account is associated with a single T-bill maturity: 4-week, 13-week, 26-week or 52-week.\n\n
\n\nThe API Reference covers everything you need to build a full application leveraging the Jiko platform:\n\n
\n\n- Onboarding customers\n- Funding customer accounts via ACH or Wire\n- Viewing and managing accounts (including monthly statements and trade confirmations)\n- Making payments and transfers via ACH, Wire, On-Us (Book) Transfer or Debit Card\n\n
\n\nWhen you’re ready to start building, please contact us at [partner.support@jiko.io](mailto:partner.support@jiko.io) to request sandbox access.\n# Partner obligations\n\n
\n\n- Before onboarding, the end-user’s control over any email addresses or phone numbers must be confirmed (for example, via confirmation codes) before submitting an application to the API.\n- While onboarding, partners must comply with the disclosure requirements listed [below](https://docs.jiko.io/reference).\n- Monthly statements are created for bank and brokerage accounts and must be made available to the user.\n - Partners are required to send an email to end users every month a new statement is available to comply with regulatory requirements.\n - Partners can expect monthly statements to be available by the 15th of every month.\n - It is required to make the past 6 years of brokerage statements available to the end user.\n - It is advised to make at least the past 12 months of bank statements available to the end user.\n- Trade confirmations must be made available to the user.\n\n## Disclosures and Agreements\n\n- The bundle of customer disclosures and agreements served at the [Agreements](https://docs.jiko.io/reference) endpoint must be presented to users before signing up for an account.\n This includes Risk and Limitation disclosures, Regulation E disclosures, Account agreements and more.\n - The customer consent for these disclosures have to be versioned and time-stamped and sent with the application.\n- Jiko reserves the right to update agreements from time to time.\n If a change is _adverse_ to the customer, Jiko will notify partners, and they are then required to notify their end users 30 days in advance of the change.\n - A change is deemed to be _adverse_ to the customer if it will result in increased fees, increased liability for the customer, fewer types of available transactions or stricter limitations on the frequency or dollar amount of transactions.\n- When Jiko updates the bundle of agreements, the version number of the agreement bundle will increment.\n Jiko reserves the right to reject or manually review applications where customer consent does not match the latest agreement version.\n Partners must re-fetch and display the agreements and disclosures links from the Agreements endpoint for every new application. This ensures each applicant is served the latest version of the agreements.\n\n# Authentication\n\n**Jiko** provides partners with a `username` and a `password`, as well as a `shared secret`. Partners are provided with a `bearer token` in the [Login](https://docs.jiko.io/reference) response, which must be sent with each request.\n\n
\n\nEach request made to the partner API needs 3 parts in order for it to be processed:\n\n1. An **Authorization** HTTP header containing the value\n\n```javascript\nBearer \n```\n\n
\n\nWhere the `access_token` is the bearer token given in the [Login](https://docs.jiko.io/reference) response.\n\n1. An **x-jiko-idempotency** HTTP header set to a random uuid for this action, in order to signify a unique request to the API from the partner’s perspective.\n2. An **x-jiko-signature** HTTP header set to a base64 encoded HMAC-SHA256 hash of `x-jiko-idempotency+request pathname+body` using the shared secret as a key.\n\nBelow is a Node.js example showing how a potential request could be signed:\n\n
\n\n```javascript\nconst crypto = require(\"crypto\");\nconst uuid = require(\"uuid\");\n\nconst idempotency = uuid.v4();\nconst pathname = \"/api/v1/agreements/\";\nconst body = \"\";\n\nrequest.headers[\"x-jiko-signature\"] = crypto\n .createHmac(\"sha256\", \"shared-secret-here\")\n .update(idempotency + pathname + body, \"utf-8\")\n .digest(\"base64\");\n```\n\n
\n\n**Partner** requests will need to be sent from an IP address whitelisted by **Jiko**.\n**Jiko** will verify the request signature by repeating the steps above, additionally checking for possible repeated requests. A request is considered to be repeated if the idempotency key value provided in the `x-jiko-idempotency` header has been used previously in the past 1 hour.\n\n
\n\nBearer tokens have a lifetime of 60 minutes.\nThe partner will need to repeat the login process once a token has expired.\n\n# Changelog\n\n## March 2024\n- Added `tradable_id` field to [List Customer Trades](https://docs.jiko.io/reference) and [List Customer Transactions](https://docs.jiko.io/reference) API endpoint.\n- Added support for filtering by trade date to and from to [List Customer Trades](https://docs.jiko.io/reference) and [List Customer Transactions](https://docs.jiko.io/reference) API endpoints.\n\n- Added support for filtering by types, timestamp_from and timestamp_to to the [List Customer Transactions](https://docs.jiko.io/reference), [List Account Transactions](https://docs.jiko.io/reference) API endpoints.\n\n\n## February 2024\n\n - Added support for filtering by status and direction to the [List ACH Originations](https://docs.jiko.io/reference) API endpoint\n - Added support for filtering by portal id and card id to the [List Customer Transactions](https://docs.jiko.io/reference), [List Account Transactions](https://docs.jiko.io/reference) API endpoints.\n\n - Added support for filtering by status and direction to the [List ACH Originations](https://docs.jiko.io/reference) API endpoint\n - Added support for filtering by card status to the [List Account Cards](https://docs.jiko.io/reference) endpoint.\n - Added support for full withdrawals when performing on-us transfers by using the new `amount` field.\n - Added support for listing fees deducted when performing on-us transfers.\n\n## January 2024\n\n - Added [Get Health Check](https://docs.jiko.io/reference) API endpoint.\n\n## December 2023\n\n- Business Application additions:\n\n - Added [Create Application](https://docs.jiko.io/reference) API endpoint.\n - Added [Get Application](https://docs.jiko.io/reference) API endpoint.\n - Added [Update Application](https://docs.jiko.io/reference) API endpoint.\n - Added [Apply](https://docs.jiko.io/reference) API endpoint.\n\n- Related Party Application additions:\n\n - Added [List Related Party](https://docs.jiko.io/reference) API endpoint.\n - Added [Create Related Party](https://docs.jiko.io/reference) API endpoint.\n - Added [Delete Related Party](https://docs.jiko.io/reference) API endpoint.\n - Added [Update Related Party](https://docs.jiko.io/reference) API endpoint.\n\n- Document Upload additions:\n\n - Added [List Document Requests](https://docs.jiko.io/reference) API endpoint.\n - Added [Upload Document](https://docs.jiko.io/reference) API endpoint.\n\n- Wire additions:\n\n - Added [Create Wire](https://docs.jiko.io/reference) API endpoint.\n\n## November 2023\n\n- Added a new optional field `micro_deposit` to V1 `ACHCounterparty` model that includes an indication of number of verification attempts for ACH Counterparties verified via Micro Deposits\n- Added [Close Portal](https://docs.jiko.io/reference) API endpoint.\n- Added [Update Portal](https://docs.jiko.io/reference) API endpoint.\n\n## October 2023\n\n- Added enum value `PENDING` to the [Get Customer Data](https://docs.jiko.io/reference) `account_status` field, signalling that a customer has no open pocket.\n\n## July 2023\n\n- Added [Get Account Portal](https://docs.jiko.io/reference) API endpoint.\n\n## May 2023\n\n### 2023-05-26\n\n- The response from uploading documents now includes a `document_id` field for future reference.\n\n### 2023-05-15\n\n- Added [Create Portal](https://docs.jiko.io/reference) API endpoint.\n- Added a new `category` type E-SIGN for the Electronic Communications Disclosure Statement and Consent which was previously in the GENERAL category.\n\n### 2023-05-05\n\n- Added a new `WIRE_COUNTERPARTY_VERIFICATION` document type.\n- File size limits raised to 50 MB for files other than `ID_FRONT`, `ID_BACK`, `SELFIE` and `PASSPORT` when uploading documents to a customer or application.\n- Updated documentation for both file upload endpoints.\n\n## April 2023\n\n### 2023-04-28\n\n- Adds a new `category` field for agreements returned by the [List Agreements](https://docs.jiko.io/reference) endpoint. This `category` field groups all agreements into 3 categories, BANK, BROKERAGE, or GENERAL.\n\n### 2023-04-19\n\n- Added a new sandbox endpoint for simulating webhook calls, [Trigger Webhook](https://docs.jiko.io/reference).\n\n## March 2023\n\n### 2023-03-30\n\n- Added a new `yield_to_maturity` field to the `Trade` model.\n\n### 2023-03-15\n\n- Added a new `name` field to the `Portal` model.\n\n## February 2023\n\n### 2023-02-24\n\n- Added a sandbox endpoint to fund accounts via ACH portals.\n\n### 2023-02-16\n\n- Added a new disclosure type, `FORM_CRS`, for Customer Relationship Summary Forms.\n\n### 2023-02-10\n\n- Added `wire_fee_transaction` and `WIRE_FEE` transaction type to the [List Customer Transactions](https://docs.jiko.io/reference), [List Account Transactions](https://docs.jiko.io/reference) and [Get Account Transaction](https://docs.jiko.io/reference) endpoints.\n\n## January 2023\n\n### 2023-01-25\n\n- Added [Create On-Us Transfer](https://docs.jiko.io/reference) API endpoint.\n- Added [Get On-Us Transfer](https://docs.jiko.io/reference) API endpoint.\n\n### 2023-01-18\n\n- Added two optional filtering query parameters to the [List Customer Statements](https://docs.jiko.io/reference) endpoint:\n - The `type[]` query parameter makes it possible to filter by different types of statements, e.g. `?type[]=BANK&type[]=BROKERAGE`\n - The `key` query parameter makes it possible to filter by either a specific month or a year, e.g. `?key=2023-01` or `?key=2022`\n- Marked the [List Account Statements](https://docs.jiko.io/reference) endpoint as deprecated. Please use the [List Customer Statements](https://docs.jiko.io/reference) in future integrations.\n\n### 2023-01-09\n\n- Added a new transaction type and corresponding details object, `on_us_transaction` to the response model in [List Customer Transactions](https://docs.jiko.io/reference).\n\n### 2023-01-06\n\n- Added optional field `originally_onboarded_at` to request body in [Create Application](https://docs.jiko.io/reference)\n\n## November 2022\n\n### 2022-11-09\n\n- New counterparty type `WIRE` with a `wire` field, returned in [Get Counterparty](https://docs.jiko.io/reference) and [List Counterparties](https://docs.jiko.io/reference)\n\n## September 2022\n\n### 2022-09-28\n\n- Added [List Customer Statements](https://docs.jiko.io/reference) API endpoint.\n\n### 2022-09-27\n\n- Added [Get Customer Data](https://docs.jiko.io/reference) API endpoint.\n\n### 2022-09-07\n\n- Added [List Customer Trades](https://docs.jiko.io/reference) API endpoint.\n- Added [List Customer Transactions](https://docs.jiko.io/reference) API endpoint.\n\n## August 2022\n\n### 2022-08-29\n\n- Added `name` field to the [List Customer Accounts](https://docs.jiko.io/reference) and [Get Customer Account](https://docs.jiko.io/reference) API endpoints\n\n### 2022-08-16\n\n- Added [Get Account Transaction](https://docs.jiko.io/reference) API endpoint\n\n### 2022-08-05\n\n- Added [List ACH Originations](https://docs.jiko.io/reference) API endpoint\n", + "apiTitle": "Jiko Partner API", + "endpoints": 56, + "sdkMethods": 68, + "schemas": 182, + "parameters": 353, + "originalCustomRequest": { + "lambda": true + }, + "customRequestSpecFilename": "jiko.io.yaml", + "difficultyScore": 245.75, + "difficulty": "Hard", + "company": "Jiko", + "sdkName": "jiko-{language}-sdk", + "clientName": "Jiko", + "metaDescription": "Jiko makes Treasuries bankable. We're a new type of bank that innovates US Treasury bills to unlock yield, safety, and scale.\n\nBacked by Upfront Ventures, Airbus Ventures, and others; headquartered in SF with offices in NYC and Reykjavík.", + "apiStatusUrls": false, + "homepage": "jiko.io", + "developerDocumentation": "docs.jiko.io", + "categories": [ + "finance", + "banking", + "fintech", + "financial_services" + ], + "category": "Finance", + "methods": [ + { + "url": "/health", + "method": "statusCheck", + "httpMethod": "get", + "tag": "Health", + "typeScriptTag": "health", + "description": "Get Health Check", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "" + } + ] + }, + { + "url": "/api/v1/customers/{customer_id}/jiko-accounts", + "method": "listCustomerAccounts", + "httpMethod": "get", + "tag": "Accounts", + "typeScriptTag": "accounts", + "description": "List Customer Accounts", + "parameters": [ + { + "name": "customerId", + "schema": "string", + "required": true, + "description": "", + "example": "CUSTOMER_ID" + }, + { + "name": "offset", + "schema": "integer", + "required": false, + "description": "", + "default": 0 + }, + { + "name": "limit", + "schema": "integer", + "required": false, + "description": "", + "default": 100 + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "Generic models are only supported in pydantic for python 3.7+, so until then\nitems will be of type Any. As such, this class needs to be subclassed\nand its item field overridden in it using the proper type." + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}", + "method": "getSpecificAccount", + "httpMethod": "get", + "tag": "Accounts", + "typeScriptTag": "accounts", + "description": "Get Customer Account", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/customers/{customer_id}/transactions", + "method": "listCustomerTransactions", + "httpMethod": "get", + "tag": "Transactions", + "typeScriptTag": "transactions", + "description": "List Customer Transactions", + "parameters": [ + { + "name": "customerId", + "schema": "string", + "required": true, + "description": "", + "example": "CUSTOMER_ID" + }, + { + "name": "order", + "schema": "string", + "required": false, + "description": "Ordered by the transaction timestamp, descending by default." + }, + { + "name": "account[]", + "schema": "array", + "required": false, + "description": "" + }, + { + "name": "filter[card]", + "schema": "array", + "required": false, + "description": "" + }, + { + "name": "filter[portal]", + "schema": "array", + "required": false, + "description": "" + }, + { + "name": "filter[types]", + "schema": "array", + "required": false, + "description": "" + }, + { + "name": "timestampFrom", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "timestampTo", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "", + "default": "" + }, + { + "name": "limit", + "schema": "integer", + "required": false, + "description": "", + "default": 30 + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "Base class for cursor_list responses from the Partner API" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/transactions", + "method": "listForAccount", + "httpMethod": "get", + "tag": "Transactions", + "typeScriptTag": "transactions", + "description": "List Account Transactions", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "order", + "schema": "string", + "required": false, + "description": "Ordered by the transaction timestamp, descending by default." + }, + { + "name": "filter[card]", + "schema": "array", + "required": false, + "description": "" + }, + { + "name": "filter[portal]", + "schema": "array", + "required": false, + "description": "" + }, + { + "name": "filter[types]", + "schema": "array", + "required": false, + "description": "" + }, + { + "name": "timestampFrom", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "timestampTo", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "", + "default": "" + }, + { + "name": "limit", + "schema": "integer", + "required": false, + "description": "", + "default": 30 + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "Base class for cursor_list responses from the Partner API" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/transactions/{transaction_id}", + "method": "getSpecificTransaction", + "httpMethod": "get", + "tag": "Transactions", + "typeScriptTag": "transactions", + "description": "Get Account Transaction", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "transactionId", + "schema": "string", + "required": true, + "description": "", + "example": "TRANSACTION_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/customers/{customer_id}/trades", + "method": "listCustomerTrades", + "httpMethod": "get", + "tag": "Trades", + "typeScriptTag": "trades", + "description": "List Customer Trades", + "parameters": [ + { + "name": "customerId", + "schema": "string", + "required": true, + "description": "", + "example": "CUSTOMER_ID" + }, + { + "name": "account[]", + "schema": "array", + "required": false, + "description": "" + }, + { + "name": "tradeDatetimeFrom", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "tradeDatetimeTo", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "", + "default": "" + }, + { + "name": "limit", + "schema": "integer", + "required": false, + "description": "", + "default": 30 + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "Base class for cursor_list responses from the Partner API" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/trades", + "method": "getAccountTransactions", + "httpMethod": "get", + "tag": "Trades", + "typeScriptTag": "trades", + "description": "List Account Trades", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "tradeDatetimeFrom", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "tradeDatetimeTo", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "", + "default": "" + }, + { + "name": "limit", + "schema": "integer", + "required": false, + "description": "", + "default": 30 + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "Base class for cursor_list responses from the Partner API" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/trades/{trade_id}/confirmation", + "method": "getConfirmation", + "httpMethod": "get", + "tag": "Trades", + "typeScriptTag": "trades", + "description": "Get Trade Confirmation", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "tradeId", + "schema": "string", + "required": true, + "description": "", + "example": "TRADE_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/applications", + "method": "createApplication", + "httpMethod": "post", + "tag": "Individuals", + "typeScriptTag": "individuals", + "description": "Create Application", + "parameters": [ + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "identification_number", + "schema": "string", + "required": true, + "description": "", + "example": "IDENTIFICATION_NUMBER" + }, + { + "name": "name", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "email", + "schema": "string", + "required": true, + "description": "", + "example": "EMAIL" + }, + { + "name": "date_of_birth", + "schema": "string", + "required": true, + "description": "", + "example": "DATE_OF_BIRTH" + }, + { + "name": "investment_profile", + "schema": "undefined", + "required": true, + "description": "" + }, + { + "name": "agreement_consent", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "originally_onboarded_at", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "identification_type", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "address", + "schema": "object", + "required": true, + "description": "" + }, + { + "name": "phone_number", + "schema": "string", + "required": true, + "description": "", + "example": "PHONE_NUMBER" + }, + { + "name": "citizenship_country", + "schema": "string", + "required": false, + "description": "", + "default": "US" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/applications/{application_id}", + "method": "getApplication", + "httpMethod": "get", + "tag": "Individuals", + "typeScriptTag": "individuals", + "description": "Get Application", + "parameters": [ + { + "name": "applicationId", + "schema": "string", + "required": true, + "description": "", + "example": "APPLICATION_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/applications/{application_id}/apply", + "method": "initiateKycSubmission", + "httpMethod": "post", + "tag": "Individuals", + "typeScriptTag": "individuals", + "description": "Apply", + "parameters": [ + { + "name": "applicationId", + "schema": "string", + "required": true, + "description": "", + "example": "APPLICATION_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/agreements", + "method": "getAgreements", + "httpMethod": "get", + "tag": "Individuals", + "typeScriptTag": "individuals", + "description": "List Agreements", + "parameters": [ + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/business-applications", + "method": "createApplication", + "httpMethod": "post", + "tag": "Businesses", + "typeScriptTag": "businesses", + "description": "Create Application", + "parameters": [ + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "name", + "schema": "string", + "description": "" + }, + { + "name": "entity_type", + "schema": "string", + "description": "" + }, + { + "name": "doing_business_as", + "schema": "string", + "description": "" + }, + { + "name": "identification_number", + "schema": "object", + "description": "" + }, + { + "name": "address", + "schema": "object", + "description": "" + }, + { + "name": "website", + "schema": "string", + "description": "" + }, + { + "name": "contact", + "schema": "object", + "description": "" + }, + { + "name": "formation_date", + "schema": "string", + "description": "" + }, + { + "name": "risk_info", + "schema": "object", + "description": "" + }, + { + "name": "industry", + "schema": "object", + "description": "" + }, + { + "name": "agreement_consent", + "schema": "object", + "description": "" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/business-applications/{application_id}", + "method": "getApplication", + "httpMethod": "get", + "tag": "Businesses", + "typeScriptTag": "businesses", + "description": "Get Application", + "parameters": [ + { + "name": "applicationId", + "schema": "string", + "required": true, + "description": "", + "example": "APPLICATION_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/business-applications/{application_id}", + "method": "updateApplication", + "httpMethod": "patch", + "tag": "Businesses", + "typeScriptTag": "businesses", + "description": "Update Application", + "parameters": [ + { + "name": "applicationId", + "schema": "string", + "required": true, + "description": "", + "example": "APPLICATION_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "name", + "schema": "string", + "description": "" + }, + { + "name": "entity_type", + "schema": "string", + "description": "" + }, + { + "name": "doing_business_as", + "schema": "string", + "description": "" + }, + { + "name": "identification_number", + "schema": "object", + "description": "" + }, + { + "name": "address", + "schema": "object", + "description": "" + }, + { + "name": "website", + "schema": "string", + "description": "" + }, + { + "name": "contact", + "schema": "object", + "description": "" + }, + { + "name": "formation_date", + "schema": "string", + "description": "" + }, + { + "name": "risk_info", + "schema": "object", + "description": "" + }, + { + "name": "industry", + "schema": "object", + "description": "" + }, + { + "name": "agreement_consent", + "schema": "object", + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/business-applications/{application_id}/apply", + "method": "submitApplication", + "httpMethod": "post", + "tag": "Businesses", + "typeScriptTag": "businesses", + "description": "Apply", + "parameters": [ + { + "name": "applicationId", + "schema": "string", + "required": true, + "description": "", + "example": "APPLICATION_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/business-applications/{application_id}/related-party-applications", + "method": "listRelatedPartyApplications", + "httpMethod": "get", + "tag": "Businesses", + "typeScriptTag": "businesses", + "description": "List Related Party Application", + "parameters": [ + { + "name": "applicationId", + "schema": "string", + "required": true, + "description": "", + "example": "APPLICATION_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/business-applications/{application_id}/related-party-applications", + "method": "createRelatedPartyApplication", + "httpMethod": "post", + "tag": "Businesses", + "typeScriptTag": "businesses", + "description": "Create Related Party Application", + "parameters": [ + { + "name": "applicationId", + "schema": "string", + "required": true, + "description": "", + "example": "APPLICATION_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "title", + "schema": "string", + "description": "" + }, + { + "name": "name", + "schema": "object", + "description": "" + }, + { + "name": "address", + "schema": "object", + "description": "" + }, + { + "name": "date_of_birth", + "schema": "string", + "description": "" + }, + { + "name": "identification_number", + "schema": "object", + "description": "" + }, + { + "name": "phone_number", + "schema": "string", + "description": "" + }, + { + "name": "roles", + "schema": "array", + "description": "" + }, + { + "name": "ownership_percentage", + "schema": "string", + "description": "" + }, + { + "name": "citizenship", + "schema": "string", + "description": "" + }, + { + "name": "email", + "schema": "string", + "description": "" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/business-applications/{application_id}/related-party-applications/{related_party_application_id}", + "method": "deleteRelatedPartyApplication", + "httpMethod": "delete", + "tag": "Businesses", + "typeScriptTag": "businesses", + "description": "Delete Related Party Application", + "parameters": [ + { + "name": "applicationId", + "schema": "string", + "required": true, + "description": "", + "example": "APPLICATION_ID" + }, + { + "name": "relatedPartyApplicationId", + "schema": "string", + "required": true, + "description": "", + "example": "RELATED_PARTY_APPLICATION_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "204", + "description": "Successful Response" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/business-applications/{application_id}/related-party-applications/{related_party_application_id}", + "method": "updateRelatedPartyApplication", + "httpMethod": "patch", + "tag": "Businesses", + "typeScriptTag": "businesses", + "description": "Update Related Party Application", + "parameters": [ + { + "name": "applicationId", + "schema": "string", + "required": true, + "description": "", + "example": "APPLICATION_ID" + }, + { + "name": "relatedPartyApplicationId", + "schema": "string", + "required": true, + "description": "", + "example": "RELATED_PARTY_APPLICATION_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "title", + "schema": "string", + "description": "" + }, + { + "name": "name", + "schema": "object", + "description": "" + }, + { + "name": "address", + "schema": "object", + "description": "" + }, + { + "name": "date_of_birth", + "schema": "string", + "description": "" + }, + { + "name": "identification_number", + "schema": "object", + "description": "" + }, + { + "name": "phone_number", + "schema": "string", + "description": "" + }, + { + "name": "roles", + "schema": "array", + "description": "" + }, + { + "name": "ownership_percentage", + "schema": "string", + "description": "" + }, + { + "name": "citizenship", + "schema": "string", + "description": "" + }, + { + "name": "email", + "schema": "string", + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/customers/{customer_id}/counterparties", + "method": "listForCustomer", + "httpMethod": "get", + "tag": "Counterparties", + "typeScriptTag": "counterparties", + "description": "List Counterparties", + "parameters": [ + { + "name": "customerId", + "schema": "string", + "required": true, + "description": "", + "example": "CUSTOMER_ID" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "", + "default": "" + }, + { + "name": "limit", + "schema": "integer", + "required": false, + "description": "", + "default": 30 + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "Base class for cursor_list responses from the Partner API" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/customers/{customer_id}/counterparties/{counterparty_id}", + "method": "getVerificationStatus", + "httpMethod": "get", + "tag": "Counterparties", + "typeScriptTag": "counterparties", + "description": "Get Counterparty", + "parameters": [ + { + "name": "customerId", + "schema": "string", + "required": true, + "description": "", + "example": "CUSTOMER_ID" + }, + { + "name": "counterpartyId", + "schema": "string", + "required": true, + "description": "", + "example": "COUNTERPARTY_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/cards", + "method": "getAccountCards", + "httpMethod": "get", + "tag": "Manage Cards", + "typeScriptTag": "manageCards", + "description": "List Account Cards", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "limit", + "schema": "integer", + "required": false, + "description": "", + "default": 100 + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "filter[status]", + "schema": "array", + "required": false, + "description": "" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "Base class for cursor_list responses from the Partner API" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/cards/{card_id}/status", + "method": "getStatus", + "httpMethod": "get", + "tag": "Manage Cards", + "typeScriptTag": "manageCards", + "description": "Get Card Status", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "cardId", + "schema": "string", + "required": true, + "description": "", + "example": "CARD_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/cards/{card_id}/status", + "method": "setCardStatus", + "httpMethod": "patch", + "tag": "Manage Cards", + "typeScriptTag": "manageCards", + "description": "Set Card Status", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "cardId", + "schema": "string", + "required": true, + "description": "", + "example": "CARD_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "status", + "schema": "string", + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/cards/{card_id}/pin", + "method": "setCardPin", + "httpMethod": "post", + "tag": "Manage Cards", + "typeScriptTag": "manageCards", + "description": "Set Card PIN", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "cardId", + "schema": "string", + "required": true, + "description": "", + "example": "CARD_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "encrypted_pin", + "schema": "string", + "required": true, + "description": "", + "example": "ENCRYPTED_PIN" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/cards/{card_id}/close", + "method": "closeCard", + "httpMethod": "post", + "tag": "Manage Cards", + "typeScriptTag": "manageCards", + "description": "Close Card", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "cardId", + "schema": "string", + "required": true, + "description": "", + "example": "CARD_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "closure_reason", + "schema": "string", + "required": true, + "description": "", + "example": "CLOSURE_REASON" + }, + { + "name": "lost_stolen_date", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "204", + "description": "Successful Response" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/card-orders", + "method": "listCardOrders", + "httpMethod": "get", + "tag": "Physical Cards", + "typeScriptTag": "physicalCards", + "description": "List Card Orders", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "", + "default": "" + }, + { + "name": "limit", + "schema": "integer", + "required": false, + "description": "", + "default": 30 + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "Base class for cursor_list responses from the Partner API" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/card-orders", + "method": "createOrder", + "httpMethod": "post", + "tag": "Physical Cards", + "typeScriptTag": "physicalCards", + "description": "Create Physical Card Order", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "name_on_card", + "schema": "string", + "required": true, + "description": "", + "example": "NAME_ON_CARD" + }, + { + "name": "shipping_address", + "schema": "object", + "required": true, + "description": "" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/card-orders/{card_order_id}", + "method": "getOrderInfo", + "httpMethod": "get", + "tag": "Physical Cards", + "typeScriptTag": "physicalCards", + "description": "Get Card Order", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "cardOrderId", + "schema": "string", + "required": true, + "description": "", + "example": "CARD_ORDER_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/virtual-cards/{card_id}", + "method": "closeCard", + "httpMethod": "delete", + "tag": "Virtual Cards", + "typeScriptTag": "virtualCards", + "description": "Close Virtual Card", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "cardId", + "schema": "string", + "required": true, + "description": "", + "example": "CARD_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "204", + "description": "Successful Response" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/virtual-cards/{card_id}", + "method": "getDetail", + "httpMethod": "post", + "tag": "Virtual Cards", + "typeScriptTag": "virtualCards", + "description": "Get Virtual Card", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "cardId", + "schema": "string", + "required": true, + "description": "", + "example": "CARD_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "public_key", + "schema": "string", + "required": true, + "description": "", + "example": "PUBLIC_KEY" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/virtual-cards", + "method": "createCard", + "httpMethod": "post", + "tag": "Virtual Cards", + "typeScriptTag": "virtualCards", + "description": "Create Virtual Card", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "public_key", + "schema": "string", + "required": true, + "description": "", + "example": "PUBLIC_KEY" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/events/types", + "method": "listEventTypes", + "httpMethod": "get", + "tag": "Events", + "typeScriptTag": "events", + "description": "List Event Types", + "parameters": [ + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "Generic models are only supported in pydantic for python 3.7+, so until then\nitems will be of type Any. As such, this class needs to be subclassed\nand its item field overridden in it using the proper type." + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/events", + "method": "getPastEvents", + "httpMethod": "get", + "tag": "Events", + "typeScriptTag": "events", + "description": "List Events", + "parameters": [ + { + "name": "subscriptionId", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "after", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "", + "default": "" + }, + { + "name": "limit", + "schema": "integer", + "required": false, + "description": "", + "default": 30 + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "Base class for cursor_list responses from the Partner API" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/customers/{customer_id}/counterparties/plaid/link-token", + "method": "createLinkToken", + "httpMethod": "post", + "tag": "Counterparties: Plaid", + "typeScriptTag": "counterparties:Plaid", + "description": "Create Plaid Link Token", + "parameters": [ + { + "name": "customerId", + "schema": "string", + "required": true, + "description": "", + "example": "CUSTOMER_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "client_name", + "schema": "string", + "required": true, + "description": "", + "example": "CLIENT_NAME" + }, + { + "name": "redirect_uri", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "android_package_name", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "counterparty_id", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/customers/{customer_id}/counterparties/plaid", + "method": "createPlaidCounterparties", + "httpMethod": "post", + "tag": "Counterparties: Plaid", + "typeScriptTag": "counterparties:Plaid", + "description": "Create Plaid Counterparties", + "parameters": [ + { + "name": "customerId", + "schema": "string", + "required": true, + "description": "", + "example": "CUSTOMER_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "public_token", + "schema": "string", + "required": true, + "description": "", + "example": "PUBLIC_TOKEN" + }, + { + "name": "accounts", + "schema": "array", + "required": true, + "description": "" + }, + { + "name": "institution_id", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/customers/{customer_id}/counterparties/{counterparty_id}/plaid/verify", + "method": "completeVerification", + "httpMethod": "post", + "tag": "Counterparties: Plaid", + "typeScriptTag": "counterparties:Plaid", + "description": "Verify Plaid Counterparty", + "parameters": [ + { + "name": "customerId", + "schema": "string", + "required": true, + "description": "", + "example": "CUSTOMER_ID" + }, + { + "name": "counterpartyId", + "schema": "string", + "required": true, + "description": "", + "example": "COUNTERPARTY_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "204", + "description": "Successful Response" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/subscriptions", + "method": "listPartnerSubscriptions", + "httpMethod": "get", + "tag": "Subscriptions", + "typeScriptTag": "subscriptions", + "description": "List Subscriptions", + "parameters": [ + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "", + "default": "" + }, + { + "name": "limit", + "schema": "integer", + "required": false, + "description": "", + "default": 30 + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "Base class for cursor_list responses from the Partner API" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/subscriptions", + "method": "createWebhookSubscription", + "httpMethod": "post", + "tag": "Subscriptions", + "typeScriptTag": "subscriptions", + "description": "Create Subscription", + "parameters": [ + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "description", + "schema": "string", + "required": false, + "description": "", + "default": "" + }, + { + "name": "events", + "schema": "array", + "required": true, + "description": "" + }, + { + "name": "url", + "schema": "string", + "required": true, + "description": "", + "example": "URL" + }, + { + "name": "shared_secret", + "schema": "string", + "required": true, + "description": "", + "example": "SHARED_SECRET" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/subscriptions/{subscription_id}", + "method": "deleteWebhookSubscription", + "httpMethod": "delete", + "tag": "Subscriptions", + "typeScriptTag": "subscriptions", + "description": "Delete Subscription", + "parameters": [ + { + "name": "subscriptionId", + "schema": "string", + "required": true, + "description": "", + "example": "SUBSCRIPTION_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "204", + "description": "Successful Response" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/subscriptions/{subscription_id}", + "method": "getWebhookSubscription", + "httpMethod": "get", + "tag": "Subscriptions", + "typeScriptTag": "subscriptions", + "description": "Get Subscription", + "parameters": [ + { + "name": "subscriptionId", + "schema": "string", + "required": true, + "description": "", + "example": "SUBSCRIPTION_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/subscriptions/{subscription_id}", + "method": "updateWebhookSubscription", + "httpMethod": "patch", + "tag": "Subscriptions", + "typeScriptTag": "subscriptions", + "description": "Update Subscription", + "parameters": [ + { + "name": "subscriptionId", + "schema": "string", + "required": true, + "description": "", + "example": "SUBSCRIPTION_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "description", + "schema": "string", + "description": "", + "default": "" + }, + { + "name": "events", + "schema": "array", + "description": "" + }, + { + "name": "url", + "schema": "string", + "description": "" + }, + { + "name": "shared_secret", + "schema": "string", + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/ach-originating", + "method": "listAchOriginations", + "httpMethod": "get", + "tag": "ACH", + "typeScriptTag": "ach", + "description": "List ACH Originations", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "filter[status]", + "schema": "array", + "required": false, + "description": "" + }, + { + "name": "direction", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "", + "default": "" + }, + { + "name": "limit", + "schema": "integer", + "required": false, + "description": "", + "default": 30 + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "Base class for cursor_list responses from the Partner API" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/ach-originating", + "method": "originateTransaction", + "httpMethod": "post", + "tag": "ACH", + "typeScriptTag": "ach", + "description": "Create ACH Origination", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "counterparty_id", + "schema": "string", + "required": true, + "description": "", + "example": "COUNTERPARTY_ID" + }, + { + "name": "direction", + "schema": "string", + "required": true, + "description": "", + "example": "DIRECTION" + }, + { + "name": "sec_code", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "payment_related_information", + "schema": "array", + "required": false, + "description": "", + "default": [] + }, + { + "name": "amount_usdc", + "schema": "integer", + "required": true, + "description": "", + "example": 0 + }, + { + "name": "company_entry_description", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/ach-originating/{transfer_id}", + "method": "getTransferOrigination", + "httpMethod": "get", + "tag": "ACH", + "typeScriptTag": "ach", + "description": "Get ACH Origination", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "transferId", + "schema": "string", + "required": true, + "description": "", + "example": "TRANSFER_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/wires", + "method": "initiateWireTransfer", + "httpMethod": "post", + "tag": "Wires", + "typeScriptTag": "wires", + "description": "Create Wire", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "description", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "counterparty_id", + "schema": "string", + "required": true, + "description": "", + "example": "COUNTERPARTY_ID" + }, + { + "name": "amount_usdc", + "schema": "integer", + "required": false, + "description": "" + }, + { + "name": "created_by", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "wire_id", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "Successful Response" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/transfers/on-us", + "method": "createTransfer", + "httpMethod": "post", + "tag": "On-Us Transfers", + "typeScriptTag": "onUsTransfers", + "description": "Create On-Us Transfer", + "parameters": [ + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/transfers/on-us/{transfer_id}", + "method": "getById", + "httpMethod": "get", + "tag": "On-Us Transfers", + "typeScriptTag": "onUsTransfers", + "description": "Get On-Us Transfer", + "parameters": [ + { + "name": "transferId", + "schema": "string", + "required": true, + "description": "", + "example": "TRANSFER_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/customers/{customer_id}", + "method": "getDetails", + "httpMethod": "get", + "tag": "Customers", + "typeScriptTag": "customers", + "description": "Get Customer Data", + "parameters": [ + { + "name": "customerId", + "schema": "string", + "required": true, + "description": "", + "example": "CUSTOMER_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/customers/{customer_id}/statements", + "method": "listForCustomer", + "httpMethod": "get", + "tag": "Statements", + "typeScriptTag": "statements", + "description": "List Customer Statements", + "parameters": [ + { + "name": "customerId", + "schema": "string", + "required": true, + "description": "", + "example": "CUSTOMER_ID" + }, + { + "name": "account[]", + "schema": "array", + "required": false, + "description": "" + }, + { + "name": "order", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "type[]", + "schema": "array", + "required": false, + "description": "", + "default": [] + }, + { + "name": "key", + "schema": "string", + "required": false, + "description": "Date formatted either `YYYY` or `YYYY-MM`" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "", + "default": "" + }, + { + "name": "limit", + "schema": "integer", + "required": false, + "description": "", + "default": 30 + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "Base class for cursor_list responses from the Partner API" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/statements", + "method": "getAccountStatements", + "httpMethod": "get", + "tag": "Statements", + "typeScriptTag": "statements", + "description": "List Account Statements", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "order", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "type[]", + "schema": "array", + "required": false, + "description": "", + "default": [] + }, + { + "name": "key", + "schema": "string", + "required": false, + "description": "Date formatted either `YYYY` or `YYYY-MM`" + }, + { + "name": "cursor", + "schema": "string", + "required": false, + "description": "", + "default": "" + }, + { + "name": "limit", + "schema": "integer", + "required": false, + "description": "", + "default": 30 + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "Base class for cursor_list responses from the Partner API" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/portals", + "method": "list", + "httpMethod": "get", + "tag": "Portals", + "typeScriptTag": "portals", + "description": "List Portals", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/portals", + "method": "createPortal", + "httpMethod": "post", + "tag": "Portals", + "typeScriptTag": "portals", + "description": "Create Portal", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "name", + "schema": "string", + "required": true, + "description": "", + "example": "NAME" + } + ], + "responses": [ + { + "statusCode": "201", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/portals/{portal_id}", + "method": "getPortal", + "httpMethod": "get", + "tag": "Portals", + "typeScriptTag": "portals", + "description": "Get Account Portal", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "portalId", + "schema": "string", + "required": true, + "description": "", + "example": "PORTAL_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/portals/{portal_id}", + "method": "updateName", + "httpMethod": "patch", + "tag": "Portals", + "typeScriptTag": "portals", + "description": "Update Portal", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "portalId", + "schema": "string", + "required": true, + "description": "", + "example": "PORTAL_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + }, + { + "name": "name", + "schema": "string", + "required": true, + "description": "", + "example": "NAME" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/jiko-accounts/{account_id}/portals/{portal_id}/close", + "method": "closePortal", + "httpMethod": "post", + "tag": "Portals", + "typeScriptTag": "portals", + "description": "Close Portal", + "parameters": [ + { + "name": "accountId", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "portalId", + "schema": "string", + "required": true, + "description": "", + "example": "PORTAL_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + }, + { + "name": "xJikoSignature", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-SIGNATURE" + } + ], + "responses": [ + { + "statusCode": "204", + "description": "Successful Response" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "412", + "description": "Portal is already closed." + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/applications/{application_id}/documents/{document_type}/file", + "method": "uploadDocumentToApplication", + "httpMethod": "post", + "tag": "Individuals", + "typeScriptTag": "individuals", + "description": "Upload Document To Application", + "parameters": [ + { + "name": "applicationId", + "schema": "string", + "required": true, + "description": "", + "example": "APPLICATION_ID" + }, + { + "name": "documentType", + "schema": "string", + "required": true, + "description": "", + "example": "DOCUMENT_TYPE" + }, + { + "name": "contentType", + "schema": "string", + "required": true, + "description": "", + "example": "CONTENT-TYPE" + }, + { + "name": "contentLength", + "schema": "integer", + "required": true, + "description": "", + "example": 0 + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/customers/{customer_id}/documents/{document_type}/file", + "method": "uploadDocumentToCustomer", + "httpMethod": "post", + "tag": "Customers", + "typeScriptTag": "customers", + "description": "Upload Document To Customer", + "parameters": [ + { + "name": "customerId", + "schema": "string", + "required": true, + "description": "", + "example": "CUSTOMER_ID" + }, + { + "name": "documentType", + "schema": "string", + "required": true, + "description": "", + "example": "DOCUMENT_TYPE" + }, + { + "name": "contentType", + "schema": "string", + "required": true, + "description": "", + "example": "CONTENT-TYPE" + }, + { + "name": "contentLength", + "schema": "integer", + "required": true, + "description": "", + "example": 0 + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/business-applications/{application_id}/documents", + "method": "listDocumentRequests", + "httpMethod": "get", + "tag": "Businesses", + "typeScriptTag": "businesses", + "description": "List Document Requests", + "parameters": [ + { + "name": "applicationId", + "schema": "string", + "required": true, + "description": "", + "example": "APPLICATION_ID" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/documents/{document_id}", + "method": "uploadDocument", + "httpMethod": "post", + "tag": "Businesses", + "typeScriptTag": "businesses", + "description": "Upload Document", + "parameters": [ + { + "name": "documentId", + "schema": "string", + "required": true, + "description": "", + "example": "DOCUMENT_ID" + }, + { + "name": "contentType", + "schema": "string", + "required": true, + "description": "", + "example": "CONTENT-TYPE" + }, + { + "name": "contentLength", + "schema": "integer", + "required": true, + "description": "", + "example": 0 + }, + { + "name": "contentDisposition", + "schema": "string", + "required": true, + "description": "", + "example": "CONTENT-DISPOSITION" + }, + { + "name": "xJikoIdempotency", + "schema": "string", + "required": true, + "description": "", + "example": "X-JIKO-IDEMPOTENCY" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "404", + "description": "Not found" + }, + { + "statusCode": "412", + "description": "Document has already been reviewed and approved." + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/login", + "method": "authenticateUser", + "httpMethod": "post", + "tag": "Security", + "typeScriptTag": "security", + "description": "Login", + "parameters": [ + { + "name": "username", + "schema": "string", + "required": true, + "description": "", + "example": "USERNAME" + }, + { + "name": "password", + "schema": "string", + "required": true, + "description": "", + "example": "PASSWORD" + } + ], + "responses": [ + { + "statusCode": "200", + "description": "" + }, + { + "statusCode": "401", + "description": "Unauthorized" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/public-keys", + "method": "getEncryptionKeys", + "httpMethod": "get", + "tag": "Security", + "typeScriptTag": "security", + "description": "List Public Keys", + "parameters": [], + "responses": [ + { + "statusCode": "200", + "description": "Encryption keys are currently stored as environment variables.\n\nVariables are declared in\n`services/partner-api/secret-(dev|staging|sandbox|partners).yaml`" + } + ] + }, + { + "url": "/api/v1/sandbox/card-swipe", + "method": "simulateCardSwipe", + "httpMethod": "post", + "tag": "Sandbox", + "typeScriptTag": "sandbox", + "description": "Submit Card Swipe", + "parameters": [ + { + "name": "xBranchName", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "card_id", + "schema": "string", + "required": true, + "description": "", + "example": "CARD_ID" + }, + { + "name": "amount_usdc", + "schema": "integer", + "required": true, + "description": "", + "example": 0 + } + ], + "responses": [ + { + "statusCode": "202", + "description": "Successful Response" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/sandbox/generate-card", + "method": "generatePhysicalCardFromOrder", + "httpMethod": "post", + "tag": "Sandbox", + "typeScriptTag": "sandbox", + "description": "Generate Physical Card From Order", + "parameters": [ + { + "name": "xBranchName", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "card_order_id", + "schema": "string", + "required": true, + "description": "", + "example": "CARD_ORDER_ID" + } + ], + "responses": [ + { + "statusCode": "202", + "description": "Successful Response" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/sandbox/webhook", + "method": "simulateWebhookEvent", + "httpMethod": "post", + "tag": "Sandbox", + "typeScriptTag": "sandbox", + "description": "Trigger Webhook", + "parameters": [ + { + "name": "xBranchName", + "schema": "string", + "required": false, + "description": "" + } + ], + "responses": [ + { + "statusCode": "202", + "description": "Successful Response" + }, + { + "statusCode": "422", + "description": "" + } + ] + }, + { + "url": "/api/v1/sandbox/fund", + "method": "simulateAchCredit", + "httpMethod": "post", + "tag": "Sandbox", + "typeScriptTag": "sandbox", + "description": "Fund Account", + "parameters": [ + { + "name": "xBranchName", + "schema": "string", + "required": false, + "description": "" + }, + { + "name": "account_id", + "schema": "string", + "required": true, + "description": "", + "example": "ACCOUNT_ID" + }, + { + "name": "amount_usdc", + "schema": "integer", + "required": true, + "description": "", + "example": 0 + }, + { + "name": "company_name", + "schema": "string", + "required": false, + "description": "", + "default": "FakeCompany" + }, + { + "name": "count", + "schema": "integer", + "required": false, + "description": "", + "default": 1 + } + ], + "responses": [ + { + "statusCode": "202", + "description": "Successful Response" + }, + { + "statusCode": "422", + "description": "" + } + ] + } + ], + "repositoryDescription": "Jiko makes Treasuries bankable. We're a new type of bank that innovates US Treasury bills to unlock yield, safety, and scale. Backed by Upfront Ventures, Airbus Ventures, and others; headquartered in SF with offices in NYC and Reykjavík. Jiko's {language} SDK generated by Konfig (https://konfigthis.com/).", + "logo": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/jiko/logo.png", + "openApiRaw": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/jiko/openapi.yaml", + "openApiGitHubUi": "https://github.com/konfig-sdks/openapi-examples/tree/HEAD/jiko/openapi.yaml", + "previewLinkImage": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/jiko/imagePreview.jpg", + "faviconUrl": "https://raw.githubusercontent.com/konfig-sdks/openapi-examples/HEAD/jiko/favicon.png", + "clientNameCamelCase": "jiko", + "lastUpdated": "2024-03-29T18:10:17.636Z", + "typescriptSdkUsageCode": "import { Jiko } from 'jiko-typescript-sdk';\n\nconst jiko = new Jiko({\n httpBearer: \"HTTP_BEARER\"\n})", + "typescriptSdkFirstRequestCode": "// Get Health Check\nconst statusCheckResponse = jiko.health.statusCheck()", + "fixedSpecFileName": "jiko-fixed-spec.yaml" +} \ No newline at end of file diff --git a/sdks/db/spec-data/from-custom-request_jiko.io.json b/sdks/db/spec-data/from-custom-request_jiko.io.json new file mode 100644 index 0000000000..d4d0167d3d --- /dev/null +++ b/sdks/db/spec-data/from-custom-request_jiko.io.json @@ -0,0 +1,22 @@ +{ + "securitySchemes": { + "HTTPBearer": { + "type": "http", + "scheme": "bearer" + } + }, + "apiBaseUrl": "https://{partner}.partner-api.jikoservices.com", + "apiVersion": "1.29.0", + "apiDescription": "# Introduction\n\nWelcome to the Jiko API Reference! Jiko enables you to integrate money storage and movement, backed by the safety and security of US Treasury Bills.\n\n
\n\nAt the core of our platform is the Jiko account: a pair consisting of a bank account and a brokerage account. When money is deposited into an account, 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 accounts, and each account is associated with a single T-bill maturity: 4-week, 13-week, 26-week or 52-week.\n\n
\n\nThe API Reference covers everything you need to build a full application leveraging the Jiko platform:\n\n
\n\n- Onboarding customers\n- Funding customer accounts via ACH or Wire\n- Viewing and managing accounts (including monthly statements and trade confirmations)\n- Making payments and transfers via ACH, Wire, On-Us (Book) Transfer or Debit Card\n\n
\n\nWhen you’re ready to start building, please contact us at [partner.support@jiko.io](mailto:partner.support@jiko.io) to request sandbox access.\n# Partner obligations\n\n
\n\n- Before onboarding, the end-user’s control over any email addresses or phone numbers must be confirmed (for example, via confirmation codes) before submitting an application to the API.\n- While onboarding, partners must comply with the disclosure requirements listed [below](https://docs.jiko.io/reference).\n- Monthly statements are created for bank and brokerage accounts and must be made available to the user.\n - Partners are required to send an email to end users every month a new statement is available to comply with regulatory requirements.\n - Partners can expect monthly statements to be available by the 15th of every month.\n - It is required to make the past 6 years of brokerage statements available to the end user.\n - It is advised to make at least the past 12 months of bank statements available to the end user.\n- Trade confirmations must be made available to the user.\n\n## Disclosures and Agreements\n\n- The bundle of customer disclosures and agreements served at the [Agreements](https://docs.jiko.io/reference) endpoint must be presented to users before signing up for an account.\n This includes Risk and Limitation disclosures, Regulation E disclosures, Account agreements and more.\n - The customer consent for these disclosures have to be versioned and time-stamped and sent with the application.\n- Jiko reserves the right to update agreements from time to time.\n If a change is _adverse_ to the customer, Jiko will notify partners, and they are then required to notify their end users 30 days in advance of the change.\n - A change is deemed to be _adverse_ to the customer if it will result in increased fees, increased liability for the customer, fewer types of available transactions or stricter limitations on the frequency or dollar amount of transactions.\n- When Jiko updates the bundle of agreements, the version number of the agreement bundle will increment.\n Jiko reserves the right to reject or manually review applications where customer consent does not match the latest agreement version.\n Partners must re-fetch and display the agreements and disclosures links from the Agreements endpoint for every new application. This ensures each applicant is served the latest version of the agreements.\n\n# Authentication\n\n**Jiko** provides partners with a `username` and a `password`, as well as a `shared secret`. Partners are provided with a `bearer token` in the [Login](https://docs.jiko.io/reference) response, which must be sent with each request.\n\n
\n\nEach request made to the partner API needs 3 parts in order for it to be processed:\n\n1. An **Authorization** HTTP header containing the value\n\n```javascript\nBearer \n```\n\n
\n\nWhere the `access_token` is the bearer token given in the [Login](https://docs.jiko.io/reference) response.\n\n1. An **x-jiko-idempotency** HTTP header set to a random uuid for this action, in order to signify a unique request to the API from the partner’s perspective.\n2. An **x-jiko-signature** HTTP header set to a base64 encoded HMAC-SHA256 hash of `x-jiko-idempotency+request pathname+body` using the shared secret as a key.\n\nBelow is a Node.js example showing how a potential request could be signed:\n\n
\n\n```javascript\nconst crypto = require(\"crypto\");\nconst uuid = require(\"uuid\");\n\nconst idempotency = uuid.v4();\nconst pathname = \"/api/v1/agreements/\";\nconst body = \"\";\n\nrequest.headers[\"x-jiko-signature\"] = crypto\n .createHmac(\"sha256\", \"shared-secret-here\")\n .update(idempotency + pathname + body, \"utf-8\")\n .digest(\"base64\");\n```\n\n
\n\n**Partner** requests will need to be sent from an IP address whitelisted by **Jiko**.\n**Jiko** will verify the request signature by repeating the steps above, additionally checking for possible repeated requests. A request is considered to be repeated if the idempotency key value provided in the `x-jiko-idempotency` header has been used previously in the past 1 hour.\n\n
\n\nBearer tokens have a lifetime of 60 minutes.\nThe partner will need to repeat the login process once a token has expired.\n\n# Changelog\n\n## March 2024\n- Added `tradable_id` field to [List Customer Trades](https://docs.jiko.io/reference) and [List Customer Transactions](https://docs.jiko.io/reference) API endpoint.\n- Added support for filtering by trade date to and from to [List Customer Trades](https://docs.jiko.io/reference) and [List Customer Transactions](https://docs.jiko.io/reference) API endpoints.\n\n- Added support for filtering by types, timestamp_from and timestamp_to to the [List Customer Transactions](https://docs.jiko.io/reference), [List Account Transactions](https://docs.jiko.io/reference) API endpoints.\n\n\n## February 2024\n\n - Added support for filtering by status and direction to the [List ACH Originations](https://docs.jiko.io/reference) API endpoint\n - Added support for filtering by portal id and card id to the [List Customer Transactions](https://docs.jiko.io/reference), [List Account Transactions](https://docs.jiko.io/reference) API endpoints.\n\n - Added support for filtering by status and direction to the [List ACH Originations](https://docs.jiko.io/reference) API endpoint\n - Added support for filtering by card status to the [List Account Cards](https://docs.jiko.io/reference) endpoint.\n - Added support for full withdrawals when performing on-us transfers by using the new `amount` field.\n - Added support for listing fees deducted when performing on-us transfers.\n\n## January 2024\n\n - Added [Get Health Check](https://docs.jiko.io/reference) API endpoint.\n\n## December 2023\n\n- Business Application additions:\n\n - Added [Create Application](https://docs.jiko.io/reference) API endpoint.\n - Added [Get Application](https://docs.jiko.io/reference) API endpoint.\n - Added [Update Application](https://docs.jiko.io/reference) API endpoint.\n - Added [Apply](https://docs.jiko.io/reference) API endpoint.\n\n- Related Party Application additions:\n\n - Added [List Related Party](https://docs.jiko.io/reference) API endpoint.\n - Added [Create Related Party](https://docs.jiko.io/reference) API endpoint.\n - Added [Delete Related Party](https://docs.jiko.io/reference) API endpoint.\n - Added [Update Related Party](https://docs.jiko.io/reference) API endpoint.\n\n- Document Upload additions:\n\n - Added [List Document Requests](https://docs.jiko.io/reference) API endpoint.\n - Added [Upload Document](https://docs.jiko.io/reference) API endpoint.\n\n- Wire additions:\n\n - Added [Create Wire](https://docs.jiko.io/reference) API endpoint.\n\n## November 2023\n\n- Added a new optional field `micro_deposit` to V1 `ACHCounterparty` model that includes an indication of number of verification attempts for ACH Counterparties verified via Micro Deposits\n- Added [Close Portal](https://docs.jiko.io/reference) API endpoint.\n- Added [Update Portal](https://docs.jiko.io/reference) API endpoint.\n\n## October 2023\n\n- Added enum value `PENDING` to the [Get Customer Data](https://docs.jiko.io/reference) `account_status` field, signalling that a customer has no open pocket.\n\n## July 2023\n\n- Added [Get Account Portal](https://docs.jiko.io/reference) API endpoint.\n\n## May 2023\n\n### 2023-05-26\n\n- The response from uploading documents now includes a `document_id` field for future reference.\n\n### 2023-05-15\n\n- Added [Create Portal](https://docs.jiko.io/reference) API endpoint.\n- Added a new `category` type E-SIGN for the Electronic Communications Disclosure Statement and Consent which was previously in the GENERAL category.\n\n### 2023-05-05\n\n- Added a new `WIRE_COUNTERPARTY_VERIFICATION` document type.\n- File size limits raised to 50 MB for files other than `ID_FRONT`, `ID_BACK`, `SELFIE` and `PASSPORT` when uploading documents to a customer or application.\n- Updated documentation for both file upload endpoints.\n\n## April 2023\n\n### 2023-04-28\n\n- Adds a new `category` field for agreements returned by the [List Agreements](https://docs.jiko.io/reference) endpoint. This `category` field groups all agreements into 3 categories, BANK, BROKERAGE, or GENERAL.\n\n### 2023-04-19\n\n- Added a new sandbox endpoint for simulating webhook calls, [Trigger Webhook](https://docs.jiko.io/reference).\n\n## March 2023\n\n### 2023-03-30\n\n- Added a new `yield_to_maturity` field to the `Trade` model.\n\n### 2023-03-15\n\n- Added a new `name` field to the `Portal` model.\n\n## February 2023\n\n### 2023-02-24\n\n- Added a sandbox endpoint to fund accounts via ACH portals.\n\n### 2023-02-16\n\n- Added a new disclosure type, `FORM_CRS`, for Customer Relationship Summary Forms.\n\n### 2023-02-10\n\n- Added `wire_fee_transaction` and `WIRE_FEE` transaction type to the [List Customer Transactions](https://docs.jiko.io/reference), [List Account Transactions](https://docs.jiko.io/reference) and [Get Account Transaction](https://docs.jiko.io/reference) endpoints.\n\n## January 2023\n\n### 2023-01-25\n\n- Added [Create On-Us Transfer](https://docs.jiko.io/reference) API endpoint.\n- Added [Get On-Us Transfer](https://docs.jiko.io/reference) API endpoint.\n\n### 2023-01-18\n\n- Added two optional filtering query parameters to the [List Customer Statements](https://docs.jiko.io/reference) endpoint:\n - The `type[]` query parameter makes it possible to filter by different types of statements, e.g. `?type[]=BANK&type[]=BROKERAGE`\n - The `key` query parameter makes it possible to filter by either a specific month or a year, e.g. `?key=2023-01` or `?key=2022`\n- Marked the [List Account Statements](https://docs.jiko.io/reference) endpoint as deprecated. Please use the [List Customer Statements](https://docs.jiko.io/reference) in future integrations.\n\n### 2023-01-09\n\n- Added a new transaction type and corresponding details object, `on_us_transaction` to the response model in [List Customer Transactions](https://docs.jiko.io/reference).\n\n### 2023-01-06\n\n- Added optional field `originally_onboarded_at` to request body in [Create Application](https://docs.jiko.io/reference)\n\n## November 2022\n\n### 2022-11-09\n\n- New counterparty type `WIRE` with a `wire` field, returned in [Get Counterparty](https://docs.jiko.io/reference) and [List Counterparties](https://docs.jiko.io/reference)\n\n## September 2022\n\n### 2022-09-28\n\n- Added [List Customer Statements](https://docs.jiko.io/reference) API endpoint.\n\n### 2022-09-27\n\n- Added [Get Customer Data](https://docs.jiko.io/reference) API endpoint.\n\n### 2022-09-07\n\n- Added [List Customer Trades](https://docs.jiko.io/reference) API endpoint.\n- Added [List Customer Transactions](https://docs.jiko.io/reference) API endpoint.\n\n## August 2022\n\n### 2022-08-29\n\n- Added `name` field to the [List Customer Accounts](https://docs.jiko.io/reference) and [Get Customer Account](https://docs.jiko.io/reference) API endpoints\n\n### 2022-08-16\n\n- Added [Get Account Transaction](https://docs.jiko.io/reference) API endpoint\n\n### 2022-08-05\n\n- Added [List ACH Originations](https://docs.jiko.io/reference) API endpoint\n", + "apiTitle": "Jiko Partner API", + "endpoints": 56, + "sdkMethods": 68, + "schemas": 179, + "parameters": 353, + "originalCustomRequest": { + "lambda": true + }, + "customRequestSpecFilename": "jiko.io.yaml", + "difficultyScore": 245.75, + "difficulty": "Hard" +} \ No newline at end of file diff --git a/sdks/publish.yaml b/sdks/publish.yaml index bfe6cb5aee..16445b8649 100644 --- a/sdks/publish.yaml +++ b/sdks/publish.yaml @@ -7324,14 +7324,14 @@ publish: WHY FOODKIT? - ✔ We power the world's best restaurant brands from the cloud + ✔ We power the world's best restaurant brands from the cloud - ✔ We provide a best-in-class platform and open API + ✔ We provide a best-in-class platform and open API ✔ We eliminate the complexity and high costs associated with developing and maintaining a digital restaurant business - ✔ We offer outstanding customer service 24/7 + ✔ We offer outstanding customer service 24/7 Contact us at: @@ -7351,7 +7351,7 @@ publish: metaDescription: >- Shippo lowers the barriers to shipping for businesses around the world. As free and fast shipping becomes the norm, better access to shipping is a - competitive advantage for businesses. + competitive advantage for businesses. Through Shippo, ecommerce businesses, marketplaces, and platforms are able @@ -7363,7 +7363,7 @@ publish: Everyday we solve core operational problems for our users and businesses. We work hard to provide value and deliver quality results. We understand - that our success is directly tied to the success of our customers. + that our success is directly tied to the success of our customers. Shippo is made up of a diverse set of individuals from around the world @@ -7417,3 +7417,23 @@ publish: serviceName: false sdkName: drive-wealth-{language}-sdk clientName: DriveWealth + from-custom-request_jiko.io: + homepage: jiko.io + company: Jiko + developerDocumentation: docs.jiko.io + apiStatusUrls: false + metaDescription: >- + Jiko makes Treasuries bankable. We're a new type of bank that innovates US + Treasury bills to unlock yield, safety, and scale. + + + Backed by Upfront Ventures, Airbus Ventures, and others; headquartered in + SF with offices in NYC and Reykjavík. + categories: + - finance + - banking + - fintech + - financial_services + serviceName: false + sdkName: jiko-{language}-sdk + clientName: Jiko diff --git a/sdks/src/collect-from-custom-requests.ts b/sdks/src/collect-from-custom-requests.ts index 69639d8d8a..2bf17eb0f9 100644 --- a/sdks/src/collect-from-custom-requests.ts +++ b/sdks/src/collect-from-custom-requests.ts @@ -2169,6 +2169,15 @@ const customRequests: Record = { }); }, }, + "jiko.io": { + lambda: async ({ browser }) => { + return downloadOpenApiSpecFromRedoclyEmbedded({ + url: "https://docs.jiko.io/reference", + browser, + filename: "openapi.json", + }); + }, + }, "bossinsights.com": { lambda: async ({ browser }) => { return downloadOpenApiSpecFromRedoclyEmbedded({