{
    "info": {
        "name": "H2H IndoTopup API",
        "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
    },
    "variable": [
        {
            "key": "base_url",
            "value": "https://h2h.indotopup.com/api/v1"
        },
        {
            "key": "api_key",
            "value": ""
        }
    ],
    "item": [
        {
            "name": "Akun",
            "item": [
                {
                    "name": "Info akun",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/account",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "account"
                            ]
                        },
                        "description": "Profil, mode kunci yang dipakai (test/live), saldo, level, dan batas. Cara tercepat memastikan kunci dan IP kamu benar."
                    }
                }
            ]
        },
        {
            "name": "Katalog",
            "item": [
                {
                    "name": "Daftar brand",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/catalog/brands",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "catalog",
                                "brands"
                            ],
                            "query": [
                                {
                                    "key": "type",
                                    "value": "",
                                    "disabled": true,
                                    "description": "standard | fallback"
                                }
                            ]
                        },
                        "description": "Brand yang punya produk. Dibatasi 30 request/menit untuk semua endpoint katalog; simpan katalog di sisimu dan sinkronkan berkala."
                    }
                },
                {
                    "name": "Daftar produk",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/catalog/products",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "catalog",
                                "products"
                            ],
                            "query": [
                                {
                                    "key": "brand",
                                    "value": "",
                                    "disabled": true,
                                    "description": "ID atau slug brand."
                                },
                                {
                                    "key": "type",
                                    "value": "",
                                    "disabled": true,
                                    "description": "standard | fallback"
                                },
                                {
                                    "key": "q",
                                    "value": "",
                                    "disabled": true,
                                    "description": "Cari nama produk."
                                },
                                {
                                    "key": "limit",
                                    "value": "",
                                    "disabled": true,
                                    "description": "Jumlah item (1–200)."
                                },
                                {
                                    "key": "after",
                                    "value": "",
                                    "disabled": true,
                                    "description": "Salin paging.next_after dari halaman sebelumnya."
                                }
                            ]
                        },
                        "description": "Produk dengan harga untuk level akunmu dan field isian yang menempel (fields). Produk fallback (type=fallback) wajib memakai max_price saat dipesan."
                    }
                },
                {
                    "name": "Detail produk",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/catalog/products/:code",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "catalog",
                                "products",
                                ":code"
                            ],
                            "variable": [
                                {
                                    "key": "code",
                                    "value": "",
                                    "description": "Kode produk, mis. P12319."
                                }
                            ]
                        },
                        "description": "Satu produk berdasarkan kode."
                    }
                }
            ]
        },
        {
            "name": "Order",
            "item": [
                {
                    "name": "Buat order",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/orders",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "orders"
                            ]
                        },
                        "description": "Membuat satu order. 201 berarti order diterima; lihat status untuk hasilnya (queued → processing → succeeded / failed). reference adalah kunci idempotensimu: bila respons tidak pasti, kirim ulang request yang sama dan kamu menerima order asli (200 + header Idempotent-Replay: true), bukan order baru. Header Idempotency-Key diterima sebagai pengganti reference. Seluruh max_price (bila ada) ditahan di muka; sisa dikembalikan saat sukses, semuanya kembali saat gagal.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"product\": \"P12319\",\n    \"target\": {\n        \"id\": \"123456789\"\n    },\n    \"reference\": \"order-0001\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "Buat order fallback",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/orders",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "orders"
                            ]
                        },
                        "description": "Produk fallback (kode F…) mencoba jalur termurah dulu lalu pindah jalur bila gagal. Kirim max_price sebagai batas harga; biaya akhir tidak pernah melebihinya dan selisihnya dikembalikan.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"product\": \"F3345\",\n    \"target\": {\n        \"id\": \"123456789\",\n        \"zone\": \"1234\"\n    },\n    \"reference\": \"order-0002\",\n    \"max_price\": 25000\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "Detail order",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/orders/:id",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "orders",
                                ":id"
                            ],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "ID order (ord_…) atau reference milikmu."
                                }
                            ]
                        },
                        "description": "Ambil order lewat ID atau reference. serial berisi kode voucher/serial bila ada; failure terisi bila gagal (saldo dikembalikan otomatis)."
                    }
                },
                {
                    "name": "Daftar order",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/orders",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "orders"
                            ],
                            "query": [
                                {
                                    "key": "status",
                                    "value": "",
                                    "disabled": true,
                                    "description": "queued | processing | succeeded | failed"
                                },
                                {
                                    "key": "mode",
                                    "value": "",
                                    "disabled": true,
                                    "description": "test | live"
                                },
                                {
                                    "key": "from",
                                    "value": "",
                                    "disabled": true,
                                    "description": "Tanggal/waktu awal (ISO 8601)."
                                },
                                {
                                    "key": "to",
                                    "value": "",
                                    "disabled": true,
                                    "description": "Tanggal/waktu akhir."
                                },
                                {
                                    "key": "limit",
                                    "value": "",
                                    "disabled": true,
                                    "description": "Jumlah item (1–200)."
                                },
                                {
                                    "key": "after",
                                    "value": "",
                                    "disabled": true,
                                    "description": "Salin paging.next_after dari halaman sebelumnya."
                                }
                            ]
                        },
                        "description": "Order terbaru lebih dulu."
                    }
                },
                {
                    "name": "Kirim kode verifikasi",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/orders/:id/verification",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "orders",
                                ":id",
                                "verification"
                            ],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "ID order (ord_…) atau reference milikmu."
                                }
                            ]
                        },
                        "description": "Sebagian order meminta kode dari pembeli: order.verification.state = \"required\" dan can_submit = true. Kirim kodenya di sini. 202 hanya berarti kode diterima untuk diproses, bukan bukti valid. Kode sama dikirim ulang mengembalikan hasil sebelumnya; kode berbeda ditolak 409. Batas 5 request/menit per order.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"code\": \"482913\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                }
            ]
        },
        {
            "name": "Batch",
            "item": [
                {
                    "name": "Buat batch",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/batches",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "batches"
                            ]
                        },
                        "description": "Satu produk standar, satu tujuan, 1–100 order berurutan. Seluruh biaya dipotong di muka dan harga dikunci. reference unik; kirim ulang request identik mengembalikan batch asli, request berbeda dengan reference sama ditolak 409.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"product\": \"P12319\",\n    \"target\": {\n        \"id\": \"123456789\"\n    },\n    \"reference\": \"batch-0001\",\n    \"count\": 3\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "Daftar batch",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/batches",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "batches"
                            ],
                            "query": [
                                {
                                    "key": "status",
                                    "value": "",
                                    "disabled": true,
                                    "description": "queued | processing | completed | partially_failed | failed"
                                },
                                {
                                    "key": "from",
                                    "value": "",
                                    "disabled": true,
                                    "description": "Awal (ISO 8601)."
                                },
                                {
                                    "key": "to",
                                    "value": "",
                                    "disabled": true,
                                    "description": "Akhir."
                                },
                                {
                                    "key": "limit",
                                    "value": "",
                                    "disabled": true,
                                    "description": "Jumlah item (1–200)."
                                },
                                {
                                    "key": "after",
                                    "value": "",
                                    "disabled": true,
                                    "description": "Salin paging.next_after dari halaman sebelumnya."
                                }
                            ]
                        },
                        "description": "Batch terbaru lebih dulu."
                    }
                },
                {
                    "name": "Progres batch",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/batches/:id",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "batches",
                                ":id"
                            ],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "ID batch (bat_…) atau reference milikmu."
                                }
                            ]
                        },
                        "description": "Status dan hitungan progres."
                    }
                },
                {
                    "name": "Order di dalam batch",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/batches/:id/orders",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "batches",
                                ":id",
                                "orders"
                            ],
                            "query": [
                                {
                                    "key": "limit",
                                    "value": "",
                                    "disabled": true,
                                    "description": "Jumlah item (1–200)."
                                },
                                {
                                    "key": "after",
                                    "value": "",
                                    "disabled": true,
                                    "description": "Salin paging.next_after dari halaman sebelumnya."
                                }
                            ],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "ID batch (bat_…) atau reference milikmu."
                                }
                            ]
                        },
                        "description": "Order anak berurutan (field sequence), masing-masing dengan ID sendiri."
                    }
                },
                {
                    "name": "Invoice batch (PDF)",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/batches/:id/invoice",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "batches",
                                ":id",
                                "invoice"
                            ],
                            "variable": [
                                {
                                    "key": "id",
                                    "value": "",
                                    "description": "ID batch (bat_…) atau reference milikmu."
                                }
                            ]
                        },
                        "description": "Satu PDF ringkasan biaya dan refund setelah semua order selesai. 409 bila belum selesai atau batch uji. Respons sukses berupa berkas application/pdf."
                    }
                }
            ]
        },
        {
            "name": "Cek Pemain",
            "item": [
                {
                    "name": "Game yang bisa dicek",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/lookups/games",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "lookups",
                                "games"
                            ]
                        },
                        "description": "Daftar kode game dan kebutuhan zona. Publik, tanpa kunci."
                    }
                },
                {
                    "name": "Jatah & tarif cek pemain",
                    "request": {
                        "method": "GET",
                        "header": [
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/lookups/quota",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "lookups",
                                "quota"
                            ]
                        },
                        "description": "Jatah gratis harian dan tarif tambahan. Publik. Cek pemain dan cek batas pembelian memakai jatah yang sama; reset pukul 00:00 UTC."
                    }
                },
                {
                    "name": "Cek nama pemain",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/lookups/player",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "lookups",
                                "player"
                            ]
                        },
                        "description": "Validasi ID pemain sebelum order. Hasil ditemukan maupun tidak ditemukan memakai jatah. 404 akun tidak ada, 402 saldo kurang untuk cek berbayar, 429 jatah habis.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"game\": \"mobile-legends\",\n    \"id\": \"123456789\",\n    \"zone\": \"1234\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                },
                {
                    "name": "Batas pembelian Mobile Legends",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            },
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/lookups/purchase-limit/mobile-legends",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "lookups",
                                "purchase-limit",
                                "mobile-legends"
                            ]
                        },
                        "description": "Cek apakah paket mingguan/double diamond sudah mencapai batas pembelian. Memakai jatah yang sama dengan cek pemain.",
                        "body": {
                            "mode": "raw",
                            "raw": "{\n    \"id\": \"123456789\",\n    \"zone\": \"1234\"\n}",
                            "options": {
                                "raw": {
                                    "language": "json"
                                }
                            }
                        }
                    }
                }
            ]
        },
        {
            "name": "Webhook",
            "item": [
                {
                    "name": "Kirim webhook uji",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Authorization",
                                "value": "Bearer {{api_key}}"
                            },
                            {
                                "key": "Accept",
                                "value": "application/json"
                            }
                        ],
                        "url": {
                            "raw": "{{base_url}}/webhooks/test",
                            "host": [
                                "{{base_url}}"
                            ],
                            "path": [
                                "webhooks",
                                "test"
                            ]
                        },
                        "description": "Mengirim event webhook.test bertanda tangan ke Webhook URL-mu, supaya penerimamu bisa diuji tanpa membuat order. Isi Webhook URL dan buat rahasia webhook di dashboard terlebih dulu."
                    }
                }
            ]
        }
    ]
}