openapi: 3.0.3 info: title: Unit Accounts Applications 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: Applications description: Individual and business application onboarding (KYC/KYB). paths: /applications: get: operationId: getApplicationsList tags: - Applications summary: Get List Application description: Lists individual and business applications with filtering, sorting, and paging. parameters: - $ref: '#/components/parameters/PageLimit' - $ref: '#/components/parameters/PageOffset' - name: filter[status] in: query schema: type: array items: type: string enum: - AwaitingDocuments - PendingReview - Pending - Approved - Denied - Canceled responses: '200': $ref: '#/components/responses/ResourceList' default: $ref: '#/components/responses/DefaultError' post: operationId: createApplication tags: - Applications summary: Create Application description: Creates an individualApplication or businessApplication resource. requestBody: required: true content: application/vnd.api+json: schema: $ref: '#/components/schemas/CreateApplicationRequest' responses: '201': $ref: '#/components/responses/SingleResource' default: $ref: '#/components/responses/DefaultError' /applications/{applicationId}: parameters: - $ref: '#/components/parameters/ApplicationId' get: operationId: getApplication tags: - Applications summary: Get Application by Id responses: '200': $ref: '#/components/responses/SingleResource' '404': $ref: '#/components/responses/NotFound' patch: operationId: updateApplication tags: - Applications summary: Update Application requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '200': $ref: '#/components/responses/SingleResource' /applications/{applicationId}/cancel: parameters: - $ref: '#/components/parameters/ApplicationId' post: operationId: cancelApplication tags: - Applications summary: Cancel Application by Id responses: '200': $ref: '#/components/responses/SingleResource' /applications/{applicationId}/documents: parameters: - $ref: '#/components/parameters/ApplicationId' get: operationId: getApplicationDocuments tags: - Applications summary: Get List of Documents responses: '200': $ref: '#/components/responses/ResourceList' post: operationId: createApplicationDocument tags: - Applications summary: Create an application document requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '201': $ref: '#/components/responses/SingleResource' /applications/{applicationId}/documents/{documentId}/multipart: parameters: - $ref: '#/components/parameters/ApplicationId' - $ref: '#/components/parameters/DocumentId' put: operationId: uploadApplicationDocumentFile tags: - Applications summary: Upload an application document file (PDF, PNG, JPG) requestBody: required: true content: multipart/form-data: schema: type: object properties: file: type: string format: binary responses: '200': $ref: '#/components/responses/SingleResource' /applications/{applicationId}/documents/{documentId}/verify: parameters: - $ref: '#/components/parameters/ApplicationId' - $ref: '#/components/parameters/DocumentId' put: operationId: verifyDocument tags: - Applications summary: Verify a document responses: '200': $ref: '#/components/responses/SingleResource' /applications/{applicationId}/documents/{documentId}/download: parameters: - $ref: '#/components/parameters/ApplicationId' - $ref: '#/components/parameters/DocumentId' get: operationId: downloadDocument tags: - Applications summary: Download a Document responses: '200': description: The document file. content: application/pdf: {} image/png: {} image/jpeg: {} /applications/{applicationId}/missing-fields: parameters: - $ref: '#/components/parameters/ApplicationId' get: operationId: getApplicationMissingFields tags: - Applications summary: Get Missing Fields by Application ID responses: '200': $ref: '#/components/responses/SingleResource' /application-forms: get: operationId: getApplicationFormsList tags: - Applications summary: Get List Application Forms responses: '200': $ref: '#/components/responses/ResourceList' post: operationId: createApplicationForm tags: - Applications summary: Create Application Form requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '201': $ref: '#/components/responses/SingleResource' /application-forms/{applicationFormId}: parameters: - name: applicationFormId in: path required: true schema: type: string get: operationId: getApplicationForm tags: - Applications summary: Get ApplicationForm by Id responses: '200': $ref: '#/components/responses/SingleResource' /beneficial-owner/{beneficialOwnerId}: parameters: - name: beneficialOwnerId in: path required: true schema: type: string patch: operationId: updateBusinessBeneficialOwner tags: - Applications summary: Update a Business Beneficial Owner via API requestBody: required: true content: application/vnd.api+json: schema: type: object 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 DefaultError: type: object properties: errors: type: array items: type: object properties: title: type: string status: type: string detail: type: string 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 CreateApplicationRequest: type: object required: - data properties: data: type: object required: - type - attributes properties: type: type: string enum: - individualApplication - businessApplication attributes: type: object additionalProperties: true responses: ResourceList: description: A page of JSON:API resources. content: application/vnd.api+json: schema: $ref: '#/components/schemas/JsonApiListResponse' NotFound: description: The requested resource was not found. content: application/vnd.api+json: schema: $ref: '#/components/schemas/DefaultError' DefaultError: description: Error response. content: application/vnd.api+json: schema: $ref: '#/components/schemas/DefaultError' SingleResource: description: A single JSON:API resource. content: application/vnd.api+json: schema: $ref: '#/components/schemas/JsonApiSingleResponse' parameters: PageOffset: name: page[offset] in: query schema: type: integer default: 0 PageLimit: name: page[limit] in: query schema: type: integer default: 100 maximum: 1000 ApplicationId: name: applicationId in: path required: true schema: type: string DocumentId: name: documentId in: path required: true schema: type: string 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.'