Como usar a API para criar um cliente?
Para criar um cliente, você utiliza o endpoint /api/v1/customer da API.
Você pode acessar aqui a documentação referente a esse endpoint.
Os campos obrigatórios para criar um cliente são os seguintes:
name: Nome do cliente.
E além do nome é necessário enviar um desses três dados:
taxID: CPF ou CNPJ do cliente.email: Email do cliente.phone: Celular do cliente. (començando com 55 e código de área)
Exemplo
O body da sua requisição será semelhante a um destes exemplos:
Exemplo com taxID
{
  "name": "Dan",
  "taxID": "360.***.***-72"
}
Exemplo com email
{
  "name": "Dan",
  "email": "dan@gmail.com"
}
Exemplo com telefone
{
  "name": "Dan",
  "phone": "554899..."
}
Após efetuar a requisição, se tudo ocorreu bem, o status code da requisição será 2xx e no body da resposta, retornaremos o cliente criado.
Retornarmeros a seguinte resposta de exemplo:
{
  "customer": {
    "name": "NOME DO CLIENTE",
    "taxID": { "taxID": "360...", "type": "BR:CPF" },
    "correlationID": "d1d46bbd-b010-4beb-b59e-cecf824efb43"
  }
}
Exemplos em código
- Shell + cURL
 - JavaScript + Fetch
 
  curl 'https://api.openpix.com.br/api/v1/customer' -X POST \
      -H "Accept: application/json" \
      -H "Content-Type: application/json" \
      -H "user-agent: node-fetch" \
      --data-binary '{ "name": "Dan", "email": "dan@gmail.com" }'
fetch('https://api.openpix.com.br/api/v1/customer', {
  method: 'POST',
  body: JSON.stringify({ name: 'Dan', email: 'dan@gmail.com' }),
  headers: {
    Authorization: 'AUTHORIZATION',
    'Content-Type': 'application/json',
  },
}).then((res) => res.json());
Como usar a API para criar um cliente com endereço?
Ao criar um cliente, é possível também adicionar um endereço.
Para criar cobranças que tenham vencimento, multa e juros, é necessário que o cliente sendo cobrado tenha um endereço cadastrado, assim como seu taxID (CPF/CNPJ), eu vou assumir este caso de uso para o exemplo a seguir.
Então, os campos obrigatórios são:
name: Nome do cliente.taxID: CPF ou CNPJ do cliente.address: Endereço do cliente.
Você pode encontrar documentação a respeito da modelagem do objeto de endereço aqui.
Exemplo
O body da requisição, com os dados de endereço adicionados fica semelhante à esta:
{
  "name": "Ana",
  "taxID": "672.***.***-51",
  "address": {
    "zipcode": "137...",
    "street": "R...",
    "number": "15",
    "neighborhood": "Centro",
    "city": "S...",
    "state": "SP",
    "complement": "Casa"
  }
}
Após efetuar a requisição, se tudo ocorreu bem, o status code da requisição será 2xx e no body da resposta, retornaremos o cliente criado.
Retornarmeros a seguinte resposta de exemplo:
{
  "customer": {
    "name": "ana",
    "correlationID": "6ffa...",
    "address": {
      "zipcode": "137...",
      "street": "R...",
      "number": "15",
      "neighborhood": "Centro",
      "city": "S...",
      "state": "SP",
      "complement": "Casa"
    },
    "taxID": { "taxID": "67...", "type": "BR:CPF" }
  }
}
Exemplos em código
- Shell + cURL
 - JavaScript + Fetch
 
  curl 'https://api.openpix.com.br/api/v1/customer' -X POST \
      -H "Accept: application/json" \
      -H "Content-Type: application/json" \
      -H "user-agent: node-fetch" \
      --data-binary '{"name": "Ana", "taxID": "672.***.***-51", "address": {
        "zipcode": "137...", "street": "R...", "number": "15",
        "neighborhood": "Centro", "city": "S...", "state": "SP",
        "complement": "Casa" } }'
fetch('https://api.openpix.com.br/api/v1/customer', {
  method: 'POST',
  body: JSON.stringify({
    name: 'Ana',
    taxID: '672.***.***-51',
    address: {
      zipcode: '137...',
      street: 'R...',
      number: '15',
      neighborhood: 'Centro',
      city: 'S...',
      state: 'SP',
      complement: 'Casa',
    },
  }),
  headers: {
    Authorization: 'AUTHORIZATION',
    'Content-Type': 'application/json',
  },
}).then((res) => res.json());