DocumentationStart here

AMI developer guide

Get started

Connect to recipient-side test evidence.

Build against the sandbox

AMI is an independent recipient-side payment testing service. Your institution can retrieve synthetic records in the sandbox after an AMI administrator approves your account and assigns an institution.

  • Create an account and verify your email.
  • Wait for review and institution assignment.
  • Create a sandbox key and keep it on your server.

Quickstart / list transactions

A real sandbox request

curl "$AMI_BASE_URL/api/sandbox/v1/transactions?scenario=all&limit=10" \
  -H "Authorization: Bearer $AMI_SANDBOX_KEY" \
  -H "X-AMI-Environment: sandbox"
Set the origin for your own environment; keys belong in server-side secrets, never client bundles.

API details

ResourceMethodPurpose
GET /api/sandbox/v1/transactions?scenario=all&limit=20GETList records. Add cursor=next_cursor to continue.
GET /api/sandbox/v1/transactions/:idGETRead one tenant-bound record
GET /api/sandbox/v1/transactions/:id/evidenceGETDownload the record’s PDF evidence

Transaction object

Recipient-side fields

Sandbox transaction field definitions
FieldMeaning and format
receiver_full_nameRecipient name observed in the test.
amount_expected / amount_receivedDecimal strings in major units, with currency as the payout currency.
currencyPayout currency code.
transaction_narrativeNarrative shown to the recipient, or null when not observed.
sender_name_receivedtrue, false, or null when not observed/recorded.
fx_rate / fx_base_currencyDecimal exchange rate quoted as payout currency per one unit of the base currency (USD).
fees_charged / fee_amountNullable observation; fee amount is a decimal string in payout currency.
sender_debited_at / beneficiary_received_atISO timestamps; sandbox fixtures use January 2026 dates.
delivery_time_secondsElapsed delivery duration in seconds.
evidencePDF media type, filename and evidence path; retrieve from the evidence endpoint.

Illustrative synthetic collection

{
  "object": "list",
  "environment": "sandbox",
  "synthetic": true,
  "data": [
    {
      "id": "tx_example_synthetic",
      "reference": "AMI-TEST-202601-01",
      "institution_id": "institution_scoped_by_key",
      "environment": "sandbox",
      "synthetic": true,
      "scenario": "verified",
      "country": "GH",
      "currency": "GHS",
      "receiver_full_name": "Ama Mensah",
      "amount_expected": "1250.00",
      "amount_received": "1250.00",
      "transaction_narrative": "January sandbox test",
      "sender_name_received": true,
      "fx_rate": "15.2500",
      "fx_base_currency": "USD",
      "fees_charged": false,
      "fee_amount": "0.00",
      "sender_debited_at": "2026-01-14T10:12:00.000Z",
      "beneficiary_received_at": "2026-01-14T10:12:42.000Z",
      "delivery_time_seconds": 42,
      "evidence": {
        "media_type": "application/pdf",
        "file_name": "sandbox-evidence.pdf",
        "path": "/api/sandbox/v1/transactions/tx_example_synthetic/evidence"
      }
    }
  ],
  "pagination": {
    "next_cursor": "next_cursor_from_response",
    "has_more": true
  }
}

Illustrative schema only. Record values are synthetic. The institution is resolved from the generated key; do not send institution IDs as request parameters.