API PAYMENTS

1. Untuk API access product digital dan PAYMENT GATEWAY by Yoo Community anda harus melakukan request khusus dengan mengirimkan email request pembukaan access product digital by Yoo Digital di info@yoo.my.id dengan subject "Permintaan Request API KEY Product Digital/Payment Gateway".

2. Transaksi yang berhasil atau dengan status success/settlement, akan otomatis masuk ke halaman balance. Untuk melakukan withdraw saldo pada balance saat ini hanya tersedia tujuan e-wallet. Kedepan akan ada fitur withdraw ke saldo akun bank pengguna.

3. API KEY dapat diakses pada halaman account. Layanan API dapat digunakan jika terdapat payments pada field ACCESS.

4. API Payments hanya dapat digunakan jika fitur balance sudah aktif, harap aktivasi balance pada halaman balance berikut.

5. Authentication dari setiap request yang ada, harus di include-kan ke dalam AUTHORIZATION HTTP header, sebagai berikut.

AUTHORIZATION HEADER

Accept: application/json
Content-Type: application/json
Authorization: Bearer API-KEY 

Request Body (JSON Parameter)

API payment gateway adalah layanan yang memungkinkan pedagang (merchant) untuk memproses pembayaran kartu kredit dan bentuk pembayaran elektronik lainnya secara online melalui antarmuka yang aman. Ini bertindak sebagai perantara antara situs web pedagang dan lembaga keuangan yang terlibat dalam transaksi, memastikan transmisi data yang aman dan otorisasi pembayaran.

ENDPOINT

https://yoo.my.id/api/v1/payments

Parameter Request

Parameter Description
customer_name customer_name adalah request wajib yang diisi, maksimal 20 digital huruf.
detail_product detail_product berisikan parameter deskripsi singkat tentang product katalog anda, tidak boleh lebih dari 50 karakter.
amount amount adalah parameter request dalam bentuk numerik.
payment_method payment_method adalah type pembayaran yang digunakan, saat ini support untuk qris, bri_va, echannel, dan cimb_va. Jika ingin mengaktfikan semua pembayaran bisa menggunakan all_payments pada request.
callbacks callbacks adalah response url yang akan dikirimkan ketika transaksi sukses atau gagal.

Request

Method: POST

{
        "customer_name":"sinta agustina",
        "detail_product": "Baju Tidur Anak XXL",
        "amount": 50000,
        "payment_method": "qris",
        "callbacks": "https://example.com/callback"
}

Response True

{
    "status": 201,
    "message": "Payment link created successfully!",
    "data": {
        "reference_id": "topup-6652d54dbcc99",
        "amount": 50500,
        "token": "55f5c9d8-4934-4658-afe3-809617a430fc",
        "payment_method": "qris",
        "payment_links": "https://app.midtrans.com/snap/v4/redirection/55f5c9d8-4934-4658-afe3-809617a430fc",
        "history": "TOP UP Balance menggunakan QRIS API",
        "status": "pending",
        "transaction_date": "2024-05-26 13:23:09",
        "expire_date": "2024-05-26 16:23:09"
    },
    "info": {
        "name": "andi back",
        "message": "Baju Tidur Anak XXL",
        "data": {
            "quantity": 1,
            "callbacks": "https://example.com/callback"
        }
    }
}

Penting: Harap akses/klik payment_links untuk mengubah status pending by YOO System menjadi pending.

All Field Is Required

{
    "status": 400,
    "error": 400,
    "messages": {
        "customer_name": "The customer_name field is required.",
        "amount": "The amount field is required.",
        "payment_method": "The payment_method field is required.",
        "detail_product": "The detail_product field is required.",
        "callbacks": "The callbacks field is required."
    }
}

Invalid Bearer Token

{
    "status": 401,
    "error": 401,
    "messages": {
        "error": "Invalid bearer token"
    }
}

Request Terlalu Banyak

{
    "status": 429,
    "error": true,
    "messages": {
        "error": "Too many attempts. Please try again after 4 seconds."
    }
}

API KEY Valid, Tetapi Access Endpoint Dibatasi.

{
    "status": 401,
    "error": 401,
    "messages": {
        "error": "Invalid access to create payments"
    }
}

Maintenance Time

API akan offline untuk konsolidasi setiap harinya pada pukul 00:00 WIB - 00:30 WIB. Downtime selama 30 menit.

{
    "status": 503,
    "error": 503,
    "messages": {
        "error": "API is currently offline for maintenance. Please try again later."
    }
}

ENDPOINT STATUS

https://yoo.my.id/api/v1/payments/status

Parameter Request

Parameter Description
reference_id reference_id adalah request body yang wajib dimasukkan.
signature Untuk membuat signature/tanda tangan kredensial apakah transaksi tersebut sah, menggunakan fungsi hashing dari sha256.
Contoh Pada PHP
$reference_id = 'topup-6698439834';
$bearer_key = '34059tjr98tj409t';
$signaturePayload = $reference_id . ':' . $bearer_key;
$signature = hash_hmac('sha256', $signaturePayload, $bearer_key);

Request

Method: POST

{
        "reference_id": "topup-664ee4b01bd3c",,
        "signature": "221f67a6a1c16c1a7a1af2489fa1ab049628045add034441a1b263a7e77e2f931"
}

Response Hasil Success HTTP CODE 200

{
    "status": 200,
    "error": 200,
    "data": {
        "reference_id": "topup-664ee4b01bd3c",
        "amount": 1000,
        "catatan": "2810276389755564",
        "status": "success"
    }
}

Response Hasil Pending HTTP CODE 201

{
    "status": 201,
    "error": 201,
    "data": {
        "reference_id": "topup-664ee4b01bd3c",
        "amount": 1000,
        "catatan": "2810276389755564",
        "status": "pending"
    }
}

Response Hasil Expire HTTP CODE 202

{
    "status": 202,
    "error": 202,
    "data": {
        "reference_id": "topup-664ee4b01bd3c",
        "amount": 1000,
        "catatan": "2810276389755564",
        "status": "expire"
    }
}

Response Maksimum Limit Transaksi Harian

{
    "status": 400,
    "error": 400,
    "messages": {
        "error": "Total transaksi harian melebihi batas Rp 250.000"
    }
}