Authenticated payment callback
- Bank-code-scoped callback URL
- Durable receipt before acknowledgement
- Duplicate-safe event processing
- Mismatch quarantine and support reference
- Asynchronous ledger posting
BANK INTEGRATION · MMQR
AutoTaxi publishes the callback semantics and the capabilities it requires. The selected bank supplies the exact Create QR, inquiry, finality, reversal and settlement wire profile.
Sandbox/test profile only
Production enablement: OFF
Two directions, two independently reviewable responsibilities.
The URL is stable; the bank-specific wire profile is versioned separately.
POST https://sandbox-api.autotaxi.example/api/integrations/v1/{mmqrBankCode}/mmqr/callbackInvalid authentication or replay never receives a success acknowledgement.
PROCESSING/EVENT_RECEIVED or QUARANTINED/EVENT_QUARANTINED; quarantine never moves money.
Return the original ack_id and received_at with DUPLICATE/EVENT_DUPLICATE; no second credit.
Conflict escalates; throttling/outage retries the identical event. A receipt ACK never means final wallet credit.
1.0RequiredMMQR_PAYMENT_STATUS_CHANGED or MMQR_PAYMENT_REVERSEDRequiredPENDING, SUCCEEDED, FAILED, EXPIRED, UNKNOWN or REVERSED with explicit finalityRequiredThese are capability requirements, not invented bank endpoints.
Bank success and wallet credit are separate durable states.
QR_CREATION_UNKNOWN: query the original reference; never create a second QR blindly.
PAID_NOT_CREDITED: retain provider truth and retry the one permitted ledger posting.
REVERSAL: preserve the original journal and create one linked recovery journal.
UNMAPPED STATUS: quarantine; never guess it means success.
Exact algorithm and certificate details are frozen bilaterally before UAT.
Import, review, annotate and return the mapping worksheet during onboarding.