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

# Criar um Cliente

> Permite que você crie um cliente para a sua loja.

**Campo obrigatório**: Apenas o `email` é obrigatório para criar um cliente.

**Recomendado**: Embora os demais campos sejam opcionais, é altamente recomendado fornecer `name`, `cellphone`, `taxId` e `zipCode` quando disponíveis, pois essas informações melhoram a experiência do cliente no checkout e facilitam a identificação.


Cadastra um cliente para pré-preencher o checkout e reutilizar em várias cobranças.

<Card title="Obrigatório" horizontal>
  Só `data.email` é obrigatório. Inclua `name`, `taxId` e `cellphone` sempre que tiver — melhora a experiência no checkout.
</Card>

**Exemplo:**

```json theme={null}
{
  "data": {
    "email": "joao@exemplo.com",
    "name": "João Silva",
    "taxId": "12345678900",
    "cellphone": "+5511999999999",
    "zipCode": "01310-100"
  },
  "metadata": { "plano": "premium" }
}
```

<Tip title="Reuse o customerId" horizontal>
  Guarde o `data.id` retornado e passe como `customerId` ao criar checkouts — o cliente não precisa preencher os dados novamente.
</Tip>

<Note>
  Cliente é único por CPF/CNPJ. Se já existir um cadastro com o mesmo `taxId`, a API devolve o registro existente em vez de criar um duplicado.
</Note>


## OpenAPI

````yaml POST /customers/create
openapi: 3.1.0
info:
  title: API AbacatePay
  description: API para gerenciamento de cobranças e pagamentos usando o AbacatePay.
  version: 1.0.0
servers:
  - url: https://api.abacatepay.com/v2
    description: Único servidor para os ambientes de produção e sandbox.
security: []
paths:
  /customers/create:
    post:
      summary: Criar um cliente
      description: >
        Permite que você crie um cliente para a sua loja.


        **Campo obrigatório**: Apenas o `email` é obrigatório para criar um
        cliente.


        **Recomendado**: Embora os demais campos sejam opcionais, é altamente
        recomendado fornecer `name`, `cellphone`, `taxId` e `zipCode` quando
        disponíveis, pois essas informações melhoram a experiência do cliente no
        checkout e facilitam a identificação.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: >
                Os dados do seu cliente.


                **Obrigatório**: Apenas `email` é obrigatório.


                **Opcional mas recomendado**: `name`, `cellphone`, `taxId`,
                `zipCode` e `metadata` são opcionais, mas recomendados para
                melhor experiência do cliente.
              required:
                - email
              additionalProperties: false
              example:
                email: daniel_lima@abacatepay.com
              properties:
                email:
                  type: string
                  description: E-mail do cliente (obrigatório)
                  example: daniel_lima@abacatepay.com
                name:
                  type: string
                  description: Nome completo do seu cliente (opcional)
                  example: Daniel Lima
                  x-mint:
                    hidden: true
                cellphone:
                  type: string
                  description: Celular do cliente (opcional)
                  example: (11) 4002-8922
                  x-mint:
                    hidden: true
                taxId:
                  type: string
                  description: CPF ou CNPJ válido do cliente (opcional)
                  example: 123.456.789-01
                  x-mint:
                    hidden: true
                zipCode:
                  type: string
                  description: CEP do cliente (opcional)
                  example: 01310-100
                  x-mint:
                    hidden: true
                metadata:
                  type: object
                  description: >-
                    Metadados adicionais do cliente. Campo livre para a sua
                    aplicação (opcional)
                  additionalProperties: true
                  example:
                    source: landing-page
                    campaign: black-friday-2025
                  x-mint:
                    hidden: true
      responses:
        '200':
          description: Cliente criado com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Customer'
                  error:
                    type: string
                    nullable: true
                    example: null
                  success:
                    $ref: '#/components/schemas/Success'
        '401':
          description: Não autorizado. Falha na autenticação.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: >-
                      Mensagem de erro descrevendo o motivo da falha na
                      autenticação.
                    example: Token de autenticação inválido ou ausente.
      security:
        - bearerAuth: []
components:
  schemas:
    Customer:
      type: object
      description: Os dados do seu cliente.
      required:
        - id
        - devMode
        - name
        - cellphone
        - email
        - taxId
      additionalProperties: false
      properties:
        id:
          type: string
          description: Identificador único público do cliente
          example: cust_aebxkhDZNaMmJeKsy0AHS0FQ
        devMode:
          type: boolean
          description: Indica se o cliente foi criado em ambiente de testes.
          example: true
        name:
          type: string
          description: Nome completo do cliente
          example: Daniel Lima
        cellphone:
          type: string
          description: Celular do cliente
          example: (11) 4002-8922
        email:
          type: string
          description: E-mail do cliente
          example: daniel_lima@abacatepay.com
        taxId:
          type: string
          description: CPF ou CNPJ do cliente
          example: 123.456.789-01
        country:
          type: string
          description: País do cliente
          example: BR
        zipCode:
          type: string
          description: CEP do cliente
          example: 01310-100
        metadata:
          type: object
          description: Metadados adicionais do cliente
          additionalProperties: true
          example:
            source: landing-page
            campaign: black-friday-2025
    Success:
      type: boolean
      description: Se a requisição obteve sucesso ou não.
      example: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        Todas as requisições devem incluir sua chave de API no header
        Authorization usando o formato `Bearer <abacatepay-api-key>`. Sem esse
        header a requisição será rejeitada.


        Saiba mais sobre como criar e usar chaves de API na [documentação de
        autenticação](/pages/authentication).

````