QRmatik Gateway

Gateway development dashboard

App environment production
Agapay environment production
PHP 8.3.33
Database ok
Total transactions 1537
Pending 0
Success 43
Failed 1494
Last callback 2026-09-21 18:15:40
Failed jobs 756

Completed

41 done
  • [x]Single source routing structure
  • [x]GET /banks
  • [x]GET /demo
  • [x]POST /iframe/create
  • [x]GET /deposits/{request_id}
  • [x]POST /deposits/{request_id}/customer-input
  • [x]POST /webhooks/agapay
  • [x]Agapay API HMAC signature
  • [x]HttpClient IPv4 pinning
  • [x]Callback HMAC verification
  • [x]Database core and migration system
  • [x]Transactions, callback events and status history tables
  • [x]Repository layer
  • [x]Transaction record while creating iframe
  • [x]Callback idempotency
  • [x]GET /internal/test-tools
  • [x]POST /internal/test-tools/reset-transactions
  • [x]POST /internal/test-tools/reset-failed-jobs
  • [x]Status history recording
  • [x]GET /health and GET /health/ready
  • [x]Reconciliation worker
  • [x]Callback retry worker
  • [x]Logrotate and cron documentation
  • [x]Merchant Authentication
  • [x]GET /api/v1/profile
  • [x]GET /api/v1/banks
  • [x]POST /api/v1/deposits
  • [x]GET /api/v1/deposits/{request_id}
  • [x]POST /api/v1/deposits/{request_id}/customer-input
  • [x]GET /api/v1/transactions
  • [x]GET /api/v1/transactions/{request_id}
  • [x]Merchant Callback Delivery
  • [x]Merchant callback retry worker
  • [x]Merchant callback SSRF protection
  • [x]Rate limiting
  • [x]Rate limit cleanup worker
  • [x]CORS middleware
  • [x]Swagger / OpenAPI API Docs
  • [x]Production Release scripts and docs
  • [x]Final callback status flow
  • [x]Gateway-only API/webhook runtime

Remaining

0 pending

    Release steps

    Operations
    1. Run php private/bin/production-check.php in production
    2. Run php private/bin/release.php --check before release
    3. Enable /api-docs only with API_DOCS_ENABLED=true when needed

    Database status

    ok
    Migration
    009_demo_gateway_callbacks.sql
    Missing table
    0