3CX Webhook Documentation and examples

Post Schema

Set WebhooksApi.ini file:

  • WEBHOOK_POST_ENABLED = true
  • WEBHOOK_URL = https://your-endpoint-to-post-data

Incoming successful call

Event Webhook
The Call Goes To The IVR { "Event": "ringing", "Callerid": "05552221133", "User": "800", "Usertype": "other", "Did": "", "Id": "230307114903_10-0" }
The call is placed in the queue { "Event": "ringing", "Callerid": "05552221133", "User": "820", "Usertype": "queue", "Did": "", "Id": "230307114903_10-0" }
The phone ringing { "Event": "ringing", "Callerid": "05552221133", "User": "202", "Usertype": "ext", "Did": "", "Id": "230307114903_10-0" }
The operator picks up the phone { "Event": "incomingcall_started", "Callerid": 05552221133", "User": "202", "Trtype": "NotDef", "Did": "", "Id": "230307114903_10-1" }
End of The Call { "Event": "incoming", "Callerid": "05552221133", "User": "202", "Finishtype": "Ok", "Transfer": "False", "Did": "", "Duration": "00:06", "Id": "230307140234_35-1" }
The recording of the conversation is ready { "Event": "recording", "FileUrls": [ "https://FQDN:5001/webapi/recording/230307140234_35-1-1.mp3" ], "Callerid": "05552221133", "User": "202", "Id": "230307140234_35-1" }

Incoming successful attended transfer call

Event Webhook
The Call Goes To The IVR { "Event": "ringing", "Callerid": "05552221133", "User": "800", "Usertype": "other", "Did": "", "Id": "230307142318_40-0" }
The call is placed in the queue { "Event": "ringing", "Callerid": "05552221133", "User": "820", "Usertype": "queue", "Did": "", "Id": "230307142318_40-0" }
The phone ringing { "Event": "ringing", "Callerid": "05552221133", "User": "117", "Usertype": "ext", "Did": "", "Id": "230307142318_40-0" }
The operator picks up the phone { "Event": "incomingcall_started", "Callerid": "05552221133", "User": "117", "Trtype": "NotDef", "Did": "", "Id": "230307142318_40-1" }
Attended transfer success { "Event": "incomingcall_started", "Callerid": "05552221133", "User": "204", "Trtype": "Attended", "Did": "", "Id": "230307142318_40-2" }
The operator calling 2nd extension for attended transfer { "Event": "ringing", "Callerid": "05552221133", "User": "204", "Usertype": "ext", "Did": "", "Id": "230307142318_40-1" }
Joining calls success { "Event": "incoming", "Callerid": "05552221133", "User": "117", "Finishtype": "Ok", "Transfer": "True", "Did": "", "Duration": "00:14", "Id": "230307142318_40-1" }
End of The Call { "Event": "incoming", "Callerid": "05552221133", "User": "204", "Finishtype": "Ok", "Transfer": "False", "Did": "", "Duration": "00:06", "Id": "230307142318_40-2" }
The recording of the conversation is ready for 1st extension { "Event": "recording", "FileUrls": [ "https://FQDN:5001/webapi/recording/230307142318_40-2-1.mp3" ], "Callerid": "05552221133", "User": "204", "Id": "230307142318_40-2" }
The recording of the conversation is ready for 2nd extension { "Event": "recording", "FileUrls": [ "https://FQDN:5001/webapi/recording/230307142318_40-1-1.mp3" ], "Callerid": "05552221133", "User": "117", "Id": "230307142318_40-1" }

Incoming successful blind transfer call

Event Webhook
The Call Goes To The IVR { "Event": "ringing", "Callerid": "05552221133", "User": "800", "Usertype": "other", "Did": "", "Id": "230307144544_42-0" }
The call is placed in the queue { "Event": "ringing", "Callerid": "05552221133", "User": "820", "Usertype": "queue", "Did": "", "Id": "230307144544_42-0" }
The phone ringing { "Event": "ringing", "Callerid": "05552221133", "User": "117", "Usertype": "ext", "Did": "", "Id": "230307144544_42-0" }
The operator picks up the phone { "Event": "incomingcall_started", "Callerid": "05552221133", "User": "117", "Trtype": "NotDef", "Did": "", "Id": "230307144544_42-1" }
The operator calls 2nd extension for blind transfer { "Event": "ringing", "Callerid": "05552221133", "User": "204", "Usertype": "ext", "Did": "", "Id": "230307144544_42-1" }
2nd operator picks up phone { "Event": "incomingcall_started", "Callerid": "05552221133", "User": "204", "Trtype": "Blind", "Did": "", "Id": "230307144544_42-2" }
End of The Call { "Event": "incoming", "Callerid": "05552221133", "User": "204", "Finishtype": "Ok", "Transfer": "False", "Did": "", "Duration": "00:04", "Id": "230307144544_42-2" }
The recording of the conversation is ready for 2nd extension { "Event": "recording", "FileUrls": [ "https://FQDN:5001/webapi/recording/230307144544_42-2-1.mp3" ], "Callerid": "05552221133", "User": "204", "Id": "230307144544_42-2" }
The recording of the conversation is ready for 1st extension { "Event": "recording", "FileUrls": [ "https://FQDN:5001/webapi/recording/230307144544_42-1-1.mp3" ], "Callerid": "05552221133", "User": "117", "Id": "230307144544_42-1" }

Incoming missed call

Event Webhook
The Call Goes To The IVR { "Event": "ringing", "Callerid": "05552221133", "User": "800", "Usertype": "other", "Did": "", "Id": "230307115339_12-0" }
The call is placed in the queue { "Event": "ringing", "Callerid": "05552221133", "User": "820", "Usertype": "queue", "Did": "", "Id": "230307115339_12-0" }
The phone ringing { "Event": "ringing", "Callerid": "05552221133", "User": "202", "Usertype": "ext", "Did": "", "Id": "230307115339_12-0" }
End of The Call { "Event": "incoming", "Callerid": "05552221133", "User": "820", "Finishtype": "Missed", "Transfer": "False", "Did": "", "Duration": "", "Id": "230307115339_12-0" }

Incoming successfull Ring Group call (Prioritized Hunt)

Event Webhook
The Call Goes To The IVR { "Event": "ringing", "Callerid": "05552221133", "User": "800", "Usertype": "other", "Did": "", "Id": "230307150805_46-0" }
The call is placed in the ring group { "Event": "ringing", "Callerid": "05552221133", "User": "117", "Usertype": "ext", "Did": "", "Id": "230307150805_46-0" }
The operator picks up the phone { "Event": "incomingcall_started", "Callerid": "05552221133", "User": "117", "Trtype": "NotDef", "Did": "", "Id": "230307150805_46-1" }
End of The Call { "Event": "incoming", "Callerid": "05552221133", "User": "117", "Finishtype": "Ok", "Transfer": "False", "Did": "", "Duration": "00:04", "Id": "230307150805_46-1" }
The recording of the conversation is ready { "Event": "recording", "FileUrls": [ "https://FQDN:5001/webapi/recording/230307150805_46-1-1.mp3" ], "Callerid": "05552221133", "User": "117", "Id": "230307150805_46-1" }

Incoming missed Ring Group call (Prioritized Hunt)

Event Webhook
The Call Goes To The IVR { "Event": "ringing", "Callerid": "05552221133", "User": "800", "Usertype": "other", "Did": "", "Id": "230307152031_50-0" }
The call is placed in the ring group { "Event": "ringing", "Callerid": "05552221133", "User": "117", "Usertype": "ext", "Did": "", "Id": "230307152031_50-0" }
End of The Call { "Event": "incoming", "Callerid": "05552221133", "User": "117", "Finishtype": "Missed", "Transfer": "False", "Did": "", "Duration": "", "Id": "230307152031_50-0" }

Incoming successful Ring Group call (RingAll)

Event Webhook
The Call Goes To The IVR { "Event": "ringing", "Callerid": "05552221133", "User": "800", "Usertype": "other", "Did": "", "Id": "230307151412_47-0" }
The call is placed in the ring group { "Event": "ringing", "Callerid": "05552221133", "User": "117", "Usertype": "ext", "Did": "", "Id": "230307151412_47-0" }
The call is placed in the ring group { "Event": "ringing", "Callerid": "05552221133", "User": "204", "Usertype": "ext", "Did": "", "Id": "230307151412_47-0" }
The operator picks up the phone { "Event": "incomingcall_started", "Callerid": "05552221133", "User": "117", "Trtype": "NotDef", "Did": "", "Id": "230307151412_47-1" }
End of The Call { "Event": "incoming", "Callerid": "05552221133", "User": "117", "Finishtype": "Ok", "Transfer": "False", "Did": "", "Duration": "00:05", "Id": "230307151412_47-1" }
The recording of the conversation is ready { "Event": "recording", "FileUrls": [ "https://FQDN:5001/webapi/recording/230307151412_47-1-1.mp3" ], "Callerid": "05552221133", "User": "117", "Id": "230307151412_47-1" }

Incoming missed Ring Group call (RingAll)

Event Webhook
The Call Goes To The IVR { "Event": "ringing", "Callerid": "05552221133", "User": "800", "Usertype": "other", "Did": "", "Id": "230307152319_52-0" }
The call is placed in the ring group { "Event": "ringing", "Callerid": "05552221133", "User": "117", "Usertype": "ext", "Did": "", "Id": "230307152319_52-0" }
The call is placed in the ring group { "Event": "ringing", "Callerid": "05552221133", "User": "204", "Usertype": "ext", "Did": "", "Id": "230307152319_52-0" }
End of The Call { "Event": "incoming", "Callerid": "05552221133", "User": "204", "Finishtype": "Missed", "Transfer": "False", "Did": "", "Duration": "", "Id": "230307152319_52-0" }

Outgoing successful call

Event Webhook
Dialing a number { "Event": "dialing", "Callerid": "05552221133", "User": "117", "Id": "230307135611_31-0" }
The subscriber responds { "Event": "outgoingcall_started", "Callerid": "05552221133", "User": "117", "Trtype": "NotDef", "Did": "", "Id": "230307135611_31-1" }
End of The Call { "Event": "outgoing", "Callerid": "05552221133", "User": "117", "Finishtype": "Ok", "Transfer": "False", "Did": "", "Duration": "00:05", "Id": 30307135611_31-1"}
The recording of the conversation is ready { "Event": "recording", "FileUrls": [ "https://FQDN:5001/webapi/recording/230307135611_31-1-1.mp3" ], "Callerid": "05552221133", "User": "117", "Id": "230307135611_31-1"}

Outgoing unsuccessful call

Event Webhook
Dialing a number { "Event": "dialing", "Callerid": "05552221133", "User": "117", "Id": "230307140011_32-0" }
End of The Call { "Event": "outgoing", "Callerid": "05552221133", "User": "117", "Finishtype": "Missed", "Transfer": "False", "Did": "", "Duration": "", "Id": "230307140011_32-0" }

MakeCall successful call

Event Webhook
Dialing a number { "Event": "dialing", "Callerid": "05552221133", "User": "117", "Id": "230307154408_63-0" }
The subscriber responds { "Event": "outgoingcall_started", "Callerid": "MAKECALL", "User": "117", "Trtype": "NotDef", "Did": "", "Id": "230307154408_63-1" }
End of The Call { "Event": "outgoing", "Callerid": "05552221133", "User": "117", "Finishtype": "Ok", "Transfer": "False", "Did": "", "Duration": "00:04", "Id": "230307154408_63-1" }
The recording of the conversation is ready { "Event": "recording", "FileUrls": [ "https://FQDN:5001/webapi/recording/230307154408_63-1-1.mp3" ], "Callerid": "05552221133", "User": "117", "Id": "230307154408_63-1" }

MakeCall unsuccessful call

Event Webhook
Dialing a number { "Event": "dialing", "Callerid": "05552221133", "User": "117", "Id": "230307155208_64-0" }
Extension hangs up call { "Event": "outgoing", "Callerid": "05552221133", "User": "117", "Finishtype": "Missed", "Transfer": "False", "Did": "", "Duration": "", "Id": "230307155409_66-0" }


  • WEBHOOK_URL = for GET requests
  • HTTP_REQUEST_METHOD_POST = 0

Incoming successful call

Event Webhook
The Call Goes To The IVR event=ringing&callerid=420774852629&user=800&usertype=other&did=DID-420222000320&id=230102104542_15-0
The call is placed in the queue event=ringing&callerid=420774852629&user=804&usertype=queue&did=DID-420222000320&id=230102104542_15-0
The phone ringing event=ringing&callerid=420774852629&user=102&usertype=ext&did=DID-420222000320&id=230102104542_15-0
The operator picks up the phone event=hangupincoming&callerid=420774852629&user=102&did=DID-420222000320&trtype=NotDef&id=230102104542_15-1
End of The Call event=incoming&callerid=420774852629&user=102&finishtype=Ok&transfer=False&did=DID-420222000320&title=DID-420222000320:Answered call from 420774852629 (0:07)&id=230102104542_15-1

Incoming missed call

Event Webhook
The Call Goes To The IVR event=ringing&callerid=420774852629&user=800&usertype=other&did=DID-420222000320&id=230102104542_15-0
The call is placed in the queue event=ringing&callerid=420774852629&user=804&usertype=queue&did=DID-420222000320&id=230102104542_15-0
The phone ringing event=ringing&callerid=420774852629&user=102&usertype=ext&did=DID-420222000320&id=230102104542_15-0
End of The Call event=incoming&callerid=420774852629&user=804&finishtype=Missed&transfer=False&did=DID-420222000320&title=DID-420222000320:Missed call by queue 804 from 420774852629&id=230102154720_16-0

Outgoing successful call

Event Webhook
Dialing a number event=dialing&callerid=420774852629&user=102&id=230102184431_17-0
The subscriber responds event=hangupoutgoing&callerid=420774852629&user=102&did=&trtype=NotDef&id=230102185935_18-1
End of The Call event=outgoing&callerid=420774852629&user=102&finishtype=Ok&transfer=False&did=&title=Successful call to 420774852629 (0:06)&id=230102185935_18-1
The recording of the conversation is ready https://3CXDQDN:5001/webapi/recording/230102185935_18-1-1.mp3

Outgoing unsuccessful call

Event Webhook
Dialing a number event=dialing&callerid=420774852629&user=102&id=230102184431_17-0
End of The Call event=outgoing&callerid=420774852629&user=102&finishtype=Missed&transfer=False&did=&title=Unanswered call to 420774852629&id=230102184431_17-0