Unit Payments API

Book, ACH, wire, recurring, and cash-deposit payments.

Documentation

📖
Documentation
https://www.unit.co/docs/api/
📖
APIReference
https://www.unit.co/docs/api/applications/
📖
Documentation
https://www.unit.co/docs/api/customers/
📖
APIReference
https://www.unit.co/docs/api/customers/
📖
Documentation
https://www.unit.co/docs/api/accounts/deposit-accounts/overview/
📖
APIReference
https://www.unit.co/docs/api/accounts/
📖
Documentation
https://www.unit.co/docs/api/cards/
📖
APIReference
https://www.unit.co/docs/api/cards/
📖
Documentation
https://docs.unit.co/cards-authorization-requests/
📖
APIReference
https://www.unit.co/docs/api/cards-authorizations/
📖
Documentation
https://docs.unit.co/payments/
📖
APIReference
https://www.unit.co/docs/api/payments/book/
📖
Documentation
https://www.unit.co/docs/api/counterparties/overview/
📖
APIReference
https://www.unit.co/docs/api/payments-counterparties/
📖
Documentation
https://docs.unit.co/check-deposits/
📖
APIReference
https://www.unit.co/docs/api/checks/
📖
Documentation
https://www.unit.co/docs/api/transactions/overview/
📖
APIReference
https://www.unit.co/docs/api/transactions/
📖
Documentation
https://docs.unit.co/statements/
📖
APIReference
https://www.unit.co/docs/api/statements/
📖
Documentation
https://docs.unit.co/webhooks/
📖
APIReference
https://www.unit.co/docs/api/events/
📖
Documentation
https://www.unit.co/docs/api/stop-payments/apis/
📖
APIReference
https://www.unit.co/docs/api/disputes/
📖
Documentation
https://docs.unit.co/repayments/
📖
APIReference
https://docs.unit.co/credit-accounts/
📖
Documentation
https://www.unit.co/docs/api/fees/overview/
📖
APIReference
https://www.unit.co/docs/api/fees/
📖
Documentation
https://www.unit.co/docs/tokens/
📖
APIReference
https://www.unit.co/docs/api/org-api-tokens/

Specifications

OpenAPI Specification

unit-co-payments-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Unit Accounts Payments 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: Payments
  description: Book, ACH, wire, recurring, and cash-deposit payments.
paths:
  /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'
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
    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
  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:
    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.'