{
    "variable": [
        {
            "id": "baseUrl",
            "key": "baseUrl",
            "type": "string",
            "name": "string",
            "value": "https:\/\/api.statapay.com"
        }
    ],
    "info": {
        "name": "StataPay Engine API Documentation",
        "_postman_id": "6e7a2ab7-1571-48f5-bb1e-be8af4b678c8",
        "description": "High-performance Mobile Money & Card payment gateway engine for Zambia (MTN Mobile Money, Airtel Money, Zamtel Kwacha, and Card Checkout).",
        "schema": "https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json"
    },
    "item": [
        {
            "name": "Wallets",
            "description": "",
            "item": [
                {
                    "name": "Get Merchant Wallet Balances & Total",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/balance",
                            "query": [
                                {
                                    "key": "environment",
                                    "value": "sandbox",
                                    "description": "Optional environment filter (`sandbox` or `live`). Defaults to the environment of your API key.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/balance?environment=sandbox"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Retrieve the real-time available and pending balance breakdown for all wallets belonging to the authenticated merchant, along with the calculated aggregate totals."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"status\": \"success\",\n  \"data\": {\n    \"client_id\": 1,\n    \"merchant_name\": \"Acme Retail Zambia\",\n    \"environment\": \"sandbox\",\n    \"currency\": \"ZMW\",\n    \"total_available_balance\": \"1470.00\",\n    \"total_pending_balance\": \"0.00\",\n    \"total_balance\": \"1470.00\",\n    \"wallets_count\": 2,\n    \"wallets\": [\n      {\n        \"wallet_id\": \"wlt_test_01jc2x8k9m4p5q6r7s8t9v0w1x\",\n        \"name\": \"Main Store Wallet\",\n        \"environment\": \"sandbox\",\n        \"currency\": \"ZMW\",\n        \"status\": \"active\",\n        \"available_balance\": \"1000.00\",\n        \"pending_balance\": \"0.00\",\n        \"total_balance\": \"1000.00\",\n        \"is_current_wallet\": true,\n        \"created_at\": \"2026-11-06T10:00:00.000000Z\"\n      },\n      {\n        \"wallet_id\": \"wlt_test_01jc2x9y8b7c6d5e4f3g2h1j0k\",\n        \"name\": \"Secondary Sandbox Wallet\",\n        \"environment\": \"sandbox\",\n        \"currency\": \"ZMW\",\n        \"status\": \"active\",\n        \"available_balance\": \"470.00\",\n        \"pending_balance\": \"0.00\",\n        \"total_balance\": \"470.00\",\n        \"is_current_wallet\": false,\n        \"created_at\": \"2026-11-06T10:05:00.000000Z\"\n      }\n    ]\n  }\n}",
                            "name": "Success"
                        }
                    ]
                },
                {
                    "name": "Get Merchant Wallet Balances & Total",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/wallets\/balance",
                            "query": [
                                {
                                    "key": "environment",
                                    "value": "sandbox",
                                    "description": "Optional environment filter (`sandbox` or `live`). Defaults to the environment of your API key.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/wallets\/balance?environment=sandbox"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Retrieve the real-time available and pending balance breakdown for all wallets belonging to the authenticated merchant, along with the calculated aggregate totals."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"status\": \"success\",\n  \"data\": {\n    \"client_id\": 1,\n    \"merchant_name\": \"Acme Retail Zambia\",\n    \"environment\": \"sandbox\",\n    \"currency\": \"ZMW\",\n    \"total_available_balance\": \"1470.00\",\n    \"total_pending_balance\": \"0.00\",\n    \"total_balance\": \"1470.00\",\n    \"wallets_count\": 2,\n    \"wallets\": [\n      {\n        \"wallet_id\": \"wlt_test_01jc2x8k9m4p5q6r7s8t9v0w1x\",\n        \"name\": \"Main Store Wallet\",\n        \"environment\": \"sandbox\",\n        \"currency\": \"ZMW\",\n        \"status\": \"active\",\n        \"available_balance\": \"1000.00\",\n        \"pending_balance\": \"0.00\",\n        \"total_balance\": \"1000.00\",\n        \"is_current_wallet\": true,\n        \"created_at\": \"2026-11-06T10:00:00.000000Z\"\n      },\n      {\n        \"wallet_id\": \"wlt_test_01jc2x9y8b7c6d5e4f3g2h1j0k\",\n        \"name\": \"Secondary Sandbox Wallet\",\n        \"environment\": \"sandbox\",\n        \"currency\": \"ZMW\",\n        \"status\": \"active\",\n        \"available_balance\": \"470.00\",\n        \"pending_balance\": \"0.00\",\n        \"total_balance\": \"470.00\",\n        \"is_current_wallet\": false,\n        \"created_at\": \"2026-11-06T10:05:00.000000Z\"\n      }\n    ]\n  }\n}",
                            "name": "Success"
                        }
                    ]
                }
            ]
        },
        {
            "name": "Collections",
            "description": "\nAPIs for initiating incoming payments via Mobile Money (MTN MoMo, Airtel Money, Zamtel Kwacha) and Card checkout.",
            "item": [
                {
                    "name": "Initiate a Collection (USSD Push \/ Card Session)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/collections",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/collections"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Idempotency-Key",
                                "value": "string required Unique client-generated key (up to 128 chars) to prevent duplicate charges. Example: order-1042-uuid"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"rail\":\"mtn\",\"amount\":150,\"currency\":\"ZMW\",\"msisdn\":\"0961234567\",\"reference\":\"ORD-987654\",\"description\":\"Order #987654 Payment\",\"return_url\":\"https:\\\/\\\/merchant.example.com\\\/checkout\\\/return\",\"webhook_url\":\"https:\\\/\\\/merchant.example.com\\\/api\\\/webhooks\\\/statapay\",\"customer\":{\"name\":\"b\",\"email\":\"zbailey@example.net\",\"phone\":\"i\"}}"
                        },
                        "description": "Request a payment from a customer. For mobile money rails (MTN, Airtel, Zamtel),\na USSD prompt will be sent directly to the customer's phone to approve the payment.\nFor card payments, a hosted checkout URL is returned in `redirect_url`."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"data\": {\n    \"id\": \"01ARZ3NDEKTSV4RRFFQ69G5FAV\",\n    \"reference\": \"ORD-987654\",\n    \"rail\": \"mtn\",\n    \"direction\": \"collection\",\n    \"status\": \"pending\",\n    \"amount\": \"150.00\",\n    \"currency\": \"ZMW\",\n    \"msisdn\": \"260961234567\",\n    \"provider_reference\": \"5c1f2a3e-7b9d-4c8e-9f10-112233445566\",\n    \"failure_reason\": null,\n    \"redirect_url\": null,\n    \"metadata\": {\"cart_id\": \"c-88\"},\n    \"created_at\": \"2026-11-06T08:00:00+02:00\",\n    \"submitted_at\": \"2026-11-06T08:00:01+02:00\",\n    \"completed_at\": null\n  }\n}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Disbursements",
            "description": "\nAPIs for sending outbound payouts and transfers directly to mobile money subscribers.",
            "item": [
                {
                    "name": "Initiate a Disbursement (Mobile Money Payout)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/disbursements",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/disbursements"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Idempotency-Key",
                                "value": "string required Unique client-generated key (up to 128 chars) to prevent duplicate payouts. Example: payout-2049-uuid"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"rail\":\"mtn\",\"amount\":75,\"currency\":\"ZMW\",\"msisdn\":\"0961234567\",\"reference\":\"PAYOUT-2049\",\"description\":\"Vendor Settlement #2049\",\"webhook_url\":\"https:\\\/\\\/merchant.example.com\\\/api\\\/webhooks\\\/statapay\",\"customer\":{\"name\":\"b\",\"email\":\"zbailey@example.net\",\"phone\":\"i\"}}"
                        },
                        "description": "Transfer funds directly to a recipient mobile money wallet (MTN or Airtel)."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 201,
                            "body": "{\n  \"data\": {\n    \"id\": \"01ARZ3NDEKTSV4RRFFQ69G5FAV\",\n    \"reference\": \"PAYOUT-2049\",\n    \"rail\": \"mtn\",\n    \"direction\": \"disbursement\",\n    \"status\": \"pending\",\n    \"amount\": \"75.00\",\n    \"currency\": \"ZMW\",\n    \"msisdn\": \"260961234567\",\n    \"provider_reference\": \"9c1f2a3e-7b9d-4c8e-9f10-112233445566\",\n    \"failure_reason\": null,\n    \"redirect_url\": null,\n    \"metadata\": {\"vendor_id\": \"vnd_12\"},\n    \"created_at\": \"2026-11-06T08:00:00+02:00\",\n    \"submitted_at\": \"2026-11-06T08:00:01+02:00\",\n    \"completed_at\": null\n  }\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Submit Batch Disbursements (Mass Payouts)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/disbursements\/batch",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/disbursements\/batch"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"batch_reference\":\"PAYROLL-NOV-2026\",\"payouts\":[\"architecto\"],\"webhook_url\":\"http:\\\/\\\/www.bailey.biz\\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\"}"
                        },
                        "description": "Transfer funds to multiple mobile money subscribers simultaneously (e.g. for payroll, bulk refunds, supplier payouts).\nUp to 100 payouts can be submitted in a single request. The entire batch is balance-checked upfront before execution."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Transactions",
            "description": "\nQuery transaction history, status, and details for collections and disbursements.",
            "item": [
                {
                    "name": "List Transactions",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/transactions",
                            "query": [
                                {
                                    "key": "status",
                                    "value": "successful",
                                    "description": "Filter by status (`pending`, `successful`, `failed`, `expired`, `cancelled`).",
                                    "disabled": false
                                },
                                {
                                    "key": "rail",
                                    "value": "mtn",
                                    "description": "Filter by payment rail (`mtn`, `airtel`, `zamtel`, `cards`).",
                                    "disabled": false
                                },
                                {
                                    "key": "direction",
                                    "value": "collection",
                                    "description": "Filter by direction (`collection` or `disbursement`).",
                                    "disabled": false
                                },
                                {
                                    "key": "reference",
                                    "value": "ORD-987654",
                                    "description": "Filter by exact merchant reference.",
                                    "disabled": false
                                },
                                {
                                    "key": "per_page",
                                    "value": "20",
                                    "description": "Number of results per page (1 to 100). Default: 20.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/transactions?status=successful&rail=mtn&direction=collection&reference=ORD-987654&per_page=20"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Retrieve a paginated list of transactions with optional filtering by status, rail, direction, and date range."
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-ratelimit-limit",
                                    "value": "30"
                                },
                                {
                                    "key": "x-ratelimit-remaining",
                                    "value": "29"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"A valid API key is required.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get Transaction Details",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/transactions\/:id",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/transactions\/:id",
                            "variable": [
                                {
                                    "id": "id",
                                    "key": "id",
                                    "value": "architecto",
                                    "description": "The ID of the transaction."
                                },
                                {
                                    "id": "transaction",
                                    "key": "transaction",
                                    "value": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
                                    "description": "The public transaction ID."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Fetch complete details of any transaction by its public ID (`01ARZ...`)."
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-ratelimit-limit",
                                    "value": "30"
                                },
                                {
                                    "key": "x-ratelimit-remaining",
                                    "value": "28"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"A valid API key is required.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get Collection Status",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/collections\/:transaction\/status",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/collections\/:transaction\/status",
                            "variable": [
                                {
                                    "id": "transaction",
                                    "key": "transaction",
                                    "value": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
                                    "description": "The public transaction ID (ULID starting with `01...`)."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Check the real-time status of a collection transaction by its public ID (`01ARZ...`)."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"id\": \"01ARZ3NDEKTSV4RRFFQ69G5FAV\",\n    \"reference\": \"ORD-987654\",\n    \"rail\": \"mtn\",\n    \"direction\": \"collection\",\n    \"status\": \"successful\",\n    \"is_final\": true,\n    \"is_successful\": true,\n    \"amount\": \"150.00\",\n    \"currency\": \"ZMW\",\n    \"failure_reason\": null,\n    \"redirect_url\": null,\n    \"updated_at\": \"2026-11-06T08:01:12+02:00\",\n    \"completed_at\": \"2026-11-06T08:01:12+02:00\"\n  }\n}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Get Disbursement Status",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/disbursements\/:transaction\/status",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/disbursements\/:transaction\/status",
                            "variable": [
                                {
                                    "id": "transaction",
                                    "key": "transaction",
                                    "value": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
                                    "description": "The public transaction ID (ULID starting with `01...`)."
                                }
                            ]
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Check the real-time status of a payout transaction by its public ID (`01ARZ...`)."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"id\": \"01ARZ3NDEKTSV4RRFFQ69G5FAV\",\n    \"reference\": \"PAYOUT-2049\",\n    \"rail\": \"mtn\",\n    \"direction\": \"disbursement\",\n    \"status\": \"successful\",\n    \"is_final\": true,\n    \"is_successful\": true,\n    \"amount\": \"75.00\",\n    \"currency\": \"ZMW\",\n    \"failure_reason\": null,\n    \"redirect_url\": null,\n    \"updated_at\": \"2026-11-06T08:01:12+02:00\",\n    \"completed_at\": \"2026-11-06T08:01:12+02:00\"\n  }\n}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Account Lookup",
            "description": "\nKYC lookup tools to verify subscriber name and account status before charging or paying.",
            "item": [
                {
                    "name": "Resolve Mobile Money Account Holder (KYC Name Lookup)",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/lookups\/mobile-account",
                            "query": [
                                {
                                    "key": "rail",
                                    "value": "mtn",
                                    "description": "Mobile network rail (mtn or airtel).",
                                    "disabled": false
                                },
                                {
                                    "key": "msisdn",
                                    "value": "0961234567",
                                    "description": "Subscriber phone number (096... or 26096...).",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/lookups\/mobile-account?rail=mtn&msisdn=0961234567"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"rail\":\"mtn\",\"msisdn\":\"bngzmiyvdljnikhw\"}"
                        },
                        "description": "Queries the telecom network to resolve the official registered name and account validity for a mobile subscriber.\nSupported rails: `mtn`, `airtel`."
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"data\": {\n    \"rail\": \"mtn\",\n    \"msisdn\": \"260961234567\",\n    \"found\": true,\n    \"name\": \"Jane Doe\",\n    \"first_name\": \"Jane\",\n    \"last_name\": \"Doe\"\n  }\n}",
                            "name": ""
                        },
                        {
                            "header": [],
                            "code": 404,
                            "body": "{\n  \"error\": \"account_not_found\",\n  \"message\": \"The account could not be found.\"\n}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "System",
            "description": "\nEngine health monitoring.",
            "item": [
                {
                    "name": "Service Health Check",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/health",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/health"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Check if the API engine and database connectivity are healthy and operational.",
                        "auth": {
                            "type": "noauth"
                        }
                    },
                    "response": [
                        {
                            "header": [],
                            "code": 200,
                            "body": "{\n  \"status\": \"ok\",\n  \"service\": \"statpay-engine\",\n  \"checks\": {\n    \"database\": \"ok\"\n  },\n  \"time\": \"2026-11-06T08:00:00+02:00\"\n}",
                            "name": ""
                        }
                    ]
                }
            ]
        },
        {
            "name": "Refunds",
            "description": "\nAPIs for reversing and refunding completed collections back to customer mobile wallets.",
            "item": [
                {
                    "name": "Initiate a Refund",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/collections\/:transaction\/refund",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/collections\/:transaction\/refund",
                            "variable": [
                                {
                                    "id": "transaction",
                                    "key": "transaction",
                                    "value": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
                                    "description": "The public ID of the collection to refund (`01ARZ...`)."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Idempotency-Key",
                                "value": "string required Unique client-generated key (up to 128 chars) to prevent duplicate refunds."
                            },
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"collection_id\":\"01ARZ3NDEKTSV4RRFFQ69G5FAV\",\"amount\":150,\"reference\":\"REF-ORD-987654\",\"reason\":\"Customer cancelled order.\"}"
                        },
                        "description": "Reverse or refund an earlier completed collection. Supports both full and partial refunds.\nThe refund amount will be debited from the merchant's wallet and transferred back to the customer."
                    },
                    "response": []
                },
                {
                    "name": "Initiate a Refund",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/refunds",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/refunds",
                            "variable": [
                                {
                                    "id": "transaction",
                                    "key": "transaction",
                                    "value": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
                                    "description": "The public ID of the collection to refund (`01ARZ...`)."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Idempotency-Key",
                                "value": "string required Unique client-generated key (up to 128 chars) to prevent duplicate refunds."
                            },
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"collection_id\":\"01ARZ3NDEKTSV4RRFFQ69G5FAV\",\"amount\":150,\"reference\":\"REF-ORD-987654\",\"reason\":\"Customer cancelled order.\"}"
                        },
                        "description": "Reverse or refund an earlier completed collection. Supports both full and partial refunds.\nThe refund amount will be debited from the merchant's wallet and transferred back to the customer."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Sandbox Testing",
            "description": "\nDeveloper utilities to fund test wallets and simulate transaction outcomes without real money or telecom network dependencies.",
            "item": [
                {
                    "name": "Top-Up Sandbox Wallet",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/sandbox\/wallets\/:wallet\/top-up",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/sandbox\/wallets\/:wallet\/top-up",
                            "variable": [
                                {
                                    "id": "wallet",
                                    "key": "wallet",
                                    "value": "wlt_test_01jc2x8k9m4p5q6r7s8t9v0w1x",
                                    "description": "The wallet ID."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"amount\":5000}"
                        },
                        "description": "Add virtual test balance to a sandbox wallet to test disbursements and balance queries."
                    },
                    "response": []
                },
                {
                    "name": "Simulate Transaction Callback",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/sandbox\/simulate\/callback",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/sandbox\/simulate\/callback"
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"transaction_id\":\"01ARZ3NDEKTSV4RRFFQ69G5FAV\",\"action\":\"approve\"}"
                        },
                        "description": "Manually trigger an approval, decline, or timeout for any pending sandbox transaction."
                    },
                    "response": []
                }
            ]
        },
        {
            "name": "Webhooks",
            "description": "\nAPIs to monitor outbound webhook deliveries, inspect delivery logs, and request event redeliveries.",
            "item": [
                {
                    "name": "List Webhook Deliveries",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/webhooks\/deliveries",
                            "query": [
                                {
                                    "key": "status",
                                    "value": "failed",
                                    "description": "Filter by delivery status (`succeeded`, `failed`, `retrying`, `pending`).",
                                    "disabled": false
                                },
                                {
                                    "key": "event",
                                    "value": "transaction.successful",
                                    "description": "Filter by event type (`transaction.successful`, etc.).",
                                    "disabled": false
                                },
                                {
                                    "key": "transaction_id",
                                    "value": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
                                    "description": "Filter by transaction public ID.",
                                    "disabled": false
                                },
                                {
                                    "key": "per_page",
                                    "value": "20",
                                    "description": "Items per page (1 to 100). Default: 20.",
                                    "disabled": false
                                }
                            ],
                            "raw": "{{baseUrl}}\/api\/v1\/webhooks\/deliveries?status=failed&event=transaction.successful&transaction_id=01ARZ3NDEKTSV4RRFFQ69G5FAV&per_page=20"
                        },
                        "method": "GET",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": null,
                        "description": "Retrieve paginated history of outbound webhook dispatch attempts, HTTP status codes, and payload delivery states."
                    },
                    "response": [
                        {
                            "header": [
                                {
                                    "key": "cache-control",
                                    "value": "no-cache, private"
                                },
                                {
                                    "key": "content-type",
                                    "value": "application\/json"
                                },
                                {
                                    "key": "x-ratelimit-limit",
                                    "value": "30"
                                },
                                {
                                    "key": "x-ratelimit-remaining",
                                    "value": "27"
                                },
                                {
                                    "key": "access-control-allow-origin",
                                    "value": "*"
                                }
                            ],
                            "code": 401,
                            "body": "{\"message\":\"A valid API key is required.\"}",
                            "name": ""
                        }
                    ]
                },
                {
                    "name": "Resend Webhook",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/webhooks\/resend",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/webhooks\/resend",
                            "variable": [
                                {
                                    "id": "transaction",
                                    "key": "transaction",
                                    "value": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
                                    "description": "The transaction public ID (`01ARZ...`) or reference."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"transaction_id\":\"01ARZ3NDEKTSV4RRFFQ69G5FAV\"}"
                        },
                        "description": "Re-trigger and dispatch an outbound webhook for any completed transaction.\nUseful when a merchant endpoint was temporarily unreachable or returning HTTP 500 errors."
                    },
                    "response": []
                },
                {
                    "name": "Resend Webhook",
                    "request": {
                        "url": {
                            "host": "{{baseUrl}}",
                            "path": "api\/v1\/transactions\/:transaction\/webhooks\/resend",
                            "query": [],
                            "raw": "{{baseUrl}}\/api\/v1\/transactions\/:transaction\/webhooks\/resend",
                            "variable": [
                                {
                                    "id": "transaction",
                                    "key": "transaction",
                                    "value": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
                                    "description": "The transaction public ID (`01ARZ...`) or reference."
                                }
                            ]
                        },
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application\/json"
                            },
                            {
                                "key": "Accept",
                                "value": "application\/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\"transaction_id\":\"01ARZ3NDEKTSV4RRFFQ69G5FAV\"}"
                        },
                        "description": "Re-trigger and dispatch an outbound webhook for any completed transaction.\nUseful when a merchant endpoint was temporarily unreachable or returning HTTP 500 errors."
                    },
                    "response": []
                }
            ]
        }
    ],
    "auth": {
        "type": "bearer",
        "bearer": [
            {
                "key": "Authorization",
                "type": "string"
            }
        ]
    }
}