openapi: 3.0.3 info: title: Unit 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). - name: Customers description: Customer profiles created from approved applications. - name: Accounts description: Deposit and credit accounts. - name: Cards description: Debit and credit card issuance and management. - name: Authorizations description: Completed card authorizations and real-time authorization requests. - name: Payments description: Book, ACH, wire, recurring, and cash-deposit payments. - name: Counterparties description: External bank accounts and routing-number institution lookups. - name: Checks description: Check deposits and outbound check payments. - name: Transactions description: Posted, immutable ledger entries. - name: Statements description: Monthly account statements. - name: Tax Forms description: Annual tax documents. - name: Events description: Platform activity log. - name: Webhooks description: Subscriptions that deliver events as signed HTTP callbacks. - name: Risk and Fraud description: Stop payments and card/ACH disputes. - name: Credit and Repayments description: Repayments on credit accounts and receivables. - name: Fees and Rewards description: Ad hoc fees and cashback-style rewards. - name: API Tokens description: Org-level and customer-level authentication tokens. 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' /customers: get: operationId: getCustomersList tags: [Customers] summary: Get Customers List parameters: - $ref: '#/components/parameters/PageLimit' - $ref: '#/components/parameters/PageOffset' responses: '200': $ref: '#/components/responses/ResourceList' /customers/{customerId}: parameters: - $ref: '#/components/parameters/CustomerId' get: operationId: getCustomer tags: [Customers] summary: Get Customer by Id responses: '200': $ref: '#/components/responses/SingleResource' patch: operationId: updateCustomer tags: [Customers] summary: Update Customer requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '200': $ref: '#/components/responses/SingleResource' /customers/{customerId}/archive: parameters: - $ref: '#/components/parameters/CustomerId' post: operationId: archiveCustomer tags: [Customers] summary: Archive Customer by Id responses: '200': $ref: '#/components/responses/SingleResource' /customers/{customerId}/authorized-users: parameters: - $ref: '#/components/parameters/CustomerId' post: operationId: addAuthorizedUsers tags: [Customers] summary: Add Authorized Users by Id requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '200': $ref: '#/components/responses/SingleResource' delete: operationId: removeAuthorizedUsers tags: [Customers] summary: Remove Authorized Users by Id responses: '200': $ref: '#/components/responses/SingleResource' /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' /cards: get: operationId: getCardsList tags: [Cards] summary: Get List of Cards parameters: - $ref: '#/components/parameters/PageLimit' - $ref: '#/components/parameters/PageOffset' responses: '200': $ref: '#/components/responses/ResourceList' post: operationId: createCard tags: [Cards] summary: Create a Card requestBody: required: true content: application/vnd.api+json: schema: $ref: '#/components/schemas/CreateCardRequest' responses: '201': $ref: '#/components/responses/SingleResource' /cards/{cardId}: parameters: - $ref: '#/components/parameters/CardId' get: operationId: getCard tags: [Cards] summary: Get Card by Id responses: '200': $ref: '#/components/responses/SingleResource' patch: operationId: updateCard tags: [Cards] summary: Update Card requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '200': $ref: '#/components/responses/SingleResource' /cards/{cardId}/report-lost: parameters: - $ref: '#/components/parameters/CardId' post: operationId: reportLostCard tags: [Cards] summary: Report card as lost responses: '200': $ref: '#/components/responses/SingleResource' /cards/{cardId}/report-stolen: parameters: - $ref: '#/components/parameters/CardId' post: operationId: reportStolenCard tags: [Cards] summary: Report card as stolen responses: '200': $ref: '#/components/responses/SingleResource' /cards/{cardId}/close: parameters: - $ref: '#/components/parameters/CardId' post: operationId: closeCard tags: [Cards] summary: Close a Card responses: '200': $ref: '#/components/responses/SingleResource' /cards/{cardId}/freeze: parameters: - $ref: '#/components/parameters/CardId' post: operationId: freezeCard tags: [Cards] summary: Freeze a Card responses: '200': $ref: '#/components/responses/SingleResource' /cards/{cardId}/unfreeze: parameters: - $ref: '#/components/parameters/CardId' post: operationId: unfreezeCard tags: [Cards] summary: Unfreeze a Card responses: '200': $ref: '#/components/responses/SingleResource' /cards/{cardId}/replace: parameters: - $ref: '#/components/parameters/CardId' post: operationId: replaceCard tags: [Cards] summary: Replace a Card responses: '200': $ref: '#/components/responses/SingleResource' /cards/{cardId}/limits: parameters: - $ref: '#/components/parameters/CardId' get: operationId: getCardLimits tags: [Cards] summary: Get Card Limit by Id responses: '200': $ref: '#/components/responses/SingleResource' /cards/{cardId}/secure-data/pin/status: parameters: - $ref: '#/components/parameters/CardId' get: operationId: getCardPinStatus tags: [Cards] summary: Get Card PIN Status responses: '200': $ref: '#/components/responses/SingleResource' /atm-locations: get: operationId: getAtmLocationsList tags: [Cards] summary: Get List of ATM Locations parameters: - name: latitude in: query schema: type: number - name: longitude in: query schema: type: number responses: '200': $ref: '#/components/responses/ResourceList' /authorizations: get: operationId: getAuthorizationsList tags: [Authorizations] summary: Get List authorizations parameters: - $ref: '#/components/parameters/PageLimit' - $ref: '#/components/parameters/PageOffset' responses: '200': $ref: '#/components/responses/ResourceList' /authorizations/{authorizationId}: parameters: - name: authorizationId in: path required: true schema: type: string get: operationId: getAuthorization tags: [Authorizations] summary: Get Authorization by Id responses: '200': $ref: '#/components/responses/SingleResource' /authorization-requests: get: operationId: getAuthorizationRequestsList tags: [Authorizations] summary: Get List Authorization Requests responses: '200': $ref: '#/components/responses/ResourceList' /authorization-requests/{authorizationId}: parameters: - name: authorizationId in: path required: true schema: type: string get: operationId: getAuthorizationRequest tags: [Authorizations] summary: Get Authorization Request by Id responses: '200': $ref: '#/components/responses/SingleResource' /authorization-requests/{authorizationId}/approve: parameters: - name: authorizationId in: path required: true schema: type: string post: operationId: approveAuthorizationRequest tags: [Authorizations] summary: Approve Authorization Request by Id responses: '200': $ref: '#/components/responses/SingleResource' /authorization-requests/{authorizationId}/decline: parameters: - name: authorizationId in: path required: true schema: type: string post: operationId: declineAuthorizationRequest tags: [Authorizations] summary: Decline Authorization Request requestBody: required: true content: application/vnd.api+json: schema: type: object properties: data: type: object properties: attributes: type: object properties: reason: type: string enum: - AccountClosed - CardExceedsAmountLimit - DoNotHonor - InsufficientFunds - InvalidMerchant - ReferToCardIssuer - RestrictedCard - TransactionNotPermittedToCardholder responses: '200': $ref: '#/components/responses/SingleResource' /payments: get: operationId: getPaymentsList tags: [Payments] summary: Get List Payments parameters: - $ref: '#/components/parameters/PageLimit' - $ref: '#/components/parameters/PageOffset' responses: '200': $ref: '#/components/responses/ResourceList' post: operationId: createPayment tags: [Payments] summary: Create a Payment description: >- Creates a bookPayment, achPayment, or wirePayment depending on the `type` in the request body. requestBody: required: true content: application/vnd.api+json: schema: $ref: '#/components/schemas/CreatePaymentRequest' responses: '201': $ref: '#/components/responses/SingleResource' /payments/{paymentId}: parameters: - name: paymentId in: path required: true schema: type: string get: operationId: getPayment tags: [Payments] summary: Get Payment by Id responses: '200': $ref: '#/components/responses/SingleResource' patch: operationId: updatePayment tags: [Payments] summary: Update Payment requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '200': $ref: '#/components/responses/SingleResource' /payments/{paymentId}/cancel: parameters: - name: paymentId in: path required: true schema: type: string post: operationId: cancelPayment tags: [Payments] summary: Cancel a Payment by Id responses: '200': $ref: '#/components/responses/SingleResource' /received-payments: get: operationId: getReceivedPaymentsList tags: [Payments] summary: Get Received Payments List responses: '200': $ref: '#/components/responses/ResourceList' /received-payments/{paymentId}: parameters: - name: paymentId in: path required: true schema: type: string get: operationId: getReceivedPayment tags: [Payments] summary: Get Received Payment by Id responses: '200': $ref: '#/components/responses/SingleResource' patch: operationId: updateReceivedPayment tags: [Payments] summary: Update Received Payment requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '200': $ref: '#/components/responses/SingleResource' /received-payments/{paymentId}/advance: parameters: - name: paymentId in: path required: true schema: type: string post: operationId: advanceReceivedPayment tags: [Payments] summary: Advance Received Payment by Id responses: '200': $ref: '#/components/responses/SingleResource' /received-payments/{paymentId}/reprocess: parameters: - name: paymentId in: path required: true schema: type: string post: operationId: reprocessReceivedPayment tags: [Payments] summary: Reprocess Received Payment by Id responses: '200': $ref: '#/components/responses/SingleResource' /returns/{transactionId}: parameters: - name: transactionId in: path required: true schema: type: string post: operationId: returnReceivedAchTransaction tags: [Payments] summary: Return Received ACH Transaction responses: '200': $ref: '#/components/responses/SingleResource' /recurring-payments: get: operationId: getRecurringPaymentsList tags: [Payments] summary: Get Recurring Payments List responses: '200': $ref: '#/components/responses/ResourceList' post: operationId: createRecurringPayment tags: [Payments] summary: Create Recurring Payment requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '201': $ref: '#/components/responses/SingleResource' /recurring-payments/{paymentId}: parameters: - name: paymentId in: path required: true schema: type: string get: operationId: getRecurringPayment tags: [Payments] summary: Get Recurring Payment responses: '200': $ref: '#/components/responses/SingleResource' /recurring-payments/{paymentId}/disable: parameters: - name: paymentId in: path required: true schema: type: string post: operationId: disableRecurringPayment tags: [Payments] summary: Disable Recurring Payment responses: '200': $ref: '#/components/responses/SingleResource' /recurring-payments/{paymentId}/enable: parameters: - name: paymentId in: path required: true schema: type: string post: operationId: enableRecurringPayment tags: [Payments] summary: Enable Recurring Payment responses: '200': $ref: '#/components/responses/SingleResource' /cash-deposits/barcodes: post: operationId: generateCashDepositBarcode tags: [Payments] summary: Generate Cash Deposit Barcode requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '201': $ref: '#/components/responses/SingleResource' /cash-deposits/barcodes/{barcodeNumber}/image: parameters: - name: barcodeNumber in: path required: true schema: type: string get: operationId: getBarcodeImage tags: [Payments] summary: Get Barcode Image By Barcode Number responses: '200': description: Barcode image. content: image/png: {} /store-locations: get: operationId: getCashDepositStoreLocations tags: [Payments] summary: Get Cash Deposit Store Locations List By Coordinates parameters: - name: latitude in: query schema: type: number - name: longitude in: query schema: type: number responses: '200': $ref: '#/components/responses/ResourceList' /counterparties: get: operationId: getCounterpartiesList tags: [Counterparties] summary: Get Counterparties List responses: '200': $ref: '#/components/responses/ResourceList' post: operationId: createCounterparty tags: [Counterparties] summary: Create Counterparty requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '201': $ref: '#/components/responses/SingleResource' /counterparties/{counterpartyId}: parameters: - name: counterpartyId in: path required: true schema: type: string get: operationId: getCounterparty tags: [Counterparties] summary: Get Counterparty by Id responses: '200': $ref: '#/components/responses/SingleResource' patch: operationId: updateCounterparty tags: [Counterparties] summary: Update Counterparty requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '200': $ref: '#/components/responses/SingleResource' delete: operationId: deleteCounterparty tags: [Counterparties] summary: Delete Counterparty by Id responses: '200': $ref: '#/components/responses/SingleResource' /counterparties/{counterpartyId}/balance: parameters: - name: counterpartyId in: path required: true schema: type: string get: operationId: getCounterpartyBalance tags: [Counterparties] summary: Get Counterparty Balance responses: '200': $ref: '#/components/responses/SingleResource' /institutions/{routingNumber}: parameters: - name: routingNumber in: path required: true schema: type: string get: operationId: getInstitution tags: [Counterparties] summary: Get Institution by Routing Number responses: '200': $ref: '#/components/responses/SingleResource' /check-deposits: get: operationId: getCheckDepositsList tags: [Checks] summary: Get List Check Deposits responses: '200': $ref: '#/components/responses/ResourceList' post: operationId: createCheckDeposit tags: [Checks] summary: Create Check Deposit requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '201': $ref: '#/components/responses/SingleResource' /check-deposits/{checkDepositId}: parameters: - name: checkDepositId in: path required: true schema: type: string get: operationId: getCheckDeposit tags: [Checks] summary: Get Check Deposit by Id responses: '200': $ref: '#/components/responses/SingleResource' patch: operationId: updateCheckDeposit tags: [Checks] summary: Update Check Deposit requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '200': $ref: '#/components/responses/SingleResource' /check-deposits/{checkDepositId}/confirm: parameters: - name: checkDepositId in: path required: true schema: type: string post: operationId: confirmCheckDeposit tags: [Checks] summary: Confirm Check Deposit by Id responses: '200': $ref: '#/components/responses/SingleResource' /check-deposits/{checkDepositId}/front: parameters: - name: checkDepositId in: path required: true schema: type: string get: operationId: getFrontCheckDepositImage tags: [Checks] summary: Get Front Check Deposit Image by Id responses: '200': description: Front image of the deposited check. content: image/png: {} /check-payments: get: operationId: getCheckPaymentsList tags: [Checks] summary: Get List Check Payments responses: '200': $ref: '#/components/responses/ResourceList' post: operationId: createCheckPayment tags: [Checks] summary: Create Check Payment requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '201': $ref: '#/components/responses/SingleResource' /check-payments/{checkPaymentId}: parameters: - name: checkPaymentId in: path required: true schema: type: string get: operationId: getCheckPayment tags: [Checks] summary: Get Check Payment by Id responses: '200': $ref: '#/components/responses/SingleResource' /check-payments/{checkPaymentId}/approve: parameters: - name: checkPaymentId in: path required: true schema: type: string post: operationId: approveCheckPayment tags: [Checks] summary: Approve Check Payment by Id responses: '200': $ref: '#/components/responses/SingleResource' /check-payments/{checkPaymentId}/cancel: parameters: - name: checkPaymentId in: path required: true schema: type: string post: operationId: cancelCheckPayment tags: [Checks] summary: Cancel Check Payment by Id responses: '200': $ref: '#/components/responses/SingleResource' /check-payments/{checkPaymentId}/return: parameters: - name: checkPaymentId in: path required: true schema: type: string post: operationId: returnCheckPayment tags: [Checks] summary: Return Check Payment by Id responses: '200': $ref: '#/components/responses/SingleResource' /transactions: get: operationId: getTransactionsList tags: [Transactions] summary: Get List Transactions description: >- Paging is available only when filtering by customer id or account id. parameters: - $ref: '#/components/parameters/PageLimit' - $ref: '#/components/parameters/PageOffset' responses: '200': $ref: '#/components/responses/ResourceList' /accounts/{accountId}/transactions/{transactionId}: parameters: - $ref: '#/components/parameters/AccountId' - name: transactionId in: path required: true schema: type: string get: operationId: getTransaction tags: [Transactions] summary: Get Transaction by Id responses: '200': $ref: '#/components/responses/SingleResource' patch: operationId: updateTransaction tags: [Transactions] summary: Update Transaction requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '200': $ref: '#/components/responses/SingleResource' /statements: get: operationId: getStatementsList tags: [Statements] summary: Get List Statements responses: '200': $ref: '#/components/responses/ResourceList' /statements/{statementId}/html: parameters: - name: statementId in: path required: true schema: type: string get: operationId: getStatementHtml tags: [Statements] summary: Get HTML Statement by Id responses: '200': description: HTML statement. content: text/html: {} /statements/{statementId}/pdf: parameters: - name: statementId in: path required: true schema: type: string get: operationId: getStatementPdf tags: [Statements] summary: Get PDF Statement by Id responses: '200': description: PDF statement. content: application/pdf: {} /statements/{accountId}/bank/pdf: parameters: - $ref: '#/components/parameters/AccountId' get: operationId: getStatementBankPdf tags: [Statements] summary: Get Bank verification PDF responses: '200': description: Bank verification PDF. content: application/pdf: {} /tax-forms: get: operationId: getTaxFormsList tags: [Tax Forms] summary: Get Tax Forms List responses: '200': $ref: '#/components/responses/ResourceList' /tax-forms/{taxFormId}: parameters: - name: taxFormId in: path required: true schema: type: string get: operationId: getTaxForm tags: [Tax Forms] summary: Get Tax Form by Id responses: '200': $ref: '#/components/responses/SingleResource' /tax-forms/{taxFormId}/pdf: parameters: - name: taxFormId in: path required: true schema: type: string get: operationId: getTaxFormPdf tags: [Tax Forms] summary: Get Tax Form pdf by Id responses: '200': description: Tax form PDF. content: application/pdf: {} /events: get: operationId: getEventsList tags: [Events] summary: Get Events List description: Lists Event resources going back up to 90 days. parameters: - $ref: '#/components/parameters/PageLimit' - $ref: '#/components/parameters/PageOffset' - name: filter[since] in: query schema: type: string format: date-time - name: filter[until] in: query schema: type: string format: date-time responses: '200': $ref: '#/components/responses/ResourceList' /events/{eventId}: parameters: - name: eventId in: path required: true schema: type: string get: operationId: getEvent tags: [Events] summary: Get Event by Id responses: '200': $ref: '#/components/responses/SingleResource' post: operationId: fireEvent tags: [Events] summary: Fire Event by Id description: Sandbox-only - re-fires an event's webhook delivery. responses: '200': $ref: '#/components/responses/SingleResource' /webhooks: get: operationId: getWebhooksList tags: [Webhooks] summary: Get List Webhooks responses: '200': $ref: '#/components/responses/ResourceList' post: operationId: createWebhook tags: [Webhooks] summary: Create Webhook requestBody: required: true content: application/vnd.api+json: schema: $ref: '#/components/schemas/CreateWebhookRequest' responses: '201': $ref: '#/components/responses/SingleResource' /webhooks/{webhookId}: parameters: - name: webhookId in: path required: true schema: type: string get: operationId: getWebhook tags: [Webhooks] summary: Get Webhook by Id responses: '200': $ref: '#/components/responses/SingleResource' patch: operationId: updateWebhook tags: [Webhooks] summary: Update Webhook requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '200': $ref: '#/components/responses/SingleResource' /webhooks/{webhookId}/enable: parameters: - name: webhookId in: path required: true schema: type: string post: operationId: enableWebhook tags: [Webhooks] summary: Enable Webhook responses: '200': $ref: '#/components/responses/SingleResource' /webhooks/{webhookId}/disable: parameters: - name: webhookId in: path required: true schema: type: string post: operationId: disableWebhook tags: [Webhooks] summary: Disable a Webhook responses: '200': $ref: '#/components/responses/SingleResource' /stop-payments: get: operationId: getStopPaymentsList tags: [Risk and Fraud] summary: Get a list of stop payments responses: '200': $ref: '#/components/responses/ResourceList' post: operationId: createStopPayment tags: [Risk and Fraud] summary: Create Stop Payment requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '201': $ref: '#/components/responses/SingleResource' /stop-payments/{stopPaymentId}: parameters: - name: stopPaymentId in: path required: true schema: type: string get: operationId: getStopPayment tags: [Risk and Fraud] summary: Get details of a specific stop payment responses: '200': $ref: '#/components/responses/SingleResource' /stop-payments/{stopPaymentId}/disable: parameters: - name: stopPaymentId in: path required: true schema: type: string post: operationId: disableStopPayment tags: [Risk and Fraud] summary: Disable a stop payment responses: '200': $ref: '#/components/responses/SingleResource' /disputes: get: operationId: getDisputesList tags: [Risk and Fraud] summary: Get List Disputes responses: '200': $ref: '#/components/responses/ResourceList' /disputes/{disputeId}: parameters: - name: disputeId in: path required: true schema: type: string get: operationId: getDispute tags: [Risk and Fraud] summary: Get Dispute by Id responses: '200': $ref: '#/components/responses/SingleResource' /repayments: get: operationId: getRepaymentsList tags: [Credit and Repayments] summary: Get List Repayments responses: '200': $ref: '#/components/responses/ResourceList' post: operationId: createRepayment tags: [Credit and Repayments] summary: Create a Repayment requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '201': $ref: '#/components/responses/SingleResource' /repayments/{repaymentId}: parameters: - name: repaymentId in: path required: true schema: type: string get: operationId: getRepayment tags: [Credit and Repayments] summary: Get Repayment by Id responses: '200': $ref: '#/components/responses/SingleResource' /recurring-repayments: get: operationId: getRecurringRepaymentsList tags: [Credit and Repayments] summary: Get List Recurring Repayments responses: '200': $ref: '#/components/responses/ResourceList' post: operationId: createRecurringRepayment tags: [Credit and Repayments] summary: Create a Recurring Repayment requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '201': $ref: '#/components/responses/SingleResource' /recurring-repayments/{recurringRepaymentId}: parameters: - name: recurringRepaymentId in: path required: true schema: type: string get: operationId: getRecurringRepayment tags: [Credit and Repayments] summary: Get Recurring Repayment by Id responses: '200': $ref: '#/components/responses/SingleResource' /recurring-repayments/{recurringRepaymentId}/disable: parameters: - name: recurringRepaymentId in: path required: true schema: type: string post: operationId: disableRecurringRepayment tags: [Credit and Repayments] summary: Disable Recurring Repayment by Id responses: '200': $ref: '#/components/responses/SingleResource' /recurring-repayments/{recurringRepaymentId}/enable: parameters: - name: recurringRepaymentId in: path required: true schema: type: string post: operationId: enableRecurringRepayment tags: [Credit and Repayments] summary: Enable Recurring Repayment by Id responses: '200': $ref: '#/components/responses/SingleResource' /fees: post: operationId: createFee tags: [Fees and Rewards] summary: Create Fee requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '201': $ref: '#/components/responses/SingleResource' /fees/reverse: post: operationId: reverseFee tags: [Fees and Rewards] summary: Reverse Fee requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '201': $ref: '#/components/responses/SingleResource' /rewards: get: operationId: getRewardsList tags: [Fees and Rewards] summary: Get Rewards List responses: '200': $ref: '#/components/responses/ResourceList' post: operationId: createReward tags: [Fees and Rewards] summary: Create Reward requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '201': $ref: '#/components/responses/SingleResource' /rewards/{rewardId}: parameters: - name: rewardId in: path required: true schema: type: string get: operationId: getReward tags: [Fees and Rewards] summary: Get Reward by Id responses: '200': $ref: '#/components/responses/SingleResource' /users/{userId}/api-tokens: parameters: - name: userId in: path required: true schema: type: string get: operationId: getOrgApiTokensList tags: [API Tokens] summary: Get List Org API Tokens responses: '200': $ref: '#/components/responses/ResourceList' post: operationId: createOrgApiToken tags: [API Tokens] summary: Create Org API Token requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '201': $ref: '#/components/responses/SingleResource' /users/{userId}/api-tokens/{tokenId}: parameters: - name: userId in: path required: true schema: type: string - name: tokenId in: path required: true schema: type: string delete: operationId: deleteOrgApiToken tags: [API Tokens] summary: Delete Org API Token responses: '200': description: Deletion confirmation. /customers/{customerId}/token: parameters: - $ref: '#/components/parameters/CustomerId' post: operationId: createCustomerToken tags: [API Tokens] summary: Create Customer Token requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '200': $ref: '#/components/responses/SingleResource' /customers/{customerId}/token/verification: parameters: - $ref: '#/components/parameters/CustomerId' post: operationId: createCustomerTokenVerification tags: [API Tokens] summary: Create Customer Token Verification description: Sends an SMS or email verification challenge before issuing a scoped customer token. requestBody: required: true content: application/vnd.api+json: schema: type: object responses: '200': $ref: '#/components/responses/SingleResource' components: 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. parameters: PageLimit: name: page[limit] in: query schema: type: integer default: 100 maximum: 1000 PageOffset: name: page[offset] in: query schema: type: integer default: 0 ApplicationId: name: applicationId in: path required: true schema: type: string DocumentId: name: documentId in: path required: true schema: type: string CustomerId: name: customerId in: path required: true schema: type: string AccountId: name: accountId in: path required: true schema: type: string CardId: name: cardId in: path required: true schema: type: string responses: SingleResource: description: A single JSON:API resource. content: application/vnd.api+json: schema: $ref: '#/components/schemas/JsonApiSingleResponse' 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' schemas: 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 JsonApiSingleResponse: type: object properties: data: $ref: '#/components/schemas/JsonApiResource' included: type: array items: $ref: '#/components/schemas/JsonApiResource' 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 DefaultError: type: object properties: errors: type: array items: type: object properties: title: type: string status: type: string detail: type: string CreateApplicationRequest: type: object required: [data] properties: data: type: object required: [type, attributes] properties: type: type: string enum: [individualApplication, businessApplication] attributes: type: object additionalProperties: true 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 CreateCardRequest: type: object required: [data] properties: data: type: object required: [type, relationships] properties: type: type: string enum: - individualDebitCard - individualVirtualDebitCard - businessDebitCard - businessVirtualDebitCard - individualCreditCard - businessCreditCard attributes: type: object properties: shippingAddress: $ref: '#/components/schemas/Address' relationships: type: object properties: account: type: object properties: data: type: object properties: type: type: string enum: [depositAccount, creditAccount] id: type: string CreatePaymentRequest: type: object required: [data] properties: data: type: object required: [type, attributes] properties: type: type: string enum: [bookPayment, achPayment, wirePayment] attributes: type: object properties: amount: type: integer description: Amount in cents. direction: type: string enum: [Credit, Debit] description: type: string idempotencyKey: type: string CreateWebhookRequest: type: object required: [data] properties: data: type: object required: [type, attributes] properties: type: type: string enum: [webhook] attributes: type: object properties: url: type: string format: uri secret: type: string description: >- Signing secret; Unit computes an HMAC-SHA1 hash of the request body, base64-encodes it, and sends it in the X-Unit-Signature header. Address: type: object properties: street: type: string city: type: string state: type: string postalCode: type: string country: type: string