Idempotência REST
#
Visão GeralA idempotência garante que não haverá duplicidade no envio de transações a partir do CARAT junto as Adquirentes/Emissores, uma vez que a solicitação da transação será realizada apenas uma única vez. Mesmo que uma solicitação idêntica seja enviada repetidamente em um intervalo de tempo específico, com este parâmetro (Idempotência) o CARAT irá validar se ela já foi processada. Se a transação já foi realizada e o CARAT já possui esta resposta (aprovada ou negada), ele não irá enviar outra solicitação, apenas informará o resultado do processamento anterior, dispensando assim a funcionalidade de consulta (via OrderID/ ou NIT). Se por qualquer motivo (timeout, etc) a transação não tenha sido processada, o CARAT irá então submetê-la novamente e obter uma resposta.
Por quê usar Idempotência:
Quando se trata de APIs transacionais de requisições únicas, a inclusão da chave de idempotência no cabeçalho se torna um requisito fundamental. Essa abordagem garante a segurança e confiabilidade das operações realizadas por meio de plataforma. Ao adotar essa prática, você evitará a ocorrência indesejada de duplicações, ao mesmo tempo em que aprimora a fluidez das transações. Esse procedimento resulta em uma experiência mais eficiente, tanto para o seu sistema quanto para os usuários finais.
Status finais
A idempotencia irá retornar o status atual da transação. Caso, no response tenha os retornos ERR e NEG as mesmas não devem ser retentadas com os mesmos idempotency_key pois trata-se de transacionais com status concluídos, e não sofrerão alterações de status nas retentativas de consulta. A próxima requisição deverá ser tratada como uma nova transação e um novo idempontency_key.
Status | Descrição |
---|---|
CON | Transação Confimada |
ERR | Erro de transação |
NEG | Transação negada |
Sugerimos o uso de idempotencia para situações em que há response com 502, e/ou transações com response de inválido/time-out.
Códigos de Resposta
Código | Descrição | Formato |
---|---|---|
1270 | Body da transação não corresponde ao original | < 80 AN |
1271 | Processando transação idempotente | < 80 AN |
1272 | Transação idempotente não é do mesmo tipo | < 80 AN |
1274 | A transação nit idempotente revertida não corresponde ao original | < 80 AN |