Notch Payment Methods API

Capability area covering stored customer payment methods - credit cards (Visa, Mastercard, Amex) and EFT/ACH - held in PCI-compliant infrastructure and used for autopay. No public endpoint reference is documented by Notch; modeled here as an unreconciled capability.

OpenAPI Specification

notch-financial-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Notch API (unreconciled capability model)
  description: >-
    Capability model of the Notch (notch.financial) accounts-receivable /
    accounts-payable automation platform for the food and beverage and
    wholesale distribution industry.

    IMPORTANT: Notch states an API is available for integration, but as of
    2026-06-21 it does NOT publish a public developer reference, OpenAPI
    document, base URL, or authentication guide. This specification is an
    UNRECONCILED model derived from documented product capabilities
    (invoices/bills, payment collection and processing, customer payment
    portals, stored card and EFT/ACH payment methods, bank accounts, and
    accounting/ERP data sync). Paths, schemas, server URL, and the Bearer
    authentication scheme below are illustrative placeholders and are NOT
    confirmed against an official Notch specification. Do not treat them as
    production contracts. Reconcile against Notch's developer documentation
    when it becomes publicly available.

    Disambiguation: not Notch Pay (notchpay.co), not notch.cx, and not the
    Notch restaurant ordering platform.
  contact:
    name: Notch
    url: https://www.notch.financial
  version: 0.0.0-unreconciled
servers:
  - url: https://api.notch.financial
    description: >-
      Placeholder base URL. Notch does not document a public API base URL;
      this value is illustrative and unverified.
security:
  - bearerAuth: []
tags:
  - name: Invoices
  - name: Payments
  - name: Customers
  - name: Payment Methods
  - name: Bank Accounts
  - name: Webhooks
paths:
  /invoices:
    get:
      operationId: listInvoices
      tags:
        - Invoices
      summary: List invoices (unreconciled).
      description: Illustrative; not a documented Notch endpoint.
      responses:
        '200':
          description: A list of invoices.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Invoice'
    post:
      operationId: createInvoice
      tags:
        - Invoices
      summary: Create an invoice (unreconciled).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Invoice'
      responses:
        '201':
          description: Invoice created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
  /invoices/{invoiceId}:
    get:
      operationId: getInvoice
      tags:
        - Invoices
      summary: Retrieve an invoice (unreconciled).
      parameters:
        - $ref: '#/components/parameters/invoiceId'
      responses:
        '200':
          description: An invoice.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
  /payments:
    get:
      operationId: listPayments
      tags:
        - Payments
      summary: List payments (unreconciled).
      responses:
        '200':
          description: A list of payments.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Payment'
    post:
      operationId: createPayment
      tags:
        - Payments
      summary: Collect or record a payment (unreconciled).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Payment'
      responses:
        '201':
          description: Payment created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
  /payments/{paymentId}:
    get:
      operationId: getPayment
      tags:
        - Payments
      summary: Retrieve a payment (unreconciled).
      parameters:
        - $ref: '#/components/parameters/paymentId'
      responses:
        '200':
          description: A payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
  /customers:
    get:
      operationId: listCustomers
      tags:
        - Customers
      summary: List customers (unreconciled).
      responses:
        '200':
          description: A list of customers.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Customer'
    post:
      operationId: createCustomer
      tags:
        - Customers
      summary: Create a customer (unreconciled).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Customer'
      responses:
        '201':
          description: Customer created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
  /customers/{customerId}:
    get:
      operationId: getCustomer
      tags:
        - Customers
      summary: Retrieve a customer (unreconciled).
      parameters:
        - $ref: '#/components/parameters/customerId'
      responses:
        '200':
          description: A customer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
  /payment-methods:
    get:
      operationId: listPaymentMethods
      tags:
        - Payment Methods
      summary: List stored payment methods (unreconciled).
      responses:
        '200':
          description: A list of payment methods.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PaymentMethod'
    post:
      operationId: createPaymentMethod
      tags:
        - Payment Methods
      summary: Store a payment method (unreconciled).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentMethod'
      responses:
        '201':
          description: Payment method stored.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentMethod'
  /bank-accounts:
    get:
      operationId: listBankAccounts
      tags:
        - Bank Accounts
      summary: List bank accounts (unreconciled).
      responses:
        '200':
          description: A list of bank accounts.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BankAccount'
    post:
      operationId: createBankAccount
      tags:
        - Bank Accounts
      summary: Add a bank account for EFT/ACH (unreconciled).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankAccount'
      responses:
        '201':
          description: Bank account added.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccount'
  /webhooks:
    get:
      operationId: listWebhooks
      tags:
        - Webhooks
      summary: List webhook subscriptions (unreconciled).
      responses:
        '200':
          description: A list of webhook subscriptions.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Webhook'
    post:
      operationId: createWebhook
      tags:
        - Webhooks
      summary: Create a webhook subscription (unreconciled).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Webhook'
      responses:
        '201':
          description: Webhook subscription created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Illustrative Bearer API key scheme. Notch's actual authentication
        mechanism is not publicly documented and is unverified.
  parameters:
    invoiceId:
      name: invoiceId
      in: path
      required: true
      schema:
        type: string
    paymentId:
      name: paymentId
      in: path
      required: true
      schema:
        type: string
    customerId:
      name: customerId
      in: path
      required: true
      schema:
        type: string
  schemas:
    Invoice:
      type: object
      description: An invoice / outstanding bill owed by a customer (illustrative).
      properties:
        id:
          type: string
        customer_id:
          type: string
        number:
          type: string
        status:
          type: string
          enum:
            - draft
            - open
            - paid
            - overdue
            - void
        currency:
          type: string
          example: USD
        amount_due:
          type: number
        amount_paid:
          type: number
        due_date:
          type: string
          format: date
        created_at:
          type: string
          format: date-time
    Payment:
      type: object
      description: A payment collected against one or more invoices (illustrative).
      properties:
        id:
          type: string
        customer_id:
          type: string
        invoice_id:
          type: string
        amount:
          type: number
        currency:
          type: string
          example: USD
        method:
          type: string
          enum:
            - card
            - eft
            - ach
        status:
          type: string
          enum:
            - pending
            - processing
            - succeeded
            - failed
            - refunded
        autopay:
          type: boolean
        created_at:
          type: string
          format: date-time
    Customer:
      type: object
      description: A customer / payer account (illustrative).
      properties:
        id:
          type: string
        name:
          type: string
        email:
          type: string
          format: email
        autopay_enabled:
          type: boolean
        created_at:
          type: string
          format: date-time
    PaymentMethod:
      type: object
      description: A stored payment method (illustrative).
      properties:
        id:
          type: string
        customer_id:
          type: string
        type:
          type: string
          enum:
            - card
            - bank_account
        brand:
          type: string
          enum:
            - visa
            - mastercard
            - amex
        last4:
          type: string
        is_default:
          type: boolean
    BankAccount:
      type: object
      description: A bank account used for EFT/ACH transfers (illustrative).
      properties:
        id:
          type: string
        customer_id:
          type: string
        account_holder_name:
          type: string
        bank_name:
          type: string
        last4:
          type: string
        type:
          type: string
          enum:
            - checking
            - savings
    Webhook:
      type: object
      description: A webhook subscription for event notifications (illustrative).
      properties:
        id:
          type: string
        url:
          type: string
          format: uri
        events:
          type: array
          items:
            type: string
            example: payment.succeeded
        active:
          type: boolean