Get started
Telecom interfaces
Under Systems → Telecom, choose an interface by its standard name and specification:
| Simulator | Interface | Specification | Testlie role |
|---|---|---|---|
| SM Policy Control | N7 / Npcf_SMPolicyControl v1 | 3GPP TS 29.512 | PCF-facing service for an SMF client |
| Converged Charging | N40 / Nchf_ConvergedCharging v3 | 3GPP TS 32.291 | CHF-facing service for an NF charging client |
These are bounded HTTP/JSON simulation subsets, not complete or certified 3GPP network functions. They do not contact an operator, provision SIMs, rate money or change a real subscriber. Use synthetic identifiers and test data only. Creating either simulator requires the test-data acknowledgement.
Use the configured system's base URL as apiRoot; append the standard paths below. Send its generated test token as Authorization: Bearer <accessToken>. The token is scoped to that simulator and can be rotated. This is test bearer authentication, not an NRF OAuth issuer or mTLS service identity.
SM Policy Control — TS 29.512
POST /npcf-smpolicycontrol/v1/sm-policies: create; returns 201, a Location header, and a policy decision.GET /npcf-smpolicycontrol/v1/sm-policies/{id}: read context and policy.POST /npcf-smpolicycontrol/v1/sm-policies/{id}/update: update RAT/access context and recompute the test decision.POST /npcf-smpolicycontrol/v1/sm-policies/{id}/delete: close; returns 204. Later reads return 404.
Example create body:
{
"supi": "imsi-001010000000001",
"pduSessionId": 1,
"pduSessionType": "IPV4",
"dnn": "internet",
"notificationUri": "https://smf.example.test/callback",
"sliceInfo": { "sst": 1 }
}Normal decisions grant a sample 100 Mbps AMBR and 5QI 9. The Restrict policy / exhaust charging quota outcome grants 1 Mbps; Deny policy / charging service returns a native 403 ProblemDetails response. Updates are atomic. Unknown attributes are ignored; only the documented context subset is retained. A fresh POST creates a new association; create idempotency is not offered.
Converged Charging — TS 32.291
POST /nchf-convergedcharging/v3/chargingdata: create; returns 201 and Location.POST /nchf-convergedcharging/v3/chargingdata/{ref}/update: report usage/request more units.POST /nchf-convergedcharging/v3/chargingdata/{ref}/release: report final usage and close; returns 204.
Example create body:
{
"subscriberIdentifier": "imsi-001010000000001",
"nfConsumerIdentification": { "nodeFunctionality": "SMF" },
"invocationTimeStamp": "2026-10-19T12:00:00Z",
"invocationSequenceNumber": 0,
"multipleUnitUsage": [{ "ratingGroup": 10, "requestedUnit": { "totalVolume": 1048576 } }]
}Use a fresh timestamp/charging identity for an independent session. Identical parsed create requests reuse their resource; retransmissionIndicator does not change identity. Updates/releases must increment the sequence number by one. An identical repeat of the most recent operation returns its stored response without counting reported usage again. A changed replay or gap is rejected. This is a latest-response cache, not an unlimited replay journal.
The normal outcome grants requested volume up to 1 MiB per volume field and time up to 60 seconds, per rating group, with 60-second validity. A usage-only report does not request or receive a grant. Usage accumulates for inspection; monetary rating and wallet/reservation accounting are absent. Denial returns END_USER_SERVICE_DENIED; exhaustion returns QUOTA_LIMIT_REACHED with a terminating final-unit indication. Release remains available under either scenario.
This subset accepts IMSI-form SUPIs, volume/time units, at most 16 distinct rating groups per invocation, and 32 used-unit containers per group. Volumes can be integers or digit strings up to 10^12. Service-specific/event units are rejected. There is no one-time-event charging. Objects are isolated per simulator and capped at 500 sessions, including closed sessions. Create a fresh simulator for a new test run once that limit is reached.
Capture and limits
Inspect requests, responses, objects and latency on the configured system page. Existing monthly API mock quotas, credential rotation, latency and API failure controls apply. Authentication runs before failure scenarios. An authenticated policy denial is captured and metered as a request; an invalid token is diagnostic only.
Requests are limited to 64 KB. Validation and failures use application/problem+json with 3GPP-style causes. This does not implement all standard conditional rules, fields, feature negotiation, PDU session types or releases. notificationUri and notifyUri are captured as data only: no callbacks are dispatched. Generic webhook settings do not enable native 3GPP notifications for these two simulators.
NRF discovery/OAuth, mTLS identity, SCP routing, callback delivery, full HTTP/2 SBI transport conformance, Diameter Gx/Gy/Sy, ASN.1 CDR encoding, SIM provisioning, eSIM and number portability are outside this first subset. HTTPS clients can use the hosted endpoint; an HTTP simulation test is not a network-function conformance test.
To test an existing PCF/CHF server itself, use a standards client/harness against that server. These Testlie endpoints emulate the server side; they do not replace a BSS's separate vendor provisioning or charging-engine management adapter. SMS/SMPP testing remains under SMS guide.
References: TS 29.512 Release 18, TS 32.291 Release 18.