Modo Passivo
A venda começa na maquininha (o operador passa o cartão). A Autorizou te notifica por
webhook quando ela cai, já com os dados do terminal. Você integra recebendo o evento.
Modo Ativo
A venda começa na sua aplicação (caixa, comanda, sistema de vendas). Você chama a
Autorizou informando o terminal e o valor; ela dispara a cobrança no aparelho e devolve o
resultado. Você integra chamando o endpoint.
Vocabulário
Terminal (maquininha)
Terminal (maquininha)
O aparelho físico. Cada terminal tem um
code (o identificador que liga a venda ao aparelho
certo), um serial_number e um model. É o code que você usa para iniciar uma venda (modo
ativo) e para conciliar (modo passivo).Vínculo com o recebedor
Vínculo com o recebedor
Um terminal é atribuído a um recebedor (a loja/clínica que opera o aparelho). Esse vínculo é a
fonte de verdade de quem recebe a venda daquele terminal: a divisão usa o recebedor vinculado
automaticamente. Você não informa recebedor na venda — o terminal resolve. A gestão de
inventário e vínculos é feita pela Autorizou; pela API você consome o resultado.
Identificador único e idempotência
Identificador único e idempotência
Toda venda presencial carrega um identificador único. A Autorizou registra cada venda uma só
vez por esse identificador: reenvio de webhook ou retry de rede não cria uma segunda venda.
No modo ativo, a idempotência é pela sua
Idempotency-Key. Faça o mesmo do seu lado —
deduplique sempre.Ambientes
| Ambiente | Base URL |
|---|---|
| Sandbox | https://pay.autorizou.dev/api/v1 |
| Produção | https://pay.autorizou.cloud/api/v1 |
Authorization: Bearer aut_... (a mesma das demais
integrações). A chave já escopa tudo ao seu lojista — você nunca envia merchant_id.
Modo Passivo — a venda começa na maquininha
O operador cobra direto no aparelho. Você não inicia nada: a Autorizou registra a venda e te notifica por webhook, com o blocopos. É o jeito mais simples de integrar — basta escutar os
eventos.
A venda dispara os eventos normais — payment.created e payment.authorized — só que o payload traz
o bloco pos. O contrato completo desse payload está em
Webhook de Venda no Terminal.
Configure o webhook e assine os eventos
Aponte o seu endpoint e assine, no mínimo,
payment.created e payment.authorized. Veja
Configuração de Webhooks.Reconheça a venda presencial
É a presença do bloco
pos que distingue a venda de maquininha de uma venda online.Deduplique e confirme o estado
O webhook é um gatilho: deduplique pelo
uuid e confirme com
GET /payments/{identifier} antes de agir sobre
dinheiro/estoque.Concilie pelo terminal e pela divisão
Use
pos.terminal.code para amarrar a venda ao aparelho e ao ponto de venda. O split para o
recebedor dono do terminal já acontece automaticamente e vem detalhado no bloco split do mesmo
payload — quem recebeu quanto, no centavo. Veja
Split realizado no retorno.Modo Ativo — a sua aplicação inicia a venda
Quem inicia a venda é a sua aplicação: você chama a Autorizou informando o terminal e o valor, ela dispara a cobrança no aparelho, o portador paga, e a mesma chamada devolve o resultado. O contrato completo (parâmetros, resposta, cabeçalho de idempotência) está em Criar Venda no Terminal.A máquina de estados
O coração do modo ativo é o ciclo de vida da venda. Trate cada estado explicitamente.| Estado | O que significa | O que a sua aplicação faz |
|---|---|---|
initiated | Venda criada e enviada ao terminal; aguardando o portador | Mostrar “insira/aproxime o cartão” |
approved | Pagamento aprovado | Concluir a venda; o webhook de pagamento chega em seguida |
declined | Pagamento recusado | Oferecer nova tentativa (nova Idempotency-Key) |
aborted | Cancelada antes de pagar (operador/portador desistiu) | Encerrar sem cobrança |
unknown | Não sabemos o resultado ainda — timeout ou queda | Consultar até resolver; nunca reenviar cego |
Estornos e contestações
Uma venda de maquininha pode ser desfeita como qualquer venda. O reverso chega pelos eventos normais de webhook — a origem presencial continua reconhecível pelo blocopos.
| Reverso | Evento que você recebe | Estado final |
|---|---|---|
| Cancelamento | payment.canceled | canceled |
| Reembolso total | payment.refunded | refunded |
| Reembolso parcial | payment.refunded | refunded_partially |
| Contestação (chargeback) | payment.chargeback_requested | chargeback |
Um estorno pode partir do próprio terminal (o operador estorna no aparelho), sem você pedir — a
Autorizou registra e te avisa igual. Em todo reverso a Autorizou mantém o extrato coerente: o valor
sai do saldo, o split é desfeito na proporção correta e nada “some”. Você só reflete o novo estado.
Checklist de “estou pronto”
Recebo
payment.created e payment.authorized e reconheço a venda de maquininha pelo bloco pos.Dedupliquei pelo
uuid da venda e pelo ID do evento.Confirmo o estado com
GET /payments/{identifier} antes de agir sobre dinheiro/estoque.Concilio pelo
pos.terminal.code.Trato reembolso, cancelamento e chargeback.
No modo ativo, envio
Idempotency-Key e trato o estado unknown (consultar, nunca reenviar cego).Referência da API: Criar Venda no Terminal ·
Consultar Venda no Terminal ·
Webhook de Venda no Terminal.