Dokumentasi API
REST API Tako untuk mengirim hadiah ke kreator dan top up saldo akunmu. Semua endpoint membutuhkan API Key pribadi yang dapat dibuat di halaman pengaturan.
Lihat OpenAPI spec (JSON)Autentikasi
Sertakan API Key pada setiap request melalui header Authorization. Key hanya dapat digunakan dari alamat IP yang diizinkan jika kamu mengatur pembatasan IP saat membuat key.
https://tako.idAuthorization: Bearer <api-key>User-Agent: <nama-aplikasimu>/1.0Belum punya API Key? Buat di sini
Callback URL & Redirect URL
Diatur sekali di halaman API Key, berlaku otomatis untuk setiap pembayaran (hadiah maupun top up) yang dibuat dengan key tersebut. Tidak dikirim sebagai body request. Atur di sini.
Redirect URL
Kemana pembayar diarahkan di halaman /pay/{id} setelah pembayaran berhasil, menggantikan halaman Tako bawaan. Kosongkan untuk memakai halaman bawaan.
Callback URL
Tako mengirim satu kali HTTP POST ke URL ini (harus https://, tidak boleh alamat internal) setiap ada pembayaran yang sukses lewat key ini. Tidak ada retry apabila gagal.
{
"event": "payment.success",
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"status": "success",
"amount": 50000,
"price": 50000,
"paymentMethod": "qris",
"paymentUrl": "https://tako.id/pay/00000000-0000-0000-0000-000000000000",
"createdAt": "2026-07-02T10:30:00.000Z",
"relatedGiftId": null
}
}relatedGiftId terisi jika pembayaran ini untuk hadiah (lihat detailnya lewat GET /api/v1/gift/{giftId}), atau null untuk top up biasa.
Memvalidasi Callback
Apabila Callback Secret diisi, body callback ditandatangani dengan HMAC SHA-256 pada header X-Tako-Signature. Kosongkan Callback Secret untuk mematikan signature (header tidak akan dikirim). Contoh implementasi di Node.js:
const crypto = require("crypto");
const computedSignature = crypto
.createHmac("sha256", callbackSecret)
.update(JSON.stringify(callbackBody))
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(computedSignature),
Buffer.from(takoSignatureFromHeader)
);- callbackSecret: Callback Secret asli dari halaman API Key
- callbackBody: Isi body dari callback
- takoSignatureFromHeader: Konten signature yang diterima dari header
X-Tako-Signature
/api/v1/gift/{username}Mengirim Hadiah
Membuat hadiah ke akun kreator {username}. Body dapat dikirim sebagai application/json atau multipart/form-data. Callback URL dan Redirect URL untuk pembayaran yang dibuat lewat endpoint ini diatur di dashboard API Key (/me/api-keys), lihat bagian "Callback & Redirect URL" di bawah.
Body
| Parameter | Tipe | Keterangan |
|---|---|---|
| name | string | Nama pengirim hadiah |
| string | — | |
| amount | number | — |
| paymentMethod | "qris" | "gopay" | "dana" | "paypal" | Metode pembayaran. Wajib, pembayaran dari saldo tidak tersedia untuk API Key. |
| message(opsional) | string | — |
Contoh Request
curl -X POST https://tako.id/api/v1/gift/<username> \
-H "Authorization: Bearer <api-key>" \
-H "User-Agent: <user-agent>" \
-H "Content-Type: application/json" \
-d '{
"name": "Budi",
"email": "budi@email.com",
"amount": 50000,
"paymentMethod": "qris",
"message": "string"
}'Response
Hadiah dibuat, perlu pembayaran. Arahkan pengirim ke paymentUrl untuk menyelesaikan. Pembayaran via saldo hanya untuk sesi login, bukan API Key.
{
"statusCode": 206,
"result": {
"success": true,
"giftId": "00000000-0000-0000-0000-000000000000",
"transactionId": "00000000-0000-0000-0000-000000000000",
"paymentUrl": "https://tako.id/pay/00000000-0000-0000-0000-000000000000"
}
}/api/v1/gift/{giftId}Status Hadiah
Mengambil detail dan status hadiah berdasarkan {giftId}. API Key hanya dapat melihat hadiah yang dibuat dengan key yang sama.
Contoh Request
curl https://tako.id/api/v1/gift/<giftId> \
-H "Authorization: Bearer <api-key>" \
-H "User-Agent: <user-agent>"Response
Detail hadiah.
{
"statusCode": 200,
"result": {
"id": "00000000-0000-0000-0000-000000000000",
"status": "pending",
"type": "string",
"amount": 0,
"message": "string",
"currency": "string",
"gifterName": "string",
"gifterEmail": "string",
"createdAt": "2026-07-02T10:30:00.000Z"
}
}/api/v1/topup/{username}Mengirim Top Up
Membuat transaksi top up saldo ke akun kreator {username}. Memerlukan akses keuangan (finance) atas akun tersebut. Callback URL dan Redirect URL untuk pembayaran yang dibuat lewat endpoint ini diatur di dashboard API Key (/me/api-keys), lihat bagian "Callback & Redirect URL" di bawah.
Body
| Parameter | Tipe | Keterangan |
|---|---|---|
| paymentMethod | "qris" | "gopay" | "dana" | "paypal" | — |
| amount(opsional) | number | Wajib jika tanpa productId |
| productId(opsional) | string | id paket top up |
| discountCode(opsional) | string | — |
Contoh Request
curl -X POST https://tako.id/api/v1/topup/<username> \
-H "Authorization: Bearer <api-key>" \
-H "User-Agent: <user-agent>" \
-H "Content-Type: application/json" \
-d '{
"paymentMethod": "qris",
"amount": 0,
"productId": "string",
"discountCode": "string"
}'Response
Transaksi dibuat. Arahkan ke paymentUrl untuk membayar.
{
"statusCode": 201,
"result": {
"success": true,
"transactionId": "00000000-0000-0000-0000-000000000000",
"paymentUrl": "https://tako.id/pay/00000000-0000-0000-0000-000000000000",
"transaction": {
"id": "00000000-0000-0000-0000-000000000000",
"status": "pending",
"amount": 0,
"price": 0,
"paymentMethod": "string",
"paymentUrl": "string",
"createdAt": "2026-07-02T10:30:00.000Z"
}
}
}/api/v1/transactions/{transactionId}Status Transaksi
Mengambil detail dan status transaksi pembayaran berdasarkan {transactionId}. Hanya dapat diakses oleh pembuat transaksi.
Contoh Request
curl https://tako.id/api/v1/transactions/<transactionId> \
-H "Authorization: Bearer <api-key>" \
-H "User-Agent: <user-agent>"Response
Detail transaksi.
{
"statusCode": 200,
"result": {
"id": "00000000-0000-0000-0000-000000000000",
"status": "pending",
"amount": 0,
"price": 0,
"paymentMethod": "string",
"paymentUrl": "string",
"createdAt": "2026-07-02T10:30:00.000Z"
}
}