For Developers
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:
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.
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.
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.
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.
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.
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 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.
For a detailed list of possible error statuses, please see Error Message Guide
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.
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:
Format | Description | Example |
---|---|---|
No prefix | Search for an exact date/time | 2023-02-15T03:15:22Z will search for transactions that match February 15, 2023 at 3:15 and 22 seconds in UTC timezone |
lt | Search for a date/time that is earlier than the supplied value | lt2023-02-15T03:15:22Z will search for transactions that are before February 15, 2023 at 3:15 and 22 seconds in UTC timezone |
lte | Search for a date/time that is equal to the supplied value and earlier | lte2023-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 |
gt | Search for a date/time that is later than the supplied value | gt2023-02-15T03:15:22Z will search for transactions that are after February 15, 2023 at 3:15 and 22 seconds in UTC timezone |
gte | Search for a date/time that is equal to the supplied value and later | gt2023-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
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
/balance
Check your account balance
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)
None
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
}
GET/topups/offers
Get the catalog of International Mobile Top Up and Mobile Bundle offers
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)
Query Parameters
Name | Description |
---|---|
_limit | Integer Limit of the number of items to return for pagination Default 50 Minimum 1 |
_offset | Integer Number of items to skip in returned results for pagination Default 0 Minimum 0 |
brand | String Filter for a specific Brand |
country | String Filter for a specific Country (2 letter ISO code) |
subType | String Subtype of offers to return Values: ValueDescriptionMobile Top UpAirtime Top Up OffersMobile DataData Top Up OffersMobile BundleMobile Bundle Offers |
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
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)
Query Parameters
Name | Description |
---|---|
offerId | String Offer ID to retreive from the catalog Required |
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
Parameters
Query Parameters
Name | Description |
---|---|
_limit | Integer Limit of the number of items to return for pagination Default 50 Minimum 1 |
_offset | Integer Number of items to skip in returned results for pagination Default 0 Minimum 0 |
createdAt | String Filter for searching by date, see the date search information in the overview section |
status | String 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 |
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
Body Parameters
Name | Description |
---|---|
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 } } |
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
Query Parameters
Name | Description |
---|---|
transactionId | String Transaction Id for Transaction Required |
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
}
GET/transactions
Get a list of transactions of all types with the common transaction model
Parameters
Query Parameters
Name | Description |
---|---|
_limit | Integer Limit of the number of items to return for pagination Default 50 Minimum 1 |
_offset | Integer Number of items to skip in returned results for pagination Default 0 Minimum 0 |
createdAt | String Filter for searching by date, see the date search information in the overview section |
productType | String 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 |
status | String 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 |
type | String Filter for searching the status of a transaction) ValueDescriptionCREDITTransactions that add money to wallet (RECHARGE)DEBITTransactions that deduct money from wallet (TOPUP or VOUCHER) |
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
Parameters
Query Parameters
Name | Description |
---|---|
transactionId | String Transaction Id for Transaction Required |
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
}
GET/vouchers/offers
Get the catalog of Digital Gift Card and Utility Payment offers
Query Parameters
Name | Description |
---|---|
_limit | Integer Limit of the number of items to return for pagination Default 50 Minimum 1 |
_offset | Integer Number of items to skip in returned results for pagination Default 0 Minimum 0 |
brand | String Filter for a specific Brand |
country | String Filter for a specific Country (2 letter ISO code) |
subType | String Subtype of offers to return Values: ValueDescriptionVoucher SubtypesSubtypes vary for Digital Gift Cards and Utility Payments, check the catalog for subtypes |
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
Query Parameters
Name | Description |
---|---|
offerId | String Offer ID to retreive from the catalog Required |
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
Query Parameters
Name | Description |
---|---|
_limit | Integer Limit of the number of items to return for pagination Default 50 Minimum 1 |
_offset | Integer Number of items to skip in returned results for pagination Default 0 Minimum 0 |
createdAt | String Filter for searching by date, see the date search information in the overview section |
status | String 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 |
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
Body Parameters
Name | Description |
---|---|
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 } } |
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
}
Parameters
Query Parameters
Name | Description |
---|---|
transactionId | String Transaction Id for Transaction Required |
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
}