Tabs Customers API
The Customers API from Tabs — 21 operation(s) for customers.
The Customers API from Tabs — 21 operation(s) for customers.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/tabs-customers-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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