zendit Logo

For Developers

zendit provides access to a vast catalog of global prepaid brands through a

customizable, 

unified 

platform.

Welcome Developer

Select a category below to learn more about product management, selling with zendit,

and how our API will work with you.

Initial

zendit API Specification v1.0.0

Overview

Our cloud-based Prepaid as a Service platform is now even more accessible with our reliable and efficient REST API. Our API provides seamless access to catalogs, balance information, and transactions for our:

  • International Mobile Top Up Products
  • International Mobile Bundles
  • Digital Gift Cards
  • Utility Payments

Our platform is built with industry-standard security protocols and is designed to integrate seamlessly with your existing systems. We are committed to providing top-notch support, so please don’t hesitate to reach out to our experienced zendit support team with any questions or support needs.

Environments

Testing and development before going live with your product or service is crucial. That’s why we provide easy access to both our test bed and production environments through our gateway.

When you register for zendit, you’ll be provided with a test mode API key to use for simulated transactions. These transactions will not transfer real value, but will deduct from your test bed wallet. No credit card is required for this environment, and you can manage your wallet balance through our administration console.

When you’re ready to switch to production mode and start processing real transactions, you’ll need to fund your prepay wallet with real value. This will allow you to process transactions using your production key.

For more information on using our testbed environment to simulate different responses, refer to our comprehensive test mode environment documentation.

Please don’t hesitate to contact our support team if you have any questions or need assistance.

API Security

When you sign up for our platform, you’ll be given access to your test mode key for testing your integration with our API. To send requests to an API endpoint, please use the Authentication header and include your API key as follows:

Authentication: Bearer YOUR_API_KEY

This will authenticate your requests and allow our API to process them securely. If you’re ready to switch to production mode and start processing real transactions, you’ll need to use your production key instead.

Transactions

Transparency and visibility are most important when it comes to processing transactions. That’s why we process transactions asynchronously and provide detailed status updates throughout the process.

When you send a transaction through our platform, we first validate the parameters of the transaction and then return the transaction ID in the response, along with any error messages if the transaction cannot be processed. From there, the transaction enters the zendit ecosystem and begins to move through our system.

To check on the status of your transaction, you can periodically poll the transaction using the transaction ID. Our system provides detailed updates on the transaction’s status as it moves through the system, including updates on receipt, wallet authorization, offer fulfillment, and completion.

Once the transaction is complete, you’ll receive a final status update that reports whether it was successful or encountered any errors during processing. Additionally, each transaction contains a history log that shows all status updates throughout the transaction process, providing you with a comprehensive view of the transaction’s journey through our platform.

Transaction ID

Providing our users with maximum flexibility when it comes to tracking their transactions is important. That’s why we don’t automatically generate transaction IDs – instead, you can supply any alphanumeric string of your choosing (such as an autonumber or a GUID) to track your transaction in our system.

To ensure that your transaction is processed correctly, you must supply the ID you will use to track the transaction status with each transaction request. Please note that transaction IDs are unique per zendit account and environment, so you can use the same transaction ID in both your test environment and production environment (once per environment).

If you’re using an autonumber scheme and have test and production environments, there’s no need to worry about collisions of IDs between the two environments. We understand the importance of keeping your test and production environments separate, and our system is designed to handle this seamlessly.

Automatic Queue and Retry

We strive to ensure that your transactions are processed reliably and efficiently. While most transactions are processed in real time, occasional recoverable errors can occur when a product provider in the ecosystem encounters an issue.

To address this, our API automatically sets a 15-minute timeout on the transaction and then retries it. If there is an extended problem with a product provider, the system will continue to retry the transaction every 15 minutes until it either completes successfully or fails after 24 hours.

We’re always looking for ways to improve our platform and provide our users with the most efficient transaction processing experience possible. In future versions of zendit, we plan to offer additional options for managing queued and retried transactions, such as the ability to cancel a transaction that was unable to complete on the first try, or the option to turn off queuing of items that were not completed on the first attempt.

Digital Gift Card and Utility Payment Required Felds

Digital Gift Cards and Utility Payments based on the brand requirements may require more information than just the recipient’s phone number. For the specific requirements of a Digital Gift Card or Utility Payment offer the list of fields required will be provided in the catalog. You can find all the possible fields that a these offers may require on the required fields page.

Error Messages

For a detailed list of possible error statuses, please see Error Message Guide

Transaction Log Structure

zendit Transactions contain a log of activity as the transaction progresses through the system. You can find this on any transaction under the “log” structure. The log will give more detail about the transaction from when it was submitted, when it was authorized against the wallet, when it was submitted for fulfillment and any errors that were encountered while processing will be noted at the stage where the transaction failed.

Searching using createdAt date on transactions

When using the createdAt date on the transaction search endpoints (/topup/purchases, /transactions and /voucher/purchases) dates use the RFC 3339 format in UTC Timezone (e.g. 2023-02-15T03:15:22Z)

When searching with createdAt there are a few prefixes you can add to the time in order to search around the timestamp supplied. The search formats are as follows:

FormatDescriptionExample
No prefixSearch for an exact date/time2023-02-15T03:15:22Z will search for transactions that match February 15, 2023 at 3:15 and 22 seconds in UTC timezone
ltSearch for a date/time that is earlier than the supplied valuelt2023-02-15T03:15:22Z will search for transactions that are before February 15, 2023 at 3:15 and 22 seconds in UTC timezone
lteSearch for a date/time that is equal to the supplied value and earlierlte2023-02-15T03:15:22Z will search for transactions that are equal February 15, 2023 at 3:15 and 22 seconds in UTC timezone and transactions that are earlier
gtSearch for a date/time that is later than the supplied valuegt2023-02-15T03:15:22Z will search for transactions that are after February 15, 2023 at 3:15 and 22 seconds in UTC timezone
gteSearch for a date/time that is equal to the supplied value and latergt2023-02-15T03:15:22Z will search for transactions that are equal to February 15, 2023 at 3:15 and 22 seconds in UTC timezone and transactions that are later

zendit – Website
Send email to zendit

Servers

https://api.zendit.io/v1/
Try it on swagger

https://test-api.zendit.io/v1/
Try it on swagger


SDKs are coming soon! Can’t wait?

Go to the Swagger for our API and download the API Spec in JSON to use Swagger to generate a client

Account Information

GET

/balance

Check your account balance

Usage and SDK Samples

curl -X GET -H "Authorization: [[apiKey]]" "https://api.zendit.io/v1/balance"
 import io.swagger.client.*; 
 import io.swagger.client.auth.*; 
 import io.swagger.client.model.*; 
 import io.swagger.client.api.ZenditApi; 
 
 import java.io.File;
 import java.util.*;
 
 public class ZenditApiExample { 
 
     public static void main(String[] args) { 
         ApiClient defaultClient = Configuration.getDefaultApiClient(); 
 
         // Configure API key authorization: ApiKey 
         ApiKeyAuth ApiKey = (ApiKeyAuth) defaultClient.getAuthentication("ApiKey"); 
         ApiKey.setApiKey("YOUR API KEY"); 
         // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) 
        //ApiKey.setApiKeyPrefix("Token"); 
 
         ZenditApi apiInstance = new ZenditApi(); 
         try { 
             dto.BalanceResponse result = apiInstance.v1BalanceGet(); 
             System.out.println(result); 
         } catch (ApiException e) { 
             System.err.println("Exception when calling ZenditApi#v1BalanceGet"); 
             e.printStackTrace(); 
         } 
     } 
 }
Configuration *apiConfig = [Configuration sharedConfig]; 
 
 // Configure API key authorization: (authentication scheme: ApiKey) 
 [apiConfig setApiKey:@"YOUR_API_KEY" forApiKeyIdentifier:@"Authorization"]; 
 // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed 
 //[apiConfig setApiKeyPrefix:@"Bearer" forApiKeyIdentifier:@"Authorization"]; 
 
 
 ZenditApi *apiInstance = [[ZenditApi alloc] init]; 
 
 // Get list of transactions 
 [apiInstance v1BalanceGetWithCompletionHandler: 
               ^(dto.BalanceResponse output, NSError* error) { 
                             if (output) { 
                                 NSLog(@"%@", output); 
                             } 
                             if (error) { 
                                 NSLog(@"Error: %@", error); 
                             } 
                         }]; n 
 var ZenditGatewayApi = require('zendit_gateway_api'); 
 var defaultClient = ZenditGatewayApi.ApiClient.instance; 
 
 // Configure API key authorization: ApiKey 
 var ApiKey = defaultClient.authentications['ApiKey']; 
 ApiKey.apiKey = "YOUR API KEY" 
 // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) 
 //ApiKey.apiKeyPrefix['Authorization'] = "Token" 
 
 var api = new ZenditGatewayApi.ZenditApi() 
 
 var callback = function(error, data, response) { 
   if (error) { 
     console.error(error); 
   } else { 
     console.log('API called successfully. Returned data: ' + data); 
   } 
 }; 
 api.v1BalanceGet(callback);
 using System; 
 using System.Diagnostics; 
 using IO.Swagger.Api; 
 using IO.Swagger.Client; 
 using IO.Swagger.Model; 
  n namespace Example 
 { 
     public class v1BalanceGetExample 
     { 
         public void main() 
         {  
 
             // Configure API key authorization: ApiKey 
             Configuration.Default.ApiKey.Add("Authorization", "YOUR_API_KEY"); 
             // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed 
             // Configuration.Default.ApiKeyPrefix.Add("Authorization", "Bearer"); 
 
             var apiInstance = new ZenditApi(); 
 
             try 
             { 
                 // Get list of transactions 
                 dto.BalanceResponse result = apiInstance.v1BalanceGet(); 
                 Debug.WriteLine(result); 
             } 
             catch (Exception e) 
             { 
                 Debug.Print("Exception when calling ZenditApi.v1BalanceGet: " + e.Message ); 
             } 
         } 
     } 
 }
 <?php 
 require_once(__DIR__ . '/vendor/autoload.php'); 
 
 // Configure API key authorization: ApiKey 
 SwaggerClientConfiguration::getDefaultConfiguration()->setApiKey('Authorization', 'YOUR_API_KEY'); 
 // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed 
 // SwaggerClientConfiguration::getDefaultConfiguration()->setApiKeyPrefix('Authorization', 'Bearer'); 
 
 $api_instance = new SwaggerClientApiZenditApi(); 
 
 try { 
     $result = $api_instance->v1BalanceGet(); 
     print_r($result); 
 } catch (Exception $e) { 
     echo 'Exception when calling ZenditApi->v1BalanceGet: ', $e->getMessage(), PHP_EOL; 
 } 
 ?>
 use Data::Dumper; 
 use WWW::SwaggerClient::Configuration; 
 use WWW::SwaggerClient::ZenditApi; 
 
 # Configure API key authorization: ApiKey 
 $WWW::SwaggerClient::Configuration::api_key->{'Authorization'} = 'YOUR_API_KEY'; 
 # uncomment below to setup prefix (e.g. Bearer) for API key, if needed 
 #$WWW::SwaggerClient::Configuration::api_key_prefix->{'Authorization'} = "Bearer"; 
 
 my $api_instance = WWW::SwaggerClient::ZenditApi->new(); 
 
 eval { 
     my $result = $api_instance->v1BalanceGet(); 
     print Dumper($result); 
 }; 
 if ($@) { 
     warn "Exception when calling ZenditApi->v1BalanceGet: $@\n"; 
 }
 from __future__ import print_statement 
 import time 
 import swagger_client 
 from swagger_client.rest import ApiException 
 from pprint import pprint 
 
 # Configure API key authorization: ApiKey 
 swagger_client.configuration.api_key['Authorization'] = 'YOUR_API_KEY' 
 # Uncomment below to setup prefix (e.g. Bearer) for API key, if needed 
 # swagger_client.configuration.api_key_prefix['Authorization'] = 'Bearer' 
 
 # create an instance of the API class 
 api_instance = swagger_client.ZenditApi() 
 
 try: 
     # Get list of transactions 
     api_response = api_instance.v1_balance_get() 
     pprint(api_response) 
 except ApiException as e: 
     print("Exception when calling ZenditApi->v1BalanceGet: %s\n" % e)

Parameters

None

Responses

Type: application/json

Status OK

{ 
     availableBalance: integer 
                       Available balance in the wallet 
     currency: string 
               3 letter ISO code of the currency in the wallet 
 }

Bad Request

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Unauthorized: API Token Missing or Unrecognized

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Forbidden: Request from unrecognized IP

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Internal Server Error

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

International Mobile Top Up and International Mobile Bundles

GET
/topups/offers
Get the catalog of International Mobile Top Up and Mobile Bundle offers

Usage and SDK Samples

curl -X GET\ -H "Authorization: [[apiKey]]"\ -H "Accept: application/json"\ "https://api.zendit.io/v1//topups/offers?brand=&country=&_limit=&_offset=&subType="
 import io.swagger.client.*; 
 import io.swagger.client.auth.*; 
 import io.swagger.client.model.*; 
 import io.swagger.client.api.ZenditApi; 
 
 import java.io.File; 
 import java.util.*; 
 
 public class ZenditApiExample { 
     
     public static void main(String[] args) { 
         ApiClient defaultClient = Configuration.getDefaultApiClient(); 
         
       // Configure API key authorization: ApiKey 
         ApiKeyAuth ApiKey = (ApiKeyAuth) defaultClient.getAuthentication("ApiKey"); 
         ApiKey.setApiKey("YOUR API KEY"); 
         // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) 
         //ApiKey.setApiKeyPrefix("Token"); 
         
         ZenditApi apiInstance = new ZenditApi(); 
         Integer limit = 56; // Integer |  
         Integer offset = 56; // Integer | 
         String brand = brand_example; // String | 
         String country = country_example; // String | 
         String subType = subType_example; // String | 
         try { 
             dto.TopupOffersResponse result = apiInstance.v1TopupsOffersGet(limit, offset, brand, country, subType); 
             System.out.println(result); 
         } catch (ApiException e) { 
             System.err.println("Exception when calling ZenditApi#v1TopupsOffersGet"); 
             e.printStackTrace(); 
         } 
     } 
 }
 Configuration *apiConfig = [Configuration sharedConfig]; 
 // Configure API key authorization: (authentication scheme: ApiKey) 
 [apiConfig setApiKey:@"YOUR_API_KEY" forApiKeyIdentifier:@"Authorization"]; 
 // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed 
 //[apiConfig setApiKeyPrefix:@"Bearer" forApiKeyIdentifier:@"Authorization"]; 
 String *brand = brand_example; // Filter for a specific brand (optional) 
 String *country = country_example; // Filter for a specific country (2 letter ISO code) (optional) 
 Integer *limit = 56; // Limit of the number of items to return for pagination (optional) (default to 1000) 
 Integer *offset = 56; // Number of items to skip in returned results for pagination (optional) (default to 0) 
 String *subType = subType_example; // Subtype of offers to return (Mobile Top Up, Mobile Data, Mobile Bundle) (optional) 
 
 ZenditMobileTopupAndBundlesApi *apiInstance = [[ZenditMobileTopupAndBundlesApi alloc] init]; 
 
 // Get the list of topup offers for airtime, data and bundles 
 [apiInstance topupsOffersGetWith:brand 
     country:country 
     limit:limit 
     offset:offset 
     subType:subType 
               completionHandler: ^(TopupOffersResponse output, NSError* error) { 
                             if (output) { 
                                 NSLog(@"%@", output); 
                             } 
                             if (error) { 
                                 NSLog(@"Error: %@", error); 
                             } 
                         }];
 var ZenditGatewayApi = require('zendit_gateway_api'); 
 var defaultClient = ZenditGatewayApi.ApiClient.instance; 
 
 // Configure API key authorization: ApiKey 
 var ApiKey = defaultClient.authentications['ApiKey']; 
 ApiKey.apiKey = "YOUR API KEY" 
 // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) 
 //ApiKey.apiKeyPrefix['Authorization'] = "Token" 
 
 var api = new ZenditGatewayApi.ZenditApi() 
 
 var opts = {  
   'limit': 56, // {Integer}  
   'offset': 56, // {Integer}  
   'brand': brand_example, // {String}  
   'country': country_example, // {String}  
   'subType': subType_example // {String}  
 }; 
 
 var callback = function(error, data, response) { 
   if (error) { 
     console.error(error); 
   } else { 
     console.log('API called successfully. Returned data: ' + data); 
   } 
 }; 
 api.v1TopupsOffersGet(opts, callback);
 using System; 
 using System.Diagnostics; 
 using IO.Swagger.Api; 
 using IO.Swagger.Client; 
 using IO.Swagger.Model; 
 
 namespace Example 
 { 
     public class v1TopupsOffersGetExample 
     { 
         public void main() 
         { 
             
             // Configure API key authorization: ApiKey 
             Configuration.Default.ApiKey.Add("Authorization", "YOUR_API_KEY"); 
             // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed 
             // Configuration.Default.ApiKeyPrefix.Add("Authorization", "Beare"); 
             
             var apiInstance = new ZenditApi(); 
             var limit = 56;  // Integer |  (optional)  
             var offset = 56;  // Integer |  (optional)  
             var brand = brand_example;  // String |  (optional)  
             var country = country_example;  // String |  (optional)  
             var subType = subType_example;  // String |  (optional)  
             
             try 
             { 
                 // Get list of topup offers 
                 dto.TopupOffersResponse result = apiInstance.v1TopupsOffersGet(limit, offset, brand, country, subType); 
                 Debug.WriteLine(result); 
             } 
             catch (Exception e) 
             { 
                 Debug.Print("Exception when calling ZenditApi.v1TopupsOffersGet: " + e.Message ); 
             } 
         } 
     } 
 }
 <?php 
 require_once(__DIR__ . '/vendor/autoload.php'); 
 
 // Configure API key authorization: ApiKey 
 SwaggerClientConfiguration::getDefaultConfiguration()->setApiKey('Authorization', 'YOUR_API_KEY'); 
 // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed 
 // SwaggerClientConfiguration::getDefaultConfiguration()->setApiKeyPrefix('Authorization', 'Bearer'); 
 
 $api_instance = new SwaggerClientApiZenditApi(); 
 $limit = 56; // Integer |  
 $offset = 56; // Integer |  
 $brand = brand_example; // String |  
 $country = country_example; // String |  
 $subType = subType_example; // String |  
 
 try { 
     $result = $api_instance->v1TopupsOffersGet($limit, $offset, $brand, $country, $subType); 
     print_r($result); 
 } catch (Exception $e) { 
     echo 'Exception when calling ZenditApi->v1TopupsOffersGet: ', $e->getMessage(), PHP_EOL; 
 } 
 ?>
 use Data::Dumper; 
 use WWW::SwaggerClient::Configuration; 
 use WWW::SwaggerClient::ZenditApi; 
 
 # Configure API key authorization: ApiKey 
 $WWW::SwaggerClient::Configuration::api_key->{'Authorization'} = 'YOUR_API_KEY'; 
 # uncomment below to setup prefix (e.g. Bearer) for API key, if needed 
 #$WWW::SwaggerClient::Configuration::api_key_prefix->{'Authorization'} = "Bearer"; 
 
 my $api_instance = WWW::SwaggerClient::ZenditApi->new(); 
 my $limit = 56; # Integer |  
 my $offset = 56; # Integer |  
 my $brand = brand_example; # String |  
 my $country = country_example; # String |  
 my $subType = subType_example; # String |  
 
 eval {  
     my $result = $api_instance->v1TopupsOffersGet(limit => $limit, offset => $offset, brand => $brand, country => $country, subType => $subType); 
     print Dumper($result); 
 }; 
 if ($@) { 
     warn "Exception when calling ZenditApi->v1TopupsOffersGet: $@
"; 
 }
 from __future__ import print_statement 
 import time 
 import swagger_client 
 from swagger_client.rest import ApiException 
 from pprint import pprint 
 
 # Configure API key authorization: ApiKey 
 swagger_client.configuration.api_key['Authorization'] = 'YOUR_API_KEY' 
 # Uncomment below to setup prefix (e.g. Bearer) for API key, if needed 
 # swagger_client.configuration.api_key_prefix['Authorization'] = 'Bearer' 
 
 # create an instance of the API class 
 api_instance = swagger_client.ZenditApi() 
 limit = 56 # Integer |  (optional) 
 offset = 56 # Integer |  (optional) 
 brand = brand_example # String |  (optional) 
 country = country_example # String |  (optional) 
 subType = subType_example # String |  (optional) 
 
 try:  
     # Get list of topup offers 
     api_response = api_instance.v1_topups_offers_get(limit=limit, offset=offset, brand=brand, country=country, subType=subType) 
     pprint(api_response) 
 except ApiException as e: 
     print("Exception when calling ZenditApi->v1TopupsOffersGet: %s
" % e)

Parameters

Query Parameters

NameDescription
_limitInteger
Limit of the number of items to return for pagination
Default 50
Minimum 1
_offsetInteger
Number of items to skip in returned results for pagination
Default 0
Minimum 0
brandString
Filter for a specific Brand
countryString
Filter for a specific Country (2 letter ISO code)
subTypeString
Subtype of offers to return
Values:
ValueDescriptionMobile Top UpAirtime Top Up OffersMobile DataData Top Up OffersMobile BundleMobile Bundle Offers

Response

Status OK

 { 
     limit:	integer 
         Numeric value to limit number of items returned for paginating the list 
     list: [ 
             {
                 brand:	string
                     Brand of product (e.g. TIgo, AgenciasWay) 
                 cost:	{
                             Cost information for this offer 
                             Required: currency
                             currency:	string
                                 3 letter ISO code for the currency of the cost 
                             fixed:	integer
                                  Minor currency value for cost when offer is of fixed price type 
                             fx:	number
                                 Numeric value for cost FX when the offer is of range price type 
                             max: integer
                                 Minor currency value for the maximum offer cost when offer is of range price type 
                             min: integer
                                 Minor currency value for the minimum offer cost when offer is of range price type 
                         }
                 country: string
                          Destination country for offer 
                 createdAt: string
                          Date offer was created 
                 enabled: boolean
                          Flag to indicate if offer was enabled for purchase 
                 notes: string
                          Notes about the offer (data amounts, bundle description) 
                 offerId: string
                          Catalog ID for the offer 
                 price: {
                             Required: currency
                             currency: string
                                 3 letter ISO code for the currency of the cost 
                             fixed: integer
                                 Minor currency value for cost when offer is of fixed price type 
                             fx: number
                                 Numeric value for cost FX when the offer is of range price type 
                             margin: number
                                 Margin on offer based on price set for customer vs. cost 
                             max: integer
                                 Minor currency value for the maximum offer cost when offer is of range price type 
                             min: integer
                                 Minor currency value for the minimum offer cost when offer is of range price type 
                             suggestedFixed: integer
                                 zendit Suggested price when the offer is of fixed price type
                             suggestedFx: number
                                 zendit Suggested price FX when the offer is of range price type
                         }
                 priceType: string 
                         The pricing type for the offer (Fixed or Range) - when "Fixed" fixed values in cost and price 
                         will apply. when "Range" min, max and FX values in cost and price will apply 
                 send:	{
                         Value sent in destination currency 
                             currency: string
                                 3 letter ISO code for the destination currency 
                             fixed: integer
                                 Value to be sent in minor currency when the offer is of fixed price type 
                             fx: number 
                                 FX applied in destination when the offer is of range price type 
                             max: integer
                                 Maximum value delivered by offer when offer is of range price type 
                             min: integer
                                 Minimum value delivered by offer when offer is of range price type 
                         }
                 shortNotes:	string
                         Notes about the offer (data amounts, bundle description) in shorter form 
                 subTypes: [
                             string 
                             Array of subtypes that apply to the offier (Mobile Top Up, Mobile Data, Mobile Bundle) 
                           ]
                 productType: string
                       Product type for offer: TOPUP
                 updatedAt: string 
                       Latest update  date/time for the offer 
             }
         ]
     offset:	integer
         offset from beginning of list when used for pagination 
     total: integer
         total number of offers meeting search criteria 
 }

Bad Request

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Unauthorized: API Token Missing or Unrecognized

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurrred on 
 }

Forbidden: Request from unrecognized IP

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Internal Server Error

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurrred on 
 }

GET
/topups/offers/{offerId}
Get a specific International Mobile Top Up or Mobile Bundle catalog offer

Usage and SDK Samples

curl -X GET -H "Authorization: [[apiKey]]" "https://api.zendit.io/v1/topups/offers/{offerId}"
 import io.swagger.client.*; 
 import io.swagger.client.auth.*; 
 import io.swagger.client.model.*; 
 import io.swagger.client.api.ZenditApi; 
 
 import java.io.File; 
 import java.util.*; 
 
 public class ZenditApiExample { 
     
     public static void main(String[] args) { 
         ApiClient defaultClient = Configuration.getDefaultApiClient(); 
         
         // Configure API key authorization: ApiKey 
         ApiKeyAuth ApiKey = (ApiKeyAuth) defaultClient.getAuthentication("ApiKey"); 
         ApiKey.setApiKey("YOUR API KEY"); 
         // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) 
         //ApiKey.setApiKeyPrefix("Token"); 
         
         ZenditApi apiInstance = new ZenditApi(); 
         String transactionId = transactionId_example; // String | transaction id 
         try { 
             dto.TopupPurchase result = apiInstance.v1TopupsPurchasesTransactionIdGet(transactionId); 
             System.out.println(result); 
         } catch (ApiException e) { 
             System.err.println("Exception when calling ZenditApi#v1TopupsPurchasesTransactionIdGet"); 
             e.printStackTrace(); 
         } 
     } 
 }
 Configuration *apiConfig = [Configuration sharedConfig]; 
 // Configure API key authorization: (authentication scheme: ApiKey) 
 [apiConfig setApiKey:@"YOUR_API_KEY" forApiKeyIdentifier:@"Authorization"]; 
 // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed 
 //[apiConfig setApiKeyPrefix:@"Bearer" forApiKeyIdentifier:@"Authorization"]; 
 String *offerID = offerID_example; // Offer ID to retrieve 
 
 ZenditMobileTopupAndBundlesApi *apiInstance = [[ZenditMobileTopupAndBundlesApi alloc] init]; 
 
 // Get a specific offer by the offer ID 
 [apiInstance topupsOffersOfferIDGetWith:offerID 
               completionHandler: ^(TopupOffer output, NSError* error) { 
                             if (output) { 
                                 NSLog(@"%@", output); 
                             } 
                             if (error) { 
                                 NSLog(@"Error: %@", error); 
                             } 
                         }];
 var ZenditGatewayApi = require('zendit_gateway_api'); 
 var defaultClient = ZenditGatewayApi.ApiClient.instance; 
 
 // Configure API key authorization: ApiKey 
 var ApiKey = defaultClient.authentications['ApiKey']; 
 ApiKey.apiKey = "YOUR API KEY" 
 // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) 
 //ApiKey.apiKeyPrefix['Authorization'] = "Token" 
 
 var api = new ZenditGatewayApi.ZenditApi() 
 
 var offerId = offerId_example; // {String} Get topup by id 
 
 
 var callback = function(error, data, response) { 
   if (error) { 
     console.error(error); 
   } else { 
     console.log('API called successfully. Returned data: ' + data); 
   } 
 }; 
 api.v1TopupsOffersOfferIdGet(offerId, callback);
 using System; 
 using System.Diagnostics; 
 using IO.Swagger.Api; 
 using IO.Swagger.Client; 
 using IO.Swagger.Model; 
 
 namespace Example 
 { 
     public class v1TopupsOffersOfferIdGetExample 
     { 
         public void main() 
         { 
             
             // Configure API key authorization: ApiKey 
             Configuration.Default.ApiKey.Add("Authorization", "YOUR_API_KEY"); 
             // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed 
             // Configuration.Default.ApiKeyPrefix.Add("Authorization", "Bearer"); 
             
             var apiInstance = new ZenditApi(); 
             var offerId = offerId_example;  // String | Get topup by id 
             
             try 
             { 
                 // Get a topup offer by the offer ID 
                 dto.TopupOffer result = apiInstance.v1TopupsOffersOfferIdGet(offerId); 
                 Debug.WriteLine(result); 
             } 
             catch (Exception e) 
             { 
                 Debug.Print("Exception when calling ZenditApi.v1TopupsOffersOfferIdGet: " + e.Message ); 
             } 
         } 
     } 
 }
 <?php 
 require_once(__DIR__ . '/vendor/autoload.php'); 
 
 // Configure API key authorization: ApiKey 
 SwaggerClientConfiguration::getDefaultConfiguration()->setApiKey('Authorization', 'YOUR_API_KEY'); 
 // Uncomment below to setup prefix (e.g. Bearer) for API key, if needed 
 // SwaggerClientConfiguration::getDefaultConfiguration()->setApiKeyPrefix('Authorization', 'Bearer'); 
 
 $api_instance = new SwaggerClientApiZenditApi(); 
 $offerId = offerId_example; // String | Get topup by id 
 
 try { 
     $result = $api_instance->v1TopupsOffersOfferIdGet($offerId); 
     print_r($result); 
 } catch (Exception $e) { 
     echo 'Exception when calling ZenditApi->v1TopupsOffersOfferIdGet: ', $e->getMessage(), PHP_EOL; 
 } 
 ?>
 use Data::Dumper; 
 use WWW::SwaggerClient::Configuration; 
 use WWW::SwaggerClient::ZenditApi; 
 
 # Configure API key authorization: ApiKey 
 $WWW::SwaggerClient::Configuration::api_key->{'Authorization'} = 'YOUR_API_KEY'; 
 # uncomment below to setup prefix (e.g. Bearer) for API key, if needed 
 #$WWW::SwaggerClient::Configuration::api_key_prefix->{'Authorization'} = "Bearer"; 
 
 my $api_instance = WWW::SwaggerClient::ZenditApi->new(); 
 my $offerId = offerId_example; # String | Get topup by id 
 
 eval {  
     my $result = $api_instance->v1TopupsOffersOfferIdGet(offerId => $offerId); 
     print Dumper($result); 
 }; 
 if ($@) { 
     warn "Exception when calling ZenditApi->v1TopupsOffersOfferIdGet: $@
"; 
 }
 from __future__ import print_statement 
 import time 
 import swagger_client 
 from swagger_client.rest import ApiException 
 from pprint import pprint 
 
 # Configure API key authorization: ApiKey 
 swagger_client.configuration.api_key['Authorization'] = 'YOUR_API_KEY' 
 # Uncomment below to setup prefix (e.g. Bearer) for API key, if needed 
 # swagger_client.configuration.api_key_prefix['Authorization'] = 'Bearer' 
 
 # create an instance of the API class 
 api_instance = swagger_client.ZenditApi() 
 offerId = offerId_example # String | Get topup by id 
 
 try:  
     # Get a topup offer by the offer ID 
     api_response = api_instance.v1_topups_offers_offer_id_get(offerId) 
     pprint(api_response) 
 except ApiException as e: 
     print("Exception when calling ZenditApi->v1TopupsOffersOfferIdGet: %s
" % e)

Parameters

Query Parameters

NameDescription
offerIdString
Offer ID to retreive from the catalog
Required

Responses

Status OK

 { 
     brand:	string
         Brand of product (e.g. TIgo, AgenciasWay) 
     cost:	{
                 Cost information for this offer 
                 Required: currency
                 currency:	string
                     3 letter ISO code for the currency of the cost 
                 fixed:	integer
                         Minor currency value for cost when offer is of fixed price type 
                 fx:	number
                     Numeric value for cost FX when the offer is of range price type 
                 max: integer
                     Minor currency value for the maximum offer cost when offer is of range price type 
                 min: integer
                     Minor currency value for the minimum offer cost when offer is of range price type 
             }
     country: string
                 Destination country for offer 
     createdAt: string
                 Date offer was created 
     enabled: boolean
                 Flag to indicate if offer was enabled for purchase 
     notes: string
                 Notes about the offer (data amounts, bundle description) 
     offerId: string
                 Catalog ID for the offer 
     price: {
                 Required: currency
                 currency: string
                     3 letter ISO code for the currency of the cost 
                 fixed: integer
                     Minor currency value for cost when offer is of fixed price type 
                 fx: number
                     Numeric value for cost FX when the offer is of range price type 
                 margin: number
                     Margin on offer based on price set for customer vs. cost 
                 max: integer
                     Minor currency value for the maximum offer cost when offer is of range price type 
                 min: integer
                     Minor currency value for the minimum offer cost when offer is of range price type 
                 suggestedFixed: integer
                     zendit Suggested price when the offer is of fixed price type
                 suggestedFx: number
                     zendit Suggested price FX when the offer is of range price type
             }
     priceType: string 
             The pricing type for the offer (Fixed or Range) - when "Fixed" fixed values in cost and price 
             will apply. when "Range" min, max and FX values in cost and price will apply 
     send:	{
             Value sent in destination currency 
                 currency: string
                     3 letter ISO code for the destination currency 
                 fixed: integer
                     Value to be sent in minor currency when the offer is of fixed price type 
                 fx: number 
                     FX applied in destination when the offer is of range price type 
                 max: integer
                     Maximum value delivered by offer when offer is of range price type 
                 min: integer
                     Minimum value delivered by offer when offer is of range price type 
             }
     shortNotes:	string
             Notes about the offer (data amounts, bundle description) in shorter form 
     subTypes: [
                 string 
                 Array of subtypes that apply to the offier (Mobile Top Up, Mobile Data, Mobile Bundle) 
                 ]
     productType: string
             Product type for offer: TOPUP
     updatedAt: string 
             Latest update  date/time for the offer 
 }

Bad Request

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Unauthorized: API Token Missing or Unrecognized

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Forbidden: Request from unrecognized IP

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Internal Server Error

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurrred on 
 }

GET
/topups/purchases
Get a list of International Mobile Top Up or Mobile Bundle purchases

Usage and SDK Samples

Parameters

Query Parameters

NameDescription
_limitInteger
Limit of the number of items to return for pagination
Default 50
Minimum 1
_offsetInteger
Number of items to skip in returned results for pagination
Default 0
Minimum 0
createdAtString
Filter for searching by date, see the date search information in the overview section
statusString
Filter for searching the status of a transaction)
ValueDescriptionPENDINGTransaction received and waiting for processingAUTHORIZEDTransaction has authorized against the walletIN_PROGRESSTransaction is processingDONETransaction has completed successfullyFAILEDTransaction has failed, check transaction error and transaction log for reason

Responses

Status OK

 { 
     status:	string 
         Status of transaction acceptance 
     transactionId:	string 
         ID of transaction in post data sent to zendit 
 }

Bad Request

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Unauthorized: API Token Missing or Unrecognized

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Forbidden: Request from unrecognized IP

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Internal Server Error

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurrred on 
 }

POST
/topups/purchases
Purchase an International Mobile Top Up or Mobile Bundle offer

Usage and SDK Samples

Parameters

Body Parameters

NameDescription
data{ offerId: string Offer ID from catalog to purchase Required recipientPhoneNumber: string Phone number of recipient for offer Required sender: { Optional information from the sender country: string Country of sender phoneNumber: string Phone number of sender } transactionId: string Transaction ID to use in tracking this transaction Required value: { Value information required when sending a range offer type: string Type of value to use (Price, Cost, Zend) value: integer Value to send in minor currency } }

Responses

Status OK

{ 
     brand: string 
         Brand of product purchased (e.g. TIgo, AgenciasWay) 
     cost: integer 
         Cost of product purchased in minor currency 
     costCurrency: string 
         3 letter ISO code for the cost currency 
     country: string 
         Destination countr for transaction 
     createdAt: string 
         Date/time transaction was created 
     error: { 
                 Information about errros if the transaction failed 
                 code: string 
                     Error code returned for failure 
                 description: string 
                     Description of error reason for failure 
                 message: string 
                     Error message from system for failure 
             } 
     log: [ 
             Transaction activity log 
             { 
                 dateTime: string  
                     Date/time of log entry 
                 status: string 
                     Transaction status 
                 statusMessage: string 
                     Status message 
             } 
         ] 
     notes: string 
         Notes for the offer purchased 
     offerId: string 
         Catalog ID for offer purchased 
     price: integer 
         Customer price for the offer purchased in minor currency 
     priceCurrency: string 
         3 letter ISO Code for the price currency 
     priceType: string 
         Type of price for offer (Fixed or Range) 
     productType: string 
         Type of product purchased 
     recipientPhoneNumber: string 
         Phone number of recipient for transaction 
     send: integer 
         Amount sent to the recipient in minor currency 
     sendCurrency: string 
         3 letter ISO code for the currency of the recipient 
     sender:	{ 
                 Optional sender information collected at point of sale 
                 country: string 
                     Country of sender 
                 phoneNumber: string 
                     Phone number for the sender 
             } 
     shortNotes: string 
         Notes for the offer in short form 
     status: string 
         Status of the transaction 
     subTypes: [ 
         Subtypes for the product type (Mobile Bundle, Mobile Top Up, Mobile Data) 
         string 
     ] 
     transactionId: string 
         Transaction ID sent for the purchase 
     updatedAt: string 
         Last update to the status of the transaction 
     value: { 
         type: string 
         value: integer 
     } 
 }

Bad Request

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Unauthorized: API Token Missing or Unrecognized

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Forbidden: Request from unrecognized IP

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Internal Server Error

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurrred on 
 }

GET
/topups/purchases/{transactionId}
Get an International Mobile Top Up or Mobile Bundle purchases transaction by Id

Usage and SDK Samples

Parameters

Query Parameters

NameDescription
transactionIdString
Transaction Id for Transaction
Required

Responses

Status OK

 { 
     amount: integer 
         value of transaction 
     createdAt: string 
         data/time transaction was started 
     currency: string 
         3 letter ISO code for currency of amount 
         error: { 
             Information about errros if the transaction failed 
             code: string 
                 Error code returned for failure 
             description: string 
                 Description of error reason for failure 
             message: string 
                 Error message from system for failure 
         } 
     log: [ 
         Transaction activity log 
             { 
                 dateTime: string  
                     Date/time of log entry 
                 status: string 
                     Transaction status 
                 statusMessage: string 
                     Status message 
             } 
         ] 
     productType: string 
         Type of product for transaction (TOPUP, VOUCHER or RECHARGE) 
     status:	string 
         Status of transaction 
     transactionId: string 
         Client supplied transaction ID 
     type: string 
         Transaction type (debit or credit) 
     updatedAt: string 
         Last time transaction was updated 
 }

Bad Request

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Unauthorized: API Token Missing or Unrecognized

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Forbidden: Request from unrecognized IP

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Internal Server Error

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurrred on 
 }

Transaction Status Information

GET
/transactions
Get a list of transactions of all types with the common transaction model

Usage and SDK Samples

Parameters

Query Parameters

NameDescription
_limitInteger
Limit of the number of items to return for pagination
Default 50
Minimum 1
_offsetInteger
Number of items to skip in returned results for pagination
Default 0
Minimum 0
createdAtString
Filter for searching by date, see the date search information in the overview section
productTypeString
Filter for searching the status of a transaction)
ValueDescriptionTOPUPInternational Mobile Top Up, International Mobile Data or International Mobile BundleVOUCHERDigital Gift Card or Utility PaymentRECHARGE_SANDBOXRecharge in test mode walletRECHARGE_WITH_CREDIT_CARDRecharge in production mode wallet
statusString
Filter for searching the status of a transaction)
ValueDescriptionPENDINGTransaction received and waiting for processingAUTHORIZEDTransaction has authorized against the walletIN_PROGRESSTransaction is processingDONETransaction has completed successfullyFAILEDTransaction has failed, check transaction error and transaction log for reason
typeString
Filter for searching the status of a transaction)
ValueDescriptionCREDITTransactions that add money to wallet (RECHARGE)DEBITTransactions that deduct money from wallet (TOPUP or VOUCHER)

Responses

Status OK

 { 
     limit: integer 
         Numeric value to limit number of items returned for paginating the list 
     list: [ 
             { 
                 amount: integer 
                     value of transaction 
                 createdAt: string 
                     data/time transaction was started 
                 currency: string 
                     3 letter ISO code for currency of amount 
                     error: { 
                         Information about errros if the transaction failed 
                         code: string 
                             Error code returned for failure 
                         description: string 
                             Description of error reason for failure 
                         message: string 
                             Error message from system for failure 
                     } 
                 log: [ 
                     Transaction activity log 
                         { 
                             dateTime: string  
                                 Date/time of log entry 
                             status: string 
                                 Transaction status 
                             statusMessage: string 
                                 Status message 
                         } 
                     ] 
                 productType: string 
                     Type of product for transaction (TOPUP, VOUCHER or RECHARGE) 
                 status:	string 
                     Status of transaction 
                 transactionId: string 
                     Client supplied transaction ID 
                 type: string 
                     Transaction type (debit or credit) 
                 updatedAt: string 
                     Last time transaction was updated 
             } 
         ] 
     offset: integer 
         offset from beginning of list when used for pagination 
     total: integer 
         total number of transactions meeting search criteria 
 }

Bad Request

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Unauthorized: API Token Missing or Unrecognized

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Forbidden: Request from unrecognized IP

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Internal Server Error

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurrred on 
 }

GET
/transactions/{transactionId}
Get a specitic transactions of any type with the common transaction model

Usage and SDK Samples

Parameters

Query Parameters

NameDescription
transactionIdString
Transaction Id for Transaction
Required

Responses

Status OK

 { 
     amount: integer 
         value of transaction 
     createdAt: string 
         data/time transaction was started 
     currency: string 
         3 letter ISO code for currency of amount 
         error: { 
             Information about errros if the transaction failed 
             code: string 
                 Error code returned for failure 
             description: string 
                 Description of error reason for failure 
             message: string 
                 Error message from system for failure 
         } 
     log: [ 
         Transaction activity log 
             { 
                 dateTime: string  
                     Date/time of log entry 
                 status: string 
                     Transaction status 
                 statusMessage: string 
                     Status message 
             } 
         ] 
     productType: string 
         Type of product for transaction (TOPUP, VOUCHER or RECHARGE) 
     status:	string 
         Status of transaction 
     transactionId: string 
         Client supplied transaction ID 
     type: string 
         Transaction type (debit or credit) 
     updatedAt: string 
         Last time transaction was updated 
 }

Bad Request

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Unauthorized: API Token Missing or Unrecognized

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Forbidden: Request from unrecognized IP

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Internal Server Error

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurrred on 
 }

Digital Gift Cards and Utility Payments

GET
/vouchers/offers
Get the catalog of Digital Gift Card and Utility Payment offers

Usage and SDK Samples

Parameters

Query Parameters

NameDescription
_limitInteger
Limit of the number of items to return for pagination
Default 50
Minimum 1
_offsetInteger
Number of items to skip in returned results for pagination
Default 0
Minimum 0
brandString
Filter for a specific Brand
countryString
Filter for a specific Country (2 letter ISO code)
subTypeString
Subtype of offers to return
Values:
ValueDescriptionVoucher SubtypesSubtypes vary for Digital Gift Cards and Utility Payments, check the catalog for subtypes

Responses

Status OK

{ 
     limit:	integer 
         Numeric value to limit number of items returned for paginating the list 
     list: [ 
             {
                 brand:	string
                     Brand of product (e.g. TIgo, AgenciasWay) 
                 cost:	{
                             Cost information for this offer 
                             Required: currency
                             currency:	string
                                 3 letter ISO code for the currency of the cost 
                             fixed:	integer
                                  Minor currency value for cost when offer is of fixed price type 
                             fx:	number
                                 Numeric value for cost FX when the offer is of range price type 
                             max: integer
                                 Minor currency value for the maximum offer cost when offer is of range price type 
                             min: integer
                                 Minor currency value for the minimum offer cost when offer is of range price type 
                         }
                 country: string
                          Destination country for offer 
                 createdAt: string
                          Date offer was created 
                 enabled: boolean
                          Flag to indicate if offer was enabled for purchase 
                 notes: string
                          Notes about the offer (data amounts, bundle description) 
                 offerId: string
                          Catalog ID for the offer 
                 price: {
                             Required: currency
                             currency: string
                                 3 letter ISO code for the currency of the cost 
                             fixed: integer
                                 Minor currency value for cost when offer is of fixed price type 
                             fx: number
                                 Numeric value for cost FX when the offer is of range price type 
                             margin: number
                                 Margin on offer based on price set for customer vs. cost 
                             max: integer
                                 Minor currency value for the maximum offer cost when offer is of range price type 
                             min: integer
                                 Minor currency value for the minimum offer cost when offer is of range price type 
                             suggestedFixed: integer
                                 zendit Suggested price when the offer is of fixed price type
                             suggestedFx: number
                                 zendit Suggested price FX when the offer is of range price type
                         }
                 priceType: string 
                         The pricing type for the offer (Fixed or Range) - when "Fixed" fixed values in cost and price 
                         will apply. when "Range" min, max and FX values in cost and price will apply 
                 productType: string 
                         Product type for offer: Voucher 
                 requiredFields:	[ 
                                     Array of required fields for voucher 
                                     string 
                                 ] 
                 send:	{
                             Value sent in destination currency 
                             currency: string
                                 3 letter ISO code for the destination currency 
                             fixed: integer
                                 Value to be sent in minor currency when the offer is of fixed price type 
                             fx: number 
                                 FX applied in destination when the offer is of range price type 
                             max: integer
                                 Maximum value delivered by offer when offer is of range price type 
                             min: integer
                                 Minimum value delivered by offer when offer is of range price type 
                         }
                 shortNotes:	string
                         Notes about the offer (data amounts, bundle description) in shorter form 
                 subTypes: [
                             string 
                             Array of subtypes that apply to the offier (Mobile Top Up, Mobile Data, Mobile Bundle) 
                           ]
                 updatedAt: string 
                       Latest update  date/time for the offer 
             }
         ]
     offset:	integer
         offset from beginning of list when used for pagination 
     total: integer
         total number of offers meeting search criteria 
 }

Bad Request

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Unauthorized: API Token Missing or Unrecognized

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Forbidden: Request from unrecognized IP

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Internal Server Error

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurrred on 
 }

GET
/vouchers/offers/{offerId}
Get a specific Digital Gift Card or Utilty Payment catalog offer

Usage and SDK Samples

Parameters

Query Parameters

NameDescription
offerIdString
Offer ID to retreive from the catalog
Required

Responses

Status OK

{
     brand:	string
         Brand of product (e.g. TIgo, AgenciasWay) 
     cost:	{
                 Cost information for this offer 
                 Required: currency
                 currency:	string
                     3 letter ISO code for the currency of the cost 
                 fixed:	integer
                      Minor currency value for cost when offer is of fixed price type 
                 fx:	number
                     Numeric value for cost FX when the offer is of range price type 
                 max: integer
                     Minor currency value for the maximum offer cost when offer is of range price type 
                 min: integer
                     Minor currency value for the minimum offer cost when offer is of range price type 
             }
     country: string
              Destination country for offer 
     createdAt: string
              Date offer was created 
     enabled: boolean
              Flag to indicate if offer was enabled for purchase 
     notes: string
              Notes about the offer (data amounts, bundle description) 
     offerId: string
              Catalog ID for the offer 
     price: {
                 Required: currency
                 currency: string
                     3 letter ISO code for the currency of the cost 
                 fixed: integer
                     Minor currency value for cost when offer is of fixed price type 
                 fx: number
                     Numeric value for cost FX when the offer is of range price type 
                 margin: number
                     Margin on offer based on price set for customer vs. cost 
                 max: integer
                     Minor currency value for the maximum offer cost when offer is of range price type 
                 min: integer
                     Minor currency value for the minimum offer cost when offer is of range price type 
                 suggestedFixed: integer
                     zendit Suggested price when the offer is of fixed price type
                 suggestedFx: number
                     zendit Suggested price FX when the offer is of range price type
             }
     priceType: string 
             The pricing type for the offer (Fixed or Range) - when "Fixed" fixed values in cost and price 
             will apply. when "Range" min, max and FX values in cost and price will apply 
     productType: string 
             Product type for offer: Voucher 
     requiredFields:	[ 
                         Array of required fields for voucher 
                         string 
                     ] 
     send:	{
                 Value sent in destination currency 
                 currency: string
                     3 letter ISO code for the destination currency 
                 fixed: integer
                     Value to be sent in minor currency when the offer is of fixed price type 
                 fx: number 
                     FX applied in destination when the offer is of range price type 
                 max: integer
                     Maximum value delivered by offer when offer is of range price type 
                 min: integer
                     Minimum value delivered by offer when offer is of range price type 
             }
     shortNotes:	string
             Notes about the offer (data amounts, bundle description) in shorter form 
     subTypes: [
                 string 
                 Array of subtypes that apply to the offier (Mobile Top Up, Mobile Data, Mobile Bundle) 
               ]
     updatedAt: string 
           Latest update  date/time for the offer 
 }

Bad Request

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Unauthorized: API Token Missing or Unrecognized

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Forbidden: Request from unrecognized IP

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Internal Server Error

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurrred on 
 }

GET
/vouchers/purchases
Get a list of Digital Gift Card and Utility Payment purchases

Usage and SDK Samples

Parameters

Query Parameters

NameDescription
_limitInteger
Limit of the number of items to return for pagination
Default 50
Minimum 1
_offsetInteger
Number of items to skip in returned results for pagination
Default 0
Minimum 0
createdAtString
Filter for searching by date, see the date search information in the overview section
statusString
Filter for searching the status of a transaction)
ValueDescriptionPENDINGTransaction received and waiting for processingAUTHORIZEDTransaction has authorized against the walletIN_PROGRESSTransaction is processingDONETransaction has completed successfullyFAILEDTransaction has failed, check transaction error and transaction log for reason

Responses

Status OK

{ 
     limit: integer 
         Numeric value to limit number of items returned for paginating the list 
     list: [ 
             { 
                 brand: string 
                     Brand of product purchased (e.g. TIgo, AgenciasWay) 
                 cost: integer 
                     Cost of product purchased in minor currency 
                 costCurrency: string 
                     3 letter ISO code for the cost currency 
                 country: string 
                     Destination countr for transaction 
                 createdAt: string 
                     Date/time transaction was created 
                 error: { 
                             Information about errros if the transaction failed 
                             code: string 
                                 Error code returned for failure 
                             description: string 
                                 Description of error reason for failure 
                             message: string 
                                 Error message from system for failure 
                         } 
                 fields [ 
                     Array of required fields and values sent for transaction 
                     { 
                         key: string 
                             Field name 
                         value: string 
                             Value for field 
                     } 
                 ] 
                 log: [ 
                         Transaction activity log 
                         { 
                             dateTime: string  
                                 Date/time of log entry 
                             status: string 
                                 Transaction status 
                             statusMessage: string 
                                 Status message 
                         } 
                     ] 
                 notes: string 
                     Notes for the offer purchased 
                 offerId: string 
                     Catalog ID for offer purchased 
                 price: integer 
                     Customer price for the offer purchased in minor currency 
                 priceCurrency: string 
                     3 letter ISO Code for the price currency 
                 priceType: string 
                     Type of price for offer (Fixed or Range) 
                 productType: string 
                     Type of product purchased 
                 receipt: { 
                             Receipt and instructions for redeeming the offer 
                             currency: string 
                                 ISO 3 letter code for currency for the receipt 
                             epin: string 
                                 Pin for reedeeming the offer 
                             expiresAt: string 
                                 Date the pin expires 
                             instructions: string 
                                 Instructions for redeeming the offer 
                             notes: string 
                                 Notes for the recipient of the offer 
                             recipientCustomerServiceNumber: string 
                                 Customer service number for the recipient to contact the issuer of the offer 
                             send: integer 
                                 Value of the offer 
                             senderCustomerServiceNumber: string 
                                 Customer service number for the sender to contact the issuer of the offer 
                             terms: string 
                                 Terms and conditions from the issuer of the offer 
                         } 
                 send: integer 
                     Amount sent to the recipient in minor currency 
                 sendCurrency: string 
                     3 letter ISO code for the currency of the recipient 
                 sender:	{ 
                             Optional sender information collected at point of sale 
                             country: string 
                                 Country of sender 
                             phoneNumber: string 
                                 Phone number for the sender 
                         } 
                 shortNotes: string 
                     Notes for the offer in short form 
                 status: string 
                     Status of the transaction 
                 subTypes: [ 
                     Subtypes for the product type (Digital Gift Card and Utility Payment categories) 
                     string 
                 ] 
                 transactionId: string 
                     Transaction ID sent for the purchase 
                 updatedAt: string 
                     Last update to the status of the transaction 
                 value: { 
                     type: string 
                     value: integer 
                 } 
             } 
         ] 
     offset:	integer 
         offset from beginning of list when used for pagination 
     total: integer 
         total number of offers meeting search criteria 
 }

Bad Request

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Unauthorized: API Token Missing or Unrecognized

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Forbidden: Request from unrecognized IP

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Internal Server Error

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurrred on 
 }

POST
/vouchers/purchases
Purchase a Digital Gift Card or Utility Payment offer

Usage and SDK Samples

Parameters

Body Parameters

NameDescription
data{ offerId: string Offer ID from catalog to purchase Required fields: [ Array of fields required to purchase the offer (list for offer provided by catalog) { key: string Field name for the field value: string Value for the field } ] transactionId: string Transaction ID to use in tracking this transaction Required value: { Value information required when sending a range offer type: string Type of value to use (Price, Cost, Zend) value: integer Value to send in minor currency } }

Responses

Status OK

{ 
     status:	string 
         Status of transaction acceptance 
     transactionId:	string 
         ID of transaction in post data sent to zendit 
 }

Bad Request

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Unauthorized: API Token Missing or Unrecognized

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Forbidden: Request from unrecognized IP

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Internal Server Error

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurrred on 
 }

Usage and SDK Samples

Parameters

Query Parameters

NameDescription
transactionIdString
Transaction Id for Transaction
Required

Responses

Status OK

{ 
     brand: string 
         Brand of product purchased (e.g. TIgo, AgenciasWay) 
     cost: integer 
         Cost of product purchased in minor currency 
     costCurrency: string 
         3 letter ISO code for the cost currency 
     country: string 
         Destination countr for transaction 
     createdAt: string 
         Date/time transaction was created 
     error: { 
                 Information about errros if the transaction failed 
                 code: string 
                     Error code returned for failure 
                 description: string 
                     Description of error reason for failure 
                 message: string 
                     Error message from system for failure 
             } 
     fields [ 
         Array of required fields and values sent for transaction 
         { 
             key: string 
                 Field name 
             value: string 
                 Value for field 
         } 
     ] 
     log: [ 
             Transaction activity log 
             { 
                 dateTime: string  
                     Date/time of log entry 
                 status: string 
                     Transaction status 
                 statusMessage: string 
                     Status message 
             } 
         ] 
     notes: string 
         Notes for the offer purchased 
     offerId: string 
         Catalog ID for offer purchased 
     price: integer 
         Customer price for the offer purchased in minor currency 
     priceCurrency: string 
         3 letter ISO Code for the price currency 
     priceType: string 
         Type of price for offer (Fixed or Range) 
     productType: string 
         Type of product purchased 
     receipt: { 
                 Receipt and instructions for redeeming the offer 
                 currency: string 
                     ISO 3 letter code for currency for the receipt 
                 epin: string 
                     Pin for reedeeming the offer 
                 expiresAt: string 
                     Date the pin expires 
                 instructions: string 
                     Instructions for redeeming the offer 
                 notes: string 
                     Notes for the recipient of the offer 
                 recipientCustomerServiceNumber: string 
                     Customer service number for the recipient to contact the issuer of the offer 
                 send: integer 
                     Value of the offer 
                 senderCustomerServiceNumber: string 
                     Customer service number for the sender to contact the issuer of the offer 
                 terms: string 
                     Terms and conditions from the issuer of the offer 
             } 
     send: integer 
         Amount sent to the recipient in minor currency 
     sendCurrency: string 
         3 letter ISO code for the currency of the recipient 
     sender:	{ 
                 Optional sender information collected at point of sale 
                 country: string 
                     Country of sender 
                 phoneNumber: string 
                     Phone number for the sender 
             } 
     shortNotes: string 
         Notes for the offer in short form 
     status: string 
         Status of the transaction 
     subTypes: [ 
         Subtypes for the product type (Digital Gift Card and Utility Payment categories) 
         string 
     ] 
     transactionId: string 
         Transaction ID sent for the purchase 
     updatedAt: string 
         Last update to the status of the transaction 
     value: { 
         type: string 
         value: integer 
     } 
 }

Bad Request

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Unauthorized: API Token Missing or Unrecognized

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Forbidden: Request from unrecognized IP

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurred on 
 }

Internal Server Error

 { 
     errorCode: string 
                Short error code for the error 
     message: string 
                Descriptive error message for the error 
     payload: { 
         Additional information for the error 
     } 
     txid: string 
         Transaction ID the error occurrred on 
 }