Tabs Customers API

The Customers API from Tabs — 21 operation(s) for customers.

Operations 24

GET /v3/customers/{id} Get customer by ID #
DELETE /v3/customers/{id} Delete customer #
GET /v3/customers List customers #
POST /v3/customers Create customer #
POST /v3/customers/{id}/sub-customers Create sub-customer #
GET /v3/customers/{id}/invoices/{invoiceId} Get customer invoice by ID #
PATCH /v3/customers/{id}/invoices/{invoiceId}/external-ids Update invoice external IDs #
GET /v3/customers/{id}/invoices/{invoiceId}/pdf Download invoice PDF #
POST /v3/customers/{id}/invoices/{invoiceId}/actions Perform invoice action #
GET /v3/customers/{id}/invoices/{invoiceId}/payments/{paymentId} Get invoice payment by ID #
POST /v3/customers/{id}/invoices/{invoiceId}/payments Create invoice payment #
POST /v3/customers/{id}/invoices/{invoiceId}/attachments Upload invoice attachment #
PUT /v3/customers/{id}/autocharge Update customer auto-charge #
PUT /v3/customers/{id}/cc-fees-exemption Update customer credit card fees exemption #
PUT /v3/customers/{id}/custom-field Update customer custom fields #
POST /v3/customers/{id}/contacts Create customer contacts #
GET /v3/customers/{id}/contacts List customer contacts #
POST /v3/customers/{id}/address Create customer address #
PATCH /v3/customers/{id}/contacts/{contactId} Update customer contact #
POST /v3/customers/{id}/external-ids Upsert customer external ID #
GET /v3/customers/{id}/invoices/{invoiceId}/credit-memos List invoice credit memos #
PATCH /v3/customers/{id}/name Update customer name #
PUT /v3/customers/{id}/invoices/{invoiceId}/po Update invoice PO number #
PUT /v3/customers/{id}/invoices/{invoiceId}/memo Update invoice memo #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tabs-customers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tabs-customers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tabs External Customers API
  description: ''
  version: 1.0.0
  contact: {}
  x-apievangelist:
    generated: '2026-07-21'
    method: searched
    source: https://docs.tabsplatform.com/reference (OpenAPI definitions embedded per-operation in the ReadMe reference pages, merged; index at https://docs.tabsplatform.com/llms.txt)
    source_pages: 93
servers:
- url: https://integrators.prod.api.tabsplatform.com
security:
- custom-header: []
tags:
- name: Customers
paths:
  /v3/customers/{id}:
    get:
      operationId: IntegratorsApiCustomersController_getCustomerById
      parameters:
      - name: id
        required: true
        in: path
        description: Customer Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      responses:
        '200':
          description: The Customer
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IntegratorsApiResponse'
                - properties:
                    payload:
                      allOf:
                      - $ref: '#/components/schemas/CustomerV3Dto'
        '404':
          description: Customer not found
      summary: Get customer by ID
      tags:
      - Customers
    delete:
      operationId: IntegratorsApiCustomersController_deleteCustomer
      parameters:
      - name: id
        required: true
        in: path
        description: Customer Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      responses:
        '200':
          description: Deleted customer
        '404':
          description: Customer not found
      summary: Delete customer
      tags:
      - Customers
  /v3/customers:
    get:
      operationId: IntegratorsApiCustomersController_getCustomers
      parameters:
      - name: page
        required: true
        in: query
        description: Page Number
        schema:
          default: 1
          type: number
      - name: limit
        required: true
        in: query
        description: Number of items to return
        schema:
          default: 50
          type: number
      - name: filter
        required: false
        in: query
        description: 'Supported items for filter: name, externalIds.externalId, lastUpdatedAt. Date format for lastUpdatedAt: YYYY-MM-DD'
        schema:
          type: string
      responses:
        '200':
          description: Get all Customers by filter
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IntegratorsApiResponse'
                - properties:
                    payload:
                      allOf:
                      - $ref: '#/components/schemas/PaginatedResponseDTO'
                      - properties:
                          data:
                            type: array
                            items:
                              $ref: '#/components/schemas/CustomerV3Dto'
                          limit:
                            type: number
                          totalItems:
                            type: number
                          currentPage:
                            type: number
      summary: List customers
      tags:
      - Customers
    post:
      operationId: IntegratorsApiCustomersController_createCustomer
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomerV3Dto'
      responses:
        '202':
          description: Created customer
        '500':
          description: Internal server error
      summary: Create customer
      tags:
      - Customers
  /v3/customers/{id}/sub-customers:
    post:
      operationId: IntegratorsApiCustomersController_createSubCustomer
      parameters:
      - name: id
        required: true
        in: path
        description: Customer Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSubCustomerDto'
      responses:
        '201':
          description: Created sub customer
        '500':
          description: Internal server error
      summary: Create sub-customer
      tags:
      - Customers
  /v3/customers/{id}/invoices/{invoiceId}:
    get:
      operationId: IntegratorsApiCustomersController_getInvoice
      parameters:
      - name: id
        required: true
        in: path
        description: Customer Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      - name: invoiceId
        required: true
        in: path
        description: Invoice Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      responses:
        '200':
          description: The invoice
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IntegratorsApiResponse'
                - properties:
                    payload:
                      allOf:
                      - $ref: '#/components/schemas/InvoiceV3Dto'
        '404':
          description: Invoice not found
      summary: Get customer invoice by ID
      tags:
      - Customers
  /v3/customers/{id}/invoices/{invoiceId}/external-ids:
    patch:
      operationId: IntegratorsApiCustomersController_updateInvoiceExternalIds
      parameters:
      - name: id
        required: true
        in: path
        description: Customer Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      - name: invoiceId
        required: true
        in: path
        description: Invoice Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateInvoiceExternalIdsDto'
      responses:
        '200':
          description: Updated invoice external IDs
        '404':
          description: Invoice not found
      summary: Update invoice external IDs
      tags:
      - Customers
  /v3/customers/{id}/invoices/{invoiceId}/pdf:
    get:
      operationId: IntegratorsApiCustomersController_getInvoiceAsPdf
      parameters:
      - name: id
        required: true
        in: path
        description: Customer Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      - name: invoiceId
        required: true
        in: path
        description: Invoice Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      - name: type
        required: true
        in: query
        description: Type of the response either pdf or buffer
        schema:
          example: pdf
          type: string
      responses:
        '200':
          description: PDF file download
          content:
            application/pdf:
              schema:
                type: string
                format: binary
      summary: Download invoice PDF
      tags:
      - Customers
  /v3/customers/{id}/invoices/{invoiceId}/actions:
    post:
      operationId: IntegratorsApiCustomersController_invoiceActions
      parameters:
      - name: id
        required: true
        in: path
        description: Customer Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      - name: invoiceId
        required: true
        in: path
        description: Invoice Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      requestBody:
        required: true
        description: 'Invoice actions for sending an invoice. Validation rules:

          1. At least one of sendToErp or sendToCustomer must be true

          2. sendToErp can be true while sendToCustomer is false (push to ERP only)

          3. sendToCustomer can be true while sendToErp is false (email customer only; useful when no ERP is connected)

          4. If sendToErp is true but the merchant has no ERP integration connected, the request is rejected

          5. the field overrideInvoiceDate is optional'
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/SendInvoiceDto'
              - $ref: '#/components/schemas/MarkInvoiceAsPendingDto'
              - $ref: '#/components/schemas/MarkInvoiceToSentOffTabsDto'
              - $ref: '#/components/schemas/MarkInvoiceAsScheduledDto'
              - $ref: '#/components/schemas/MarkInvoiceAsVoidDto'
              - $ref: '#/components/schemas/SendReminderEmailDto'
            examples:
              sendToBothWithoutOverrideInvoiceDate:
                summary: Send to both ERP and customer without overrideInvoiceDate
                value:
                  action: SEND
                  sendToErp: true
                  sendToCustomer: true
                  overrideInvoiceDate: false
              sendToBothWithOverrideInvoiceDate:
                summary: Send to both ERP and customer with overrideInvoiceDate
                value:
                  action: SEND
                  sendToErp: true
                  sendToCustomer: true
                  overrideInvoiceDate: true
              sendToErpOnly:
                summary: Send only to ERP
                value:
                  action: SEND
                  sendToErp: true
                  sendToCustomer: false
                  overrideInvoiceDate: false
              sendToCustomerOnly:
                summary: Send only to customer (e.g. merchant has no ERP connected)
                value:
                  action: SEND
                  sendToErp: false
                  sendToCustomer: true
                  overrideInvoiceDate: false
              markAsPending:
                summary: Mark invoice as pending
                value:
                  action: MARK_INVOICE_AS_PENDING
                  markInvoiceAsPending: true
              markAsSentOffTabs:
                summary: Mark invoice as sent off Tabs
                value:
                  action: MARK_INVOICE_TO_SENT_OFF_TABS
                  markInvoiceToSentOffTabs: true
              markAsScheduled:
                summary: Mark invoice as scheduled
                value:
                  action: MARK_INVOICE_AS_SCHEDULED
                  markInvoiceAsScheduled: true
              markAsVoid:
                summary: Mark invoice as void
                value:
                  action: MARK_INVOICE_AS_VOID
                  markInvoiceAsVoid: true
              sendReminderEmail:
                summary: Send reminder email
                value:
                  action: SEND_REMINDER_EMAIL
                  sendReminderEmail: true
      responses:
        '200':
          description: Invoice marked as pending or sent off Tabs successfully
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IntegratorsApiResponse'
                - properties:
                    payload:
                      allOf:
                      - $ref: '#/components/schemas/InvoiceV3Dto'
        '201':
          description: Invoice send job created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: 'Invoice send job created, jobId: 123e4567-e89b-12d3-a456-426614174000, please check the job status via /jobs/:jobId'
        '400':
          description: 'Invalid combination: at least one of sendToErp or sendToCustomer must be true, or sendToErp was requested but the merchant has no ERP integration connected'
        '500':
          description: Internal server error
      summary: Perform invoice action
      tags:
      - Customers
  /v3/customers/{id}/invoices/{invoiceId}/payments/{paymentId}:
    get:
      operationId: IntegratorsApiCustomersController_getPayment
      parameters:
      - name: id
        required: true
        in: path
        description: Customer Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      - name: invoiceId
        required: true
        in: path
        description: Invoice Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      - name: paymentId
        required: true
        in: path
        description: Payment Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      responses:
        '200':
          description: The payment
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IntegratorsApiResponse'
                - properties:
                    payload:
                      allOf:
                      - $ref: '#/components/schemas/PaymentsV3Dto'
        '404':
          description: Payment not found
      summary: Get invoice payment by ID
      tags:
      - Customers
  /v3/customers/{id}/invoices/{invoiceId}/payments:
    post:
      operationId: IntegratorsApiCustomersController_createPayment
      parameters:
      - name: id
        required: true
        in: path
        description: Customer Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      - name: invoiceId
        required: true
        in: path
        description: Invoice Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePaymentV3Dto'
      responses:
        '200':
          description: Created payment
      summary: Create invoice payment
      tags:
      - Customers
  /v3/customers/{id}/invoices/{invoiceId}/attachments:
    post:
      operationId: IntegratorsApiCustomersController_uploadAttachmentToInvoice
      parameters:
      - name: id
        required: true
        in: path
        description: Customer Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      - name: invoiceId
        required: true
        in: path
        description: Invoice Id
        schema:
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '200':
          description: attachment uploaded successfully
        '404':
          description: Invoice not found
        '500':
          description: Internal server error
      summary: Upload invoice attachment
      tags:
      - Customers
  /v3/customers/{id}/autocharge:
    put:
      operationId: IntegratorsApiCustomersController_updateCustomerAutoCharge
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomerAutoChargeV3Dto'
      responses:
        '200':
          description: Updated customer auto charge
        '404':
          description: Customer not found
        '500':
          description: Internal server error
      summary: Update customer auto-charge
      tags:
      - Customers
  /v3/customers/{id}/cc-fees-exemption:
    put:
      operationId: IntegratorsApiCustomersController_updateCustomerCCFeesExemption
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCustomerCCFeesExemptionV3Dto'
      responses:
        '200':
          description: Updated customer CC fees exemption
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegratorsApiResponse'
        '404':
          description: Customer not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegratorsApiResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegratorsApiResponse'
      summary: Update customer credit card fees exemption
      tags:
      - Customers
  /v3/customers/{id}/custom-field:
    put:
      operationId: IntegratorsApiCustomersController_updateCustomerCustomField
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/UpdateCustomerCustomFieldV3Dto'
      responses:
        '200':
          description: Updated customer custom field
        '400':
          description: Invalid request body structure or UUID format
        '404':
          description: Customer or custom field not found
        '500':
          description: Internal server error
      summary: Update customer custom fields
      tags:
      - Customers
  /v3/customers/{id}/contacts:
    post:
      operationId: IntegratorsApiCustomersController_createContacts
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/CreateContactV3Dto'
      responses:
        '200':
          description: Created contacts
        '400':
          description: Invalid email address was provided or top level customers cannot be modified
        '404':
          description: Customer not found
        '500':
          description: Internal server error
      summary: Create customer contacts
      tags:
      - Customers
    get:
      operationId: IntegratorsApiCustomersController_getContacts
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: page
        required: true
        in: query
        description: Page Number
        schema:
          default: 1
          type: number
      - name: limit
        required: true
        in: query
        description: Number of items to return
        schema:
          default: 50
          type: number
      - name: filter
        required: false
        in: query
        description: 'Supported items for filter: firstName, lastName, email, isPrimaryContact, isCCEmail, lastUpdatedAt. Date format for lastUpdatedAt: YYYY-MM-DD'
        schema:
          type: string
      responses:
        '200':
          description: Get all Customers by filter
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IntegratorsApiResponse'
                - properties:
                    payload:
                      allOf:
                      - $ref: '#/components/schemas/PaginatedResponseDTO'
                      - properties:
                          data:
                            type: array
                            items:
                              $ref: '#/components/schemas/ContactV3Dto'
                          limit:
                            type: number
                          totalItems:
                            type: number
                          currentPage:
                            type: number
        '404':
          description: Customer not found
        '500':
          description: Internal server error
      summary: List customer contacts
      tags:
      - Customers
  /v3/customers/{id}/address:
    post:
      operationId: IntegratorsApiCustomersController_createAddress
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertAddressV3Dto'
      responses:
        '200':
          description: Created address
        '400':
          description: Top level customers cannot be modified
        '404':
          description: Customer not found
        '500':
          description: Internal server error
      summary: Create customer address
      tags:
      - Customers
  /v3/customers/{id}/contacts/{contactId}:
    patch:
      operationId: IntegratorsApiCustomersController_updateContact
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: contactId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateContactV3Dto'
      responses:
        '200':
          description: Updated contact
        '400':
          description: Top level customers cannot be modified
        '404':
          description: Contact not found
        '500':
          description: Internal server error
      summary: Update customer contact
      tags:
      - Customers
  /v3/customers/{id}/external-ids:
    post:
      operationId: IntegratorsApiCustomersController_upsertCustomerExternalId
      parameters:
      - name: id
        required: true
        in: path
        description: Customer ID
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertCustomerExternalIdV3Dto'
      responses:
        '200':
          description: Customer external ID upserted successfully
          content:
            application/json:
              schema:
                properties:
                  payload:
                    $ref: '#/components/schemas/UpsertCustomerExternalIdV3Dto'
        '400':
          description: Bad request
        '404':
          description: Customer not found
      summary: Upsert customer external ID
      tags:
      - Customers
  /v3/customers/{id}/invoices/{invoiceId}/credit-memos:
    get:
      operationId: IntegratorsApiCustomersController_getCreditMemosByInvoice
      parameters:
      - name: id
        required: true
        in: path
        description: Customer ID
        schema:
          format: uuid
          type: string
      - name: invoiceId
        required: true
        in: path
        description: Invoice ID
        schema:
          format: uuid
          type: string
      responses:
        '200':
          description: Credit memos retrieved successfully
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IntegratorsApiResponse'
                - properties:
                    payload:
                      type: array
                      items:
                        $ref: '#/components/schemas/CreditMemoDto'
        '404':
          description: Credit memos for invoice not found
        '500':
          description: Internal server error - Failed to get credit memo by invoice
      summary: List invoice credit memos
      tags:
      - Customers
  /v3/customers/{id}/name:
    patch:
      operationId: IntegratorsApiCustomersController_updateCustomerName
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
              required:
              - name
      responses:
        '200':
          description: Updated customer name
        '400':
          description: Top level customers cannot be modified
        '404':
          description: Customer not found
        '500':
          description: Internal server error
      summary: Update customer name
      tags:
      - Customers
  /v3/customers/{id}/invoices/{invoiceId}/po:
    put:
      operationId: IntegratorsApiCustomersController_updateInvoicePO
      parameters:
      - name: id
        required: true
        in: path
        description: Customer ID
        schema:
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      - name: invoiceId
        required: true
        in: path
        description: Invoice ID
        schema:
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateInvoicePODto'
      responses:
        '200':
          description: Updated PO number
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IntegratorsApiResponse'
                - properties:
                    payload:
                      allOf:
                      - $ref: '#/components/schemas/UpdateInvoicePOResponseDto'
        '404':
          description: Customer not found or invoice not found
        '500':
          description: Internal server error
      summary: Update invoice PO number
      tags:
      - Customers
  /v3/customers/{id}/invoices/{invoiceId}/memo:
    put:
      operationId: IntegratorsApiCustomersController_updateInvoiceMemo
      parameters:
      - name: id
        required: true
        in: path
        description: Customer ID
        schema:
          format: uuid
          type: string
      - name: invoiceId
        required: true
        in: path
        description: Invoice ID
        schema:
          format: uuid
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateInvoiceMemoBodyDto'
      responses:
        '200':
          description: Updated memo successfully
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/IntegratorsApiResponse'
                - properties:
                    payload:
                      allOf:
                      - $ref: '#/components/schemas/UpdateInvoiceMemoResponseDto'
        '404':
          description: Customer not found or invoice not found
        '500':
          description: Internal server error
      summary: Update invoice memo
      tags:
      - Customers
components:
  schemas:
    CreatePaymentV3Dto:
      type: object
      properties:
        receivedAt:
          format: date-time
          type: string
          description: Date when payment was received
          example: '2023-01-01T00:00:00.000Z'
        method:
          type: string
          description: Payment method used
          enum:
          - CREDIT_CARD
          - ACH_DEBIT
          - ACH_CREDIT
          - CHECK
          - LINK
          example: CREDIT_CARD
        reference:
          type: string
          description: Payment reference number
          example: REF123456
      required:
      - receivedAt
    InvoiceExternalIdV3Dto:
      type: object
      properties:
        type:
          description: Type of external ID source
          example: NETSUITE
          allOf:
          - $ref: '#/components/schemas/ExternalIdSourceType'
        id:
          type: string
          description: External identifier value
          example: 123e4567-e89b-12d3-a456-426614174000
      required:
      - type
      - id
    CreditMemoItemDto:
      type: object
      properties:
        id:
          type: string
          description: Item ID
          example: 123e4567-e89b-12d3-a456-426614174000
        name:
          type: string
          description: Item name
          example: Product A
        externalId:
          type: string
          description: External ID
          example: EXT-123
      required:
      - id
      - name
    CreditMemoExternalIdDto:
      type: object
      properties:
        externalId:
          type: string
          description: External ID
          example: EXT-123
        sourceType:
          type: string
          description: Source type
          example: NETSUITE
      required:
      - externalId
      - sourceType
    CreditMemoErpClassDto:
      type: object
      properties:
        id:
          type: string
          description: ERP Class ID
          example: 123e4567-e89b-12d3-a456-426614174000
        name:
          type: string
          description: ERP Class name
          example: Revenue
      required:
      - id
      - name
    CustomerV3Dto:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the customer
          example: 123e4567-e89b-12d3-a456-426614174000
        name:
          type: string
          description: Preferred company name
          example: Acme Inc.
        parentCustomerId:
          type: string
          description: Parent Customer Id
          example: 123e4567-e89b-12d3-a456-426614174000
        defaultCurrency:
          type: string
          description: Default currency code for the customer, if omitted will default to USD
          example: USD
        primaryBillingContactName:
          type: string
          description: Name of primary billing contact
          example: John Doe
        primaryBillingContactEmail:
          type: string
          description: Email of primary billing contact
          example: john.doe@example.com
        secondaryBillingContacts:
          description: List of secondary billing contact emails
          example:
          - jane.doe@example.com
          - jim.doe@example.com
          type: array
          items:
            type: string
        billingAddress:
          description: Customer's billing address
          allOf:
          - $ref: '#/components/schemas/AddressV3Dto'
        shippingAddress:
          description: Customer's shipping address
          allOf:
          - $ref: '#/components/schemas/AddressV3Dto'
        externalIds:
          description: List of external identifiers
          example:
          - type: NETSUITE
            id: 123e4567-e89b-12d3-a456-426614174000
          type: array
          items:
            $ref: '#/components/schemas/ExternalIdV3Dto'
        lastUpdatedAt:
          type: string
          description: Timestamp of last update
          example: '2024-01-01T00:00:00.000Z'
        customFields:
          description: Customer's custom fields
          type: array
          items:
            type: string
        autoCharge:
          type: boolean
          description: Whether auto charge is enabled for the customer. If true and customer has a default payment method defined in their billing settings, that payment method will be autocharged
          example: true
        dunningDisabled:
          type: boolean
          description: 'Whether reminder emails (dunning) are disabled for this customer. When true, no automated payment reminder emails will be sent to this customer. Note: The initial invoice email is still sent even when this is true.'
          example: false
        customerTaxInfo:
          description: Customer tax information
          allOf:
          - $ref: '#/components/schemas/CustomerTaxInfoV3Dto'
      required:
      - i

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