PMP Events

Inbound v2 events post the per message based pricing roll out on 1st July 2025

Billing Event

Key changes for billing event
  1. Removal of conversation_id and conversation_type key
  2. Addition of new key category
  3. Value of model key to change from CBP to PMP
  4. type key inside deductions object to take up new values (refer table below for supported values)
{
	"app": "xxxxxxx23d31f949e98869bc9a1xxxxxx",
	"timestamp": 1739354482884,
	"version": 2,
	"type": "billing-event",
	"payload": 
  {
		"deductions": 
    {
			"type": "regular",
			"model": "PMP",
			"source": "whatsapp",
			"billable": true,
			"category": "marketing"
		},
			"references": 
    {
			"id": "d04cc3a7-18f0-4571-831e-xxxxxxxx",
			"gsId": "7bf06899-5f0f-4cca-be3b-xxxxxxxxxx",
			"destination": "79507xxxxxxxx"
		}
	}
}

Key

Description

Example

type

billing-event

billing-event

category

  • marketing
  • marketing_lite
  • utility
  • authentication
  • authentication_international
  • service
  • referral_conversion

marketing

model

PMP

PMP

source

Origin source of the conversation

gupshup/whatsapp

billable

The value is either true or false depending on whether a conversation is billable or not.

false

gsId

Unique Gupshup identifier for a message

7bf06899-5f0f-4cca-be3b-xxxxxxxxxx

destination

Phone number of the user engaged in the conversation.

79507xxxxxxxx

References - Object Description

KeyDescriptionExample
idUnique WhatsApp identifier for a messaged04cc3a7-18f0-4571-831e-xxxxxxxx
gsIdUnique Gupshup identifier for a message7bf06899-5f0f-4cca-be3b-xxxxxxxxxx
destinationPhone number of the user engaged in the conversation.79507xxxxxxxx

Sent

Key changes for sent event
  • conversation object may not be available depedning on webhook version
  • Addition of new key type inside pricing object
  • Value of policy key to change from CBP to PMP
  • type key inside conversation object to take up new values (refer table below for supported values)
  • category key inside pricing object to take up new values (refer table below for supported values)
{
  "app": "{{xxxxxxx23d31f949e98869bc9a1xxxxxx}}",
  "phone": "{{APP_PHONE}}",
  "timestamp": {{1739354482884}},
  "version": 2,
  "type": "message-event",
  "payload": 
	{
    "id": "{{d04cc3a7-18f0-4571-831e-xxxxxxxx}}",
    "gsId": "{{7bf06899-5f0f-4cca-be3b-xxxxxxxxxx}}",
    "type": "sent",
    "destination": "{{79507xxxxxxxx}}",
    "payload": 
    {
      "ts": {{1739354482}}
    },
    "conversation": 
		{
      "id": "0f957b88cfb1558f6199exxxxxxxx",
      "expiresAt": 1747048500,
      "type": "marketing"
    },
    "pricing": 
		{
      "policy": "PMP",
      "category": "service",
      "type": "regular"
    }
  }
}

The sent event is received when the message is sent to the end-user.

conversation object description. Please note the conversation object is optional, and will be forwarded based on if Meta sends it to us.

Key

Description

Example

id

Unique ID for a conversation.

d04cc3a7-18f0-4571-831e-xxxxxxxx

gsId

Unique Gupshup identifier for a message

7bf06899-5f0f-4cca-be3b-xxxxxxxxxx

destination

Phone number of the user engaged in the conversation.

79507xxxxxxxx

conversation_id

conversation id

0f957b88cfb1558f6199exxxxxxxx

expiresAt

Conversation expiration timestamp in seconds

1747048500

type

The type of conversation. Possible values:

  • marketing
  • marketing_lite
  • utility
  • authentication
  • authentication_international
  • service
  • referral_conversion

Marketing

pricing object description

Key

Description

Example

policy

The pricing policy applied for this message. Possible values of policy:

  • CBP
  • PMP

PMP

category

The pricing category. Possible values:

  • marketing
  • marketing_lite
  • utility
  • authentication
  • authentication_international
  • service
  • referral_conversion

service

Delivered

πŸ“˜

No change in delivered event payload