Skip to content

TECHNICAL GUIDE / A2A

A2A payment status, webhooks and reconciliation

A reliable operating model for bank-direct payments: state machine, idempotent webhooks, retry queue, references, refunds and daily reconciliation.

Last expert review
30 July 2026
Reviewed by
FoxPay Product & Compliance
Server-side truthSTATUS
01
StateExplicit transitions and terminal states
MODEL
02
WebhookSignature, idempotency and persistence
VERIFY
03
RetryBackoff, dead letter and reprocessing
CONTROL
04
ReconciliationMatch payment, order and payout
MATCH
REVIEW-IDSEO-2026-07 / EN

01State model

Model states explicitly, not implicitly

01

Created

Payment exists but bank authorisation is not confirmed.

02

Pending

The outcome is open; fulfilment remains blocked or deliberately controlled.

03

Paid

Server-confirmed terminal state for order release.

04

Failed/expired

Terminal non-payment; a retry receives a new reference.

02Webhooks

Make every event safe and effective once

01

Signature verification

Validate raw body, timestamp and signature using the documented process.

02

Idempotency key

Persist the event ID and acknowledge duplicate delivery without side effects.

03

Acknowledge first

Respond quickly after durable persistence and run heavy work asynchronously.

04

Out of order

Validate transitions because events can arrive late.

03Reconciliation

Daily matching as a controlled process

01

Three references

Store merchant order, FoxPay payment and payout/settlement separately.

02

Differences

Classify missing, duplicate, mismatched or long-pending payments.

03

Ownership

Technical and financial differences have named owners.

04

Audit trail

Record status change, event, decision and correction traceably.

04Workflow

Webhook processing

A robust handler separates acceptance, persistence and business processing.

  1. 01

    Receive

    Capture the raw request and bounded metadata.

  2. 02

    Verify

    Check signature, age and allowed event type.

  3. 03

    Deduplicate

    Persist the event ID atomically.

  4. 04

    Process

    Apply the state transition idempotently.

  5. 05

    Reconcile

    Feed differences into monitoring and daily reconciliation.

05Evidence

Failure and retry matrix

Not every failure should be handled in the same way.

FailureResponseGoal
TimeoutRetry with backoffDelivery
DuplicateSuccess without side effectIdempotency
Invalid signatureReject + alertSecurity
Invalid transitionDead letter + reviewCorrection

Logs must not contain secrets or unnecessary personal payment data.

06FAQ

Frequently asked questions

Answers for the current, expert-reviewed scope.

Why are webhooks delivered more than once?

At-least-once delivery protects against lost events. The receiver must therefore be idempotent.

Can the browser release the order?

No. The browser may show a preliminary state; the server-confirmed payment controls fulfilment.

How often should reconciliation run?

Frequency depends on volume and operating risk. Daily automated matching plus timely exception handling is a reliable baseline.