35+ countries live across 4 regions

For your reviewers

Elsewhere

Get your coverage map

Platform

One agreement. One key. One call.

One contract and one credential in place of a negotiation with every operator in every country. Every answer names the carrier that served it.

Live in 35+ countries 60+ operators One POST

What changes

What an operator-by-operator integration involves.

Legal review, commercial terms, technical onboarding, certificates, a test window, a go-live. Then the next operator, and the country after that.

The stepOperator by operatorThrough Plumma Connect
Commercial agreement One per operator, per market. Three to six months each. Sign once. Plumma holds the operator agreements.
Credentials A separate key, certificate and portal per operator. One API key, issued in days.
Integration surface A different endpoint and payload shape for every operator. A typed command set on a single POST.
Version drift Each operator moves its own specification on its own calendar. Normalised before your risk engine sees it.
Routing You resolve the operator, then pick the right integration. Resolved per call, with failover.
Billing An invoice per operator, per market. One invoice, one SLA.
When nobody can answer Silence that looks like a finding. A declared gap, and the call is not billed.
Coverage Mapped by you, market by market. The operators already under contract, already mapped.
New markets A new country is a new project and a new API. A new country is the same key and the same API.
Management Keys scattered across operator portals. Every key in one console.

Every request

Four things happen to every call you make.

A number and a list of commands go in. The answer comes back with the account of how it was obtained.

01 / Routes

Picks the path

Across direct operator interconnections, aggregator supply and the declared fallback. Number portability means the prefix does not identify the operator, so the route is resolved before the call is placed, with automatic failover when a path is down.

02 / Normalises

Returns one shape

Networks run different versions of the same specification and return different fields. Two of them in one market can answer the same command with two payloads, two error vocabularies and two sets of edge cases. Your risk engine sees one shape.

03 / Records

Names its source

Every response carries the carrier that served it, the specification version it ran on and a correlation identifier you can quote in a support ticket or an audit.

04 / Declares

States the gap

The response contains only the blocks that were actually served. Where no operator can answer, it says so at request time, and the call is not billed.

The command set

Twenty-two commands, grouped by the decision they serve.

Identity and trust

sim_swap
Whether the SIM behind the number changed inside the fixed 240-hour window.
port_fraud_shield
Porting activity that fits an account takeover in progress.
divert_detector
Whether unconditional call forwarding is set on the line.
digital_footprint
Where the number shows up across online platforms.
device_swap
Whether the handset behind the number changed, and when.
scam_check
Whether the number is reported in scam activity. United Kingdom at launch.
location_verification
Whether the device is inside an area you declare, with a match rate.

Onboarding

kyc_match
Whether the details given match the operator's own record, attribute by attribute.
age_verification
That the line holder is over a threshold, with no document and no camera step.
tenure_period
Whether the line has been held longer than the period you ask about.
commercial_segment
A consumer line from a business line.

Connectivity and reachability

network_presence
Whether the line is live and reachable right now.
roaming_intel
Whether the line is roaming, and on which network.
deactivation_point
When the line was last deactivated.
line_classification
Mobile, landline and VoIP, told apart.
qdr_history
The line's quality-on-demand history.
location_retrieval
Where the device last reported itself, as an area rather than a point.

Number intelligence

current_carrier
The operator serving the line today: name, MCC, MNC, SPID, OCN, LRN.
issuing_carrier
The operator that originally issued the number.
porting_timestamp
Whether the number has ported, and when.
porting_logs
The porting events behind that date.
churn_tracker
The line's history of deactivations, swaps, suspensions and reactivations.

What answers in Italy today

Seven commands live, two in build.

The twenty-two typed commands are the surface of the API. What any one of them can answer depends on the market, so this is the Italian position, stated per command, October 2026.

sim_swapWhen the SIM behind this number last changed, inside the fixed 240-hour window

Live

kyc_matchWhether account details match the registered holder

Live

age_verificationWhether the holder is over a threshold

Live

location_verificationWhether the device is in a declared area

Live

network_presenceWhether the line is reachable and active

Live

divert_detectorWhether unconditional call forwarding is set on the line

Live

porting_logsThe line's porting history

Live

qdr_historyThe line's quality-on-demand history

In build

scam_checkWhether the number is reported in scam activity

In build

Plumma command names, because those are what you call. The status is ours and it is stated for the market: live means we can answer it in Italy today, in build means the supply is contracted and the integration is not finished. Which network served a given call is in the response to that call, with the specification version it ran on. Number Verification is a separate product and is not in this list.

Coverage inside one market

Coverage varies by network inside the market.

Inside a single market the networks launch at different times, on different versions of the same specification, and some have launched nothing at all. A country counted as live can still leave part of its subscriber base out of reach, so a coverage figure quoted per country tells you little about the flow you are about to build. Plumma states what it can answer per command and per market, sends each request to supply that can serve it, and where nothing can, declares the gap at request time rather than returning a quiet negative. That call is not billed.

In production

What it has done for the teams already running it.

36M

SIM Swap checks across Latin America for one bank on one integration, around five million a month of them in Brazil

80%

less chargeback fraud at an Argentine transport operator

70%

less fraud at a European fintech, blocking 0.5% of applications

Results reported by the deploying customer, named by sector while reference permissions are cleared.

Getting started

Four steps, and the first one costs you nothing.

01

Coverage run

We run the map against your own number ranges and hand you the result, gaps included, before anything is signed.

02

Sandbox

One key covers testing against the demo numbers and live traffic. Your engineers call the commands with the carrier and the version on every payload.

03

One decision in pilot

Pick a single decision: a step-up, an onboarding path, a callback check. Measure it against what you do today.

04

Production

Scope the markets, commands and suppliers you want enabled. That set is what the licence is priced on.

Start with the coverage run.

Send your number ranges under an NDA and we return the map for your own base, by operator, gaps included.