Simulate an incoming payment
Simulate an incoming payment posts an inward credit confirmation (ICC) in the sandbox. Use it to test virtual account crediting, reconciliation, and the workflows that follow, without a live bank payment.
Use this request when you need to:
- Credit a virtual account.
- Test reconciliation and credit posting.
- Confirm later status changes and webhooks.
For the wider sandbox approach, see Testing Nium. For virtual accounts, see Virtual accounts.
important
This request works in the sandbox only.
Endpoint
POST /api/v1/inward/payment/manual
Simulate Receiving a Transaction credits a virtual account.
Headers
| Header | Required | Description |
|---|---|---|
X-Api-Key | Yes | Your API key |
Content-Type | Yes | application/json |
Request body
{
"additionalInfo": {
"ANY_ADDITIONAL_PROPERTY": ""
},
"amount": 10,
"bankReferenceNumber": "712347512376",
"bankSource": "DBS_SG",
"branchCode": 535,
"country": "SG",
"currency": "SGD",
"customerReferenceNumber": 712347512376,
"iccExpiry": "2023-07-05 07:26:38.026",
"instructionType": "PROCESS",
"narrative": "FROM NIUM",
"payMode": "ACH",
"remitterAccountNumber": "HLFX11029100808072",
"remitterBankCode": "BYLADEM1KUB",
"remitterBankName": "DBS_SG",
"remitterName": "John K",
"remitterNameLocalLanguage": "エム・エス・シャーマー",
"transactionId": "FW242141",
"transactionSource": "ACH",
"type": "CREDIT",
"virtualAccountNumber": "907654315445678"
}
Request fields
| Field | Required | Type | Description |
|---|---|---|---|
amount | Yes | number | Transaction amount |
currency | Yes | string | 3-letter ISO currency code |
country | Yes | string | Country code |
bankReferenceNumber | Yes | string | Bank reference number. Use a new value on every call. |
bankSource | Yes | enum | Source bank. See the accepted values below. |
branchCode | No | string | Bank branch code |
customerReferenceNumber | No | string | Your reference for the payment |
transactionId | Yes | string | Unique transaction ID |
transactionSource | No | string | ICC transaction source |
type | No | string | CREDIT or DEBIT |
instructionType | No | enum | INQUIRY or PROCESS |
payMode | No | string | Payment mode |
narrative | No | string | Transaction narration |
virtualAccountNumber | Yes | string | Virtual account to credit |
iccExpiry | No | string | ICC expiry timestamp |
additionalInfo | No | object | Extra attributes |
bankSource accepts DBS_HK, DBS_SG, DBS_ID, JPM_SG, and JPM_AU.
| Field | Required | Type | Description |
|---|---|---|---|
remitterName | No | string | Sender name |
remitterNameLocalLanguage | No | string | Sender name in the local language |
remitterAccountNumber | No | string | Sender account number |
remitterBankCode | No | string | Sender bank code |
remitterBankName | No | string | Sender bank name |
Response
A successful call returns HTTP 200.
{
"success": true,
"message": "ICC request has been processed and published successfully"
}
| Status | Meaning | Example |
|---|---|---|
| 400 | The request is invalid | DBS_AU is invalid for field [bankSource] |
| 401 | The API key is missing or invalid | Invalid or missing API key |
| 403 | The caller does not have permission | Forbidden |
| 500 | The server could not complete the request | Unexpected error occurred |
Test an incoming payment
- Create a virtual account. See Virtual accounts.
- Call Simulate Receiving a Transaction with that
virtualAccountNumber. - Confirm the credit with Transactions.
Was this page helpful?