NAV undefined
bash php javascript java go python csharp

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-VERSION
optional
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-id
optional
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-rule
optional
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-id
optional
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-rule
optional
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-id
optional
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-rule
optional
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 object
required
item object Informasi dari barang atau produk, harus mengandung: id [string], name [string], price [number], type [string], url [string], quantity [number]
callback_url
required
string Kami akan mengirimkan callback ke alamat ini setelah pembeli melakukan selesai melakukan pembayaran.
redirect_url
required
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_ERROR
422
Ada input yang salah pada salah satu request field wajib.
USER_DID_NOT_AUTHORIZE_THE_PAYMENT
400
Pengguna tidak mengotorisasi request pembayaran dalam batas waktu yang diberikan.
USER_DECLINED_THE_TRANSACTION
400
Pengguna menolak permintaan pembayaran.
PHONE_NUMBER_NOT_REGISTERED
400
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_PAYMENT
400
Pembayaran dengan external_id yang sama sudah pernah dilakukan sebelumnya.
OVO_TIMEOUT_ERROR
400
Terjadi timeout pada koneksi antara aplikasi OVO dengan server OVO.
CREDENTIALS_ERROR
400
Merchant tidak terdaftar di sistem penyedia e-wallet
ACCOUNT_AUTHENTICATION_ERROR
400
Otentikasi pengguna gagal.
ACCOUNT_BLOCKED_ERROR
400
Terjadi kegagalan dalam memproses transaksi dikarenakan akun pengguna terblokir.
EWALLET_TYPE_NOT_SUPPORTED
422
ewallet_type is yang anda minta belum tersedia saat ini
REQUEST_FORBIDDEN_ERROR
403
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_ERROR
422
Ada input yang salah pada salah satu request field wajib.
DUPLICATE_ERROR
400
Pembayaran dengan external_id yang sama telah dibuat sebelumnya.
EWALLET_TYPE_NOT_SUPPORTED
422
ewallet_type is yang anda minta belum tersedia saat ini
REQUEST_FORBIDDEN_ERROR
403
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_ERROR
400
Ada input yang salah pada salah satu request field wajib.
GENERATE_CHECKOUT_TOKEN_ERROR
422
Sebuah error terjadi dalam proses pembuatan checkout_url.
DUPLICATE_PAYMENT_ERROR
400
Pembayaran dengan external_id yang sama sudah pernah dilakukan sebelumnya.
EWALLET_TYPE_NOT_SUPPORTED
422
ewallet_type is yang anda minta belum tersedia saat ini
REQUEST_FORBIDDEN_ERROR
403
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-VERSION
optional
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-id
optional
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-rule
optional
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_ERROR
422
Ada input yang salah pada salah satu request field wajib.
EWALLET_TYPE_NOT_SUPPORTED
422
ewallet_type is yang anda minta belum tersedia saat ini
DUPLICATE_PAYMENT_REQUEST_ERROR
400
Pembayaran dengan external_id yang sama sudah pernah dilakukan sebelumnya.
REQUEST_FORBIDDEN_ERROR
403
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-id
optional
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-rule
optional
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_ERROR
422
Ada input yang salah pada salah satu request field wajib.
EWALLET_TYPE_NOT_SUPPORTED
422
ewallet_type is yang anda minta belum tersedia saat ini
DUPLICATE_ERROR
400
Pembayaran dengan external_id yang sama telah dibuat sebelumnya.
CHECKOUT_ERROR
400
Terjadi kesalahan eksternal dari DANA. Mohon untuk mencoba kembali dalam beberapa menit atau silakan hubungi tim customer success kami.
REQUEST_FORBIDDEN_ERROR
403
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-id
optional
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-rule
optional
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 object
required
item object Informasi dari barang atau produk, harus mengandung: id [string], name [string], price [number], type [string], url [string], quantity [number]
callback_url
required
string Kami akan mengirimkan callback ke alamat ini setelah pembeli melakukan selesai melakukan pembayaran.
redirect_url
required
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_ERROR
400
Ada input yang salah pada salah satu request field wajib.
GENERATE_CHECKOUT_TOKEN_ERROR
422
Sebuah error terjadi dalam proses pembuatan checkout_url.
EWALLET_TYPE_NOT_SUPPORTED
422
ewallet_type is yang anda minta belum tersedia saat ini
DUPLICATE_PAYMENT_ERROR
400
Pembayaran dengan external_id yang sama sudah pernah dilakukan sebelumnya.
REQUEST_FORBIDDEN_ERROR
403
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.