VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API legada/Guia rápido/Clientes

Sincronização por CNPJ

Atualize em lote status, grupos e formas de pagamento de clientes identificados pelo CNPJ, a chamada que um ERP usa para refletir a carteira comercial.

Muitas empresas mantêm no ERP a regra comercial de cada cliente: se está liberado ou bloqueado, a qual tabela de preços (grupo) pertence e quais formas de pagamento pode usar. Esta rota recebe essa foto do ERP, identificando cada cliente pelo CNPJ, e a aplica de uma vez: status da conta, grupos de usuários e regras de pagamento.

A rota é POST /api/v1.0/customers, que também responde em /api/customers (os apelidos no singular /customer também funcionam). Não cria clientes: o cliente já precisa existir com aquele CNPJ (Criar cliente).

Age em todas as contas do CNPJ e a regra de pagamento é substituída
  1. Como várias contas podem ter o mesmo CNPJ (matriz, filiais, compradores da mesma empresa), a chamada se aplica a todas elas.
  2. As formas de pagamento enviadas substituem a regra anterior da conta: o que não estiver na lista é removido. Se a lista tem uma forma com A, o cliente passa a ver só ela (veja Crédito e pagamento).
  3. Para não mexer em pagamentos, omita payments.
POST/api/v1.0/customersAdmin

Atualizar clientes em lote por CNPJ

O corpo pode ser um objeto ou uma lista de objetos, um por cliente. Cada chave é opcional, exceto CNPJ. Itens sem CNPJ são ignorados em silêncio.

Corpo da requisição (cada cliente)

CNPJstringobrigatório
CNPJ do cliente, com ou sem máscara. Procura as contas que têm esse documento.
statusstring
ADP
Muda o status de todas as contas do CNPJ (letra ou palavra active, disabled, pending). Também encerra as sessões delas.
usergroupsarray

Grupos a vincular. Um grupo que não existe é pulado e registrado em skipped.

codestringobrigatório
Nome do grupo (sem diferenciar maiúsculas) ou o id do grupo.
statusstringpadrão: A
APFD
Status do vínculo. F desfaz o vínculo (veja Vínculo com grupos). Padrão: A.
paymentsarray

Formas de pagamento permitidas (A) ou bloqueadas (D). Substitui a regra existente das contas.

codestringobrigatório
Código da forma de pagamento (pix, boleto, credit_card).
statusstringpadrão: A
AD
A libera, D bloqueia.

Exemplo de requisição

bash
curl -u "$EMAIL:$API_KEY" -X POST "$BASE_URL/api/v1.0/customers" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "CNPJ": "11.222.333/0001-81",
      "status": "A",
      "usergroups": [{"code": "Atacado", "status": "A"}],
      "payments": [{"code": "pix", "status": "A"}, {"code": "boleto", "status": "A"}]
    },
    {"CNPJ": "45.723.174/0001-10", "status": "D"}
  ]'

Resposta

200Tudo aplicado
json
{ "processed": 2, "total": 2, "payments_applied": 1, "skipped": null }
207Aplicado com pendências
json
{
  "processed": 1,
  "total": 2,
  "payments_applied": 1,
  "skipped": [
    { "cnpj": "11.222.333/0001-81", "code": "Inexistente", "reason": "usergroup_code_not_found" },
    { "cnpj": "45.723.174/0001-10", "reason": "user_not_found" }
  ]
}

Campos da resposta

processedinteger
Quantos itens da lista tiveram ao menos uma conta encontrada. Um item com grupo desconhecido ainda conta como processado (o resto dele foi aplicado).
totalinteger
Quantos itens foram enviados.
payments_appliedinteger
Quantas contas tiveram a regra de pagamento gravada (não é a quantidade de formas).
skippedarray
O que não pôde ser aplicado, com cnpj, o motivo em reason e, quando cabe, user_id ou code. null se nada foi pulado.
skipped[].reasonstring
user_not_found (nenhuma conta com o CNPJ), usergroup_code_not_found, payment_code_not_found, status_update_failed: ..., usergroup_update_failed: ....

Erros

StatusQuandoCorpo
207Parte do pedido não foi aplicadaCorpo acima, com skipped preenchido. Não é erro de rede: leia skipped.
400Corpo que não é JSON{"message":"invalid request body","status":400}
401Sem credenciais ou chave inválida{"message":"Invalid credentials","status":401}
403Usuário que não é administrador{"message":"Forbidden: admin scope required","status":403}
Idempotente por natureza

Reenviar o mesmo lote produz o mesmo estado final (status, vínculo e regra de pagamento são gravados, não somados). Isso torna seguro repetir depois de um timeout.

Qual o próximo passo para conferir

Depois do lote, confira um cliente com Consultar cliente (status e grupos). As formas de pagamento aplicadas aparecem no checkout do cliente e são contadas em payments_applied (veja Crédito e pagamento para o efeito de cada regra).

Veja também

  • Crédito e pagamento
  • Vínculo com grupos
  • Listar clientes
Anterior
Crédito e pagamento
Próxima
Pedidos e carrinho
Nesta página
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também