Postman collection
Pre-built collection with 40+ requests + automated test scripts (TC-XXX-YYY IDs). Import both files into Postman, fill in 4 secrets, and run the collection folder by folder.
Downloads
How to use
- Import both JSON files in Postman (File → Import).
- Select the environment
IMT Remittance — Merchant (staging). - Fill in the 4 secret variables:
merchant_codeapi_secretmerchant_emailmerchant_password
- Run 01. Authentication → [SETUP] Merchant Login first — it populates
merchant_jwt for the rest of the collection. - Run the collection folder by folder in order (00 → 07).
Folder structure
| Folder | Focus |
|---|
00. Health Check | TC-HLT-001 — API + DB health |
01. Authentication | Merchant login, Basic auth positive/negative, Bearer flow |
02. Inbound Remittance | Happy paths per operator (M-Pesa, Airtel, Orange), FX conversion, negative cases, name-match, KYC field validation |
02b. Account Lookup | Prefix auto-detect, explicit operator, unknown prefix |
02c. Transaction Timeline | Fetch the timeline of the last created transaction |
03. Outbound Remittance | Disabled (RMT-9001), insufficient balance simulation |
04. FX Rates | Cached card, live rate, multi-currency (UGX example) |
05. Wallet Management | Get balance, wallet history |
06. Merchant Dashboard | Change password, list txs, regenerate secret, whitelist, callback config, go-live, settlements |
07. Error Handling | Malformed JSON, ensure 400 not 500 |
Test cases in 02. Inbound Remittance
| ID | Case | Expected |
|---|
TC-INB-001 | Happy path — M-Pesa USD | 202 |
TC-INB-008 | Happy path — Airtel | 202 |
TC-INB-009 | Happy path — Orange | 202 or CONFIG_ERROR if no Orange channel |
TC-INB-006 | Inbound CDF with FX conversion | 202 |
TC-INB-002 | Missing amount | 400 RMT-1005 |
TC-INB-003 | Invalid operator | 400 |
TC-INB-005 | Duplicate reference — idempotency | 409 RMT-3002 |
TC-INB-NAME-001 | Missing expected_receiver_name | 400 RMT-1005 |
TC-INB-NAME-002 | Name mismatch | 422 RMT-4006 |
TC-INB-NAME-004 | Match happy path | 202 with subscriber_name |
TC-INB-KYC-001 | Missing sender_birthplace | 400 RMT-1005 |
TC-INB-KYC-002 | Missing receiver_birthdate | 400 RMT-1005 |
TC-INB-KYC-003 | Missing receiver_document_type | 400 RMT-1005 |
TC-INB-KYC-004 | Invalid sender_document_type enum | 400 RMT-1015 |
TC-INB-KYC-005 | Invalid reason_of_transaction enum | 400 RMT-1016 |
TC-INB-KYC-006 | Invalid source_of_funds enum | 400 RMT-1017 |
TC-INB-KYC-007 | Both receiver_*_address missing | 400 RMT-1018 |
TC-INB-KYC-008 | Full compliance payload with all optionals | 202 |
Environment endpoints
| Environment | Base URL |
|---|
| Staging | https://staging.remittance.gofreshpay.com |
| Production | https://remittance.gofreshpay.com |
Certification runs against staging only. Production access is granted after Go Live approval via the merchant dashboard.