Create a Payin
To be able to successfully create a payin request you would need the following APIs in consideration:
- Step 1: Call the Get payin methods to retrieve the list of supported methods.
- Step 2: Call the Get payin required fields to get specific required fields for each method.
- Step 3: Create the payment using the method and required fields from the previous step.
- Step 4: On sandbox environment, you can call the Simulate payin to simulate the payment.
Please note: GST should only be set to true for AU Merchants for AUD currency only. For all other currencies, set GST to false.
Note:
If the payin_method_name is either jp_bank_jpy, ar_bank_ars and kr_bank_va_kyc_krw, the pay_code will be sent to the webhook after a certain period with the following fields:
- For
jp_bank_jpy:bank_name: The recipient’s bank name.transfer_id: The transfer identifier on the provider side.branch_code: The code of the recipient’s bank branch.branch_name: The name of the recipient’s bank branch.account_number: The recipient’s account number.account_name: The recipient’s account name.expired_timestamp: The payment expiration time.account_type: The recipient’s account type.transfer_name: The name associated with the transfer.
- For
ar_bank_ars:bank_name: The recipient’s bank name.account_number: The recipient’s account number.account_name: The recipient’s account name.expired_timestamp: The payment expiration time.alias: The letter code used in the Argentine banking system to identify an account instead of an account number (for Argentine accounts).
- For
kr_bank_va_kyc_krw:virtual_bank_code: The recipient’s bank code.virtual_account_number: The recipient’s account number.virtual_bank_name: The recipient’s bank name.
If you use one of the following payin methods, please check the list of supported providers before proceeding:
sa_eft_zar: View supportedmy_bank_fpx_myr: View supportedmy_bank_myr: View supportedth_qrpay_thb: View supportedbw_bank_bwp: View supportedmwk_mobile_money_network: View supportedbr_pix_brl(crypto settlement): Please findcrypto_tickerandcrypto_wallet_addressin View supported
❗ Important:
- If you select
mobile_moneyas the payin method in Step 3, please refer to the implementation guidelines in the Mobile Money tab.- Example payin method:
gh_mobile_money_ghs
- Example payin method:
- If you select
kr_bank_va_kyc_krwas the payin method in Step 3, please refer to the implementation guidelines in the Bank Transfer tab.- Example payin method:
kr_bank_va_kyc_krw
- Example payin method:
- If you select
kh_pay_khr, merchants must not use any parameters returned in thecallback_urlorfailure_callback_urlto update or change the payment status, all payment updates and final transaction status must be handled exclusively via Hello Clever webhooks.- Example payin method:
kh_pay_khr
- Example payin method:
Authorizations
A unique identifier assigned to each application.
A secure token associated with the app-id.
Body
Transaction currency. It has to be a valid ISO 4217 currency codes. For example, 'PHP' for Philippine Peso, 'AUD' for Australian Dollar.
Goods and Services Tax.
Amount.
Customer name.
Description.
Payin method name to be used for this payment. You will receive this from the Get payin methods API.
Payin method parameters. You will receive this from the Get payin’s required fields API.
Merchant Callback Details
Custom ID.
- This setting only applies to the payment method
vn_vietqr_vnd. - Other methods are either fixed to default values or not configurable, and therefore cannot be edited.
- The scheduled expiry must be set to at least 15 minutes later than the current time.
Optional custom metadata to attach to the transaction.
Callbacks
POST{$request.body#/webhook_notification/endpoint_url}myEvent
Body
Unique Id for the order created by Hello Clever system
"VMMAOTFQ"
Customer name.
"Test."
Customer email.
"test@example.com."
Custom ID.
"123456"
Status of Payin.
"received"
Code using pay
GST for merchant.
"false,"
Currency payin.
"PHP"
Amount.
"1000.0"
GST amount.
"100.0"
Total amount.
"1100.0"
Paid Amount.
"1100.0"
Description
"The message that you want to send to the payee."
Available refund.
"false,"
- This setting only applies to the payment method
vn_vietqr_vnd. - Other methods are either fixed to default values or not configurable, and therefore cannot be edited.
- The scheduled expiry must be set to at least 15 minutes later than the current time.
"2021-12-23T06:00:00.000+0000"
Pay by time of payment. This datetime would be in the UTC timezone. Must set the schedule bigger 15 minutes from the current time.
"2021-12-23T06:00:00.000+0000"
Payment request notification
Response
The merchant's server should return this code
Response
Created
Status of the transaction:
pending: Customer started a new payment but hasn't proceeded yet.received: Funds have been received.waiting: Payment has been approved, awaiting funds to settle.expired: Payment session expired before completion.return_pending: Refund request initiated, awaiting processing.return_received: Full amount has been refunded to the customer.return_expired: The refund request has expired. Expiration time is set to be 10 days.return_rejected: Refund request was denied. The system will not retry again.
Code using pay