---
agentTools:
  projectIndex: https://docs.ninepay.com.br/llms.txt
  projectSearch: https://docs.ninepay.com.br/agentSearch?query=term1%20term2
---

# Criar um cliente e cobrar no PIX

Cadastre o cliente com POST /customers e gere uma cobrança PIX para ele com POST /payments.

## Aponte para o sandbox

> Linhas destacadas: 1-6

Todas as chamadas de teste vão para `https://api.sandbox.cefispay.com.br/api/v1`, com a chave de sandbox (prefixo `sk_hmlg_`) no header `Authorization: Bearer`. Guarde a chave em variável de ambiente e chame a API só do seu servidor.

## Cadastre o cliente

> Linhas destacadas: 8-18

`name` e `email` são obrigatórios; CPF (ou CNPJ) ajuda a identificar o pagador. Guarde o `id` retornado junto do usuário no seu sistema, para não criar o mesmo cliente duas vezes.

Se depois for cobrar no cartão, o cadastro também precisa de `phone`, `cep` e `number`.

## Crie a cobrança PIX

> Linhas destacadas: 20-30

Envie `method: "pix"`, o cliente e o valor em centavos. O `due_date` (`AAAA-MM-DD`) define o vencimento do PIX.

Para emitir um boleto, troque o `method` por `billet`: o `due_date` passa a ser obrigatório e a resposta traz também o `invoice_url`.

## Use o id e o uuid

> Linhas destacadas: 31-32

Use o `id` nas rotas autenticadas, como `GET /payments/{id}`, e o `uuid` no que é público, como o [checkout embutido](/docs/checkout-embutido). Para saber quando o cliente pagou, escute o webhook `payment.approved` (veja a recipe [Receber e validar webhooks](/recipes/receber-e-validar-webhooks)).

## Código

```js Node.js
const BASE_URL = 'https://api.sandbox.cefispay.com.br/api/v1';
const headers = {
  Authorization: `Bearer ${process.env.NINEPAY_TOKEN}`,
  'Content-Type': 'application/json',
  Accept: 'application/json',
};

// 1. Cadastre o cliente
const customerRes = await fetch(`${BASE_URL}/customers`, {
  method: 'POST',
  headers,
  body: JSON.stringify({
    name: 'Maria Souza',
    email: 'maria@exemplo.com.br',
    cpf: '13690958725',
  }),
});
const customer = await customerRes.json();

// 2. Crie a cobrança PIX para esse cliente
const paymentRes = await fetch(`${BASE_URL}/payments`, {
  method: 'POST',
  headers,
  body: JSON.stringify({
    method: 'pix',
    customer: { id: customer.id },
    value: 5000, // R$ 50,00, sempre em centavos
    due_date: '2026-11-10',
  }),
});
const { payment } = await paymentRes.json();
console.log(payment.id, payment.uuid);
```

## Resposta

```json
{
  "customer": {
    "id": 315968,
    "name": "Maria Souza",
    "email": "maria@exemplo.com.br",
    "cpf": "13690958725"
  },
  "payment": {
    "id": 1470491,
    "uuid": "6f1c1a52-1d7e-4f43-a7a4-0a5a2b1c9e10",
    "value": 5000,
    "due_date": "2026-11-10T03:00:00.000000Z"
  }
}
```
