Dokumentasi API Odetta Connect
Integrasikan asisten AI virtual Odetta dengan mudah ke sistem CRM, database internal, atau website perusahaan Anda. Kelola pesan otomatis, broadcast WhatsApp, dan kelola event webhook secara real-time.
Pengenalan API
Selamat datang di dokumentasi pengembang **Odetta Connect API**. Kami menyediakan standard RESTful API yang aman, andal, dan berkinerja tinggi untuk mempermudah alur komunikasi bisnis Anda.
Dengan API ini, sistem Anda dapat mengirim berbagai jenis format pesan WhatsApp (Teks, Media, Kontak, Dokumen, Stiker, dan Lokasi) secara otomatis berdasarkan event internal aplikasi Anda, seperti notifikasi transaksi, pengiriman invoice tagihan, dan sinkronisasi data pelanggan.
Otentikasi Kunci API
Setiap permintaan HTTP ke Odetta API harus menyertakan Kunci API yang valid. Parameter kunci dikirimkan langsung di dalam muatan data JSON menggunakan atribut api_key.
Penting: Keamanan API Key
Jaga kerahasiaan API Key Anda dan jangan pernah membagikannya ke publik. Jika terjadi kebocoran kunci, Anda dapat meregenerasi kunci baru langsung melalui halaman pengaturan profil akun Anda.
Respon & Penanganan Error
Respon dari Odetta API selalu berformat JSON. Pastikan sistem Anda memeriksa kode status HTTP yang dikembalikan untuk menentukan keberhasilan eksekusi permintaan.
| HTTP Status | Keterangan |
|---|---|
| 200 OK | Permintaan berhasil diproses. |
| 400 Bad Request | Parameter tidak lengkap atau format salah. |
| 401 Unauthorized | API Key tidak valid atau tidak disertakan. |
| 404 Not Found | Endpoint atau nomor tujuan tidak ditemukan. |
| 500 Server Error | Kesalahan server internal. |
{
"status_code": 200,
"message": "Success",
"data": {
"body": {
"message_id": "3EB00E36BC831D5827FA35"
}
},
"timestamp": 1711645200
}
{
"status_code": 400,
"message": "Data yang dimasukkan tidak valid.",
"data": null,
"timestamp": 1711645200
}
Notifikasi Webhook Masuk
Gunakan webhook untuk menerima pesan dari pelanggan secara real-time. Ketika ada pesan masuk ke nomor WhatsApp Anda, server Odetta Connect akan mengirimkan HTTP POST payload ke URL Webhook yang Anda daftarkan di dashboard.
Metode Request
Pastikan server Anda mendengarkan request dengan metode **POST** dan mengembalikan HTTP Status 200 OK sebagai tanda terima berhasil.
| Parameter | Tipe & Deskripsi |
|---|---|
| header.to | **String**. Nomor penerima (nomor WhatsApp Anda). |
| body.type | **String**. Tipe pesan: text, media, sticker, contact. |
| body.message_id | **String**. ID pesan unik dari platform WhatsApp. |
{
"status_code": 200,
"message": "Success",
"data": {
"header": {
"to": "628xxxxxxxxxx",
"timestamp": 1711645200
},
"body": {
"message_id": "ABC123XYZ...",
"type": "text",
"text": "Halo, ini adalah contoh pesan masuk."
}
},
"timestamp": 1711645200
}
{
"status_code": 200,
"message": "Success",
"data": {
"header": {
"to": "628xxxxxxxxxx",
"timestamp": 1711645200
},
"body": {
"message_id": "MEDIA123...",
"type": "media",
"text": "Caption gambar jika ada",
"media": {
"name": "image.jpg",
"url": "https://connect.odetta.id/api/platform/ID/media/MESSAGE_ID"
}
}
},
"timestamp": 1711645200
}
{
"status_code": 200,
"message": "Success",
"data": {
"header": {
"to": "628xxxxxxxxxx",
"timestamp": 1711645200
},
"body": {
"message_id": "STK123...",
"type": "sticker",
"sticker": {
"url": "https://connect.odetta.id/api/platform/ID/media/MESSAGE_ID"
}
}
},
"timestamp": 1711645200
}
{
"status_code": 200,
"message": "Success",
"data": {
"header": {
"to": "628xxxxxxxxxx",
"timestamp": 1711645200
},
"body": {
"message_id": "CNT123...",
"type": "contact",
"contact": {
"number": "628123456789",
"name": "John Doe"
}
}
},
"timestamp": 1711645200
}
Kirim Pesan Text
/api/platform/wa1/send/text
Endpoint ini digunakan untuk mengirimkan pesan teks standar ke nomor WhatsApp tujuan.
| api_key Required | String. API Key unik akun Anda. |
| username Required | String. Nomor WhatsApp pengirim (ID Platform). |
| to Required | String. Nomor WhatsApp penerima (Format: 628...). |
| text Required | String. Isi dari pesan teks yang akan dikirimkan. |
{
"api_key": "YOUR_API_KEY",
"username": "628xxxxxxxxxx",
"to": "628xxxxxxxxxx",
"text": "Halo! Isi pesan Anda."
}
Kirim Pesan Media
/api/platform/wa1/send/media
Kirimkan gambar atau video secara remote dengan menyertakan URL file media publik yang valid.
Penting: Format URL Direct Link
Pastikan tautan mengarah langsung ke ekstensi file gambar/video (contoh: .jpg, .png, .mp4) dan dapat diakses tanpa login atau autentikasi cloud.
{
"api_key": "YOUR_API_KEY",
"username": "628xxxxxxxxxx",
"to": "628xxxxxxxxxx",
"media": {
"url": "https://example.com/image.jpg"
}
}
Kirim Pesan Kontak
/api/platform/wa1/send/contact
Endpoint ini digunakan untuk mengirimkan kartu kontak (vCard) ke nomor WhatsApp penerima.
| contact.name Required | String. Nama tampilan kartu kontak yang dikirim. |
| contact.number Required | String. Nomor telepon kontak tersebut. |
{
"api_key": "YOUR_API_KEY",
"username": "628xxxxxxxxxx",
"to": "628xxxxxxxxxx",
"contact": {
"name": "Admin Odetta",
"number": "628xxxxxxxxx"
}
}
Kirim Pesan Dokumen
/api/platform/wa1/send/document
Kirim file dokumen (PDF, XLSX, DOCX, ZIP) langsung ke pengguna dengan menyertakan direct URL dari file Anda.
Caption / Keterangan File
Anda dapat mengirimkan atribut text sebagai teks keterangan (caption) yang akan mendampingi dokumen tersebut.
{
"api_key": "YOUR_API_KEY",
"username": "628xxxxxxxxxx",
"to": "628xxxxxxxxxx",
"text": "Ini adalah dokumen PDF saya",
"media": {
"url": "https://example.com/file.pdf"
}
}
Kirim Pesan Stiker
/api/platform/wa1/send/sticker
Kirim gambar khusus dalam bentuk file stiker WhatsApp. Gambar stiker akan langsung dimuat secara responsif di aplikasi penerima.
Rekomendasi Format Stiker
Kami menyarankan penggunaan format gambar WebP atau PNG transparan. Rasio gambar disarankan 1:1 (persegi) dengan resolusi maksimal 512x512 px untuk hasil terbaik.
{
"api_key": "YOUR_API_KEY",
"username": "628xxxxxxxxxx",
"to": "628xxxxxxxxxx",
"sticker": {
"url": "https://example.com/sticker.webp"
}
}
Kirim Pesan Lokasi
/api/platform/wa1/send/location
Endpoint ini digunakan untuk mengirim pesan peta (koordinat latitude & longitude GPS) yang dapat langsung dibuka pelanggan di aplikasi peta mereka.
| location.latitude Required | String. Garis lintang koordinat lokasi GPS. |
| location.longitude Required | String. Garis bujur koordinat lokasi GPS. |
{
"api_key": "YOUR_API_KEY",
"username": "628xxxxxxxxxx",
"to": "628xxxxxxxxxx",
"location": {
"latitude": "-6.200000",
"longitude": "106.816666"
}
}