- METHOD TYPEBank Transfer
- PAYMENTS
- PAYOUTS
- REFUNDS
- RECURRING
Introduction
The Online Bank Transfer Malaysia APM provides transfers processed in Malaysia and its local currency.
Supported Countries
- Malaysia
Supported Currencies
- MYR
Payment (Deposit) Flow
Follow these steps to perform a payment using Nuvei REST API integration:
1. Generate a sessionToken
Press here for details.
2. APM Payment Form
- Call the
/getMerchantPaymentMethods
method and includecountryCode
: “MY“.
Example/getMerchantPaymentMethods
Request{ "sessionToken": "<sessionToken from getSessionToken>", "merchantId":"<your merchantId>", "merchantSiteId":"<your merchantSiteId>", "clientRequestId": "<unique request ID in merchant system>", "currencyCode":"MYR", "countryCode":"MY", "type":"DEPOSIT", "languageCode":"eng", "timeStamp":"<YYYYMMDDHHmmss>", "checksum":"<calculated checksum>" }
The response includes
paymentMethod
: “apmgw_Online_Bank_Transfer_Malaysia” and a correspondingfields
array that includes values to display to the customer or to use in the subsequent/payment
request.fields
Array Structure from the/getMerchantPaymentMethods
Response"fields"[ "name" (String, 45), "type" (String, 45), "validationMessage" ["language" (String, 2), "message" (String, 400)], "caption" ["language" (String, 2), "message" (String, 400)], "listValues" [ "code" (String, 255), "caption" (String), "mandatoryFields" [(String, 45)] ] ]
/getMerchantPaymentMethods
Output ParametersParameter Description Examples paymentMethod Identifier for the payment method. apmgw_Online_Bank_Transfer_Malaysia
fields Array of possible input fields required by a payment method provider for this payment method, as well as a list of mandatory input fields, per fields.listValues
value.- fields.name Identifier of the field. mobi_accountType
mobi_bankCodeRetail
mobi_bankCodeCorporate
fields.listValues Array of values for the fields.name
.- fields.listValues
.codeValue for the corresponding parameter in the /payment
request.For mobi_accountType
: 01
Formobi_bankCodeRetail
: ABB0233
Formobi_bankCodeCorporate
ABB0235
fields.listValues
.captionUI text corresponding to fields.name.code
.For mobi_accountType
: "01", Retail Banking.
Formobi_bankCodeRetail
: "ABB0233", Affin Bank.
Formobi_bankCodeCorporate
: "
ABB0235, Affin Bank.
fields.listValues
.mandatoryFieldsMandatory fields.name
for thisfields.listValues
value.For mobi_accountType
: "01",
mobi_bankCodeRetail
.
Example Online Bank Transfer Malaysia Section of
/getMerchantPaymentMethods
Response{ "paymentMethod": "apmgw_Online_Bank_Transfer_Malaysia", "paymentMethodDisplayName": [], "isDirect": "false", "countries": [ "MY" ], "currencies": [ "MYR" ], "logoURL": "https://srv-bsf-devppptrunk.gw-4u.com/ppp/resources/img/svg/bank_transfer_logo.svg", "fields": [ { "name": "mobi_accountType", "type": "text", "caption": [ { "language": "en", "message": "Account Type" } ], "listValues": [ { "code": "01", "caption": "Retail Banking", "mandatoryFields": [ "mobi_bankCodeRetail" ] }, { "code": "02", "caption": "Corporate Banking", "mandatoryFields": [ "mobi_bankCodeCorporate" ] } ] }, { "name": "mobi_bankCodeRetail", "type": "text", "caption": [ { "language": "en", "message": "Bank Name" } ], "listValues": [ { "code": "ABB0233", "caption": "Affin Bank", "mandatoryFields": [] }, { "code": "AGRO01", "caption": "Agrobank", "mandatoryFields": [] } ] }, { "name": "mobi_bankCodeCorporate", "type": "text", "caption": [ { "language": "en", "message": "Bank Name" } ], "listValues": [ { "code": "ABB0235", "caption": "AFFINMAX", "mandatoryFields": [] }, { "code": "ABB0233", "caption": "Affin Bank", "mandatoryFields": [] } ] } ], "openInExternalBrowser": "false" }
- Allow the customer to select Account Type:
- Retail Banking
- Corporate Banking
- Using the
fields.listValues.caption
values of the banks for the account type selected, allow the customer to select a Bank Name.
3. Send a /payment
Request
Perform the payment by sending a /payment
request with its mandatory parameters including:
userTokenId
amount
currency
paymentOption.alternativePaymentMethod
block containing:paymentMethod
: “apmgw_Online_Bank_Transfer_Malaysia“-
mobi_accountType
– According to Account Type selected:- 01 –
fields.listValues.code
for Retail Banking. - 02 –
fields.listValues.code
for Corporate Banking.
- 01 –
mobi_bankCodeRetail
: “<fields.listValues.code
for selected bank>” – Required whenmobi_accountType:
“01“.mobi_bankCodeCorporate
: “<fields.listValues.code
for selected bank>” – Required whenmobi_accountType:
“02“.
deviceDetails
: containing the customer’s IP addressbillingAddress
block containing:firstName
,lastName
,country
,email
userDetails
block containing:firstName
,lastName
,country
,email
Example /payment
Request
{ "sessionToken": "<sessionToken from getSessionToken>", "merchantId": "<your merchantId>", "merchantSiteId": "<your merchantSiteId>", "clientRequestId": "<unique request ID in merchant system>", "amount": "200", "currency": "MYR", "userTokenId": "<unique customer identifier in merchant system>", "clientUniqueId": "<unique transaction ID in merchant system>", "paymentOption": { "alternativePaymentMethod": { "paymentMethod": "apmgw_Online_Bank_Transfer_Malaysia", "mobi_accountType": "01", "mobi_bankCodeRetail": "TEST0021", "mobi_bankCodeCorporate": "" } }, "deviceDetails": { "ipAddress": "<customer's IP address>" }, "billingAddress": { "firstName": "John", "lastName": "Smith", "country": "MY", "email": "[email protected]" }, "userDetails": { "firstName": "John", "lastName": "Smith", "country": "MY", "email": "[email protected]" }, "timeStamp": "<YYYYMMDDHHmmss>", "checksum": "<calculated checksum>" }
Example /payment
Response
{ "internalRequestId": 44535981, "status": "SUCCESS", "errCode": 0, "reason": "", "merchantId": "5416795427517477813", "merchantSiteId": "186111", "version": "1.0", "sessionToken": "5a5445ec-6626-4d29-bce7-d2e72449d1ef", "orderId": "43843821", "userTokenId": "Online_Bank_Transfer_Malaysiatoken2", "paymentOption": { "redirectUrl": "https://jumpbox.safecharge.com/apm/mobi/MobiDeposit?amount=1.00&redirectUrl=https://jumpbox.safecharge.com/apm/mobi/v1/consumerReturn/?encryptedId=680BD10E748DEB3B0DDAF3528CB2E032&action=success&sellerOrderNo=680BD10E748DEB3B0DDAF3528CB2E032&bankType=01&mid=000000000019661&buyerName=John Doe&tid=10004761&merchantName=Nuvei&bank=TEST0021&service=FULL_LIST&[email protected]&subMID=201100000012450", "userPaymentOptionId": "2153438641", "card": {} }, "transactionStatus": "REDIRECT" }
...'ppp_status=OK&Status=APPROVED&ExErrCode=0&ErrCode=0&errApmCode=0&errApmDescription=&errScCode=0&errScDescription=&Reason=&ReasonCode=0&PPP_TransactionID=43843821&userid=Online_Bank_Transfer_Malaysiatoken2&merchant_unique_id=&customData=&productId=&first_name=John&last_name=Doe&email=test%40mymail.com¤cy=MYR&pmDisplayName=SBI+Bank+A&customField1=&customField2=&customField3=&customField4=&customField5=&customField6=&customField7=&customField8=&customField9=&customField10=&customField11=&customField12=&customField13=&customField14=&customField15=&invoice_id=&address1=65%2C+Overlea+str&address2=&country=Malaysia&state=&city=Oslo&zip=123456&phone1=&phone2=&phone3=&client_ip=&nameOnCard=&cardNumber=&bin=&noCVV=&acquirerId=&acquirerBank=MobiMS-PI&expMonth=&expYear=&Token=&tokenId=&AuthCode=01&AvsCode=&Cvv2Reply=&shippingCountry=&shippingState=&shippingCity=&shippingAddress=&shippingZip=&shippingFirstName=&shippingLastName=&shippingPhone=&shippingCell=&shippingMail=&total_discount=0.00&total_handling=0.00&total_shipping=0.00&total_tax=0.00&buyButtonProductBundleId=&merchant_site_id=186111&merchant_status=&action=&requestVersion=&message=APPROVED&merchantLocale=&unknownParameters=&payment_method=apmgw_Online_Bank_Transfer_Malaysia&ID=&merchant_id=5416795427517477813&responseTimeStamp=2024-09-30.12%3A44%3A27&buyButtonProductId=&webMasterId=&appliedPromotions=&uniqueCC=&transactionType=Sale&externalEmail=&cardCompany=&eci=&user_token_id=Online_Bank_Transfer_Malaysiatoken2&userPaymentOptionId=2153438641&TransactionID=2610000000000066097&externalTransactionId=AR202409302039250f5691896b&APMReferenceID=680BD10E748DEB3B0DDAF3528CB2E032&orderTransactionId=25081481&totalAmount=1.00&dynamicDescriptor=hristo+descriptor&item_name_1=NA&item_number_1=&item_amount_1=1.00&item_quantity_1=1&item_discount_1=0.00&item_handling_1=0.00&item_shipping_1=0.00&feeAmount=&amountWithoutFee=&houseNumber=&customCurrency=&upoRegistrationDate=20240930&type=DEPOSIT&clientRequestId=&relatedTransactionId=&apmPayerInfo=%5B%5D&sessionId=2f4994e72a3484e4b729450d796a&responsechecksum=7d6ebd02e4138df6cbc18479a2791628005fcec70b77aba9dc332d8b10f8f8de&advanceResponseChecksum=5c4e6397ad90d1c8f82a6ae7aba24e9e3503532555a16ecee9b9848ecfd75cbd'
After the transaction is processed, Nuvei sends a Direct Merchant Notification (DMN) that includes the result of the transaction to urlDetails.notificationUrl
, which Nuvei recommends including in the /payment
request.
User Experience
- The user is redirected to the bank’s website and enters their username and Password.
- The user approves the deposit.
- A confirmation appears.
Testing
Test credentials and testing scenarios can be provided by Nuvei if necessary. You can contact Nuvei support for assistance.