Unit Payments API

Move money with Book Payments (instant internal transfers), ACH (originating debit/credit) and Wire payments, one-time and Recurring Payments, and retail Cash Deposits (barcode-based). Also manage incoming Received Payments - advance, reprocess, or return an ACH transaction - and cancel pending payments.

OpenAPI Specification

unit-co-openapi.yml Raw ↑
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]
     

# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/unit-co/refs/heads/main/openapi/unit-co-openapi.yml