Load Corporate Pool Wallet
Creates a new load transaction for crediting or debiting corporate hierarchy pool wallets. This is used to manage the master pool from which individual cardholder loads are funded.
Corporate Pool vs Card Holder Load
- Corporate Pool Load: Funds the corporate/branch wallet (the "pool")
- Card Holder Load: Loads an individual cardholder's card from the pool
Flow
- Bank credits the corporate pool wallet (this API)
- Corporate/branch loads individual cards from the pool (Card Holder Load API)
Maker-Checker
Pool loads typically require approval. The response currentStatus will be CREATED
until approved by a checker.
Authorization
bearerAuth tenantId JWT Bearer token from the Authentication API
In: header
Your unique tenant identifier assigned during onboarding
In: header
Header Parameters
Your unique tenant identifier
Request Body
application/json
Required. Unique load transaction code
1 <= lengthRequired. Hierarchy details for the load transaction
Required. Amount to be loaded
Required. Unique reference number for the load transaction
1 <= lengthRequired. Target hierarchy wallet
Required. Type of load transaction — CREDIT or DEBIT
"CREDIT" | "DEBIT"Custom attributes for additional metadata
Response Body
application/json
application/json
application/json
curl -X POST "https://sandbox-api.m2pprepaid.com/prepaid/customer/v1/load/" \ -H "X-TENANT-ID: ACME_CORP" \ -H "Content-Type: application/json" \ -d '{ "code": "LOAD-2026-001", "hierarchy": { "corporateId": "CORP123", "name": "Tech Corp Ltd", "type": "Corporate" }, "amount": 1000000, "referenceNumber": "REF20260101001", "wallet": { "walletId": "wallet_12345", "productType": "GPR", "kycSelection": "FULL_KYC" }, "transactionType": "CREDIT" }'{
"result": {
"id": "LD20260101001",
"currentStatus": "CREATED",
"code": "LOAD-2026-001",
"amount": 1000000,
"transactionType": "CREDIT"
},
"pagination": null
}{
"type": "https://www.m2pfintech.com/problem/problem-with-message",
"title": "Bad Request",
"status": 400,
"detail": "Unable to convert http message",
"message": "error.http.400"
}{
"type": "https://www.m2pfintech.com/problem/problem-with-message",
"title": "Load already exist for given Id",
"status": 409,
"detail": "Load with code LOAD-2026-001 already exists",
"message": "error.business",
"businessCode": "PP_CORP_004"
}Credit/Debit Prepaid Card POST
Loads (credits) or debits a GPR (General Purpose Reloadable) card holder's wallet. This is the primary API for managing card balances for GPR, Gift, and NCMC products. ### Supported Operations - **CREDIT**: Add funds to the cardholder's wallet - **DEBIT**: Remove funds from the cardholder's wallet (partial or full) ### Debit Types For debit operations, specify `debitTransactionType`: - `PARTIAL_DEBIT` — Withdraw a specific amount - `FULL_DEBIT` — Withdraw entire balance - `FULL_DEBIT_WITH_CLOSURE` — Withdraw entire balance and close the account ### Maker-Checker This API creates a load request that may go through maker-checker approval. The `currentStatus` in the response indicates the processing state: - `CREATED` → Pending approval - `APPROVED` → Processed successfully ### Key Fields - `hierarchyId`: The branch/corporate ID initiating the load - `kitNo`: The card kit number to be loaded - `wallet.accountId`: The specific wallet to credit - `product.productType`: GPR, Gift, or GPR+NCMC
Credit or Debit Wallet POST
Performs a direct credit or debit on a cardholder's wallet. This is the fundamental money-movement API used for programmatic fund transfers. ### Use Cases - **CREDIT**: Load funds, cashback, refund, promotional credit - **DEBIT**: Fee deduction, penalty charge, adjustment ### Idempotency The `txnRef` field serves as an idempotency key. Sending the same `txnRef` twice will result in a **duplicate transaction error** (409), preventing accidental double-processing. ### Response Returns pre-balance, post-balance, and the transaction status. Use the `externalTransactionId` from the response for subsequent lookups. ### Important Notes - `amount` is always a positive number — the `transactionType` determines credit vs debit - `txnRef` must be unique per transaction (alphanumeric, hyphens allowed) - `entityId` identifies the specific cardholder account - For load transactions, set `txnOrigin` to `LOAD`
