Chatera Docs
API & Integrasi

Media

Cara mengambil file gambar, audio, video, atau dokumen dari pesan WhatsApp yang masuk lewat API Chatera.

Ketika pelanggan mengirim media (gambar bukti pembayaran, voice note, video, dokumen), webhook message.inbound tidak menyertakan file atau URL-nya secara langsung — hanya sebuah referensi media berupa id. Endpoint ini menukar id tersebut menjadi URL yang bisa langsung di-download, misalnya untuk diteruskan ke sistem OCR atau AI vision.

Semua path di halaman ini relatif terhadap base URL https://api.chatera.id/v1.

Ambil URL media

GET /v1/media/{id}

Scope yang dibutuhkan: whatsapp:read atau whatsapp:send

Path parameter

ParameterTipeKeterangan
idstring (UUID)Nilai content.image.id / content.audio.id / content.video.id / content.document.id dari payload webhook. Nilainya sama dengan messageId pesan tersebut.

Contoh request

curl "https://api.chatera.id/v1/media/9f1c2a3b-4d5e-6f70-8190-a1b2c3d4e5f6" \
  -H "Authorization: Bearer chatera_sk_xxxxx"

Contoh response

{
  "url": "https://cdn.chatera.id/whatsapp/9b8c1234-e5f6-4789-90ab-cdef01234567/2026/08/16/1234567890.jpg",
  "mime_type": "image/jpeg"
}

Response tanpa envelope

Berbeda dari endpoint lain, response sukses endpoint ini tidak dibungkus { "success": true, "data": ... } — field url dan mime_type ada langsung di root JSON.

Download file-nya

url yang dikembalikan bisa langsung di-GET tanpa header Authorization untuk mendapatkan binary file:

curl -o bukti-pembayaran.jpg \
  "https://cdn.chatera.id/whatsapp/.../1234567890.jpg"

Error

StatusKodePenyebab
404RESOURCE_NOT_FOUNDid tidak ditemukan di workspace kamu, pesan tersebut bukan pesan media, atau media belum tersedia (misalnya gagal diunduh dari WhatsApp).
403AUTH_INSUFFICIENT_SCOPEAPI key tidak punya scope whatsapp:read / whatsapp:send.

Media bisa saja belum tersedia

Dalam kasus jarang, Chatera gagal mengunduh media dari server WhatsApp saat pesan masuk. Webhook tetap terkirim, tetapi endpoint ini akan merespon 404. Tangani kasus ini di sisi kamu (retry beberapa saat kemudian, atau fallback tanpa media).

Contoh: teruskan gambar ke AI vision di n8n

Alur yang umum untuk memproses bukti pembayaran dari pelanggan:

Webhook Trigger — terima event message.inbound dari Chatera. Filter node berikutnya dengan kondisi data.contentType == "image".

HTTP Request (resolve)GET https://api.chatera.id/v1/media/{{ $json.data.content.image.id }} dengan header Authorization: Bearer chatera_sk_xxxxx. Response berisi url dan mime_type.

HTTP Request (download)GET ke url dari langkah sebelumnya, dengan Response Format = File. Tidak perlu header Authorization.

AI Vision — kirim binary file tersebut ke node AI vision (OpenAI, Gemini, dll) untuk dianalisis, misalnya membaca nominal transfer di bukti pembayaran.

Halaman terkait

  • Webhook — format payload message.inbound untuk pesan media.
  • Autentikasi — cara membuat API key dan daftar scope.

On this page