Payout API

The technical guide for senangPay's Payout API feature. For authorised merchants only.d

This API is restricted to authorised merchants only. Please request to whitelist your server's outgoing IP address from our support team.

  • Payout payee limit: 1000
  • Payout max. amount per bank account: RM 100,000.00
  • Payout min. amount per bank account: RM10.00
  • Daily cutoff time: 11:45 pm MYT

 

1. Endpoint

Item Endpoint
Production https://api.senangpay.my/payout_api

 

2. Authorisation header (Basic Auth)

Type

Parameter

Username

<your-merchant-id>

As listed on the profile settings page.

Password

None, leave empty

 

3. Request parameter (JSON)

hash

A string hashed with your secret key (from your profile setting page) with SHA256 in the following format:

<secret-key><merchant-id><timestamp>

*without the <  > character

timestamp

1676620609

callback_url (optional)

Specify a url for file response after payout API submission

E.g: https://myweb.com/payout

order_id (optional)

Merchant specified unique ID

E.g: 1129933

data

“data”: [{

   “Name”: “John”,

   “Email”: “banking@merchant.com”,

   “Bank Name”: “Maybank”,

   “eBanker Code”: “MBBEMYKL”,

   “Account Number”: 1234535647,

   “Account Type”: 1,

   “Amount”: 120

   }]

● Account Type value:

1 – Saving Account

2 – Current Account

 

4. Response Parameter (JSON)

A. No authentication provided

Parameter

Value

status

0

msg

Invalid Merchant

ref_number

 

order_id

 

total_count

 

total_amount

 

B. Invalid request parameter

Parameter

Value

status

0

msg

Depends on the request parameter

ref_number

 

order_id

 

total_count

 

total_amount

 

C. Timestamp more than 60 seconds

Parameter

Value

status

0

msg

Request timed out

ref_number

 

order_id

 

total_count

 

total_amount

 

D. Mass payment feature disabled

Parameter

Value

status

0

msg

Merchant mass payment feature is not enabled

ref_number

 

order_id

 

total_count

 

total_amount

 

E. Invalid hash

Parameter

Value

status

0

msg

Invalid hash

ref_number

 

order_id

 

total_count

 

total_amount

 

F. Invalid merchant

Parameter

Value

status

0

msg

Invalid Merchant

ref_number

 

order_id

 

total_count

 

total_amount

 

G. Cut-off time

Parameter

Value

status

0

msg

Cut-off date exceeded.

ref_number

 

order_id

 

total_count

 

total_amount

 

H. Failed to insert batch

Parameter

Value

status

0

msg

Failed to create Mass Payment Batch.

ref_number

 

order_id

 

total_count

 

total_amount

 

I. Batch already exists

Parameter

Value

status

0

msg

Too many requests. Please try again later.

ref_number

 

order_id

 

total_count

 

total_amount

 

J. Failed to insert payment data

Parameter

Value

status

0

msg

Failed to create Mass Payment List.

ref_number

 

order_id

 

total_count

 

total_amount

 

K. Empty array data

Parameter

Value

status

0

msg

Failed, Empty Data Provided

ref_number

 

order_id

 

total_count

 

total_amount

 

L. Success

Parameter

Value

status

1

msg

Success

ref_number

1155742H_BULKDUITNOW2_10810_20230328_HH_051727

order_id

xxxxx

total_count

20

total_amount

500.00

 

5. Callback Response

You will receive a response post parameter if you send ‘callback_url’ together with the request body.

The response data will be sent within 45 minutes of a successful Payout API transaction.

 

6. Response Parameter for callback

Parameter

value

status

2 (pending) 1(success) 0(failed)

message

*description if any*

Possible messages:

“Please check details of Payee #”

“File Rejected”

ref_number

23577_20230327_HH_065830

order_id

xxxxxx

total_amount

100.00

total_count

5

hash

xxxxxxxxxxxx

 

7. Verify callback hash

  •  String to be hashed:
$str, {secret_key}{ref_number}{status}
hash_hmac(‘SHA256′, $str, {secret_key})

Bank eBanker Codes

1. This refers to the list of supported banks for payout.

2. The eBanker Code parameter to be included in your request body is as follows:

Bank eBanker code
Affin Bank Berhad PHBMMYKL
Alliance Bank Malaysia Berhad MFBBMYKL
AL-Rahji RJHIMYKL
Ambank Malaysia Berhad ARBKMYKL
Bank Islam Malaysia Berhad BIMBMYKL
Bank Kerjasama Rakyat Malaysia Berhad BKRMMYKL
Bank Muamalat Malaysia Bhd BMMBMYKL
Bank of America (M) Berhad BOFAMY2X
Bank of China (M) Berhad BKCHMYKL
Agrobank AGOBMYKL
Bank Simpanan Nasional Berhad BSNAMYK1
Bank of Tokyo-Mitsubishi UFJ (M) Berhad BOTKMYKX
BNP Paribas Malaysia Berhad BNPAMYKL
CIMB Bank Berhad CIBBMYKL
Citibank Berhad CITIMYKL
Deutsche Bank (Malaysia) Berhad DEUTMYKL
Hong Leong Bank Berhad HLBBMYKL
HSBC Bank Malaysia Berhad HBMBMYKL
Indsutrial and Commercial Bank of China (M) Berhad ICBKMYKL
JP Morgan Chase Bank Berhad CHASMYKX
Kuwait Finance House KFHOMYKL
Maybank Berhad MBBEMYKL
Mizuho Bank (Malaysia) Berhad MHCBMYKA
OCBC Bank Berhad OCBCMYKL
Public Bank Berhad PBBEMYKL
RHB Bank Berhad RHBBMYKL
Standard Chartered Bank Malaysia Berhad SCBLMYKX
Sumitomo Mitsui Banking Corporation (M) Berhad SMBCMYKL
United Overseas Bank Berhad (UOB) UOVBMYKL
MBSB Bank Berhad AFBQMYKL
Finexus Cards Sdn. Bhd. FNXSMYNB
Touch ‘n Go eWallet TNGDMYNB
China Construction Bank (M) Berhad PCBCMYKL

 

A. Payout Charges

 1. Each Payout is to be charged 0.7% of the amount for every single payout.

2. If the single payout amount is less than RM 143.00, a minimum of RM 1.00 will be charged.

B. Withdrawal to own account

1. To initiate withdrawal to your own bank accounts without charges, please submit these details to our team:

  • Bank Account Number
  • Bank Account Type (savings or current)
  • Bank Code
  • Bank Beneficiary Name

*You can submit up to five (5) of your own accounts.

2. The system does not validate Name against the bank account, as long as the bank account number is correct.