Carga de clientes por CNPJ
Atualiza em lote situação, grupos de usuários e formas de pagamento de clientes identificados pelo CNPJ.
Esta é a rota que um ERP usa para dizer à loja "este cliente foi aprovado, está no grupo Atacado e só pode pagar com boleto e PIX". Cada item do corpo identifica o cliente pelo CNPJ, e a plataforma localiza todos os usuários com esse CNPJ e aplica as mudanças.
O corpo pode ser um objeto ou um vetor de objetos. Por item, nesta ordem: (1) muda a situação do usuário, (2) coloca-o nos grupos informados, (3) substitui a lista de formas de pagamento permitidas. Cada parte só roda se o item a traz.
Itens que não puderam ser aplicados (usuário não encontrado, grupo ou forma de pagamento desconhecidos, situação inválida) não derrubam a chamada: aparecem em skipped, e o status HTTP vira 207 em vez de 200.
/api/v1.0/customerAdminAtualizar clientes em lote pelo CNPJ
Corpo da requisição
CNPJstringobrigatórioskipped).statusstringADPactivedisabledpendingusergroupsarrayusergroups[].codestringcode vazio é ignorado.usergroups[].statusstringpadrão: AA.paymentsarraypayments[].codestringslug ou o provedor, sem diferenciar maiúsculas.payments[].statusstringpadrão: AA (permitida) ou D (bloqueada). Aceita também active/disabled, 1/0, Y/N. Vazio ou texto não reconhecido vale A (permitida), então confira a grafia./api/customerAdminMesma operação, caminho alternativo
Mesmo comportamento, parâmetros e resposta de POST /api/v1.0/customer. Use este caminho se o seu cliente já foi escrito para ele.
Exemplo de requisição
curl -X POST "$BASE_URL/api/v1.0/customer" \
-u "$EMAIL:$API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"CNPJ": "11222333000181",
"status": "A",
"usergroups": [
{
"code": "Atacado",
"status": "A"
}
],
"payments": [
{
"code": "boleto",
"status": "A"
},
{
"code": "pix",
"status": "A"
}
]
}
]'Resposta
{
"processed": 1,
"total": 1,
"payments_applied": 2,
"skipped": null
}{
"processed": 0,
"total": 2,
"payments_applied": 0,
"skipped": [{ "cnpj": "00000000000191", "reason": "user_not_found" }]
}Campos da resposta
processedintegertotalintegerpayments_appliedintegerskippedarraynull quando nada foi pulado. Cada elemento tem cnpj e reason (user_not_found, usergroup_code_not_found, payment_code_not_found, status_update_failed: ..., status_read_after_write_failed: ..., usergroups_lookup_failed: ..., usergroup_update_failed: ..., ou a mensagem de erro de uma falha ao gravar os pagamentos), mais code ou user_id quando aplicável.Erros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 401 | Sem credencial. | {"status":401,"message":"Authentication required. Use HTTP Basic with email:api_key or Bearer <jwt>."} |
| 401 | E-mail ou chave de API inválidos. | {"status":401,"message":"Invalid credentials"} |
| 403 | A credencial é válida, mas o usuário não é administrador. | {"status":403,"message":"Forbidden: admin scope required"} |
| 400 | Corpo que não é JSON, ou que não é objeto nem vetor de objetos. | {"status":400,"message":"invalid request body"} |
| 207 | Sucesso parcial: veja skipped. | {"payments_applied":0,"processed":0,"skipped":[{"cnpj":"00000000000191","reason":"user_not_found"}],"total":2} |