Tabs Customers API

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

OpenAPI Specification

tabs-customers-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Tabs External Billing Terms 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:
    UpdateCustomerCCFeesExemptionV3Dto:
      type: object
      properties:
        ccFeesExempt:
          type: boolean
          description: CC Fees Exemption updated
          example: true
      required:
      - ccFeesExempt
    CreditMemoExternalIdDto:
      type: object
      properties:
        externalId:
          type: string
          description: External ID
          example: EXT-123
        sourceType:
          type: string
          description: Source type
          example: NETSUITE
      required:
      - externalId
      - sourceType
    CreditMemoApplicationDto:
      type: object
      properties:
        id:
          type: string
          description: Application ID
          example: 123e4567-e89b-12d3-a456-426614174000
        creditMemoId:
          type: string
          description: Credit memo ID
          example: 123e4567-e89b-12d3-a456-426614174000
        invoiceId:
          type: string
          description: Invoice ID
          example: 123e4567-e89b-12d3-a456-426614174000
        amountApplied:
          type: number
          description: Amount applied
          example: 100
        invoiceNumber:
          type: string
          description: Invoice number
          example: INV-001
        invoicePrefix:
          type: string
          description: Invoice prefix
          example: INV
        appliedAt:
          format: date-time
          type: string
          description: Applied at
          example: '2023-01-01T00:00:00.000Z'
      required:
      - id
      - creditMemoId
      - invoiceId
      - amountApplied
      - invoiceNumber
      - invoicePrefix
      - appliedAt
    UpdateInvoicePODto:
      type: object
      properties:
        poNumber:
          type: string
          description: Purchase Order number for the invoice
          example: PO-12345
          maxLength: 30
      required:
      - poNumber
    UpdateContactV3Dto:
      type: object
      properties:
        firstName:
          type: string
          description: Contact First Name
          example: John
        lastName:
          type: string
          description: Contact Last Name
          example: Doe
        email:
          type: string
          description: Contact Email
          example: john.doe@example.com
        isPrimaryContact:
          type: boolean
          description: Is Primary Contact
          example: true
        isCCEmail:
          type: boolean
          description: Is CC Email
          example: false
    CreateContactV3Dto:
      type: object
      properties:
        firstName:
          type: string
          description: Contact First Name
          example: John
        lastName:
          type: string
          description: Contact Last Name
          example: Doe
        email:
          type: string
          description: Contact Email
          example: john.doe@example.com
      required:
      - email
    SendInvoiceDto:
      type: object
      properties:
        action:
          type: string
          description: Action to perform
          example: SEND
          enum:
          - SEND
          - MARK_INVOICE_TO_SENT_OFF_TABS
          - MARK_INVOICE_AS_PENDING
          - MARK_INVOICE_AS_SCHEDULED
          - MARK_INVOICE_AS_VOID
          - SEND_REMINDER_EMAIL
        sendToErp:
          type: boolean
          description: Send the invoice to the ERP
          example: true
        sendToCustomer:
          type: boolean
          description: Send the invoice to the customer
          example: true
        overrideInvoiceDate:
          type: boolean
          description: Override and update the invoice issue date to today. The due date will also be recalculated to preserve the original net payment terms. For example, if an invoice has Net 30 terms, the due date will be set to 30 days after today.
          example: true
      required:
      - action
      - sendToErp
      - sendToCustomer
    ContactV3Dto:
      type: object
      properties:
        id:
          type: string
          description: Contact ID
          example: 123e4567-e89b-12d3-a456-426614174000
        firstName:
          type: string
          description: Contact First Name
          example: John
        lastName:
          type: string
          description: Contact Last Name
          example: Doe
        email:
          type: string
          description: Contact Email
          example: john.doe@example.com
        isPrimaryContact:
          type: boolean
          description: Is Primary Contact
          example: true
        isCCEmail:
          type: boolean
          description: Is CC Email
          example: false
      required:
      - id
      - email
      - isPrimaryContact
      - isCCEmail
    CreateCustomerV3Dto:
      type: object
      properties:
        name:
          type: string
        

# --- 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