---
title: Payout Integration & Testing
slug: en/payout-integration-and-testing
description: Information about integration and testing Payout service with the NICEPAY system
image: https://archbee-image-uploads.s3.amazonaws.com/ZHvSjR5ZrsoxwKbJa3xmo/rxf_t4X2uEDGy9lndE8b9_microsoftteams-image.png
icon: {"faIcon":"fa-solid fa-book"}
docTags: 
createdAt: 2022-11-16T04:37:13.000Z
---

# Integration Steps Including API Used On It

***

1. Perform Request Payout API integration ( [Registration - API Payout (Disbursement) SNAP](docId\:eonRZaDi86qH4vIEcXRrs)).
2. Perform Approve Payout API integration ( [Approve Transaction - API Payout (Disbursement) SNAP](docId:75T6p-QRSteur4iECzRJe)) and prepare Disbursement to the destination account.&#x20;
3. Receive callback and push notifications from NICEPAY.
4. Perform Inquiry Payout integration ([Inquiry - API Payout (Disbursement) SNAP](docId\:Ge22wm18E02qRwDgBWMz_)) so Merchant can check order status using Inquiry API.
5. Additional: perform Cancel Payout API ( [Cancel Transaction - API Payout (Disbursement) SNAP](docId\:CedmfUI42mOyU8_Iy9j2q)) integration to abort transaction.

:::hint{type="info"}
Assure your Payout balance is sufficient before creating a Payout transaction. Please check the [Balance Deposits](docId\:B3gbWZIFVFxAv30LlQfQp) page for further information about the Payout deposit fund.
:::



# Credentials To Test Payout

***

| **Environment** | **Description**                                                                 |
| --------------- | ------------------------------------------------------------------------------- |
| Development     | Bank Account<br />* accountNo : 6030901753
* benefNm : John Doe
* bankCd : BDIN |



# Payout Test Guide

***

| **Test Steps**                                                                                                                                                                                                             | **Payout Method Options**                                                                                                                                                                                    |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 1. Use real IMID or Sandbox with IMID `IONPAYTEST`.
2. Input your Bank account into the Merchant side with the `accountNo` parameter.
3. Input your member’s name or Bank account owner name with the `benefNm` parameter. | Set parameter value `payoutMethod`:<br />* Over Booking -> `payoutMethod = 0`
* Online Trans -> `payoutMethod = 1`
* SKN -> `payoutMethod = 2`
* RTGS -> `payoutMethod = 3`
* Cashout ->  `payoutMethod = 4` |

****

# Failed Transaction Possible Reasons

***

1. Timeout from the Bank side.
2. Invalid Bank account.
3. Insufficient fund.&#x20;



# Integration Checklist and Test Case

***

- [ ] Implement inquiry status after receiving callback.
- [ ] Implement inquiry status after receiving notification if it is setting on Merchant url notification.
- [ ] Review payment log.
- [ ] Review firewall settings (eg. Cloudflare to setting URL notif)
- [ ] Check `merchantToken` implementation.
- [ ] Running test scenario on Development Environment.
- [ ] Running test scenario on Production Environment.&#x20;
  [Get Sample Scenario](https://docs.google.com/spreadsheets/d/e/2PACX-1vQIaIMCM0vZ3L1cA-JkW3YxyIpjsB966fg1wTeT8qpFDowEvulIEWOoY6I4uJPL3A/pub?output=xlsx)****
- [ ] Review Error Handling (*Timeout, Failed, Negative Case*).



# Best Practice

***

- For testing on the Merchant side can use IMID `IONPAYTEST` and transfer option set `payoutMethod` parameter.
- `reserved_dt` `reserved_tm` for scheduling.
- Request with or not with `reserved_dt` `reserved_tm` can Approve & Reject.
- After Approve, it can’t cancel if there is `reserved_dt` `reserved_tm` or can cancel if there is `reserved_dt` `reserved_tm` (while it has not pass `reserved_dt` `reserved_tm` yet ).
- When notification receives on URL Merchant notification, NICEPAY highly recommends Merchant to verify the notification using Inquiry API.
- `Notification Handling` is used to minimalize Fraud actions, NICEPAY highly recommends Merchants perform `Notification Handling` verification.



# See also

::::VerticalSplit{layout="middle"}
:::VerticalSplitItem
Visit the [Payout Fund Transfer Flow](docId\:uvJic8uHCezoBfd6QRMlb) page to find out the process on Payout system.
:::

:::VerticalSplitItem
Visit the [Payout Method](docId:3Ln9uBF3t7IQdLEV2AHSj) page to find out the fund sending method available on Payout.
:::
::::

