Mulai Integrasi?

Terakhir di update: 01 April 2020

Bagaimana cara integrasi?

Kami menyediakan tiga tipe integrasi untuk anda. Integrasi dengan menggunakan API (merchant menampilkan halaman pembayaran sendiri), MPS Web Checkout (pembayaran dengan menggunakan tampilan alat bayar dari MPS), dan terakhir adalah SDK.

Postman Collection
Base URL Integrasi:

Untuk development https://merchant.mpstelkom.id/api/sandbox

Untuk production https://merchant.mpstelkom.id/api/production

Sebelum melakukan integrasi

Sebelum dapat melakukan integrasi dengan MPS, merchant harus mendaftarkan diri dahulu di sini untuk dapat melakukan integrasi. Ingat, juga untuk transaksi minimal di atas 5000 ya. Jangan di bawah itu.

Integrasi dengan API

screenshot

Pertama

Untuk bisa melakukan integrasi pembayaran, merchant harus melakukan generate invoice terlebih dahulu ke MPS. Invoice ini nantinya akan digunakan untuk rekonsiliasi data antara merchant dan MPS. Memiliki arti sebagai pencocokan data antara data di MPS dan di merchant. Setiap data yang dikirim ke MPS memiliki format JSON.


/* URL Endpoint Generate Invoice: /merchant/requestInvoice */
/* DataRequest: */
{
    "merchantId": "195xxxxxxx", /* (Mandatory) Didapat saat merchant telah melakukan pendaftaran */
    "merchantKey": "283912xxxxxxxxxxx", /* (Mandatory) Didapat saat merchant telah melakukan pendaftaran */
    "orderId": "TESTING-123", /* (Mandatory) OrderId di generate dari merchant dan harus unik */
    "amount": "2000", /*(Mandatory) Total transaksi yang harus dibayarkan oleh user */
    "orderInformation": 
        {
            "productName": "Nama Product yang dibeli", /*(Mandatory)*/
            "quantity": "Jumlah barang yang dibeli", /*(Mandatory)*/
            "amount": "Harga barang yang dibeli", /*(Mandatory)*/
            "nama": "Nama merchant", /*(Mandatory)*/
            "nomorHp": "Data nomor Hp merchant", /*(Mandatory)*/
            "email": "email pelanggan" /*(Mandatory)*/
        }
    "additionalInformation": {
        "emailNotif": "xxxxxx@gmail.com" /* (Optional) Email pelanggan untuk update transaksi by email */
    }
}

/* URL Endpoint Generate Invoice multi product: /merchant/requestInvoice/v2 */
/* DataRequest: */
{
    "merchantId": "195xxxxxxx", /* (Mandatory) Didapat saat merchant telah melakukan pendaftaran */
    "merchantKey": "283912xxxxxxxxxxx", /* (Mandatory) Didapat saat merchant telah melakukan pendaftaran */
    "orderId": "TESTING-123", /* (Mandatory) OrderId di generate dari merchant dan harus unik */
    "amount": "2000", /*(Mandatory) Total transaksi yang harus dibayarkan oleh user */
    "orderInformations": [
        {
            "productName": "Nama Product yang dibeli", /*(Mandatory)*/
            "quantity": "Jumlah barang yang dibeli", /*(Mandatory)*/
            "amount": "Harga barang yang dibeli", /*(Mandatory)*/
            "nama": "Nama merchant", /*(Mandatory)*/
            "nomorHp": "Data nomor Hp merchant", /*(Mandatory)*/
            "email": "email pelanggan" /*(Mandatory)*/
        },
        {
            "productName": "Nama Product yang dibeli", /*(Mandatory)*/
            "quantity": "Jumlah barang yang dibeli", /*(Mandatory)*/
            "amount": "Harga barang yang dibeli", /*(Mandatory)*/
            "nama": "Nama merchant", /*(Mandatory)*/
            "nomorHp": "Data nomor Hp merchant", /*(Mandatory)*/
            "email": "email pelanggan" /*(Mandatory)*/
        }
    ]
    "additionalInformation": {
        "emailNotif": "xxxxxx@gmail.com" /* (Optional) Email pelanggan untuk update transaksi by email */
    }
}

/* DataResponse: */
{
    "resultCode": "00", /* Jika RC = 00, berhasil. List rc ada di bawah */
    "resultDescription": "success", /* Message RC */
    "orderId": "TEST-123", 
    "invoiceId": "195xxxxxTEST-321321", 
    "expiredDate": "2020-04-09 11:30:17"
}
 

Kedua

Setelah melakukan generate invoice, merchant harus melakukan get API request list product untuk mendapatkan product pembayaran. Lalu merchant bisa melakukan request nomor VA dengan mengirimkan.


/* URL Endpoint Generate Invoice: /merchant/requestVa */
/* DataRequest: */
{
	"invoiceId":"195xxxxxTEST-321321", /* Generate dari API request invoice */
	"merchantId":"195xxxxxxxxx", /* (Mandatory) Didapat saat merchant telah melakukan pendaftaran */
	"merchantKey":"asdaxxxxxxxx", /* (Mandatory) OrderId di generate dari merchant dan harus unik */
	"productCode":"PERMATAATM", /* Generate dar API get list product */
	"gateway":"68aeb5cc-81fb-4a4a-9f19-d8a17bf6e9b1" /* Generate dar API get list product */
}

/* DataResponse: */
{
    "resultCode": "00", /* Jika RC = 00, berhasil. List rc ada di bawah */
    "resultDescrtiption": "SUCCESS", /* Message RC */
    "vaNumber": "8620001291335557", 
    "expired": "2020-04-08 20:45:21", 
    "description": "",
    "totalAmount": 1000.00,
    "amount": 1000.00,
    "fee": 0.00
}

Ketiga

Setelah selesai mendapatkan nomor VA nya, merchant dapat membuat tampilan pembayarannya sendiri. Sebagai contoh nya ada pada gambar di bawah.

screenshot
screenshot

Integrated hosted Payment

screenshot

Useful Tip:

Integrasi ini sangat cocok untuk merchant yang belum memiliki gambaran bagaimana menampilkan halaman pembayarannya.

Generate Invoice

Untuk bisa melakukan integrasi pembayaran, merchant harus melakukan generate invoice terlebih dahulu ke MPS. Invoice ini nantinya akan digunakan untuk rekonsiliasi data antara merchant dan MPS. Memiliki arti sebagai pencocokan data antara data di MPS dan di merchant. Setiap data yang dikirim ke MPS memiliki format JSON.


/* URL Endpoint Generate Invoice: /merchant/requestInvoice */
/* DataRequest: */
{
    "merchantId": "195xxxxxxx", /* (Mandatory) Didapat saat merchant telah melakukan pendaftaran */
    "merchantKey": "283912xxxxxxxxxxx", /* (Mandatory) Didapat saat merchant telah melakukan pendaftaran */
    "orderId": "TESTING-123", /* (Mandatory) OrderId di generate dari merchant dan harus unik */
    "amount": "2000", /*(Mandatory) Total transaksi yang harus dibayarkan oleh user */
    "orderInformation": 
        {
            "productName": "Nama Product yang dibeli", /*(Mandatory)*/
            "quantity": "Jumlah barang yang dibeli", /*(Mandatory)*/
            "amount": "Harga barang yang dibeli", /*(Mandatory)*/
            "nama": "Nama merchant", /*(Mandatory)*/
            "nomorHp": "Data nomor Hp merchant", /*(Mandatory)*/
            "email": "email pelanggan" /*(Mandatory)*/
        }
    "additionalInformation": {
        "emailNotif": "xxxxxx@gmail.com" /* (Optional) Email pelanggan untuk update transaksi by email */
}
}

/* DataResponse: */
{
    "resultCode": "00", /* Jika RC = 00, berhasil. List rc ada di bawah */
    "resultDescription": "success", /* Message RC */
    "orderId": "TEST-123", 
    "invoiceId": "195xxxxxTEST-321321", 
    "expiredDate": "2020-04-09 11:30:17"
}
    
    

Go to hosted payment

Setelah melakukan generate invoice pada MPS, maka langkah selanjutnya adalah mengirim nomor invoice untuk dapat menampilkan hosted payment milik telkom. Bagaimana caranya? Seperti ini. Contoh tampilan pembayaran ada dibawahnya.

/* URL Endpoint Generate Hosted Payment : https://mpg.tmoney.co.id/production/payment/method/{invoiceId} */
/* HTTP Get */
screenshot

Integrated custom Payment

screenshot

Useful Tip:

Integrasi ini sangat cocok untuk merchant yang belum memiliki gambaran bagaimana menampilkan halaman pembayarannya. Dan ini digunakan untuk melakukan redirect ke halaman pembayaran kartu kredit, LinkAja dan Jenius

Generate Invoice

Untuk bisa melakukan integrasi pembayaran, merchant harus melakukan generate invoice terlebih dahulu ke MPS. Invoice ini nantinya akan digunakan untuk rekonsiliasi data antara merchant dan MPS. Memiliki arti sebagai pencocokan data antara data di MPS dan di merchant. Setiap data yang dikirim ke MPS memiliki format JSON.


/* URL Endpoint Generate Invoice: /merchant/requestInvoice */
/* DataRequest: */
{
    "merchantId": "195xxxxxxx", /* (Mandatory) Didapat saat merchant telah melakukan pendaftaran */
    "merchantKey": "283912xxxxxxxxxxx", /* (Mandatory) Didapat saat merchant telah melakukan pendaftaran */
    "orderId": "TESTING-123", /* (Mandatory) OrderId di generate dari merchant dan harus unik */
    "amount": "2000", /*(Mandatory) Total transaksi yang harus dibayarkan oleh user */
    "orderInformation": 
        {
            "productName": "Nama Product yang dibeli", /*(Mandatory)*/
            "quantity": "Jumlah barang yang dibeli", /*(Mandatory)*/
            "amount": "Harga barang yang dibeli", /*(Mandatory)*/
            "nama": "Nama merchant", /*(Mandatory)*/
            "nomorHp": "Data nomor Hp merchant", /*(Mandatory)*/
            "email": "email pelanggan" /*(Mandatory)*/
        }
    "additionalInformation": {
        "emailNotif": "xxxxxx@gmail.com" /* (Optional) Email pelanggan untuk update transaksi by email */
    }
}

/* URL Endpoint Generate Invoice multi product: /merchant/requestInvoice/v2 */
/* DataRequest: */
{
    "merchantId": "195xxxxxxx", /* (Mandatory) Didapat saat merchant telah melakukan pendaftaran */
    "merchantKey": "283912xxxxxxxxxxx", /* (Mandatory) Didapat saat merchant telah melakukan pendaftaran */
    "orderId": "TESTING-123", /* (Mandatory) OrderId di generate dari merchant dan harus unik */
    "amount": "2000", /*(Mandatory) Total transaksi yang harus dibayarkan oleh user */
    "orderInformations": [
        {
            "productName": "Nama Product yang dibeli", /*(Mandatory)*/
            "quantity": "Jumlah barang yang dibeli", /*(Mandatory)*/
            "amount": "Harga barang yang dibeli", /*(Mandatory)*/
            "nama": "Nama merchant", /*(Mandatory)*/
            "nomorHp": "Data nomor Hp merchant", /*(Mandatory)*/
            "email": "email pelanggan" /*(Mandatory)*/
        },
        {
            "productName": "Nama Product yang dibeli", /*(Mandatory)*/
            "quantity": "Jumlah barang yang dibeli", /*(Mandatory)*/
            "amount": "Harga barang yang dibeli", /*(Mandatory)*/
            "nama": "Nama merchant", /*(Mandatory)*/
            "nomorHp": "Data nomor Hp merchant", /*(Mandatory)*/
            "email": "email pelanggan" /*(Mandatory)*/
        }
    ]
    "additionalInformation": {
        "emailNotif": "xxxxxx@gmail.com" /* (Optional) Email pelanggan untuk update transaksi by email */
    }
}

/* DataResponse: */
{
    "resultCode": "00", /* Jika RC = 00, berhasil. List rc ada di bawah */
    "resultDescription": "success", /* Message RC */
    "orderId": "TEST-123", 
    "invoiceId": "195xxxxxTEST-321321", 
    "expiredDate": "2020-04-09 11:30:17"
}
    
    

Go Custom Payment

Setelah melakukan generate invoice pada MPS, maka langkah selanjutnya adalah mengirim nomor invoice untuk dapat menampilkan custom payment. Bagaimana caranya? Seperti ini. Contoh tampilan pembayaran ada dibawahnya.

/* URL Endpoint Generate Hosted Payment : payment/submit?invoiceId={invoiceId}&productCode={productCode}&gateway={gateway} */
/* HTTP Get */
screenshot

Api tambahan

Useful Tip:

Api tambahan ini wajib digenerate pertama kali sebelum akan melakukan custom payment.

Request list product paymentt

Sebelum melakukan pembuatan request custom payment ataupun melakukan request VA, maka API ini perlu dijalankan untuk mengetahui product code nya.

/* URL Endpoint Request List Product : merchant/requestProduct?merchantId={merchantId} */
/* HTTP Get */
/* Body Response */
[
    {
        "gatewayRegistery": "68xxxx",
        "gatewayCode": "12xxxx",
        "productLists": [
            {
                "bankCode": "01xx",
                "productCode": "xxx",
                "productName": "xxxx VA",
                "productImage": "image/isxxxx.png",
                "productGroup": {
                    "id": "xxxx",
                    "name": "xxxxx",
                    "description": "",
                    "photo": "12sxx.png",
                    "sequence": xxxxx
                },
                "productType": "12312xs"
            }
        ]
    }
}
        

Request Check Status

API Check status digunakan untuk melakukan checking status transaksi user.


/* URL Endpoint Request List Product : /merchant/paymentStatus */
/* HTTP POST */
{
	"invoiceId":"195xxxxxxxxx",
    "merchantId":"195xxxxxxxxx",
    "merchantKey":"afxxxxxxxxxxxx"
}
/* Body Response */
{
    "resultCode": "00",
    "resultDescription": "SUCCESS",
    "resultData": {
        "expiredDate": "2019-04-17T04:42:23.000+0000",
        "invoiceId": "195xxxxxxxxxxxxxx",
        "orderId": "xxxxxxx",
        "merchantId": "195xxxxxxxxxxx",
        "amount": 150.00,
        "merchantProductCode": null,
        "mitraReff": null,
        "mitraId": null,
        "status": "EXPIRED",
        "message": null,
        "isVaStatic": false,
        "detailVa": null,
        "notifData": {
            "amount": 150.00,
            "orderId": "test",
            "merchantId": "195xxxxxxxxxxx",
            "expiredDate": "2019-04-17T04:42:23.000+0000",
            "invoiceId": "195xxxxxxxxx",
            "message": null,
            "merchantProductCode": null,
            "status": "EXPIRED"
        }
    }
}
        

Payment Notification

API ini wajib dibuat oleh merchant sebagai penerima data status transaksi dari tim MPS. Secara real time, setiap kali transaksi terbayar, expired, ataupun created VA, MPS by sistem akan memberitahu kepada URL payment notification yang diset oleh merchant untuk kami secara real time memberikan status transaksi.


Notification Expired: 

{"expiredDate":"Jun 19, 2020 5:41:37 PM",
"invoiceId":"196xxxxx",
"orderId":"12312w",
"merchantId":"197xasxxx",
"amount":9000.00,
"status":"EXPIRED",
"message":"invoice telah expired"}

Notification UNPAID:

{"expiredDate":"Jun 14, 2020 1:40:48 AM",
"invoiceId":"195xxxx",
"orderId":"195xxxx",
"merchantId":"196xxxxx",
"amount":151517.00,
"merchantProductCode":"Virtual Account",
"mitraReff":"-",
"status":"UNPAID",
"message":"invoice belum dibayarkan",
"isVaStatic":false}

Notification PAID: 

{"expiredDate":"Jun 11, 2020 2:49:58 PM",
"invoiceId":"195xxxx",
"orderId":"1908xx",
"merchantId":"198xxxx",
"amount":416391.00,
"merchantProductCode":"Virtual Account",
"mitraReff":"-",
"status":"PAID",
"message":"invoice telah lunas","
isVaStatic":false}

Response yang harus merchant berikan:

{"status":"Success","invoiceId":"195xxxxxxxxx","message":"Success"}
        

List Error Code

List-list error code

Berikut ini beberapa list error code yang sering ditemui Klik disini