Service Enabling Payments against Operator Carrier Billing Systems
Service Enabling Payments against Operator Carrier Billing Systems
The Carrier Billing API provides programmable interface for developers and other users (capabilities consumers) to charge an amount on a mobile line. It can be easily integrated and allows end-users to buy digital content in an easy & secured way. The API provides management of a payment entity and its associated lifecycle.
Carrier Billing: An online payment process which allows users to make purchases by charging payments against Telco Operator Billing Systems, accordingly to the user's configuration in the Telco Operator. In a common usage in the industry, the payment is processed on current account balance or charged on next bill generated for this line.
Payment: The process of paying for a (set of) good(s)/service(s).
1-STEP Payment: Payment process performed in one phase (i.e. one action), that involves all the Telco Operator Carrier Billing Systems checking and trigger the charging request against Billing Systems.
2-STEP Payment: Payment process performed in two phases (i.e. two actions). First action deals with payment preparation request to guarantee the reservation of the involved amount. Second action is an explicit confirmation or cancellation of the payment by the user. Any payment not confirmed/cancelled by a given user is discarded after some time in order to avoid inconsistency in the billing systems.
This API allows to third party clients to request the payment of a (set of) digital good(s)/service(s), as well as to retrieve information about a specific payment or a list of payments.
In the scope of version v0.3, only one-off payments are covered. Recurrent payments (a.k.a. payment subscriptions) are not covered so far.
The API provides several endpoints/operations:
createPayment
.preparePayment
.confirmPayment
and cancelPayment
respectively.paymentId
), named retrievePayments
and retrievePayment
respectively.createPayment
and preparePayment
operations, towards the sink
when provided by API client.The usage of the API is based on Payment resource, which can be created (in 1-STEP or 2-STEP Payment process), confirmed/cancelled (for 2-STEP Payment process), and queried/retrieved (list of payments or a specific payment).
Before starting to use the API, the developer needs to know about the below specified details:
One Step Payment
and Two Step Payment
have been defined to explicitly distinguish them in the API specification. A third tag Payment
is defined for common operations in both processes (query/retrieve list of payments or a specific payment).prepared
payment could expire after a defined delay.sink
param) on which status change notifications, regarding the payment, can be received from the Telco Operator. This is an optional parameter.Following diagram shows the API resources operation sequencing:
Follow picture provides information about the payment state engine (state description & transition):
State transitions:
1-STEP Payment
If createPayment
is a SYNC process:
paymentId
and paymentStatus=succeeded
.paymentId
is not created.If createPayment
is an ASYNC process:
paymentId
and paymentStatus=processing
. After completion:succeeded
.denied
.paymentId
is not created.2-STEP Payment
FIRST STEP
If preparePayment
is a SYNC process:
validationInfo
is NOT provided in response.paymentId
and paymentStatus=reserved
.validationInfo
is provided in response.paymentId
and paymentStatus=pending_validation
.paymentId
is not created.If preparePayment
is an ASYNC process:
validationInfo
is NOT provided in response.paymentId
and paymentStatus=processing
. After completion:reserved
.denied
.validationInfo
is provided in response.paymentId
and paymentStatus=processing
. After completion:pending_validation
. [1]denied
.paymentId
is not created.[OPTIONAL] VALIDATE STEP [1]
After validatePayment
, paymentStatus=reserved
OR denied
, depending whether it was successful or not.
SECOND STEP
After confirmPayment
, paymentStatus=succeeded
OR denied
, depending whether it was successful or not.
After cancelPayment
, paymentStatus=cancelled
.
Regarding optional parameters, they can be conditionally mandatory for a Telco Operator to implement them based on business scenarios or applicable regulations in a given market.
NOTE: Within a given market, in a multi Telco Operator ecosystem, the set of optional parameters to be implemented MUST be aligned among involved Telco Operators.