Cria a compra e debita a conta. Assíncrono: response devolve
status inicial (PROCESSING); lifecycle final chega via webhook
(global_marketplace_recharge ou global_marketplace_voucher).
Lifecycle sucesso: PROCESSING → REQUESTED_PAYMENT →
AWAITING_CONFIRMATION → PURCHASED (UX terminal — voucher/recarga
liberados pro user) → REQUESTED_CONFIRMATION → APPROVED (ledger).
Lifecycle erro pré-débito: PROCESSING → DENIED (sem ajuste financeiro).
Lifecycle erro pós-débito: ... → AWAITING_CONFIRMATION → REVERSE →
REQUESTED_REVERSE → ROLLBACK (estorno automático na conta).
RECHARGE
merchandiseType=RECHARGE+phoneAreaCode(DDD) +phoneNumber.- Valide o DDD contra
allowed_area_codesdo merchandise (evita MKTA-001). amountdeve bater comprice.fixed_value.
VOUCHER
merchandiseType=VOUCHER(sem dados de telefone).- PIN/serial/recibo vêm no webhook quando status=PURCHASED, em
purchaseMetadata.pin/.serial/.receipt.
PIN
Header X-Account-Pin obrigatório (não no body — header é redacted em logs).
Idempotência (2 camadas)
idempotencyKey(body) ouIdempotency-Key(header) → vira o
customer_external_idenviado à Autra. Reenvio devolve o registro
existente (Autra também valida — MKTA-013).- Anti-duplo-débito RECHARGE: mesma conta + mesmo telefone nos
últimos 30s → devolve o registro existente (espelha MKTA-012 da Autra).
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
400MERCHANDISE_REQUIRED INVALID_TYPE INVALID_AMOUNT PHONE_REQUIRED INVALID_PHONE
422AMOUNT_MISMATCH (MKTA-003) ou DUPLICATE_TRANSACTION (MKTA-012).
