WhatsApp API Platform
Calls

Authentication

Secure a trunk with a digest credential, an IP allowlist, or both — how each mode works, how to manage credentials, and which credential belongs to which leg of a call.

Every trunk decides who is allowed to use it. You can authenticate by source IP address, by a SIP digest username and password, or by both together. Credentials and the allowlist live in the trunk's side panel.

Trunk side panel showing the credentials list with a masked password and reveal icon, and the IP allowlist below it

In the app: Dashboard → Automation → Calls → Trunks → (click a trunk)


Two different credentials

A WhatsApp call has two legs, and each leg has its own authentication. They are unrelated, and mixing them up is the most common mistake in setting this up.

LegWho authenticatesRealmWho configures it
WhatsApp ↔ usHandled entirely by us, using the SIP password WhatsApp issues for your numberwa.meta.vcNobody — it is set up when you turn calling on, and rotated automatically
Your phone system ↔ usThe credential you create on the trunksip.pingmate.appYou

Everything on this page is about the second leg. You never see, enter or manage the WhatsApp-side credential — if it drifts, calls stop and you contact support, but there is no setting for it.

The realm is always sip.pingmate.app

When your phone system asks for a SIP realm, domain or authentication realm for this trunk, the answer is always sip.pingmate.app — regardless of which brand's dashboard you are using.


Authentication modes

Set this with the Authentication dropdown when creating or editing a trunk.

ModeUI labelWhat must pass
IPIP allowlistThe call must come from an address in the trunk's allowlist
CredentialDigest credentialThe call must present a valid, enabled username and password
BothIP + credentialBoth checks must pass — a valid credential from the wrong network is still refused

IP allowlist is the default and is fine when your phone system has a fixed public IP that you control.

Digest credential suits a phone system on a dynamic address, or a cloud platform whose egress IP you cannot pin down.

IP + credential is the strongest, and what we recommend for outbound trunks. A leaked password on its own gets an attacker nowhere, because it would also have to be used from your network.

The unused half stays inert

On an IP allowlist trunk, any credentials you create sit unused until you switch the mode to Credential or Both. On a Digest credential trunk, the allowlist is ignored the same way. The panel tells you when this is the case — it is a reminder, not an error.


Credentials

Create one

Open the trunk

Click the trunk row on Dashboard → Automation → Calls to open its side panel, and scroll to Credentials.

Choose a username, or don't

Type a username in the box at the bottom of the section, or leave it blank and we generate one from the trunk's name — something like office-3cx-a1b2c3.

Usernames are globally unique within the sip.pingmate.app realm, so a name already in use is rejected. Generated usernames never collide.

Click Add

The password is generated for you — a random 24-character string. It appears immediately in an amber banner:

Copy this password now. It is not shown again.

Copy the username and password into your phone system before dismissing it.

If you did not copy it

The banner says the password is not shown again, and for a fresh credential that is the safest thing to assume. In practice the password can be recovered: click the eye icon on the credential row to reveal it, and the copy button next to it to copy.

Reveals are recorded

Revealing a password writes an entry to your account's activity log, with who did it and when. Treat the reveal as an audited action, not a routine one.

Manage credentials

Each credential row has:

ControlWhat it does
UsernameWith a copy button on hover
PasswordMasked; the eye icon reveals it, the copy button copies it
Enable switchTurns the credential off without deleting it — calls using it stop being accepted immediately
DeleteRemoves it permanently

A trunk can hold several credentials. That is how you roll a password without downtime: add a new credential, move your phone system onto it, confirm calls still work, then delete the old one.

Passwords cannot be changed in place

There is no rotate button. To change a password, create a second credential and delete the first.

Expiry

A credential can carry an expiry date. Leave it blank — the default — and it never expires. An expired credential stops being accepted at the moment it expires, exactly as if you had switched it off.

Expiry is useful for a contractor's temporary access or a time-boxed migration. For your normal production trunk, leave it blank; a credential that expires unnoticed at 3am is an outage.


IP allowlist

The allowlist names the networks your phone system signals from. It applies on trunks whose mode is IP allowlist or IP + credential.

Add an entry

Type an address or a range in the box at the bottom of the IP allowlist section and click Add.

You typeStored asMeaning
203.0.113.10203.0.113.10/32Exactly that one address
203.0.113.0/24203.0.113.0/24All 256 addresses in that range
2001:db8::12001:db8::1/128One IPv6 address

A bare address is automatically narrowed to just itself. A range is tidied to its canonical form, so 203.0.113.7/24 is stored as 203.0.113.0/24.

You cannot allow everything

A /0 range — every address on the internet — is rejected. An allowlist that allows everyone is a misconfiguration, not a security control.

Manage entries

Each row has a copy button, an enable switch to take a range out of use without deleting it, and a delete icon.

The range itself cannot be edited once added — if you got it wrong, delete it and add the correct one. Duplicates on the same trunk are rejected.

What address to add

Add the public IP your phone system sends SIP from, not its private LAN address. If it sits behind NAT, that is your internet-facing address; if it is a cloud platform, that is the egress address your provider documents. Getting this wrong is the usual cause of a trunk that refuses every call — see Test a trunk.


What's next


Security guidance

How is this guide?

On this page