Numerar uma venda
A requisição é a mesma para os dois países —mesmos campos, mesma ordem—; o que muda é o que cada provedor usa e o que devolve emdocument. Os corpos abaixo estão reduzidos ao que
é preciso para ler o exemplo; a requisição completa, campo a campo, está no
contrato.
- Equador (EC) — SRI
- Colômbia (CO) — DIAN
O que enviamos
storeFiscalConfig.metadata vai vazio: no Equador o estabelecimento e o ponto de emissão
você resolve do seu lado, no seu catálogo, a partir de store.code e device.uid.O que o provedor devolveu
documentfala equatoriano.claveAcceso,secuencial,ambiente— os nomes do SRI, não uma tradução. E não há campos de outros países: ocufecolombiano simplesmente não existe aqui.- O número visível chega pronto em
numeroComprobante(005-004-000000052). Quem o monta é você, que conhece a regra —art. 18 do Regulamento— e o FIRE o imprime tal como veio, sem reformatar. As três partes continuam trafegando à parte, como o SRI as define, mas servem para conciliar: ninguém volta a juntá-las. graphic.qrcoincide comdocument.claveAcceso. No Equador é assim, e a redundância é deliberada: a alternativa é o ponto de venda ter de saber o que se codifica em cada país.ambiente: "2"é homologação — no SRI. Na DIAN o2é o contrário; veja a aba da Colômbia.
accountId, nem vendorId —o tenant
sai da API key—, nem códigos do fisco, nem referência ao catálogo do provedor.
E duas coisas comuns aos dois países:
authorizationModeeissuedAtficam na raiz, fora dedocument: são comuns a todos os países, então não pertencem ao bloco do país.status: "INVOICED", não"PENDING". Recém-numerado, o documento está sempre pendente de autorização — é a condição normal, não um estado a informar.
Quando falha
A mesma requisição, com a loja fora do catálogo do provedor
A mesma requisição, com algo quebrado do seu lado
Faltar configuração NÃO entra aqui. Uma loja sem identidade fiscal, sem resolução de
numeração ou sem chave técnica vai falhar igual daqui a uma semana: isso é o
422 acima, com
retryable: false. O 5xx é só para o que pode voltar a funcionar sozinho mais tarde.O que fazemos com cada resposta
O estado que o FIRE expõe aos seus canais é derivado do que o provedor devolve. O provedor não conhece esses estados nem precisa emiti-los:PENDING não pode vir do provedor por definição: dizê-lo implicaria ter
respondido. É o estado de “não houve resposta”, e é o mais delicado — o provedor pode
ter numerado e consumido um sequencial sem que fiquemos sabendo.Por isso a sua deduplicação tem que ser por orderCode: a retentativa chega com o mesmo
orderCode e deve devolver o mesmo documento com reused: true, em vez de numerar outro.
