Request OTP to validate a user before fetching saved cards
curl --request POST \
--url https://api.nomba.com/v1/checkout/user-card/saved-card/auth \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"orderReference": "c4307d58-2513-41d8-b7f7-dfecd5f9fdbe"
}
'import requests
url = "https://api.nomba.com/v1/checkout/user-card/saved-card/auth"
payload = { "orderReference": "c4307d58-2513-41d8-b7f7-dfecd5f9fdbe" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({orderReference: 'c4307d58-2513-41d8-b7f7-dfecd5f9fdbe'})
};
fetch('https://api.nomba.com/v1/checkout/user-card/saved-card/auth', 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.nomba.com/v1/checkout/user-card/saved-card/auth",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'orderReference' => 'c4307d58-2513-41d8-b7f7-dfecd5f9fdbe'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.nomba.com/v1/checkout/user-card/saved-card/auth"
payload := strings.NewReader("{\n \"orderReference\": \"c4307d58-2513-41d8-b7f7-dfecd5f9fdbe\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.nomba.com/v1/checkout/user-card/saved-card/auth")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"orderReference\": \"c4307d58-2513-41d8-b7f7-dfecd5f9fdbe\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nomba.com/v1/checkout/user-card/saved-card/auth")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"orderReference\": \"c4307d58-2513-41d8-b7f7-dfecd5f9fdbe\"\n}"
response = http.request(request)
puts response.read_body{
"code": "00",
"description": "Success",
"data": {
"success": "true",
"message": "success"
}
}{
"code": "400",
"description": "Request failed."
}{
"code": "401",
"description": "Unauthorized"
}{
"code": "403",
"description": "Forbidden"
}{
"code": "404",
"description": "Record not found"
}{
"code": "429",
"description": "Too many requests"
}{
"code": "500",
"description": "Server error"
}Charge
Request OTP to validate a user before fetching saved cards
Use this endpoint to request an OTP to be sent to a userβs phone number to authenticate before retrieving the saved cards mapped to the userβs email. Use this endpoint when the Order details endpoint indicates the user already has saved cards.
POST
/
v1
/
checkout
/
user-card
/
saved-card
/
auth
Request OTP to validate a user before fetching saved cards
curl --request POST \
--url https://api.nomba.com/v1/checkout/user-card/saved-card/auth \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"orderReference": "c4307d58-2513-41d8-b7f7-dfecd5f9fdbe"
}
'import requests
url = "https://api.nomba.com/v1/checkout/user-card/saved-card/auth"
payload = { "orderReference": "c4307d58-2513-41d8-b7f7-dfecd5f9fdbe" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({orderReference: 'c4307d58-2513-41d8-b7f7-dfecd5f9fdbe'})
};
fetch('https://api.nomba.com/v1/checkout/user-card/saved-card/auth', 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.nomba.com/v1/checkout/user-card/saved-card/auth",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'orderReference' => 'c4307d58-2513-41d8-b7f7-dfecd5f9fdbe'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.nomba.com/v1/checkout/user-card/saved-card/auth"
payload := strings.NewReader("{\n \"orderReference\": \"c4307d58-2513-41d8-b7f7-dfecd5f9fdbe\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.nomba.com/v1/checkout/user-card/saved-card/auth")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"orderReference\": \"c4307d58-2513-41d8-b7f7-dfecd5f9fdbe\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nomba.com/v1/checkout/user-card/saved-card/auth")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"orderReference\": \"c4307d58-2513-41d8-b7f7-dfecd5f9fdbe\"\n}"
response = http.request(request)
puts response.read_body{
"code": "00",
"description": "Success",
"data": {
"success": "true",
"message": "success"
}
}{
"code": "400",
"description": "Request failed."
}{
"code": "401",
"description": "Unauthorized"
}{
"code": "403",
"description": "Forbidden"
}{
"code": "404",
"description": "Record not found"
}{
"code": "429",
"description": "Too many requests"
}{
"code": "500",
"description": "Server error"
}For a complete guide on response codes and transaction statuses, see Response Codes.
Authorizations
Nomba authenticates API calls with OAuth2 HTTP bearer tokens. There are two methods of authentication; Client-Credentials method and PKCE (Proof Key for Code Exchange) method. In each of the methods, You will get an ACCESS_TOKEN. You need to use an "Authorization" HTTP header to provide your ACCESS_TOKEN. For example: Authorization: {ACCESS_TOKEN}.
Body
application/json
Request OTP to validate a user before fetching saved cards
order reference
Example:
"c4307d58-2513-41d8-b7f7-dfecd5f9fdbe"