Redemptions
Fetch All Redemption Types
Returns the redemption types the API supports.
GET
/
collect
/
redemptions
/
types
List supported redemption types
curl --request GET \
--url https://api.momentpay.net/collect/redemptions/types \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.momentpay.net/collect/redemptions/types"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.momentpay.net/collect/redemptions/types', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.momentpay.net/collect/redemptions/types",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.momentpay.net/collect/redemptions/types"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.momentpay.net/collect/redemptions/types")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.momentpay.net/collect/redemptions/types")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"type": "vouchers.one_voucher",
"category": "vouchers",
"name": "1Voucher",
"description": "South African cash voucher redeemed with a PIN. Captured in a single confirm step.",
"logo": "https://cdn.momentpay.net/redemptions/one_voucher.svg",
"website": "https://www.1voucher.co.za",
"capabilities": {
"reserve": true,
"redeem": true,
"refund": false,
"lookup": false,
"change_voucher": "INLINE"
},
"required_fields": [
{
"name": "pin",
"type": "string",
"required": true,
"sensitive": true,
"description": "16 digit voucher PIN.",
"example": "1115684091419838"
}
]
},
{
"type": "vouchers.ott",
"category": "vouchers",
"name": "OTT",
"description": "One Time Token voucher redeemed with a PIN and the subscriber phone number.",
"logo": "https://cdn.momentpay.net/redemptions/ott.svg",
"website": "https://www.ott.co.za",
"capabilities": {
"reserve": true,
"redeem": true,
"refund": false,
"lookup": true,
"change_voucher": "SMS"
},
"required_fields": [
{
"name": "pin",
"type": "string",
"required": true,
"sensitive": true,
"description": "Voucher PIN or token. Sensitive value.",
"example": "9988776655443322"
},
{
"name": "phone_number",
"type": "string",
"required": true,
"sensitive": false,
"description": "Subscriber phone number associated with the voucher.",
"example": "+27821234567"
}
]
},
{
"type": "vouchers.blu",
"category": "vouchers",
"name": "Blu",
"description": "Blu Voucher redeemed with a token. Stored value lookup also accepts a serial number.",
"logo": "https://cdn.momentpay.net/redemptions/blu.svg",
"website": "https://www.bluvoucher.co.za",
"capabilities": {
"reserve": true,
"redeem": true,
"refund": false,
"lookup": true,
"change_voucher": "INLINE"
},
"required_fields": [
{
"name": "token",
"type": "string",
"required": true,
"sensitive": true,
"description": "Blu voucher token or PIN. Sensitive value.",
"example": "8276 8409 4119 1701"
},
{
"name": "serial_number",
"type": "string",
"required": false,
"sensitive": false,
"description": "Blu voucher serial number. Optional. Accepted for stored value lookup only, where either token or serial number is sufficient.",
"example": "BL016C1E46AD2768"
}
]
}
]
}{
"type": "https://api.momentco.io/problems/unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "The API key provided is invalid.",
"instance": "/collect/redemptions",
"code": "unauthorized"
}{
"type": "https://api.momentco.io/problems/internal_server_error",
"title": "Internal Server Error",
"status": 500,
"detail": "An unexpected error occurred. Please try again later.",
"instance": "/collect/redemptions",
"code": "internal_server_error"
}Authorizations
Authentication using Bearer tokens. Include your API key in the Authorization header.
Key Types:
- Test Keys:
sk_test_*for development and testing - Live Keys:
sk_*for production environments - Public Keys:
pk_test_*orpk_*for client-side operations
📩 Need access? Contact Support to request your API keys.
Usage:
Authorization: Bearer sk_test_4eC39HqLyjWDarjtT1zdp7dc
Headers
Identifies the business unit the request applies to.
Required when the API key is linked to more than one business unit. When the key is linked to exactly one business unit the header may be omitted and that business unit is used.
Errors:
400 business_unit_missingwhen the header is absent and the key is linked to multiple business units400 business_unit_invalidwhen the value is not a valid business unit identifier403 business_unit_access_deniedwhen the value is well formed but the key is not linked to that business unit
Pattern:
^bu_[A-Za-z0-9_-]{21}$Response
Supported redemption types.
List of redemption types supported by the API.
The supported redemption types.
Show child attributes
Show child attributes
Was this page helpful?
⌘I
List supported redemption types
curl --request GET \
--url https://api.momentpay.net/collect/redemptions/types \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.momentpay.net/collect/redemptions/types"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.momentpay.net/collect/redemptions/types', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.momentpay.net/collect/redemptions/types",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.momentpay.net/collect/redemptions/types"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.momentpay.net/collect/redemptions/types")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.momentpay.net/collect/redemptions/types")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"type": "vouchers.one_voucher",
"category": "vouchers",
"name": "1Voucher",
"description": "South African cash voucher redeemed with a PIN. Captured in a single confirm step.",
"logo": "https://cdn.momentpay.net/redemptions/one_voucher.svg",
"website": "https://www.1voucher.co.za",
"capabilities": {
"reserve": true,
"redeem": true,
"refund": false,
"lookup": false,
"change_voucher": "INLINE"
},
"required_fields": [
{
"name": "pin",
"type": "string",
"required": true,
"sensitive": true,
"description": "16 digit voucher PIN.",
"example": "1115684091419838"
}
]
},
{
"type": "vouchers.ott",
"category": "vouchers",
"name": "OTT",
"description": "One Time Token voucher redeemed with a PIN and the subscriber phone number.",
"logo": "https://cdn.momentpay.net/redemptions/ott.svg",
"website": "https://www.ott.co.za",
"capabilities": {
"reserve": true,
"redeem": true,
"refund": false,
"lookup": true,
"change_voucher": "SMS"
},
"required_fields": [
{
"name": "pin",
"type": "string",
"required": true,
"sensitive": true,
"description": "Voucher PIN or token. Sensitive value.",
"example": "9988776655443322"
},
{
"name": "phone_number",
"type": "string",
"required": true,
"sensitive": false,
"description": "Subscriber phone number associated with the voucher.",
"example": "+27821234567"
}
]
},
{
"type": "vouchers.blu",
"category": "vouchers",
"name": "Blu",
"description": "Blu Voucher redeemed with a token. Stored value lookup also accepts a serial number.",
"logo": "https://cdn.momentpay.net/redemptions/blu.svg",
"website": "https://www.bluvoucher.co.za",
"capabilities": {
"reserve": true,
"redeem": true,
"refund": false,
"lookup": true,
"change_voucher": "INLINE"
},
"required_fields": [
{
"name": "token",
"type": "string",
"required": true,
"sensitive": true,
"description": "Blu voucher token or PIN. Sensitive value.",
"example": "8276 8409 4119 1701"
},
{
"name": "serial_number",
"type": "string",
"required": false,
"sensitive": false,
"description": "Blu voucher serial number. Optional. Accepted for stored value lookup only, where either token or serial number is sufficient.",
"example": "BL016C1E46AD2768"
}
]
}
]
}{
"type": "https://api.momentco.io/problems/unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "The API key provided is invalid.",
"instance": "/collect/redemptions",
"code": "unauthorized"
}{
"type": "https://api.momentco.io/problems/internal_server_error",
"title": "Internal Server Error",
"status": 500,
"detail": "An unexpected error occurred. Please try again later.",
"instance": "/collect/redemptions",
"code": "internal_server_error"
}
