2019-02-04
Pembuatan Pembayaran eWallet
Endpoint: Pembuatan Pembayaran Ewallet
POST https://api.xendit.co/ewallets
Paramater Request
Versi
Anda sedang melihat API versi 2019-02-04. Versi yang terbaru telah tersedia!
Contoh: Request Pembuatan Pembayaran Ewallet
OVO
OVO:
curl https://api.xendit.co/ewallets -X POST \
-u xnd_development_O46JfOtygef9kMNsK+ZPGT+ZZ9b3ooF4w3Dn+R1k+2fT/7GlCAN3jg==: \
-H "x-api-version: 2019-02-04" \
-d external_id='ovo-ewallet' \
-d amount=1000 \
-d phone='08123123123'\
-d ewallet_type='OVO'
<?php
Xendit::setApiKey('xnd_development_O46JfOtygef9kMNsK+ZPGT+ZZ9b3ooF4w3Dn+R1k+2fT/7GlCAN3jg==');
$ovoParams = [
'external_id' => 'demo_' . time(),
'amount' => 32000,
'phone' => '081298498259',
'ewallet_type' => 'OVO'
];
$createOvo = \Xendit\EWallets::create($ovoParams);
var_dump($createOvo);
const x = new require('xendit-node')({ secretKey: 'xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==' });
const { EWallet } = x;
const ewalletSpecificOptions = {};
const ew = new EWallet(ewalletSpecificOptions);
const resp = await ew.createPayment({
externalID: 'ovo-ewallet',
amount: 1000,
phone: '08123123123',
ewalletType: EWallet.Type.OVO,
});
console.log(resp);
Xendit.apiKey = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==";
try {
EWalletPayment ewal = EWalletPayment.createOvoPayment(
"ovo-ewallet", //externalId
1000, //amount
"08123123123" //phone
);
} catch (XenditException e) {
e.printStackTrace();
}
xendit.Opt.SecretKey = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw=="
data := ewallet.CreatePaymentParams{
ExternalID: "ovo-ewallet",
Amount: 1000,
Phone: "08123123123",
EWalletType: xendit.EWalletTypeOVO,
CallbackURL: "mystore.com/callback",
RedirectURL: "mystore.com/redirect",
}
resp, err := ewallet.CreatePayment(&data)
if err != nil {
log.Fatal(err)
}
fmt.Printf("created payment: %+v\n", resp)
from xendit import Xendit
api_key = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw=="
xendit_instance = Xendit(api_key=api_key)
EWallet = xendit_instance.EWallet
ovo_payment = EWallet.create_ovo_payment(
external_id="ovo-ewallet-testing-id-1593663430",
amount="80001",
phone="08123123123",
x_api_version="2019-02-04",
)
print(ovo_payment)
string apiKey = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==";
XenditClient xendit = new XenditClient(apiKey);
EWalletPaymentClient eWalletPayment = xendit.EWalletPayment;
EWalletPaymentParameter parameter = new EWalletPaymentParameter
{
ExternalId = "example-external-id",
Amount = 100000,
Phone = "08123123123",
EWalletType = EWalletEnum.PaymentType.Ovo,
};
// define API version
EWalletPaymentResponse eWalletPaymentResponse = await eWalletPayment.Create(parameter, apiVersion: ApiVersion.Version20190204);
Contoh: Respon Sukses dari Pembuatan Ewallet
{
"transaction_date": "2019-04-07T01:35:46.658Z",
"amount": 1000,
"external_id": "ovo-ewallet",
"ewallet_type": "OVO",
"phone": "08123123123",
"business_id": "5850eteStin791bd40096364",
"ewallet_transaction_id": "7a718e47-fa8a-4f81-b642-37348dc5db18"
}
Paramater Header | Tipe | Deskripsi |
---|---|---|
X-API-VERSIONoptional |
string |
Versi API dalam semantik tanggal (contoh: 2019-02-04). Gunakan header ini untuk menggunakan versi API tertentu. Daftar versi API dapat ditemukan di sini. |
for-user-idoptional |
string |
User-id yang Anda inginkan untuk membuat transaksi. Header ini hanya bisa digunakan jika Anda memiliki akses ke xenPlatform. Silakan buka xenPlatform untuk informasi lebih lanjut. |
with-fee-ruleoptional |
string |
ID Fee Rule yang ingin Anda aplikasikan ke pembayaran untuk Invoice ini Catatan: Jika Anda memasukkan parameter ini, kami akan mengembalikan fee_rule_id dan fee_id pada header response API This header is only used if you have access to xenPlatform. See xenPlatform for more information |
Paramater Body | Tipe | Deskripsi |
---|---|---|
external_id required |
string |
ID yang merupakan identifikasi unik dari sistem Anda seperti nomor ponsel, surat elektronik atau ID transaksi. Catatan: Hanya gunakan karakter alfanumerik. |
<br>**Catatan:** Tanda baca yang diperbolehkan: `-`.
<br>**Catatan:** Panjang maksimum yang diperbolehkan adalah 1000 karakter.
amount
required
|number
| Nominal yang pelanggan Anda harus bayarkan. Catatan: Nominal minimum adalah Rp 1 dan maksimum adalah Rp 10.000.000. phone
required
|string
| Nomor telepon dari pelanggan (contoh: 08123123123) Catatan: Pelanggan harus memiliki akun eWallet terdaftar yang aktif dengan nomor telepon Indonesia sebelum melakukan request pembayaran. Catatan: Format nomor telepon harus "08123123123" (tidak menggunakan "+62"). ewallet_type
required
|string
| ewallet_type harus dalam huruf besar: 'OVO'
DANA
DANA:
curl https://api.xendit.co/ewallets -X POST \
-u xnd_development_O46JfOtygef9kMNsK+ZPGT+ZZ9b3ooF4w3Dn+R1k+2fT/7GlCAN3jg==: \
-d external_id = 'dana-ewallet' \\
-d amount = 1001 \\
-d expiration_date = '2020-02-20T00:00:00.000Z' \\
-d callback_url = 'https://my-shop.com/callbacks' \\
-d redirect_url = 'https://my-shop.com/home' \\
-d ewallet_type = 'DANA'
<?php
Xendit::setApiKey('xnd_development_O46JfOtygef9kMNsK+ZPGT+ZZ9b3ooF4w3Dn+R1k+2fT/7GlCAN3jg==');
$danaParams = [
'external_id' => 'demo_' . time(),
'amount' => 32000,
'phone' => '081298498259',
'expiration_date' => '2020-02-20T00:00:00.000Z',
'callback_url' => 'https://my-shop.com/callbacks',
'redirect_url' => 'https://my-shop.com/home',
'ewallet_type' => 'DANA'
];
$createDana = \Xendit\EWallets::create($danaParams);
var_dump($createDana);
const x = new require('xendit-node')({ secretKey: 'xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==' });
const { EWallet } = x;
const ewalletSpecificOptions = {};
const ew = new EWallet(ewalletSpecificOptions);
const resp = await ew.createPayment({
externalID: 'dana-ewallet',
amount: 1001,
expirationDate: new Date(2020, 1, 20),
callbackURL: 'https://my-shop.com/callbacks',
redirectURL: 'https://my-shop.com/home',
ewalletType: EWallet.Type.DANA,
});
console.log(resp);
Xendit.apiKey = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==";
try {
EWalletPayment ewal = EWalletPayment.createDanaPayment(
"dana-ewallet", //externalId
1000, //amount
"08123123123", //phone
"24-08-2019", //expirationDate
"callback_url", //callbackUrl
"redirect_url" //redirectUrl
);
} catch (XenditException e) {
e.printStackTrace();
}
xendit.Opt.SecretKey = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw=="
data := ewallet.CreatePaymentParams{
ExternalID: "dana-ewallet",
Amount: 20000,
Phone: "08123123123",
EWalletType: xendit.EWalletTypeDANA,
CallbackURL: "mystore.com/callback",
RedirectURL: "mystore.com/redirect",
}
resp, err := ewallet.CreatePayment(&data)
if err != nil {
log.Fatal(err)
}
fmt.Printf("created payment: %+v\n", resp)
from xendit import Xendit
api_key = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw=="
xendit_instance = Xendit(api_key=api_key)
EWallet = xendit_instance.EWallet
dana_payment = EWallet.create_dana_payment(
external_id="dana-ewallet-test-1593663447",
amount="1001",
callback_url="https://my-shop.com/callbacks",
redirect_url="https://my-shop.com/home",
)
print(dana_payment)
Contoh: Respon Sukses dari Pembuatan Ewallet
{
"external_id": "dana-ewallet",
"checkout_url": "https://dana.id/m/portal/cashier/checkout?id=5d34079d51a9ed12c78a78d3",
"amount": 1000,
"ewallet_type": "DANA"
}
Paramater Header | Tipe | Deskripsi |
---|---|---|
for-user-idoptional |
string |
User-id yang Anda inginkan untuk membuat transaksi. Header ini hanya bisa digunakan jika Anda memiliki akses ke xenPlatform. Silakan buka xenPlatform untuk informasi lebih lanjut. |
with-fee-ruleoptional |
string |
ID Fee Rule yang ingin Anda aplikasikan ke pembayaran untuk Invoice ini Catatan: Jika Anda memasukkan parameter ini, kami akan mengembalikan fee_rule_id dan fee_id pada header response API This header is only used if you have access to xenPlatform. See xenPlatform for more information |
Paramater Body | Tipe | Deskripsi |
---|---|---|
external_id required |
string |
ID yang merupakan identifikasi unik dari sistem Anda seperti nomor ponsel, surat elektronik atau ID transaksi. Panjang maksimum yang diperbolehkan adalah 1000 karakter. |
amount required |
number |
Nominal yang pelanggan Anda harus bayarkan. Catatan: Nominal minimum adalah Rp 1 dan maksimum adalah Rp 10.000.000. |
expiration_date optional |
string |
Pelanggan anda tidak dapat menyelesaikan pembayaran melewati tanggal kedaluwarsa ini Catatan: Jika tidak diisi, waktu standar yang ditetapkan adalah 24 jam. |
callback_url required |
string |
URL untuk menerima callback setelah pembayaran dilakukan oleh pelanggan anda |
redirect_url required |
string |
URL untuk mengarahkan pelanggan anda setelah selesai melakukan pembayaran |
ewallet_type required |
string |
ewallet_type harus dalam huruf besar: 'DANA' |
LINKAJA
LINKAJA:
curl https://api.xendit.co/ewallets -X POST \
-u xnd_development_O46JfOtygef9kMNsK+ZPGT+ZZ9b3ooF4w3Dn+R1k+2fT/7GlCAN3jg==: \
--header 'content-type: application/json' \
--data '{
"external_id": "linkaja-ewallet",
"phone": "081245671234",
"amount": 300000,
"items": [
{
"id": "123123",
"name": "Phone Case",
"price": 100000,
"quantity": 1
},
{
"id": "345678",
"name": "Powerbank",
"price": 200000,
"quantity": 1
}
],
"callback_url": "http://yourwebsite.com/callback",
"redirect_url": "https://yourwebsite.com/order/123",
"ewallet_type": "LINKAJA",
}'
<?php
Xendit::setApiKey('xnd_development_O46JfOtygef9kMNsK+ZPGT+ZZ9b3ooF4w3Dn+R1k+2fT/7GlCAN3jg==');
$linkajaParams = [
'external_id' => 'demo_' . time(),
'amount' => 32000,
'phone' => '081298498259',
'items' => [
[
'id' => '123123',
'name' => 'Phone Case',
'price' => 100000,
'quantity' => 1
],
[
'id' => '345678',
'name' => 'Powerbank',
'price' => 200000,
'quantity' => 1
]
],
'callback_url' => 'https =>//yourwebsite.com/callback',
'redirect_url' => 'https =>//yourwebsite.com/order/123',
'ewallet_type' => 'LINKAJA'
];
$createLinkaja = \Xendit\EWallets::create($linkajaParams);
var_dump($createLinkaja);
const x = new require('xendit-node')({ secretKey: 'xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==' });
const { EWallet } = x;
const ewalletSpecificOptions = {};
const ew = new EWallet(ewalletSpecificOptions);
const item = {
id: "345678",
name: "Powerbank",
price: 200000,
quantity: 1,
};
const resp = await ew.createPayment({
externalID: 'linkaja-ewallet',
amount: 300000,
items: [item, item],
callbackURL: 'https://my-shop.com/callbacks',
redirectURL: 'https://my-shop.com/home',
ewalletType: EWallet.Type.LINKAJA,
});
console.log(resp);
Xendit.apiKey = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==";
try {
//items
EWalletLinkajaItem items[] = new EWalletLinkajaItem[1];
items[0] =
EWalletLinkajaItem.builder()
.id("123")
.name("Phone Case")
.price(200000)
.quantity(1)
.build();
EWalletPayment ewal = EWalletPayment.createLinkajaPayment(
"linkaja-ewallet", //externalId
1000, //amount
"08123123123", //phone
items, //EWwalletLinkajaitem[]
"callback_url", //callbackUrl
"redirect_url" //redirectUrl
);
} catch (XenditException e) {
e.printStackTrace();
}
xendit.Opt.SecretKey = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw=="
item1 := ewallet.Item {
ID: "123123",
Name: "Phone Case",
Price: 100000,
Quantity: 1,
}
item2 := ewallet.Item {
ID: "345678",
Name: "Powerbank",
Price: 200000,
Quantity: 1,
}
var items []ewallet.Item
items = append(items, item1)
items = append(items, item2)
data := ewallet.CreatePaymentParams{
ExternalID: "linkaja-ewallet",
Amount: 300000,
Phone: "08123123123",
EWalletType: xendit.EWalletTypeLINKAJA,
CallbackURL: "mystore.com/callback",
RedirectURL: "mystore.com/redirect",
Items: items,
}
resp, err := ewallet.CreatePayment(&data)
if err != nil {
log.Fatal(err)
}
fmt.Printf("created payment: %+v\n", resp)
from xendit import Xendit
api_key = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw=="
xendit_instance = Xendit(api_key=api_key)
EWallet = xendit_instance.EWallet
items = []
item = EWallet.helper_create_linkaja_item(
id="123123", name="Phone Case", price=100000, quantity=1
)
items.append(item)
linkaja_payment = EWallet.create_linkaja_payment(
external_id="linkaja-ewallet-test-1593663498",
phone="089911111111",
items=items,
amount=300000,
callback_url="https://my-shop.com/callbacks",
redirect_url="https://xendit.co/",
)
print(linkaja_payment)
Contoh: Respon Sukses dari Pembuatan Ewallet
{
"checkout_url": "https://ewallet-linkaja-dev.xendit.co/checkouts/b0c464ab-dcdc-4426-9255-759a9450c9d2",
"transaction_date": "2019-10-25T08:42:54.308Z",
"amount": 300000,
"external_id": "linkaja-ewallet",
"ewallet_type": "LINKAJA"
}
Paramater Header | Tipe | Deskripsi |
---|---|---|
for-user-idoptional |
string |
User-id yang Anda inginkan untuk membuat transaksi. Header ini hanya bisa digunakan jika Anda memiliki akses ke xenPlatform. Silakan buka xenPlatform untuk informasi lebih lanjut. |
with-fee-ruleoptional |
string |
ID Fee Rule yang ingin Anda aplikasikan ke pembayaran untuk Invoice ini Catatan: Jika Anda memasukkan parameter ini, kami akan mengembalikan fee_rule_id dan fee_id pada header response API This header is only used if you have access to xenPlatform. See xenPlatform for more information |
Paramater Body | Tipe | Deskripsi |
---|---|---|
external_id required |
string |
ID yang merupakan identifikasi unik dari sistem Anda seperti nomor ponsel, surat elektronik atau ID transaksi. Panjang maksimum yang diperbolehkan adalah 1000 karakter. |
phone required |
string |
Nomor telepon dari pelanggan (contoh: 08123123123) Catatan: Pelanggan harus memiliki akun eWallet terdaftar yang aktif dengan nomor telepon Indonesia sebelum melakukan request pembayaran. |
amount required |
number |
Nominal yang pelanggan Anda harus bayarkan. Catatan: Nominal minimum adalah Rp 100 dan maksimum adalah Rp 10.000.000 |
items required |
array of item object |
Daftar barang / produk. |
item objectrequired |
item object |
Informasi dari barang atau produk, harus mengandung: id [string], name [string], price [number], type [string], url [string], quantity [number] |
callback_urlrequired |
string |
Kami akan mengirimkan callback ke alamat ini setelah pembeli melakukan selesai melakukan pembayaran. |
redirect_urlrequired |
string |
Setelah pembeli melakukan pembayaran di halaman checkout mitra eWallet, mereka akan diarahkan ke redirect_url . Anda bisa memasukkan alamat dari halaman transaksi di website Anda ataupun halaman home website Anda. |
ewallet_type required |
string |
ewallet_type harus dalam huruf besar: 'LINKAJA' |
Contoh: Respon Error dari Request Pembuatan Pembayaran Ewallet
Error
OVO
{
"error_code": "USER_DID_NOT_AUTHORIZE_THE_PAYMENT",
"message": "Payment was not authorized"
}
Kode Error | Deskripsi |
---|---|
API_VALIDATION_ERROR422 |
Ada input yang salah pada salah satu request field wajib. |
USER_DID_NOT_AUTHORIZE_THE_PAYMENT400 |
Pengguna tidak mengotorisasi request pembayaran dalam batas waktu yang diberikan. |
USER_DECLINED_THE_TRANSACTION400 |
Pengguna menolak permintaan pembayaran. |
PHONE_NUMBER_NOT_REGISTERED400 |
Nomor telepon yang digunakan Pengguna untuk melakukan pembayaran tidak terdaftar. |
EWALLET_APP_UNREACHABLE 400 |
Provider/Server eWallet tidak bisa menjangkau applikasi/handphone Pengguna. Penyebab yang sering terjadi adalah karena applikasi eWallet sudah di uninstall di handphone pengguna. |
DUPLICATE_PAYMENT400 |
Pembayaran dengan external_id yang sama sudah pernah dilakukan sebelumnya. |
OVO_TIMEOUT_ERROR400 |
Terjadi timeout pada koneksi antara aplikasi OVO dengan server OVO. |
CREDENTIALS_ERROR400 |
Merchant tidak terdaftar di sistem penyedia e-wallet |
ACCOUNT_AUTHENTICATION_ERROR400 |
Otentikasi pengguna gagal. |
ACCOUNT_BLOCKED_ERROR400 |
Terjadi kegagalan dalam memproses transaksi dikarenakan akun pengguna terblokir. |
EWALLET_TYPE_NOT_SUPPORTED422 |
ewallet_type is yang anda minta belum tersedia saat ini |
REQUEST_FORBIDDEN403 |
API key yang digunakan tidak memiliki izin untuk melakukan request. Mohon berikan izin yang sesuai terhadap API key yang digunakan. Pelajari lebih lanjut disini |
DANA
{
"error_code": "DUPLICATE_ERROR",
"message": "Transaction with this external_id is already exist"
}
Kode Error | Deskripsi |
---|---|
API_VALIDATION_ERROR422 |
Ada input yang salah pada salah satu request field wajib. |
DUPLICATE_ERROR400 |
Pembayaran dengan external_id yang sama telah dibuat sebelumnya. |
EWALLET_TYPE_NOT_SUPPORTED422 |
ewallet_type is yang anda minta belum tersedia saat ini |
REQUEST_FORBIDDEN403 |
API key yang digunakan tidak memiliki izin untuk melakukan request. Mohon berikan izin yang sesuai terhadap API key yang digunakan. Pelajari lebih lanjut disini |
LINKAJA
{
"error_code": "DUPLICATE_ERROR",
"message": "Transaction with this external_id is already exist"
}
Kode Error | Deskripsi |
---|---|
API_VALIDATION_ERROR400 |
Ada input yang salah pada salah satu request field wajib. |
GENERATE_CHECKOUT_TOKEN_ERROR422 |
Sebuah error terjadi dalam proses pembuatan checkout_url. |
DUPLICATE_PAYMENT_ERROR400 |
Pembayaran dengan external_id yang sama sudah pernah dilakukan sebelumnya. |
EWALLET_TYPE_NOT_SUPPORTED422 |
ewallet_type is yang anda minta belum tersedia saat ini |
REQUEST_FORBIDDEN403 |
API key yang digunakan tidak memiliki izin untuk melakukan request. Mohon berikan izin yang sesuai terhadap API key yang digunakan. Pelajari lebih lanjut disini |
2020-02-01
Kanal pembayaran ewallet memungkinkan Anda untuk menerima pembayaran dari nasabah melalui penyedia jasa ewallet terbesar di Indonesia seperti OVO, DANA, LinkAja dan Shopeepay.
Pembuatan Pembayaran eWallet
Endpoint: Pembuatan Pembayaran Ewallet
POST https://api.xendit.co/ewallets
Versi
Anda sedang melihat API versi 2020-02-01. Klik di sini untuk melihat versi sebelumnya.
Versi | Changelog |
---|---|
2020-02-01 (terbaru) | Berisi flow yang asynchronous dengan callback dari pembuatan pembayaran OVO. |
2019-02-04 | Mengembalikan respon secara langsung tanpa adanya callback. |
OVO
Parameter Request
Contoh: Request Pembuatan Pembayaran Ewallet
curl https://api.xendit.co/ewallets -X POST \
-u xnd_development_O46JfOtygef9kMNsK+ZPGT+ZZ9b3ooF4w3Dn+R1k+2fT/7GlCAN3jg==: \
-H "x-api-version: 2020-02-01" \
-d external_id='ovo-ewallet' \
-d amount=1000 \
-d phone='08123123123'\
-d ewallet_type='OVO'
<?php
use Xendit\Xendit;
require 'vendor/autoload.php';
Xendit::setApiKey('xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==');
$ovoParams = [
'external_id' => 'ovo-ewallet',
'amount' => 1000,
'phone' => '08123123123',
'ewallet_type' => 'OVO'
];
$createOvo = \Xendit\EWallets::create($ovoParams);
var_dump($createOvo);
?>
const x = new require('xendit-node')({ secretKey: 'xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==' });
const { EWallet } = x;
const ewalletSpecificOptions = {};
const ew = new EWallet(ewalletSpecificOptions);
const resp = await ew.createPayment({
externalID: 'ovo-ewallet',
amount: 1000,
phone: '08123123123',
ewalletType: EWallet.Type.OVO,
});
console.log(resp);
Xendit.apiKey = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==";
try {
EWalletPayment ewal = EWalletPayment.createOvoPayment(
"ovo-ewallet", //externalId
1000, //amount
"08123123123" //phone
);
} catch (XenditException e) {
e.printStackTrace();
}
xendit.Opt.SecretKey = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw=="
data := ewallet.CreatePaymentParams{
ExternalID: "ovo-ewallet",
Amount: 1000,
Phone: "08123123123",
EWalletType: xendit.EWalletTypeOVO,
CallbackURL: "mystore.com/callback",
RedirectURL: "mystore.com/redirect",
}
resp, err := ewallet.CreatePayment(&data)
if err != nil {
log.Fatal(err)
}
fmt.Printf("created payment: %+v\n", resp)
from xendit import Xendit
api_key = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw=="
xendit_instance = Xendit(api_key=api_key)
EWallet = xendit_instance.EWallet
ovo_payment = EWallet.create_ovo_payment(
external_id="ovo-ewallet-testing-id-1593663430",
amount="80001",
phone="08123123123",
)
print(ovo_payment)
string apiKey = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==";
XenditClient xendit = new XenditClient(apiKey);
EWalletPaymentClient eWalletPayment = xendit.EWalletPayment;
EWalletPaymentParameter parameter = new EWalletPaymentParameter
{
ExternalId = "example-external-id",
Amount = 100000,
Phone = "08123123123",
EWalletType = EWalletEnum.PaymentType.Ovo,
};
// define API version
EWalletPaymentResponse eWalletPaymentResponse = await eWalletPayment.Create(parameter, apiVersion: ApiVersion.Version20200201);
Parameter Header | Tipe | Deskripsi |
---|---|---|
X-API-VERSIONoptional |
string |
Versi API dalam semantik tanggal (contoh: 2020-02-01). Gunakan header ini untuk menggunakan versi API tertentu. Daftar versi API dapat ditemukan di sini. |
for-user-idoptional |
string |
User-id yang Anda inginkan untuk membuat transaksi. Header ini hanya bisa digunakan jika Anda memiliki akses ke xenPlatform. Silakan buka xenPlatform untuk informasi lebih lanjut. |
with-fee-ruleoptional |
string |
ID Fee Rule yang ingin Anda aplikasikan ke pembayaran untuk Invoice ini Catatan: Jika Anda memasukkan parameter ini, kami akan mengembalikan fee_rule_id dan fee_id pada header response API This header is only used if you have access to xenPlatform. See xenPlatform for more information |
Parameter Body | Tipe | Deskripsi |
---|---|---|
external_id required |
string |
ID yang merupakan identifikasi unik dari sistem Anda seperti nomor ponsel, surat elektronik atau ID transaksi. Catatan: Tanda baca yang diperbolehkan: - . Catatan: Panjang maksimum yang diperbolehkan adalah 50 karakter. Catatan: Harus unik untuk setiap request. |
amount required |
number |
Nominal yang pelanggan Anda harus bayarkan. Catatan: Nominal minimum adalah Rp 1 dan maksimum adalah Rp 10.000.000. |
phone required |
string |
Nomor telepon dari pelanggan (contoh: 08123123123) Catatan: Pelanggan harus memiliki akun eWallet terdaftar yang aktif dengan nomor telepon Indonesia sebelum melakukan request pembayaran. Catatan: Format nomor telepon harus "08123123123" (tidak menggunakan "+62"). |
ewallet_type required |
string |
ewallet_type harus dalam huruf besar: 'OVO' |
Parameter Respon
Contoh: Respon Sukses dari Pembuatan Ewallet
{
"business_id": "5850eteStin791bd40096364",
"external_id": "ovo-ewallet",
"amount": 1000,
"phone": "08123123123",
"ewallet_type": "OVO",
"status": "PENDING",
"created": "2020-02-20T00:00:00.000Z",
}
Parameter | Tipe | Deskripsi |
---|---|---|
business_id required |
string |
ID yang merupakan identifikasi unik untuk merchant |
external_id required |
string |
ID yang merupakan identifikasi unik dari setiap request |
amount required |
number |
Nominal yang diinginkan |
phone required |
string |
Nomor telepon pelanggan |
ewallet_type required |
string |
Tipe dari e-wallet. Nilai: OVO |
status required |
string |
Status pembayaran. Nilai: PENDING |
created required |
string |
Timestamp ISO 8601 saat request pembuatan pembayaran dilakukan (dalam UTC) |
Error-error pada Respon API
Contoh: Respon Error dari Request Pembuatan Pembayaran Ewallet
{
"error_code": "DUPLICATE_PAYMENT_REQUEST_ERROR",
"message": "There is already a payment request with external_id: ovo-ewallet"
}
Kode Error | Deskripsi |
---|---|
API_VALIDATION_ERROR422 |
Ada input yang salah pada salah satu request field wajib. |
EWALLET_TYPE_NOT_SUPPORTED422 |
ewallet_type is yang anda minta belum tersedia saat ini |
DUPLICATE_PAYMENT_REQUEST_ERROR400 |
Pembayaran dengan external_id yang sama sudah pernah dilakukan sebelumnya. |
REQUEST_FORBIDDEN403 |
API key yang digunakan tidak memiliki izin untuk melakukan request. Mohon berikan izin yang sesuai terhadap API key yang digunakan. Pelajari lebih lanjut disini |
DANA
Parameter Request
Contoh: Request Pembuatan Pembayaran Ewallet
curl https://api.xendit.co/ewallets -X POST \
-u xnd_development_O46JfOtygef9kMNsK+ZPGT+ZZ9b3ooF4w3Dn+R1k+2fT/7GlCAN3jg==: \
-d external_id = 'dana-ewallet' \\
-d amount = 1001 \\
-d expiration_date = '2020-02-20T00:00:00.000Z' \\
-d callback_url = 'https://my-shop.com/callbacks' \\
-d redirect_url = 'https://my-shop.com/home' \\
-d ewallet_type = 'DANA'
<?php
use Xendit\Xendit;
require 'vendor/autoload.php';
Xendit::setApiKey('xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==');
$danaParams = [
'external_id' => 'dana-ewallet',
'amount' => 1000,
'phone' => '081298498259',
'expiration_date' => '2020-02-20T00:00:00.000Z',
'callback_url' => 'https://my-shop.com/callbacks',
'redirect_url' => 'https://my-shop.com/home',
'ewallet_type' => 'DANA'
];
$createDana = \Xendit\EWallets::create($danaParams);
var_dump($createDana);
?>
const x = new require('xendit-node')({ secretKey: 'xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==' });
const { EWallet } = x;
const ewalletSpecificOptions = {};
const ew = new EWallet(ewalletSpecificOptions);
const resp = await ew.createPayment({
externalID: 'dana-ewallet',
amount: 1001,
expirationDate: new Date(2020, 1, 20),
callbackURL: 'https://my-shop.com/callbacks',
redirectURL: 'https://my-shop.com/home',
ewalletType: EWallet.Type.DANA,
});
console.log(resp);
Xendit.apiKey = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==";
try {
EWalletPayment ewal = EWalletPayment.createDanaPayment(
"dana-ewallet", //externalId
1000, //amount
"08123123123", //phone
"24-08-2019", //expirationDate
"callback_url", //callbackUrl
"redirect_url" //redirectUrl
);
} catch (XenditException e) {
e.printStackTrace();
}
xendit.Opt.SecretKey = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw=="
data := ewallet.CreatePaymentParams{
ExternalID: "dana-ewallet",
Amount: 20000,
Phone: "08123123123",
EWalletType: xendit.EWalletTypeDANA,
CallbackURL: "mystore.com/callback",
RedirectURL: "mystore.com/redirect",
}
resp, err := ewallet.CreatePayment(&data)
if err != nil {
log.Fatal(err)
}
fmt.Printf("created payment: %+v\n", resp)
from xendit import Xendit
api_key = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw=="
xendit_instance = Xendit(api_key=api_key)
EWallet = xendit_instance.EWallet
dana_payment = EWallet.create_dana_payment(
external_id="dana-ewallet-test-1593663447",
amount="1001",
callback_url="https://my-shop.com/callbacks",
redirect_url="https://my-shop.com/home",
)
print(dana_payment)
Parameter Header | Tipe | Deskripsi |
---|---|---|
for-user-idoptional |
string |
User-id yang Anda inginkan untuk membuat transaksi. Header ini hanya bisa digunakan jika Anda memiliki akses ke xenPlatform. Silakan buka xenPlatform untuk informasi lebih lanjut. |
with-fee-ruleoptional |
string |
ID Fee Rule yang ingin Anda aplikasikan ke pembayaran untuk Invoice ini Catatan: Jika Anda memasukkan parameter ini, kami akan mengembalikan fee_rule_id dan fee_id pada header response API This header is only used if you have access to xenPlatform. See xenPlatform for more information |
Parameter Body | Tipe | Deskripsi |
---|---|---|
external_id required |
string |
ID yang merupakan identifikasi unik dari sistem Anda seperti nomor ponsel, surat elektronik atau ID transaksi. Panjang maksimum yang diperbolehkan adalah 1000 karakter. |
amount required |
number |
Nominal yang pelanggan Anda harus bayarkan. Catatan: Nominal minimum adalah Rp 1 dan maksimum adalah Rp 10.000.000. |
expiration_date optional |
string |
Pelanggan anda tidak dapat menyelesaikan pembayaran melewati tanggal kedaluwarsa ini Timezone: Zona waktu, UTC kecuali Anda tentukan (Contoh 2020-03-20T04:54:10+07:00) Expiry: Jika tidak diisi, waktu standar yang ditetapkan adalah 24 jam. |
callback_url required |
string |
URL untuk menerima callback setelah pembayaran dilakukan oleh pelanggan anda |
redirect_url required |
string |
URL untuk mengarahkan pelanggan anda setelah selesai melakukan pembayaran |
ewallet_type required |
string |
ewallet_type harus dalam huruf besar: 'DANA' |
Parameter Respon
Contoh: Respon Sukses dari Pembuatan Ewallet
{
"external_id": "dana-ewallet",
"checkout_url": "https://dana.id/m/portal/cashier/checkout?id=5d34079d51a9ed12c78a78d3",
"amount": 1000,
"ewallet_type": "DANA"
}
Parameter | Tipe | Deskripsi |
---|---|---|
external_id required |
string |
ID yang merupakan identifikasi unik dari setiap request |
checkout_url required |
string |
URL yang dibuat oleh DANA untuk customer Anda melakukan pembayaran |
amount required |
number |
Nominal yang diinginkan |
ewallet_type required |
string |
Tipe dari e-wallet. Nilai: DANA |
Kode Error
Contoh: Respon Error dari Request Pembuatan Pembayaran EWallet
{
"error_code": "DUPLICATE_ERROR",
"message": "Transaction with this external_id is already exist"
}
Kode Error | Deskripsi |
---|---|
API_VALIDATION_ERROR422 |
Ada input yang salah pada salah satu request field wajib. |
EWALLET_TYPE_NOT_SUPPORTED422 |
ewallet_type is yang anda minta belum tersedia saat ini |
DUPLICATE_ERROR400 |
Pembayaran dengan external_id yang sama telah dibuat sebelumnya. |
CHECKOUT_ERROR400 |
Terjadi kesalahan eksternal dari DANA. Mohon untuk mencoba kembali dalam beberapa menit atau silakan hubungi tim customer success kami. |
REQUEST_FORBIDDEN403 |
API key yang digunakan tidak memiliki izin untuk melakukan request. Mohon berikan izin yang sesuai terhadap API key yang digunakan. Pelajari lebih lanjut disini |
LINKAJA
Parameter Request
Contoh: Request Pembuatan Pembayaran Ewallet
curl https://api.xendit.co/ewallets -X POST \
-u xnd_development_O46JfOtygef9kMNsK+ZPGT+ZZ9b3ooF4w3Dn+R1k+2fT/7GlCAN3jg==: \
--header 'content-type: application/json' \
--data '{
"external_id": "linkaja-ewallet",
"phone": "081245671234",
"amount": 300000,
"items": [
{
"id": "123123",
"name": "Phone Case",
"price": 100000,
"quantity": 1
},
{
"id": "345678",
"name": "Powerbank",
"price": 200000,
"quantity": 1
}
],
"callback_url": "http://yourwebsite.com/callback",
"redirect_url": "https://yourwebsite.com/order/123",
"ewallet_type": "LINKAJA",
}'
<?php
use Xendit\Xendit;
require 'vendor/autoload.php';
Xendit::setApiKey('xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==');
$linkajaParams = [
'external_id' => 'linkaja-ewallet',
'amount' => 300000,
'phone' => '081298498259',
'items' => [
[
'id' => '123123',
'name' => 'Phone Case',
'price' => 100000,
'quantity' => 1
],
[
'id' => '345678',
'name' => 'Powerbank',
'price' => 200000,
'quantity' => 1
]
],
'callback_url' => 'https =>//yourwebsite.com/callback',
'redirect_url' => 'https =>//yourwebsite.com/order/123',
'ewallet_type' => 'LINKAJA'
];
$createLinkaja = \Xendit\EWallets::create($linkajaParams);
var_dump($createLinkaja);
?>
const x = new require('xendit-node')({ secretKey: 'xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==' });
const { EWallet } = x;
const ewalletSpecificOptions = {};
const ew = new EWallet(ewalletSpecificOptions);
const item = {
id: "345678",
name: "Powerbank",
price: 200000,
quantity: 1,
};
const resp = await ew.createPayment({
externalID: 'linkaja-ewallet',
amount: 300000,
items: [item, item],
callbackURL: 'https://my-shop.com/callbacks',
redirectURL: 'https://my-shop.com/home',
ewalletType: EWallet.Type.LINKAJA,
});
console.log(resp);
Xendit.apiKey = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw==";
try {
//items
EWalletLinkajaItem items[] = new EWalletLinkajaItem[1];
items[0] =
EWalletLinkajaItem.builder()
.id("123")
.name("Phone Case")
.price(200000)
.quantity(1)
.build();
EWalletPayment ewal = EWalletPayment.createLinkajaPayment(
"linkaja-ewallet", //externalId
1000, //amount
"08123123123", //phone
items, //EWwalletLinkajaitem[]
"callback_url", //callbackUrl
"redirect_url" //redirectUrl
);
} catch (XenditException e) {
e.printStackTrace();
}
xendit.Opt.SecretKey = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw=="
item1 := ewallet.Item {
ID: "123123",
Name: "Phone Case",
Price: 100000,
Quantity: 1,
}
item2 := ewallet.Item {
ID: "345678",
Name: "Powerbank",
Price: 200000,
Quantity: 1,
}
var items []ewallet.Item
items = append(items, item1)
items = append(items, item2)
data := ewallet.CreatePaymentParams{
ExternalID: "linkaja-ewallet",
Amount: 300000,
Phone: "08123123123",
EWalletType: xendit.EWalletTypeLINKAJA,
CallbackURL: "mystore.com/callback",
RedirectURL: "mystore.com/redirect",
Items: items,
}
resp, err := ewallet.CreatePayment(&data)
if err != nil {
log.Fatal(err)
}
fmt.Printf("created payment: %+v\n", resp)
from xendit import Xendit
api_key = "xnd_development_P4qDfOss0OCpl8RtKrROHjaQYNCk9dN5lSfk+R1l9Wbe+rSiCwZ3jw=="
xendit_instance = Xendit(api_key=api_key)
EWallet = xendit_instance.EWallet
items = []
item = EWallet.helper_create_linkaja_item(
id="123123", name="Phone Case", price=100000, quantity=1
)
items.append(item)
linkaja_payment = EWallet.create_linkaja_payment(
external_id="linkaja-ewallet-test-1593663498",
phone="089911111111",
items=items,
amount=300000,
callback_url="https://my-shop.com/callbacks",
redirect_url="https://xendit.co/",
)
print(linkaja_payment)
Parameter Header | Tipe | Deskripsi |
---|---|---|
for-user-idoptional |
string |
User-id yang Anda inginkan untuk membuat transaksi. Header ini hanya bisa digunakan jika Anda memiliki akses ke xenPlatform. Silakan buka xenPlatform untuk informasi lebih lanjut. |
with-fee-ruleoptional |
string |
ID Fee Rule yang ingin Anda aplikasikan ke pembayaran untuk Invoice ini Catatan: Jika Anda memasukkan parameter ini, kami akan mengembalikan fee_rule_id dan fee_id pada header response API This header is only used if you have access to xenPlatform. See xenPlatform for more information |
Parameter Body | Tipe | Deskripsi |
---|---|---|
external_id required |
string |
ID yang merupakan identifikasi unik dari sistem Anda seperti nomor ponsel, surat elektronik atau ID transaksi. Panjang maksimum yang diperbolehkan adalah 1000 karakter. |
phone required |
string |
Nomor telepon dari pelanggan (contoh: 08123123123) Catatan: Pelanggan harus memiliki akun eWallet terdaftar yang aktif dengan nomor telepon Indonesia sebelum melakukan request pembayaran. |
amount required |
number |
Nominal yang pelanggan Anda harus bayarkan. Catatan: Nominal minimum adalah Rp 100 dan maksimum adalah Rp 10.000.000 |
items required |
array of item object |
Daftar barang / produk. |
item objectrequired |
item object |
Informasi dari barang atau produk, harus mengandung: id [string], name [string], price [number], type [string], url [string], quantity [number] |
callback_urlrequired |
string |
Kami akan mengirimkan callback ke alamat ini setelah pembeli melakukan selesai melakukan pembayaran. |
redirect_urlrequired |
string |
Setelah pembeli melakukan pembayaran di halaman checkout mitra eWallet, mereka akan diarahkan ke redirect_url . Anda bisa memasukkan alamat dari halaman transaksi di website Anda ataupun halaman home website Anda. |
ewallet_type required |
string |
ewallet_type harus dalam huruf besar: 'LINKAJA' |
Parameter Respon
Contoh: Respon Sukses dari Pembuatan Ewallet
{
"checkout_url": "https://ewallet-linkaja-dev.xendit.co/checkouts/b0c464ab-dcdc-4426-9255-759a9450c9d2",
"transaction_date": "2019-10-25T08:42:54.308Z",
"amount": 300000,
"external_id": "linkaja-ewallet",
"ewallet_type": "LINKAJA"
}
Parameter | Tipe | Deskripsi |
---|---|---|
checkout_url required |
string |
URL yang dibuat oleh LINKAJA untuk customer Anda melakukan pembayaran Expiry: Waktu kadaluarsa secara otomatis adalah 5 menit. |
transaction_date required |
string |
Timestamp ISO 8601 saat request pembuatan pembayaran dilakukan (dalam UTC) |
amount required |
number |
Nominal yang diinginkan |
external_id required |
string |
ID yang merupakan identifikasi unik dari setiap request |
ewallet_type required |
string |
Tipe dari e-wallet. Nilai: LINKAJA |
Error-error pada Respon API
Contoh: Respon Error dari Request Pembuatan Pembayaran Ewallet
{
"error_code": "DUPLICATE_PAYMENT_ERROR",
"message": "Checkout URL with the same external_id has been created before."
}
Kode Error | Deskripsi |
---|---|
API_VALIDATION_ERROR400 |
Ada input yang salah pada salah satu request field wajib. |
GENERATE_CHECKOUT_TOKEN_ERROR422 |
Sebuah error terjadi dalam proses pembuatan checkout_url. |
EWALLET_TYPE_NOT_SUPPORTED422 |
ewallet_type is yang anda minta belum tersedia saat ini |
DUPLICATE_PAYMENT_ERROR400 |
Pembayaran dengan external_id yang sama sudah pernah dilakukan sebelumnya. |
REQUEST_FORBIDDEN403 |
API key yang digunakan tidak memiliki izin untuk melakukan request. Mohon berikan izin yang sesuai terhadap API key yang digunakan. Pelajari lebih lanjut disini |
Shopeepay
{}
Saluran pembayaran Shopeepay akan tersedia di Xendit [eWallet BETA endpoint] (https://developers.xendit.co/ewallets-beta/#tag/eWallets-Callback-Notifications).
Seluruh saluran pembayaran eWallet kami akan digabungkan ke dalam endpoint ini. Seluruh endpoint yang ada saat ini akan tetap tersedia dan dipertahankan.
Changelog
Versi 2020-02-01 (terbaru)
Request pembayaran dengan OVO menggunakan flow baru yang asynchronous dengan callback dari pembuatan pembayaran e-wallet.
Versi 2019-02-04
Mengembalikan respon secara langsung secara synchronous tanpa adanya callback.