Download OpenAPI specification:Download
This method provides a real-time balance. For prepaid terms with Prepay Nation, the balance is returned with a negative sign to indicate available funds. For credit terms, the balance indicates the amount owed.
The transaction will only proceed if your wallet contains sufficient funds. We strongly advise utilizing this API method to monitor your wallet.
curl -X GET "https://sandbox.valuetopup.com/api/v2/account/balance" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": 0.1
}This method can be utilized to retrieve a list of all available countries.
curl -X GET "https://sandbox.valuetopup.com/api/v2/catalog/countries" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": [
- {
- "countryCode": "",
- "countryName": "",
- "region": "",
- "internationalCountryCode": "",
- "areaCodes": "",
- "numberLength": ""
}
]
}Return the operators list
| operatorId | integer <int32> Operator Id |
| countryCode | string Country Code |
curl -X GET "https://sandbox.valuetopup.com/api/v2/catalog/operators" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": [
- {
- "operatorId": 0,
- "operatorName": "",
- "imageUrl": ""
}
]
}Get a list of products available to the agent. You can use OperatorId to get a list of products from /getproducts API. Available Category Id Values: Pin = 1, Rtr = 2, Bill Pay = 4, Sim = 5, Gift Card = 6, eSim = 7.
| operatorId | integer <int32> Operator Id |
| categoryId | integer <int32> Category Id |
| countryCode | string Country Code |
curl -X GET "https://sandbox.valuetopup.com/api/v2/catalog/getproducts" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": [
- {
- "productId": 0,
- "category": "",
- "productName": "",
- "countryCode": "",
- "operatorId": 0,
- "operatorName": "",
- "imageUrl": "",
- "requireFetchBundle": true,
- "description": ""
}
]
}This operation retrieves all products except Gift Card along with their SKU IDs.
| productId | integer <int32> |
| skuId | integer <int32> |
| Accept-Language | string Language code for localized responses (for eg 'ar'). Refer to Localization and Multilingual Response Support for more details. |
curl -X GET "https://sandbox.valuetopup.com/api/v2/catalog/skus" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": [
- {
- "skuId": 0,
- "skuName": "",
- "min": {
- "faceValue": 0.1,
- "faceValueCurrency": "",
- "deliveredAmount": 0.1,
- "deliveryCurrencyCode": "",
- "faceValueInWalletCurrency": 0.1
}, - "max": {
- "faceValue": 0.1,
- "faceValueCurrency": "",
- "deliveredAmount": 0.1,
- "deliveryCurrencyCode": "",
- "faceValueInWalletCurrency": 0.1
}, - "exchangeRate": 0.1,
- "loanAmountInFaceValueCurrency": 0.1,
- "loanAmountInDeliveryCurrency": 0.1,
- "loanAmountInWalletCurrency": 0.1,
- "productId": 0,
- "productName": "",
- "category": "",
- "isSalesTaxCharged": true,
- "salesTax": 0.1,
- "countryCode": "",
- "benefitType": "",
- "validity": "",
- "productDescription": "",
- "localPhoneNumberLength": 0,
- "internationalCountryCode": [
- "string"
], - "allowDecimal": true,
- "fee": 0.1,
- "operatorId": 0,
- "operatorName": "",
- "imageUrl": "",
- "additionalInformation": "",
- "region": "",
- "deliveryAmountType": "",
- "subCategory": "",
- "requireFetchBundle": true
}
]
}Return the most current exchange of a Sku
| skuId required | integer <int32> Sku Id |
curl -X GET "https://sandbox.valuetopup.com/api/v2/catalog/sku/exchangeRate/{skuId}" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": {
- "skuId": 0,
- "productName": "",
- "currencyCode": "",
- "exchangeRate": 0.1
}
}curl -X GET "https://sandbox.valuetopup.com/api/v2/catalog/errors" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": [
- {
- "errorCode": "",
- "errorDescription": ""
}
]
}This operation returns list of dynamic bundles
| productId required | integer <int32> |
| mobileNumber required | string |
curl -X GET "https://sandbox.valuetopup.com/api/v2/catalog/bundles/{productId}/{mobileNumber}" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": [
- {
- "skuId": 0,
- "skuName": "",
- "min": {
- "faceValue": 0.1,
- "faceValueCurrency": "",
- "deliveredAmount": 0.1,
- "deliveryCurrencyCode": "",
- "faceValueInWalletCurrency": 0.1
}, - "max": {
- "faceValue": 0.1,
- "faceValueCurrency": "",
- "deliveredAmount": 0.1,
- "deliveryCurrencyCode": "",
- "faceValueInWalletCurrency": 0.1
}, - "exchangeRate": 0.1,
- "loanAmountInFaceValueCurrency": 0.1,
- "loanAmountInDeliveryCurrency": 0.1,
- "loanAmountInWalletCurrency": 0.1,
- "productId": 0,
- "productName": "",
- "category": "",
- "isSalesTaxCharged": true,
- "salesTax": 0.1,
- "countryCode": "",
- "benefitType": "",
- "validity": "",
- "productDescription": "",
- "localPhoneNumberLength": 0,
- "internationalCountryCode": [
- "string"
], - "allowDecimal": true,
- "fee": 0.1,
- "operatorId": 0,
- "operatorName": "",
- "imageUrl": "",
- "additionalInformation": "",
- "region": "",
- "deliveryAmountType": "",
- "subCategory": "",
- "requireFetchBundle": true
}
]
}This operation retrieves all Gift Card products along with their SKU IDs.
Note: If neither cursor nor a pageSize is provided, the default response will display only 100 Gift Card SKUs.
| cursor | integer <int32> The cursor is used to retrieve the next set of SKUs. For example, cursor=10, will retrieve SKUs starting from skuId : 10 based on the specified page size. |
| pageSize | integer <int32> The number of items to retrieve starting with the cursor. The page size must be at least 1 and not more than 100. |
| productId | integer <int32> Product Id - The ProductId can be obtained by the �/catalog/getproducts/� API. |
| skuId | integer <int32> Sku Id of denomination |
| countryCode | string ISO Country Code e.g. IN for India |
| Accept-Language | string Language code for localized responses (for eg 'ar'). Refer to the Localization and Multilingual Response Support section for more details. |
curl -X GET "https://sandbox.valuetopup.com/api/v2/catalog/skus/giftcards" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": [
- {
- "skuId": 0,
- "skuName": "",
- "min": {
- "faceValue": 0.1,
- "faceValueCurrency": "",
- "deliveredAmount": 0.1,
- "deliveryCurrencyCode": "",
- "faceValueInWalletCurrency": 0.1
}, - "max": {
- "faceValue": 0.1,
- "faceValueCurrency": "",
- "deliveredAmount": 0.1,
- "deliveryCurrencyCode": "",
- "faceValueInWalletCurrency": 0.1
}, - "exchangeRate": 0.1,
- "loanAmountInFaceValueCurrency": 0.1,
- "loanAmountInDeliveryCurrency": 0.1,
- "loanAmountInWalletCurrency": 0.1,
- "productId": 0,
- "productName": "",
- "category": "",
- "isSalesTaxCharged": true,
- "salesTax": 0.1,
- "countryCode": "",
- "benefitType": "",
- "validity": "",
- "productDescription": "",
- "localPhoneNumberLength": 0,
- "internationalCountryCode": [
- "string"
], - "allowDecimal": true,
- "fee": 0.1,
- "operatorId": 0,
- "operatorName": "",
- "imageUrl": "",
- "additionalInformation": "",
- "region": "",
- "deliveryAmountType": "",
- "subCategory": "",
- "requireFetchBundle": true
}
], - "next": 0,
- "next_cursor": 0
}This operation is used to buy eSIM products
| skuId required | integer <int32> Sku Id - The SkuId can be obtained by the “/catalog/skus/” API. The category of the carrier should be ‘eSIM’ |
| correlationId required | string [ 1 .. 50 ] characters Unique ID of Customer System |
{- "skuId": 0,
- "correlationId": ""
}{- "responseCode": "",
- "responseMessage": "",
- "payLoad": {
- "transactionId": 0,
- "transactionDate": "",
- "invoiceAmount": 0.1,
- "faceValue": 0.1,
- "discount": 0.1,
- "fee": 0.1,
- "product": {
- "skuId": 0,
- "productName": "",
- "faceValue": 0.1,
- "instructions": "",
- "productDescription": ""
}, - "topupDetail": {
- "localCurrencyAmount": 0.1,
- "salesTaxAmount": 0.1,
- "localCurrencyAmountExcludingTax": 0.1,
- "destinationCurrency": "",
- "operatorTransactionId": ""
}, - "pins": [
- {
- "pinNumber": "",
- "controlNumber": "",
- "deliveredAmount": 0.1,
- "deliveredCurrencyCode": "",
- "expirationDate": ""
}
], - "giftCardDetail": {
- "cardNumber": "",
- "pin": "",
- "expirationDate": "",
- "certificateLink": ""
}, - "simInfo": {
- "simNumber": "",
- "language": "",
- "zipCode": "",
- "mobileNumber": ""
}, - "billPaymentDetail": {
- "accountNumber": "",
- "token": "",
- "unit": "",
- "receivedNarration": ""
}, - "esimDetail": {
- "iccid": "",
- "activationCode": "",
- "smdpAddress": "",
- "confirmationCode": "",
- "qrCodeString": "",
- "qrCodeLink": ""
}
}
}This operation is used to check the current data balance of eSIM
| Iccid required | string Iccid which you received from eSIM order response |
curl -X GET "https://sandbox.valuetopup.com/api/v2/esim/status/{Iccid}" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": [
- {
- "name": "",
- "description": "",
- "initialQuantity": 0,
- "remainingQuantity": 0,
- "assignmentDateTime": "",
- "startTime": "",
- "endTime": "",
- "assignmentReference": "",
- "unit": "",
- "activationCode": "",
- "smdpAddress": ""
}
]
}Get operator and product information for a specific mobile number. Pass mobile number along with country code to validate MSISDN.
Sandbox environment - We only support phone number lookup for Jamaica, India, Pakistan, and Mexico. Please utilize any phone number with a valid country code from these countries for testing purposes in the Sandbox environment.
Production environment - We provide support for all countries excluding the United States and Spain.
Note: Providing end users with the choice to make a final operator selection is crucial. Occasionally, the results obtained from a lookup request may not accurately reflect the most up-to-date information, particularly after a recent porting of the mobile number to a new operator. Introducing this extra step enhances accuracy and enhances the user experience as a whole.
| mobile required | integer <int64> Mobile Number with country code |
| Accept-Language | string Language code for localized responses (for eg 'ar'). Refer to the Localization and Multilingual Response Support section for more details. |
curl -X GET "https://sandbox.valuetopup.com/api/v2/lookup/mobile/{mobile}" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": [
- {
- "productId": 0,
- "productName": "",
- "countryCode": "",
- "operatorId": 0,
- "operatorName": "",
- "imageUrl": "",
- "skus": [
- {
- "skuId": 0,
- "skuName": "",
- "min": {
- "faceValue": 0.1,
- "faceValueCurrency": "",
- "deliveredAmount": 0.1,
- "deliveryCurrencyCode": "",
- "faceValueInWalletCurrency": 0.1
}, - "max": {
- "faceValue": 0.1,
- "faceValueCurrency": "",
- "deliveredAmount": 0.1,
- "deliveryCurrencyCode": "",
- "faceValueInWalletCurrency": 0.1
}, - "exchangeRate": 0.1,
- "loanAmountInFaceValueCurrency": 0.1,
- "loanAmountInDeliveryCurrency": 0.1,
- "loanAmountInWalletCurrency": 0.1,
- "productId": 0,
- "productName": "",
- "category": "",
- "isSalesTaxCharged": true,
- "salesTax": 0.1,
- "countryCode": "",
- "benefitType": "",
- "validity": "",
- "productDescription": "",
- "localPhoneNumberLength": 0,
- "internationalCountryCode": [
- "string"
], - "allowDecimal": true,
- "fee": 0.1,
- "operatorId": 0,
- "operatorName": "",
- "imageUrl": "",
- "additionalInformation": "",
- "region": "",
- "deliveryAmountType": "",
- "subCategory": "",
- "requireFetchBundle": true
}
]
}
]
}This operation is used to fetch bill detail
| skuId | integer <int32> Sku Id of Product |
| accountNumber | string bill account number |
curl -X GET "https://sandbox.valuetopup.com/api/v2/lookup/billpay/fetch-account-detail" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": {
- "accountNumber": "",
- "customerName": "",
- "balanceDue": 0.1,
- "currencyCode": "",
- "dueDate": ""
}
}Retrieve a list of all currently active promotions.
curl -X GET "https://sandbox.valuetopup.com/api/v2/promotion/current" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": [
- {
- "promotionId": 0,
- "promotionName": "",
- "countryTimeZone": "",
- "startDate": "",
- "endDate": "",
- "description": "",
- "restriction": "",
- "promotionalBalanceExpiration": "",
- "promotionMinMax": [
- {
- "currencyCode": "",
- "minAmount": 0.1,
- "maxAmount": 0.1
}
], - "product": {
- "productId": 0,
- "productName": "",
- "countryCode": "",
- "operatorName": ""
}, - "operator": {
- "operatorId": 0,
- "operatorName": "",
- "countryCode": "",
- "countryName": ""
}
}
]
}Retrieve a list of all future promotions.
curl -X GET "https://sandbox.valuetopup.com/api/v2/promotion/upcoming" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": [
- {
- "promotionId": 0,
- "promotionName": "",
- "countryTimeZone": "",
- "startDate": "",
- "endDate": "",
- "description": "",
- "restriction": "",
- "promotionalBalanceExpiration": "",
- "promotionMinMax": [
- {
- "currencyCode": "",
- "minAmount": 0.1,
- "maxAmount": 0.1
}
], - "product": {
- "productId": 0,
- "productName": "",
- "countryCode": "",
- "operatorName": ""
}, - "operator": {
- "operatorId": 0,
- "operatorName": "",
- "countryCode": "",
- "countryName": ""
}
}
]
}This operation facilitates mobile number top-up. Agents can initiate this request by providing the SkuId, obtained from the Product API, along with the amount, mobile, and correlationId. It's crucial for the agent to include a correlationId, serving as a unique transaction identifier within their system, which can be utilized for reconciliation purposes.
Sandbox Environment: For testing purposes, any number can be passed. However, it's essential to ensure that the mobile number adheres to country-specific formatting guidelines. For example, in Jamaica, the country code is 1876, and the number length is 7 digits. Thus, any number in the format 1876XXXXXXX can be used.
Topup request
| skuId required | integer <int32> Sku Id - The SkuId can be obtained by the Products API. The category of the carrier should be ‘RTR’ |
| amount required | number <double> Top-up Amount - It is by default in Customer Wallet Currency if "transactionCurrencyCode" is not defined. Otherwise, it is based on the "transactionCurrencyCode" field. For example, if the Customer wallet currency is GBP and "TransactionCurrencyCode" is not specified, then the system considers the amount in GBP. However, the customer can send the amount in the destination currency by defining the destination currency code in the "transactionCurrencyCode" field, for example, INR for India or NGN for Nigeria. Important Note: ⚠️ For fixed-denomination SKUs, if |
| mobile required | string non-empty Mobile number of the subscriber. it should be as per carrier guideline. |
| correlationId required | string [ 1 .. 50 ] characters Unique ID of Customer System |
| senderMobile | string or null Sender Mobile Number |
| boostPin | string or null [ 0 .. 6 ] characters 4 to 6 digits PIN of Boost Mobile number. This is required only when recharge is for Boost Mobile. |
| numberOfPlanMonths | integer <int32> This field is used to buy Lyca Bundle for multiple Months. E.g. If user wants to buy 19 USD Lyca Bundle for 3 months then request should contain 3. |
| transactionCurrencyCode | string or null This field is optional. It is used to send amount in destination currency. If customer wanted to send amount in destination country currency than pass ISO currency code of that country in this field.
You should check FaceValueCurrency field of /catalog/skus api to check what currency you can pass in this field. |
Array of objects or null (AdditionalInfo) Some product requires additional information to process transactions. you need to provide that information here in name value pair. You can get this information from Catalog |
{- "skuId": 0,
- "amount": 0.1,
- "mobile": "",
- "correlationId": "",
- "senderMobile": "",
- "boostPin": "",
- "numberOfPlanMonths": 0,
- "transactionCurrencyCode": "",
- "additionalInfos": [
- {
- "name": "",
- "value": ""
}
]
}{- "responseCode": "",
- "responseMessage": "",
- "payLoad": {
- "transactionId": 0,
- "transactionDate": "",
- "invoiceAmount": 0.1,
- "faceValue": 0.1,
- "discount": 0.1,
- "fee": 0.1,
- "product": {
- "skuId": 0,
- "productName": "",
- "faceValue": 0.1,
- "instructions": "",
- "productDescription": ""
}, - "topupDetail": {
- "localCurrencyAmount": 0.1,
- "salesTaxAmount": 0.1,
- "localCurrencyAmountExcludingTax": 0.1,
- "destinationCurrency": "",
- "operatorTransactionId": ""
}, - "pins": [
- {
- "pinNumber": "",
- "controlNumber": "",
- "deliveredAmount": 0.1,
- "deliveredCurrencyCode": "",
- "expirationDate": ""
}
], - "giftCardDetail": {
- "cardNumber": "",
- "pin": "",
- "expirationDate": "",
- "certificateLink": ""
}, - "simInfo": {
- "simNumber": "",
- "language": "",
- "zipCode": "",
- "mobileNumber": ""
}, - "billPaymentDetail": {
- "accountNumber": "",
- "token": "",
- "unit": "",
- "receivedNarration": ""
}, - "esimDetail": {
- "iccid": "",
- "activationCode": "",
- "smdpAddress": "",
- "confirmationCode": "",
- "qrCodeString": "",
- "qrCodeLink": ""
}
}
}This operation is used to buy PIN products
Pin Request Object
| skuId required | integer <int32> Sku Id - The SkuId can be obtained by the Products API. The category of the carrier should be |
| correlationId required | string [ 1 .. 50 ] characters Unique ID of Customer System |
| recipient | string or null System will use this information to deliver PIN through SMS. Pass mobile number along with country code.Mobile number must belong to same country for which you are buying PIN.e.g.ATT PIN - 1XXXXXXXXXX |
Array of objects or null (AdditionalInfo) Some product requires additional information to process transactions. you need to provide that information here in name value pair. You can get this information from Catalog |
{- "skuId": 0,
- "correlationId": "",
- "recipient": "",
- "additionalInfos": [
- {
- "name": "",
- "value": ""
}
]
}{- "responseCode": "",
- "responseMessage": "",
- "payLoad": {
- "transactionId": 0,
- "transactionDate": "",
- "invoiceAmount": 0.1,
- "faceValue": 0.1,
- "discount": 0.1,
- "fee": 0.1,
- "product": {
- "skuId": 0,
- "productName": "",
- "faceValue": 0.1,
- "instructions": "",
- "productDescription": ""
}, - "topupDetail": {
- "localCurrencyAmount": 0.1,
- "salesTaxAmount": 0.1,
- "localCurrencyAmountExcludingTax": 0.1,
- "destinationCurrency": "",
- "operatorTransactionId": ""
}, - "pins": [
- {
- "pinNumber": "",
- "controlNumber": "",
- "deliveredAmount": 0.1,
- "deliveredCurrencyCode": "",
- "expirationDate": ""
}
], - "giftCardDetail": {
- "cardNumber": "",
- "pin": "",
- "expirationDate": "",
- "certificateLink": ""
}, - "simInfo": {
- "simNumber": "",
- "language": "",
- "zipCode": "",
- "mobileNumber": ""
}, - "billPaymentDetail": {
- "accountNumber": "",
- "token": "",
- "unit": "",
- "receivedNarration": ""
}, - "esimDetail": {
- "iccid": "",
- "activationCode": "",
- "smdpAddress": "",
- "confirmationCode": "",
- "qrCodeString": "",
- "qrCodeLink": ""
}
}
}This operation is used to perform Bill Payment
| skuId required | integer <int32> Sku Id - The SkuId can be obtained by the Products API. The category of the carrier should be |
| amount required | number <double> Amount - It is by default in Customer Wallet Currency if "transactionCurrencyCode" is not defined. Otherwise, it is based on the "transactionCurrencyCode" field. For example, if the Customer wallet currency is GBP and "TransactionCurrencyCode" is not specified, then the system considers the amount in GBP. However, the customer can send the amount in the destination currency by defining the destination currency code in the "transactionCurrencyCode" field, for example, INR for India or NGN for Nigeria. Important Note: ⚠️ For fixed-denomination SKUs, if |
| accountNumber required | string non-empty Account number on the Bill or Mobile number in case pf Postpaid Mobile Bill |
| mobileNumber | string or null Mobile Number |
| checkDigits | string or null Check digits |
| correlationId required | string [ 1 .. 50 ] characters Unique Id of Customer |
| senderMobile | string or null Sender Mobile |
| senderName | string or null Sender Name |
| transactionCurrencyCode | string or null <= 3 characters This field is optional. It is used to send amount in destination currency. If customer wanted to send amount in destination country currency than pass ISO currency code of that country in this field.
You should check FaceValueCurrency field of /catalog/skus api to check what currency you can pass in this field. |
Array of objects or null (AdditionalInfo) Some product requires additional information to process transactions. you need to provide that information here in name value pair. You can get this information from Catalog |
{- "skuId": 0,
- "amount": 0.1,
- "accountNumber": "",
- "mobileNumber": "",
- "checkDigits": "",
- "correlationId": "",
- "senderMobile": "",
- "senderName": "",
- "transactionCurrencyCode": "",
- "additionalInfos": [
- {
- "name": "",
- "value": ""
}
]
}{- "responseCode": "",
- "responseMessage": "",
- "payLoad": {
- "transactionId": 0,
- "transactionDate": "",
- "invoiceAmount": 0.1,
- "faceValue": 0.1,
- "discount": 0.1,
- "fee": 0.1,
- "product": {
- "skuId": 0,
- "productName": "",
- "faceValue": 0.1,
- "instructions": "",
- "productDescription": ""
}, - "topupDetail": {
- "localCurrencyAmount": 0.1,
- "salesTaxAmount": 0.1,
- "localCurrencyAmountExcludingTax": 0.1,
- "destinationCurrency": "",
- "operatorTransactionId": ""
}, - "pins": [
- {
- "pinNumber": "",
- "controlNumber": "",
- "deliveredAmount": 0.1,
- "deliveredCurrencyCode": "",
- "expirationDate": ""
}
], - "giftCardDetail": {
- "cardNumber": "",
- "pin": "",
- "expirationDate": "",
- "certificateLink": ""
}, - "simInfo": {
- "simNumber": "",
- "language": "",
- "zipCode": "",
- "mobileNumber": ""
}, - "billPaymentDetail": {
- "accountNumber": "",
- "token": "",
- "unit": "",
- "receivedNarration": ""
}, - "esimDetail": {
- "iccid": "",
- "activationCode": "",
- "smdpAddress": "",
- "confirmationCode": "",
- "qrCodeString": "",
- "qrCodeLink": ""
}
}
}This operation is used to check status of Transaction Status. This is very useful API method to check status of original transaction in case if you don't get response of original transaction within the timeout set by your system. To know the correct and final status of the original transaction we recommend that you to implement this API method to check status. This method will return you final status of the original transaction.
Please follow the steps below - 1. Send the corelationId value with every RTR or PIN transaction. This is the unique id from your system which will help us to identify the original transaction. 2. In case of a request timeout error, call Transaction Check Status (/transaction/status) method and pass the correlation id from step #1. 3. You should call the Transaction Check Status (/transaction/status) method multiple times until you get a definite response of a success or a failure. Please refer to the documentation of Transaction Check Status (/transaction/status) method.
If the response code is "852," it means the transaction is still in progress. Any other response code should be considered the final status of the transaction. This could either be successful ("000") or failed (any code other than "000").
Prepay nation Timeout = 2 minute
| correlationId required | string Correlation ID which you send in actual Transaction api method. |
curl -X GET "https://sandbox.valuetopup.com/api/v2/transaction/status/{correlationId}" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": {
- "transactionId": 0,
- "transactionDate": "",
- "invoiceAmount": 0.1,
- "faceValue": 0.1,
- "discount": 0.1,
- "fee": 0.1,
- "product": {
- "skuId": 0,
- "productName": "",
- "faceValue": 0.1,
- "instructions": "",
- "productDescription": ""
}, - "topupDetail": {
- "localCurrencyAmount": 0.1,
- "salesTaxAmount": 0.1,
- "localCurrencyAmountExcludingTax": 0.1,
- "destinationCurrency": "",
- "operatorTransactionId": ""
}, - "pins": [
- {
- "pinNumber": "",
- "controlNumber": "",
- "deliveredAmount": 0.1,
- "deliveredCurrencyCode": "",
- "expirationDate": ""
}
], - "giftCardDetail": {
- "cardNumber": "",
- "pin": "",
- "expirationDate": "",
- "certificateLink": ""
}, - "simInfo": {
- "simNumber": "",
- "language": "",
- "zipCode": "",
- "mobileNumber": ""
}, - "billPaymentDetail": {
- "accountNumber": "",
- "token": "",
- "unit": "",
- "receivedNarration": ""
}, - "esimDetail": {
- "iccid": "",
- "activationCode": "",
- "smdpAddress": "",
- "confirmationCode": "",
- "qrCodeString": "",
- "qrCodeLink": ""
}
}
}This operation is used to buy Gift card.
Important Note: Gift card processing may take longer than usual. If you receive response code 852 with the message "Gift card processing is in progress." it means the transaction is still being processed. In this case, you must check the transaction status using the Check Status API (/transaction/status/{correlationId}) to obtain the final result. Please refer to the "Check Status of transaction by correlation ID" endpoint documentation for more details.
Response code 852 indicates the transaction is in progress. Any other response code represents the final transaction status - either success (000) or failure (any code other than 000).
Gift card Object
| skuId required | integer <int32> Sku Id - The SkuId can be obtained by the Products API. The category of the product should be |
| amount required | number <double> Amount - It is by default in Customer Wallet Currency if "transactionCurrencyCode" is not defined. Otherwise, it is based on the "transactionCurrencyCode" field. For example, if the Customer wallet currency is GBP and "TransactionCurrencyCode" is not specified, then the system considers the amount in GBP. However, the customer can send the amount in the destination currency by defining the destination currency code in the "transactionCurrencyCode" field, for example, INR for India or NGN for Nigeria. Important Note: ⚠️ For fixed-denomination SKUs, if |
| correlationId required | string [ 1 .. 50 ] characters Unique ID of Customer System |
| firstName | string or null First Name |
| lastName | string or null Last Name |
| recipient | string or null Mobile Number |
| transactionCurrencyCode | string or null This field is optional. It is used to send amount in destination currency. If customer wanted to send amount in destination country currency than pass ISO currency code of that country in this field.
You should check FaceValueCurrency field of /catalog/skus api to check what currency you can pass in this field. |
Array of objects or null (AdditionalInfo) Some product requires additional information to process transactions. you need to provide that information here in name value pair. You can get this information from Catalog |
{- "skuId": 0,
- "amount": 0.1,
- "correlationId": "",
- "firstName": "",
- "lastName": "",
- "recipient": "",
- "transactionCurrencyCode": "",
- "additionalInfos": [
- {
- "name": "",
- "value": ""
}
]
}{- "responseCode": "",
- "responseMessage": "",
- "payLoad": {
- "transactionId": 0,
- "transactionDate": "",
- "invoiceAmount": 0.1,
- "faceValue": 0.1,
- "discount": 0.1,
- "fee": 0.1,
- "product": {
- "skuId": 0,
- "productName": "",
- "faceValue": 0.1,
- "instructions": "",
- "productDescription": ""
}, - "topupDetail": {
- "localCurrencyAmount": 0.1,
- "salesTaxAmount": 0.1,
- "localCurrencyAmountExcludingTax": 0.1,
- "destinationCurrency": "",
- "operatorTransactionId": ""
}, - "pins": [
- {
- "pinNumber": "",
- "controlNumber": "",
- "deliveredAmount": 0.1,
- "deliveredCurrencyCode": "",
- "expirationDate": ""
}
], - "giftCardDetail": {
- "cardNumber": "",
- "pin": "",
- "expirationDate": "",
- "certificateLink": ""
}, - "simInfo": {
- "simNumber": "",
- "language": "",
- "zipCode": "",
- "mobileNumber": ""
}, - "billPaymentDetail": {
- "accountNumber": "",
- "token": "",
- "unit": "",
- "receivedNarration": ""
}, - "esimDetail": {
- "iccid": "",
- "activationCode": "",
- "smdpAddress": "",
- "confirmationCode": "",
- "qrCodeString": "",
- "qrCodeLink": ""
}
}
}| id required | integer <int64> Transaction Id which you receive in Gift card Operation |
curl -X GET "https://sandbox.valuetopup.com/api/v2/transaction/giftcard/fetch/{id}" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": {
- "cardNumber": "",
- "pin": "",
- "expirationDate": "",
- "certificateLink": ""
}
}This operation is used to activate sim.
| skuId required | integer <int32> Sku Id - The SkuId can be obtained by the Product API. The category of the carrier should be |
| simNumber required | string non-empty Sim Number |
| zipCode required | integer <int32> Zip Code |
| language | string or null Language |
string or null | |
| correlationId required | string [ 1 .. 50 ] characters Unique Id of Customer System |
| numberOfPlanMonths | integer <int32> This field is used to buy Lyca Bundle for multiple Months. |
| areaCode | string or null Area Code |
| imei | string or null IMEI |
Array of objects or null (AdditionalInfo) Some product requires additional information to process transactions. you need to provide that information here in name value pair. You can get this information from Catalog |
{- "skuId": 0,
- "simNumber": "",
- "zipCode": 0,
- "language": "",
- "email": "",
- "correlationId": "",
- "numberOfPlanMonths": 0,
- "areaCode": "",
- "imei": "",
- "additionalInfos": [
- {
- "name": "",
- "value": ""
}
]
}{- "responseCode": "",
- "responseMessage": "",
- "payLoad": {
- "transactionId": 0,
- "transactionDate": "",
- "invoiceAmount": 0.1,
- "faceValue": 0.1,
- "discount": 0.1,
- "fee": 0.1,
- "product": {
- "skuId": 0,
- "productName": "",
- "faceValue": 0.1,
- "instructions": "",
- "productDescription": ""
}, - "topupDetail": {
- "localCurrencyAmount": 0.1,
- "salesTaxAmount": 0.1,
- "localCurrencyAmountExcludingTax": 0.1,
- "destinationCurrency": "",
- "operatorTransactionId": ""
}, - "pins": [
- {
- "pinNumber": "",
- "controlNumber": "",
- "deliveredAmount": 0.1,
- "deliveredCurrencyCode": "",
- "expirationDate": ""
}
], - "giftCardDetail": {
- "cardNumber": "",
- "pin": "",
- "expirationDate": "",
- "certificateLink": ""
}, - "simInfo": {
- "simNumber": "",
- "language": "",
- "zipCode": "",
- "mobileNumber": ""
}, - "billPaymentDetail": {
- "accountNumber": "",
- "token": "",
- "unit": "",
- "receivedNarration": ""
}, - "esimDetail": {
- "iccid": "",
- "activationCode": "",
- "smdpAddress": "",
- "confirmationCode": "",
- "qrCodeString": "",
- "qrCodeLink": ""
}
}
}This operation is used to port in Sim.
| skuId required | integer <int32> Sku Id - The SkuId can be obtained by the Products API. The category of the carrier should be |
| simNumber required | string non-empty Sim Number |
| zipCode required | integer <int32> Zip Code |
| language | string or null Language |
string or null | |
| correlationId required | string [ 1 .. 50 ] characters Unique Id of Customer System |
| numberOfPlanMonths | integer <int32> Number of Plan Months |
| areaCode | string or null <= 3 characters Area Code |
| imei | string or null IMEI |
| operatorCode | string or null Operator Code |
| mobileNumber | string or null Mobile Number which need to be port |
| accountNumber | string or null Account Number of existsing carrier |
| passwordPin | string or null Password |
| firstName | string or null First Name |
| lastName | string or null Last Name |
| address | string or null Address |
| city | string or null City |
| state | string or null State |
| accountHolderZip | string or null Account Holder Zip |
| equipmentType | string or null Equipement Type |
| streetNumber | string or null Street Number |
| streetName | string or null Street Name |
| contactNumber | string or null Contact Number |
Array of objects or null (AdditionalInfo) Some product requires additional information to process transactions. you need to provide that information here in name value pair. You can get this information from Catalog |
{- "skuId": 0,
- "simNumber": "",
- "zipCode": 0,
- "language": "",
- "email": "",
- "correlationId": "",
- "numberOfPlanMonths": 0,
- "areaCode": "",
- "imei": "",
- "operatorCode": "",
- "mobileNumber": "",
- "accountNumber": "",
- "passwordPin": "",
- "firstName": "",
- "lastName": "",
- "address": "",
- "city": "",
- "state": "",
- "accountHolderZip": "",
- "equipmentType": "",
- "streetNumber": "",
- "streetName": "",
- "contactNumber": "",
- "additionalInfos": [
- {
- "name": "",
- "value": ""
}
]
}{- "responseCode": "",
- "responseMessage": "",
- "payLoad": {
- "transactionId": 0,
- "transactionDate": "",
- "invoiceAmount": 0.1,
- "faceValue": 0.1,
- "discount": 0.1,
- "fee": 0.1,
- "product": {
- "skuId": 0,
- "productName": "",
- "faceValue": 0.1,
- "instructions": "",
- "productDescription": ""
}, - "topupDetail": {
- "localCurrencyAmount": 0.1,
- "salesTaxAmount": 0.1,
- "localCurrencyAmountExcludingTax": 0.1,
- "destinationCurrency": "",
- "operatorTransactionId": ""
}, - "pins": [
- {
- "pinNumber": "",
- "controlNumber": "",
- "deliveredAmount": 0.1,
- "deliveredCurrencyCode": "",
- "expirationDate": ""
}
], - "giftCardDetail": {
- "cardNumber": "",
- "pin": "",
- "expirationDate": "",
- "certificateLink": ""
}, - "simInfo": {
- "simNumber": "",
- "language": "",
- "zipCode": "",
- "mobileNumber": ""
}, - "billPaymentDetail": {
- "accountNumber": "",
- "token": "",
- "unit": "",
- "receivedNarration": ""
}, - "esimDetail": {
- "iccid": "",
- "activationCode": "",
- "smdpAddress": "",
- "confirmationCode": "",
- "qrCodeString": "",
- "qrCodeLink": ""
}
}
}This operation is used to check port in status
| id required | integer <int64> Transaction Id which you received from Port In response |
curl -X GET "https://sandbox.valuetopup.com/api/v2/transaction/sim/portin/status/{id}" \ -H "Authorization: Basic YOUR_BASE64_CREDENTIALS" \ -H "Accept: application/json"
{- "responseCode": "",
- "responseMessage": "",
- "payLoad": {
- "status": "",
- "portInDate": "",
- "mobile": "",
- "rejectCode": "",
- "rejectReason": ""
}
}This operation is used to get the estimate cost of product
Cost request
| skuId required | integer <int32> Sku Id - The SkuId can be obtained by the Products API. |
| amount required | number <double> Amount - It is by default in Customer Wallet Currency if "transactionCurrencyCode" is not defined. Otherwise, it is based on the "transactionCurrencyCode" field. For example, if the Customer wallet currency is GBP and "TransactionCurrencyCode" is not specified, then the system considers the amount in GBP. However, the customer can send the amount in the destination currency by defining the destination currency code in the "transactionCurrencyCode" field, for example, INR for India or NGN for Nigeria. Important Note: ⚠️ For fixed-denomination SKUs, if |
| transactionCurrencyCode | string or null This field is optional. It is used to send amount in destination currency. If customer wanted to send amount in destination country currency than pass ISO currency code of that country in this field.
You should check FaceValueCurrency field of /catalog/skus or /catalog/skus/giftcards api to check what currency you can pass in this field. |
{- "skuId": 0,
- "amount": 0.1,
- "transactionCurrencyCode": ""
}{- "responseCode": "",
- "responseMessage": "",
- "payLoad": {
- "invoiceAmount": 0.1,
- "faceValue": 0.1,
- "faceValueCurrency": "",
- "faceValueInWallet": 0.1,
- "localCurrencyAmount": 0.1,
- "salesTaxAmount": 0.1,
- "localCurrencyAmountExcludingTax": 0.1,
- "destinationCurrency": "",
- "product": {
- "skuId": 0,
- "productName": "",
- "productDescription": ""
}
}
}