Request OTP before saving a user's card
curl --request POST \
--url https://api.nomba.com/v1/checkout/user-card/auth \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"orderReference": "c4307d58-2513-41d8-b7f7-dfecd5f9fdbe",
"phoneNumber": "08012345678"
}
'import requests
url = "https://api.nomba.com/v1/checkout/user-card/auth"
payload = {
"orderReference": "c4307d58-2513-41d8-b7f7-dfecd5f9fdbe",
"phoneNumber": "08012345678"
}
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',
phoneNumber: '08012345678'
})
};
fetch('https://api.nomba.com/v1/checkout/user-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/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',
'phoneNumber' => '08012345678'
]),
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/auth"
payload := strings.NewReader("{\n \"orderReference\": \"c4307d58-2513-41d8-b7f7-dfecd5f9fdbe\",\n \"phoneNumber\": \"08012345678\"\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/auth")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"orderReference\": \"c4307d58-2513-41d8-b7f7-dfecd5f9fdbe\",\n \"phoneNumber\": \"08012345678\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nomba.com/v1/checkout/user-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 \"phoneNumber\": \"08012345678\"\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 before saving a user's card
Use this endpoint to request an OTP to be sent to be sent to the users phone number to authenticate the user before saving the card. This endpoint is called after payment is successful, and the user requested to save their card for later.
POST
/
v1
/
checkout
/
user-card
/
auth
Request OTP before saving a user's card
curl --request POST \
--url https://api.nomba.com/v1/checkout/user-card/auth \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"orderReference": "c4307d58-2513-41d8-b7f7-dfecd5f9fdbe",
"phoneNumber": "08012345678"
}
'import requests
url = "https://api.nomba.com/v1/checkout/user-card/auth"
payload = {
"orderReference": "c4307d58-2513-41d8-b7f7-dfecd5f9fdbe",
"phoneNumber": "08012345678"
}
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',
phoneNumber: '08012345678'
})
};
fetch('https://api.nomba.com/v1/checkout/user-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/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',
'phoneNumber' => '08012345678'
]),
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/auth"
payload := strings.NewReader("{\n \"orderReference\": \"c4307d58-2513-41d8-b7f7-dfecd5f9fdbe\",\n \"phoneNumber\": \"08012345678\"\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/auth")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"orderReference\": \"c4307d58-2513-41d8-b7f7-dfecd5f9fdbe\",\n \"phoneNumber\": \"08012345678\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nomba.com/v1/checkout/user-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 \"phoneNumber\": \"08012345678\"\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"
}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 before saving a user's card
⌘I