openapi: 3.0.3 info: title: Unit Accounts API description: Unit is a Banking-as-a-Service (BaaS) platform. This document is an API Evangelist consolidation of Unit's public REST surface, organized into logical groupings (Applications, Customers, Accounts, Cards, Authorizations, Payments, Counterparties, Checks, Transactions, Statements, Tax Forms, Events, Webhooks, Risk/Fraud, Credit/Repayments, Fees, Rewards, and API Tokens). All paths, methods, and the request/ response envelope below were confirmed against Unit's officially published OpenAPI 3.0.2 specification at github.com/unit-finance/openapi-unit-sdk (openapi.json, version 0.4.0); request/response bodies here are condensed and re-typed for readability rather than reproduced schema-for-schema. Unit's API follows the JSON:API specification - every request and response uses the `application/vnd.api+json` media type, wraps the primary resource in a top-level `data` object with `type`/`id`/`attributes`/`relationships`, and authenticates with a Bearer JWT obtained as an org API token or a customer API token. version: '1.0' contact: name: Unit url: https://www.unit.co license: name: Proprietary url: https://www.unit.co/legal/ servers: - url: https://api.s.unit.sh description: Sandbox (confirmed - default server in Unit's published OpenAPI spec) - url: https://api.unit.co description: Production (industry-standard Unit convention paired with the sandbox host; not independently re-confirmed against a live docs page in this research pass - verify with your Unit solution engineer) security: - bearerAuth: [] tags: - name: Accounts description: Deposit and credit accounts. paths: /accounts: get: operationId: getAccountsList tags: - Accounts summary: Get List Accounts parameters: - $ref: '#/components/parameters/PageLimit' - $ref: '#/components/parameters/PageOffset' responses: '200': $ref: '#/components/responses/ResourceList' post: operationId: createAccount tags: - Accounts summary: Create Account requestBody: required: true content: application/vnd.api+json: schema: $ref: '#/components/schemas/CreateAccountRequest' responses: '201': $ref: '#/components/responses/SingleResource' /accounts/{accountId}: parameters: - $ref: '#/components/parameters/AccountId' get: operationId: getAccount tags: - Accounts summary: Get Account by Id responses: '200': $ref: '#/components/responses/SingleResource' patch: operationId: updateAccount tags: - Accounts summary: Update Account requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '200': $ref: '#/components/responses/SingleResource' /accounts/{accountId}/limits: parameters: - $ref: '#/components/parameters/AccountId' get: operationId: getAccountLimits tags: - Accounts summary: Get Account Limits by Id responses: '200': $ref: '#/components/responses/SingleResource' /accounts/{accountId}/freeze: parameters: - $ref: '#/components/parameters/AccountId' post: operationId: freezeAccount tags: - Accounts summary: Freeze Account by Id responses: '200': $ref: '#/components/responses/SingleResource' /accounts/{accountId}/unfreeze: parameters: - $ref: '#/components/parameters/AccountId' post: operationId: unfreezeAccount tags: - Accounts summary: Unfreeze Account by Id responses: '200': $ref: '#/components/responses/SingleResource' /accounts/{accountId}/close: parameters: - $ref: '#/components/parameters/AccountId' post: operationId: closeAccount tags: - Accounts summary: Close an Account by Id responses: '200': $ref: '#/components/responses/SingleResource' /accounts/{accountId}/reopen: parameters: - $ref: '#/components/parameters/AccountId' post: operationId: reopenAccount tags: - Accounts summary: Reopen an Account by Id responses: '200': $ref: '#/components/responses/SingleResource' /accounts/{accountId}/enter-daca: parameters: - $ref: '#/components/parameters/AccountId' post: operationId: enterDaca tags: - Accounts summary: Enter Deposit Account Control Agreement by Id responses: '200': $ref: '#/components/responses/SingleResource' /accounts/{accountId}/activate-daca: parameters: - $ref: '#/components/parameters/AccountId' post: operationId: activateDaca tags: - Accounts summary: Activate Deposit Account Control Agreement by Id responses: '200': $ref: '#/components/responses/SingleResource' /accounts/{accountId}/deactivate-daca: parameters: - $ref: '#/components/parameters/AccountId' post: operationId: deactivateDaca tags: - Accounts summary: Deactivate Deposit Account Control Agreement by Id responses: '200': $ref: '#/components/responses/SingleResource' /account-end-of-day: get: operationId: getAccountBalanceHistory tags: - Accounts summary: Get Account Balance History parameters: - $ref: '#/components/parameters/PageLimit' - $ref: '#/components/parameters/PageOffset' responses: '200': $ref: '#/components/responses/ResourceList' /accounts/{accountId}/repayment-information: parameters: - $ref: '#/components/parameters/AccountId' get: operationId: getRepaymentInformation tags: - Accounts summary: Get Repayment Information responses: '200': $ref: '#/components/responses/SingleResource' /accounts/{accountId}/deposit-products: parameters: - $ref: '#/components/parameters/AccountId' get: operationId: getDepositProducts tags: - Accounts summary: Get Deposit Products responses: '200': $ref: '#/components/responses/ResourceList' /accounts/{accountId}/relationships/customers: parameters: - $ref: '#/components/parameters/AccountId' post: operationId: addAccountOwners tags: - Accounts summary: Add Owners to Account by Id requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '200': $ref: '#/components/responses/SingleResource' delete: operationId: removeAccountOwners tags: - Accounts summary: Remove Owners from Account by Id responses: '200': $ref: '#/components/responses/SingleResource' components: schemas: JsonApiSingleResponse: type: object properties: data: $ref: '#/components/schemas/JsonApiResource' included: type: array items: $ref: '#/components/schemas/JsonApiResource' JsonApiResource: type: object properties: type: type: string description: The JSON:API resource type, e.g. individualApplication, depositAccount, individualDebitCard, bookPayment, achPayment. id: type: string attributes: type: object additionalProperties: true relationships: type: object additionalProperties: true JsonApiListResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/JsonApiResource' meta: type: object properties: pagination: type: object properties: total: type: integer limit: type: integer offset: type: integer CreateAccountRequest: type: object required: - data properties: data: type: object required: - type - attributes - relationships properties: type: type: string enum: - depositAccount - creditAccount attributes: type: object properties: depositProduct: type: string tags: type: object additionalProperties: type: string idempotencyKey: type: string relationships: type: object properties: customer: type: object properties: data: type: object properties: type: type: string enum: - customer id: type: string responses: ResourceList: description: A page of JSON:API resources. content: application/vnd.api+json: schema: $ref: '#/components/schemas/JsonApiListResponse' SingleResource: description: A single JSON:API resource. content: application/vnd.api+json: schema: $ref: '#/components/schemas/JsonApiSingleResponse' parameters: AccountId: name: accountId in: path required: true schema: type: string PageOffset: name: page[offset] in: query schema: type: integer default: 0 PageLimit: name: page[limit] in: query schema: type: integer default: 100 maximum: 1000 securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: 'Bearer JWT issued as an org API token (Dashboard > Developers) or a customer API token. Sent as `Authorization: Bearer ${TOKEN}`. All request and response bodies use the `application/vnd.api+json` JSON:API media type.'