Skip to Content
SandboxSubscriptionsFailures & limits

Failures and limits

An error carries StatusName ≠ REQUEST_ACCEPTED plus ErrorReasonName (machine code) and ErrorDescription (explanation). The HTTP status stays 200 — except for the two cases below.

ErrorReasonName codes

CodeWhenHow to reproduce
InvalidSubscriberMsisdnThe number is not in 7XXXXXXXXXX formatSend a 5-digit Subscriber_MSISDN
SubscriberMustBeSpecifiedNeither a number, nor ClientIP, nor CustomerType=CardCreateSubscription with no customer fields
SubscriptionAlreadyCreatedThe subscriber already has a live subscription in this projectRepeat CreateSubscription with the same number
SubscriberNotSupportedThe subscriber’s operator has no billing rulesA number ending with 0001
SubscriberInBlacklistThe number is blacklistedA number ending with 0002
ClientIPMSISDNCountryNotEqualCountries by number and by IP do not matchA number ending with 0003 together with ClientIP
InvalidClientIPClientIP does not parse as an IP address<ClientIP>not-an-ip</ClientIP>
InvalidPinCodeWrong PIN; the description carries the attempts leftApproveSubscription with a PIN other than 1234
ExceededSubscriptionApprovingAttemptsThree wrong PINs in a row, or the 3-hour window expiredSend a wrong PIN three times
SubscriptionAlreadyApprovedThe subscription is already confirmedRepeat ApproveSubscription

On SubscriptionAlreadyCreated the SubscriptionID of the existing subscription is printed in ErrorDescription — so you can continue the scenario instead of creating a second one. To run it from scratch, use another number or call CancelSubscription first.

HTTP statuses

StatusWhen
400The body does not parse as XML or is empty — the spec has the platform answer 400 Bad request
503A rate limit was hit (below). The body carries StatusName=SERVICE_UNAVAILABLE
200Everything else, including signature and parameter errors

Rate limits

CounterThresholdsMethods
ClientIP50 per 10 min, 200 per 60 minall
Subscriber_MSISDN6 per 2 min, 10 per 20 minCreateSubscription, CancelSubscription
SubscriptionProjectID1000 per 1 min, 3000 per 5 minall

The thresholds are the production ones. Counters are independent: hitting the limit for one number does not block the other subscribers of the project.

Error response
<Response> <StatusName>WRONG_PARAMS</StatusName> <ErrorReasonName>SubscriptionAlreadyCreated</ErrorReasonName> <ErrorDescription>Subscription already exists: SubscriptionID=10000001, status=Active</ErrorDescription> </Response>
Failure by number
# a number ending with 0002 — blacklisted <Subscriber_MSISDN>79001230002</Subscriber_MSISDN> <Response> <StatusName>WRONG_PARAMS</StatusName> <ErrorReasonName>SubscriberInBlacklist</ErrorReasonName> </Response>
Rate limit hit
HTTP/1.1 503 Service Unavailable <Response> <StatusName>SERVICE_UNAVAILABLE</StatusName> <ErrorDescription>msisdn:79001234567 exceeded 6 requests per 2 min</ErrorDescription> </Response>