{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"1b71fea1-ca3f-4a99-aeab-efc4703afffd","name":"G8-Pay Reseller API v1","description":"Dokumentasi API untuk reseller G8-Pay `v1`\n\nList Domain G8-Pay\n\n- Development : [https://dev.g8-pay.com/v1](https://dev.g8-pay.com/v1)\n    \n- Production : [https://api.g8-pay.com/v1](https://api.g8-pay.com/v1)\n    \n\nHubungi Account Manager / Sales Manager kami untuk mebuka akun reseller di G8-Pay\n\n# Authentication\n\nHeader :\n\n- X-Api-Key : `{{api_key}}`\n    \n- Accept : `application/json`\n    \n- Accept-Language : `id | en`\n    \n\n`{{api_key}}` bisa didapatkan dari dashboard reseller anda.  \nnote : Apabila language tidak di isi, maka semua response message akan berbahasa Indonesia.\n\n# Signature\n\nSignature dipakai untuk keperluan POST order dan Validasi callback dari G8-PAY.  \n`{{secret_key}}` secret key hanya bisa didapatkan dengan cara hubungi Account Manager kalian, untuk request reset secret key juga hanya bisa dengan cara hubungi Account Manager kalian.\n\n> stringToSign = `{{antara_group_product_atau_product_code}} + . + qty + .+ {{secret_key}}`  \n`signature = sha256(stringToSign)` \n  \n\nsaat POST order kalian bisa menggunakan `group_product` atau `product_code`  \ncontoh pada POST order:\n\n``` json\n{\n\"partner_reference_id\" :  \"INV-001\"\n\"product_code\" : \"MLID_5DM-A1\",\n\"qty\": 3,\n\"user_id\" : \"99990000\",\n\"additional_id\" : \"2009\",\n\"signature\" : \"hasil_hash_dari(MLID_5DM-A1.3.secret_key)\"\n}\n\n ```\n\n<img src=\"https://content.pstmn.io/24fbf075-3df3-4b9c-8bdf-a6ce042a8006/U2NyZWVuc2hvdCAyMDI1LTEyLTIzIDA5MjI1MC5wbmc=\" alt=\"string%20yang%20harus%20di%20hash\" width=\"238\" height=\"29\">\n\n> payloadToSign = `timestamp + . + {{secret_key}}`  \n`signature = sh256(payloadToSign)` \n  \n\ncontoh callback dari G8-PAY:\n\n``` json\n{\n  \"code\": \"00\",\n  \"message\": \"OK\",\n  \"data\": {\n    \"partner_reference_id\": \"INV-001\",\n    \"trxid\": \"A0000011\",\n    \"timestamp\": 1766456781,\n    \"signature\": \"hasil_hash_dari(1766456781.secret_key)\",\n    \"status\": \"SUCCESS\",\n    \"transactions\": [\n      {\n        \"id\": 1,\n        \"code_voucher\": \"\",\n        \"note\": \"Sukses Terkirim - 2025-12-30 00:01:18 WIB\",\n        \"product_name\": \"5 Diamonds\",\n        \"status\": \"success\"\n      },\n      {\n        \"id\": 2,\n        \"code_voucher\": \"\",\n        \"note\": \"Sukses Terkirim - 2025-12-30 00:01:18 WIB\",\n        \"product_name\": \"5 Diamonds\",\n        \"status\": \"success\"\n      },\n      {\n        \"id\": 3,\n        \"code_voucher\": \"\",\n        \"note\": \"Sukses Terkirim - 2025-12-30 00:01:18 WIB\",\n        \"product_name\": \"5 Diamonds\",\n        \"status\": \"success\"\n      }\n    ]\n  }\n}\n\n ```\n\n# Response Format\n\nFormat response API G8-Pay\n\n``` json\n{\n  \"code\": \"00\",\n  \"message\": \"OK\",\n  \"data\": {...}\n}\n\n ```\n\n- code = bisnis code dari G8-Pay (lihat table business code).\n    \n- message = keterangan singkat\n    \n- data = payload utamma\n    \n\n# Business Code\n\n| Code | HTTP | Keterangan |\n| --- | --- | --- |\n| 00 | 200 | Berhasil - Request sukses |\n| 01 | 400/404/422 | Permintaan tidak valid - Payload/param salah, data tidak ditemukan, atau validasi gagal di level request, param kosong/invalid, BadRequest |\n| 02 | 401 | Tidak terautentikasi - API key/secret header salah/tidak ada |\n| 03 | 403 | Tidak diizinkan - IP tidak masuk whitelist / akses ditolak |\n| 04 | 422 | Error validasi form - Validasi form required gagal / field required tidak lengkap |\n| 05 | 400 | Saldo tidak mencukupi - Balance partner kurang |\n| 06 | 409/400 | Transaksi sudah ada - Duplicate trx / reference |\n| 07 | 401/400 | Signature tidak valid - Signature mismatch |\n| 08 | 400 | Perbedaan harga - Price mismatch, harga request vs harga server berbeda |\n| 09 | 400 | UserID tidak ditemukan - User/game ID tidak valid, check user gagal |\n| 10 | 400 | Akun tidak bisa digunakan untuk region ini - Region lock / region mismatch / user/game region mismatch |\n| 99 | 500 | Terjadi kesalahan pada server - error internal |\n\n# Product\n\nSetiap produk di G8-Pay mempunyai :\n\n- `category_code` Kode kategori atau biasa dikelompokan menjadi Nama Game / Nama Game (sesuai region) / Nama Game sesuai jenis Topup  \n    contoh : MLID (Mobile Legend Indonesia), MLPH (Mobile Legend Filipina), ROMCLOG (Ragnarok Online M Classic via Login), ROMC (Ragnarok Online M Classic)\n    \n- `group_product` Grup produk kode ini untuk mengelompokan jenis / item / product yang sama tetapi beda provider / supplier / distributor.  \n    contoh : MLID_5-A1, MLID_5-A2 (artinya item tersebut sama, tetapi 1 dari A1 (supplier dengan code A1) dan A2 (supplier dengan code A2).  \n    biasa nya case ini ada perbedaan harga / delay dalam pengiriman.\n    \n- `product_code` Biasa dikenal oleh SKU Produk, masing-masing produk di G8-Pay punya unik product code untuk membedakan 1 sama lainnya.\n    \n\nnote : Apabila ingin simple mode, atau mudah dalam maintenance produk dan update harga kami sarankan untuk menggunakan group_product untuk SKU Vendor di applikasi anda.\n\n# Form Order\n\nSaat melalukan order, anda harus kirim value dari parameter yang dibutuhkan dari masing-masing category, anda bisa mendapatkan apa saja yang dibutuhkan dari `forms` saat GET Category.\n\nForms ada 4 parameter :\n\n- user_id\n    \n- additional_id\n    \n- additional_information\n    \n- order_detail\n    \n\nmasing-masing kategori ada yang butuh 1 sampai ke-4 variable tersebut, dan jenis forms ada.\n\n- tel (ini number tanpa spasi)\n    \n- text (string)\n    \n- email (email)\n    \n- options (value yang dikirim harus sama dengan value yang tersedia)\n    \n\n# White Label (Optional)\n\nKami menyediakan /white-label endpoint untuk kebutuhan penggunaan data seperti deskripsi, gambar game / icon url, dan hint dari form yang dibutuhkan, dan semua tersedia dalam bahasa EN dan ID\n\ncontoh response get category normal :\n\n``` json\n{\n    \"code\": \"00\",\n    \"message\": \"Berhasil\",\n    \"data\": {\n        \"categories\": [\n            {\n                \"code\": \"MLID\",\n                \"name\": \"Mobile Legend ID\",\n                \"variant\": \"DIGITAL\",\n                \"check_id\": \"inactive\",\n                \"country_code\": \"id\",\n                \"forms\": [\n                    {\n                        \"name\": \"user_id\",\n                        \"type\": \"tel\"\n                    },\n                    {\n                        \"name\": \"additional_id\",\n                        \"type\": \"tel\"\n                    }\n                ]\n            },\n            {\n                \"code\": \"STEAM\",\n                \"name\": \"Steam Wallet\",\n                \"variant\": \"VOUCHER\",\n                \"check_id\": \"inactive\",\n                \"country_code\": \"id\",\n                \"forms\": []\n            }\n        ]\n    }\n}\n\n ```\n\ncontoh response get category white-label\n\n``` json\n{\n    \"code\": \"00\",\n    \"message\": \"Berhasil\",\n    \"data\": {\n        \"categories\": [\n            {\n                \"code\": \"MLID\",\n                \"name\": \"Mobile Legend ID\",\n                \"variant\": \"DIGITAL\",\n                \"check_id\": \"inactive\",\n                \"country_code\": \"id\",\n                \"icon_url\": \"https://s3-id-jkt-1.kilatstorage.id/main/m/category-game/1/6932d8a998b153.08501619.webp\",\n                \"developer_name\": \"Moonton\",\n                \"description\": {\n                    \"en\": \"**How to Top Up Mobile Legends: Bang Bang**\\r\\n1. Input User ID and Zone ID\\r\\n2. Example : 1234567 (1234)\\r\\n3. Choose the Nominal Diamonds you want\\r\\n4. Complete payment\\r\\n5. Diamond will be added to your Mobile Legends account\",\n                    \"id\": \"**Cara Top Up Mobile Legends Diamonds**\\r\\n1. Masukkan User ID dan Zone ID kamu\\r\\n2. Contoh : 1234567 (1234)\\r\\n3. Pilih Nominal Diamonds yang kamu inginkan\\r\\n4. Selesaikan pembayaran\\r\\n5. Diamonds akan ditambahkan ke akun Mobile Legends kamu\"\n                },\n                \"sub_category\": [\n                    {\n                        \"name\": \"WDP\",\n                        \"sort\": 2,\n                        \"sub_category_code\": \"WDP\"\n                    },\n                    {\n                        \"name\": \"Diamond\",\n                        \"sort\": 3,\n                        \"sub_category_code\": \"DM\"\n                    },\n                    {\n                        \"name\": \"Promo First Topup\",\n                        \"sort\": 1,\n                        \"sub_category_code\": \"1ST\"\n                    }\n                ],\n                \"forms\": [\n                    {\n                        \"name\": \"user_id\",\n                        \"type\": \"tel\",\n                        \"display\": {\n                            \"en\": \"User ID\",\n                            \"id\": \"User ID\"\n                        },\n                        \"hint\": {\n                            \"en\": \"You can find the User ID on the profile page.\",\n                            \"id\": \"Anda bisa dapatkan User ID di halaman profile.\"\n                        }\n                    },\n                    {\n                        \"name\": \"additional_id\",\n                        \"type\": \"tel\",\n                        \"display\": {\n                            \"en\": \"Zone ID\",\n                            \"id\": \"Zone ID\"\n                        },\n                        \"hint\": {\n                            \"en\": \"\",\n                            \"id\": \"\"\n                        }\n                    }\n                ]\n            }\n        ]\n    }\n}\n\n ```","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"34964205","collectionId":"1b71fea1-ca3f-4a99-aeab-efc4703afffd","publishedId":"2sBXVme8Cp","public":true,"publicUrl":"https://documenter-api.postman.tech/view/34964205/2sBXVme8Cp","privateUrl":"https://go.postman.co/documentation/34964205-1b71fea1-ca3f-4a99-aeab-efc4703afffd","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":"Dokumentasi v1 API H2H G8-Pay.com, Distributor Game Voucher Game, dan Topup Game."},{"name":"title","value":"G8-Pay H2H API v1"}],"appearance":{"default":"system_default","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2026-01-26T05:47:35.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"G8-Pay H2H API v1","description":"Dokumentasi v1 API H2H G8-Pay.com, Distributor Game Voucher Game, dan Topup Game."},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/768118b36f06c94b0306958b980558e6915839447e859fe16906e29d683976f0","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2sBXVme8Cp"}