Skip to main content
The SDK includes helpers for Meta’s Calling API and Kapso’s call logs. Start with Calling setup to enable your number and register its webhook, then connect your media server or voice agent. Configure the client for Kapso:

Initiate a call

offerSdp must be generated by your live WebRTC connection. Check outbound permission and the answer webhook before dialing. A successful response does not mean the recipient answered. connect also accepts recipient (a business-scoped user ID) instead of, or alongside, to. The phone number wins when both are present.

Pre-accept and accept

Apply the inbound webhook’s SDP offer to your media connection first. Use its generated answerSdp for both actions; a hardcoded v=0 string is not an SDP answer. See Receive calls.

Reject and terminate

Check call permission

Managed billing

User-initiated calls are free. Meta charges business-initiated calls based on duration and destination. Kapso managed billing for Calling is available for eligible USD WABAs, including active Multi-partner Solutions. Calling fees are settled from Meta Call Analytics and appear as aggregate USD usage rather than an exact fee for each call. When calls use Kapso infrastructure, Kapso checks billing health and project balance before starting a business-initiated call. When a Tech Provider uses its own infrastructure, Kapso checks Call Analytics about every five minutes and cannot block calls made through that integration. See Multi-partner Solutions for details.

Call logs (Kapso)

Use USER_INITIATED for customer calls and BUSINESS_INITIATED for business calls. The history filter matches the stored direction; older INBOUND or OUTBOUND records retain those values. Retrieve one saved call by its Meta call ID:
get returns undefined when the ID has no saved record for this number and project. The REST equivalent is GET /meta/whatsapp/{version}/{phone_number_id}/calls?call_id={call_id}&limit=1. Saved records can lag webhooks; keep your own live-call state.
Calling is gradually rolling out in WhatsApp and may not be enabled for all numbers.
For a complete list of Kapso fields and presets, see Kapso Extensions.