> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.taxwire.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve customer

> Returns a single customer by its Taxwire `id`. Answers 404 for an unknown id, one owned by another organization, or one deleted in the Taxwire app.



## OpenAPI

````yaml GET /customers/{customer_id}
openapi: 3.1.0
info:
  title: Taxwire Public API
  version: 0.1.0
servers: []
security: []
paths:
  /customers/{customer_id}:
    get:
      tags:
        - Customers
      summary: Retrieve a Customer
      description: >-
        Returns a single customer by its Taxwire `id`. Answers 404 for an
        unknown id, one owned by another organization, or one deleted in the
        Taxwire app.
      operationId: get_customer_customers__customer_id__get
      parameters:
        - name: customer_id
          in: path
          required: true
          schema:
            type: string
            description: The customer's Taxwire `id` (a `cust_`-prefixed ULID).
            title: Customer Id
          description: The customer's Taxwire `id` (a `cust_`-prefixed ULID).
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerResource'
        '404':
          description: >-
            No customer with this `id` in your organization: it's unknown, owned
            by another organization, or deleted in the Taxwire app.
        '422':
          description: Validation Error - Invalid input data
          content:
            application/json:
              schema:
                properties:
                  detail:
                    items:
                      properties:
                        type:
                          type: string
                        loc:
                          items:
                            type: string
                          type: array
                        msg:
                          type: string
                        input:
                          oneOf:
                            - type: string
                            - type: number
                            - type: boolean
                            - type: 'null'
                      type: object
                    type: array
                type: object
              example:
                detail:
                  - type: string_type
                    loc:
                      - body
                      - line_items
                      - 0
                      - quantity
                    msg: Input should be a valid string
                    input: 1
        '429':
          description: Rate limit exceeded. Try again later.
          headers:
            Retry-After:
              schema:
                type: string
              description: Time in seconds until the rate limit resets
            X-RateLimit-Limit:
              schema:
                type: string
              description: The rate limit ceiling for the given request
            X-RateLimit-Remaining:
              schema:
                type: string
              description: The number of requests remaining in the time window
          content:
            application/json:
              schema:
                properties:
                  detail:
                    type: string
                    example: Rate limit exceeded
                type: object
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: string
              example: Internal Server Error
      security:
        - APIKeyHeader: []
        - HTTPBearer: []
components:
  schemas:
    CustomerResource:
      properties:
        id:
          type: string
          title: Id
          description: Taxwire's stable identifier for the customer.
          examples:
            - cust_01J9Z8Q4E7K2M3N4P5R6S7T8U9
        source_id:
          type: string
          title: Source Id
          description: >-
            Your identifier for the customer in the system it came from. Pass it
            as `customer.preset.id` on a calculation to name this customer.
          examples:
            - CUS-1042
            - td3106586:1042
        source:
          type: string
          enum:
            - business_central
            - campfire
            - maxio
            - monetizenow
            - netsuite
            - quickbooks
            - rillet
            - salesbricks
            - shopify
            - stripe
            - taxwire
            - xero
          description: >-
            The system the customer came from. `taxwire` for customers you send
            directly to this API.
          examples:
            - taxwire
            - netsuite
        source_account_id:
          type: string
          title: Source Account Id
          description: >-
            The account the customer belongs to within `source`, as Taxwire's
            customer sync stores it. `__default__` when the customer is stored
            without one: today that's every source except `quickbooks` and
            `xero`.
          examples:
            - __default__
            - '9130349283746'
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: The customer's display name.
          examples:
            - Acme Wholesale
        email:
          anyOf:
            - type: string
            - type: 'null'
          title: Email
          description: >-
            The customer's email. Not unique: several customers can share one
            inbox.
          examples:
            - ap@acme.example
        merged_into_customer_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Merged Into Customer Id
          description: >-
            Set when the source system merged this customer into another; the
            `id` of the surviving customer. Null otherwise.
          examples:
            - null
            - cust_01J9Z8Q4E7K2M3N4P5R6S7T8U9
        source_updated_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Source Updated At
          description: >-
            When the customer last changed in the source system, as reported by
            the sender. Null when unknown.
          examples:
            - '2026-09-14T19:58:12Z'
        created_at:
          type: string
          format: date-time
          title: Created At
          description: When Taxwire first stored the customer.
          examples:
            - '2026-09-14T20:00:00Z'
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: >-
            When the customer was last changed in Taxwire. Equals `created_at`
            until the first change.
          examples:
            - '2026-09-14T20:00:00Z'
      additionalProperties: false
      type: object
      required:
        - id
        - source_id
        - source
        - source_account_id
        - created_at
        - updated_at
      title: CustomerResource
      description: 'A customer: who is buying. Exemptions set in the app hang off it.'
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
    HTTPBearer:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.