openapi: 3.0.1 info: title: Kintsugi Tax Address Validation Customers API description: REST API for the Kintsugi AI sales tax compliance and automation platform. Calculate US sales tax, VAT, and GST; sync transactions, products, and customers; validate addresses; manage physical nexus, exemptions, and registrations; and retrieve automated filings. Authentication uses an API key supplied in the x-api-key header together with the x-organization-id header identifying the organization. Endpoints, fields, and schemas in this document reflect Kintsugi's public API reference at docs.trykintsugi.com and are not exhaustive; consult the provider documentation for the authoritative contract. termsOfService: https://www.trykintsugi.com/terms-of-service contact: name: Kintsugi Support url: https://www.trykintsugi.com/support version: '1.0' servers: - url: https://api.trykintsugi.com/v1 description: Kintsugi production API base URL security: - ApiKeyAuth: [] OrganizationId: [] tags: - name: Customers description: Customer records and their transactions. paths: /customers: post: operationId: createCustomer tags: - Customers summary: Create a customer. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CustomerRequest' responses: '201': description: Customer created. content: application/json: schema: $ref: '#/components/schemas/Customer' get: operationId: getCustomers tags: - Customers summary: List customers. parameters: - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Size' responses: '200': description: A page of customers. content: application/json: schema: $ref: '#/components/schemas/CustomerPage' /customers/{id}: get: operationId: getCustomerById tags: - Customers summary: Get a customer by ID. parameters: - $ref: '#/components/parameters/Id' responses: '200': description: The requested customer. content: application/json: schema: $ref: '#/components/schemas/Customer' '404': $ref: '#/components/responses/NotFound' patch: operationId: updateCustomer tags: - Customers summary: Update a customer. parameters: - $ref: '#/components/parameters/Id' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CustomerRequest' responses: '200': description: Customer updated. content: application/json: schema: $ref: '#/components/schemas/Customer' /customers/external/{external_id}: get: operationId: getCustomerByExternalId tags: - Customers summary: Get a customer by external ID. parameters: - $ref: '#/components/parameters/ExternalId' responses: '200': description: The requested customer. content: application/json: schema: $ref: '#/components/schemas/Customer' '404': $ref: '#/components/responses/NotFound' components: schemas: Address: type: object properties: type: type: string enum: - SHIP_TO - BILL_TO street_1: type: string street_2: type: string city: type: string county: type: string state: type: string postal_code: type: string country: type: string full_address: type: string required: - postal_code - country CustomerPage: $ref: '#/components/schemas/Page' Customer: allOf: - $ref: '#/components/schemas/CustomerRequest' - type: object properties: id: type: string created_at: type: string format: date-time CustomerRequest: type: object properties: external_id: type: string name: type: string email: type: string addresses: type: array items: $ref: '#/components/schemas/Address' Page: type: object properties: items: type: array items: type: object total: type: integer page: type: integer size: type: integer pages: type: integer Error: type: object properties: detail: type: string status_code: type: integer parameters: Page: name: page in: query schema: type: integer default: 1 Size: name: size in: query schema: type: integer default: 50 ExternalId: name: external_id in: path required: true schema: type: string Id: name: id in: path required: true schema: type: string responses: NotFound: description: Resource not found. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: ApiKeyAuth: type: apiKey in: header name: x-api-key description: API key generated in the Kintsugi dashboard. OrganizationId: type: apiKey in: header name: x-organization-id description: Identifier of the organization the request acts on behalf of.