Skip to Content
SubscriptionsStatuses & errors

Statuses and errors

StatusName — processing result

ValueDescription
REQUEST_ACCEPTEDRequest accepted and processed
SECURITY_ERRORSignature error or Now drift greater than 20 minutes
WRONG_PARAMSInvalid parameter set
SERVICE_UNAVAILABLEA request rate limit was hit
INTERNAL_ERRORInternal platform error

On error, the response additionally contains ErrorDescription (an explanation) and ErrorReasonName (a machine code).

HTTP statuses

StatusWhen
400The body does not parse as XML or is empty
503A rate limit was hit. The body carries StatusName=SERVICE_UNAVAILABLE
200Everything else, including signature and parameter errors — check StatusName

ErrorReasonName codes

CodeWhen
InvalidSubscriberMsisdnThe number is not in 7XXXXXXXXXX format
SubscriberMustBeSpecifiedNeither a number, nor ClientIP, nor CustomerType=Card was sent
SubscriptionAlreadyCreatedThe subscriber already has a live subscription in this project. The existing SubscriptionID is printed in ErrorDescription
SubscriberNotSupportedThe subscriber’s operator has no billing rules
SubscriberInBlacklistThe number is blacklisted
ClientIPMSISDNCountryNotEqualCountries by number and by IP do not match
InvalidClientIPClientIP does not parse as an IP address
InvalidPinCodeWrong PIN; the description carries the attempts left
ExceededSubscriptionApprovingAttemptsThree wrong PINs in a row, or the 3-hour confirmation window expired
SubscriptionAlreadyApprovedThe subscription is already confirmed

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 counters are independent: hitting the limit for one number does not block the other subscribers of the project. Exceeding a limit gives 503.

Error response
<?xml version="1.0" encoding="utf-8"?> <Response> <StatusName>SECURITY_ERROR</StatusName> <ErrorDescription>Signature validation failed</ErrorDescription> <ErrorReasonName>InvalidSignature</ErrorReasonName> </Response>

CreateSubscription response fields

FieldDescription
SubscriptionIDSubscription identifier in the platform — store it
SubscriberAcceptanceRequiredWhether subscriber confirmation is required
SubscriberAcceptanceChannelConfirmation channel: SMS_PIN or AUTH_PAGE
AuthorizeUrlPayment or confirmation page — for the AUTH_PAGE channel only
SubscriptionStatusSubscription state right after creation — Pending
TrialExistsWhether the subscription has a trial period
OperatorIDSubscriber’s operator
PaidUntilPaid until — date and time with a timezone

Notification fields

FieldDescription
EventTypeEvent type, e.g. APPROVED
SubscriptionStatusSubscription state, e.g. Active
BillingIteration / BillingAttemptBilling iteration number and the attempt number within it
CustomerPriceCharge amount: currency and amount attributes
BillingOperationIDBilling operation identifier
BillingErrorCodeBilling error code, 0 — success
PaidUntilNew end date of the paid period