curl --request GET \
--url https://api.example.com/compliance/transaction/{reference} \
--header 'ApiKey: <apikey>' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>'import requests
url = "https://api.example.com/compliance/transaction/{reference}"
headers = {
"ApiKey": "<apikey>",
"MerchantId": "<merchantid>",
"Environment": "<environment>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {ApiKey: '<apikey>', MerchantId: '<merchantid>', Environment: '<environment>'}
};
fetch('https://api.example.com/compliance/transaction/{reference}', 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.example.com/compliance/transaction/{reference}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"ApiKey: <apikey>",
"Environment: <environment>",
"MerchantId: <merchantid>"
],
]);
$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.example.com/compliance/transaction/{reference}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("ApiKey", "<apikey>")
req.Header.Add("MerchantId", "<merchantid>")
req.Header.Add("Environment", "<environment>")
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.example.com/compliance/transaction/{reference}")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/compliance/transaction/{reference}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["ApiKey"] = '<apikey>'
request["MerchantId"] = '<merchantid>'
request["Environment"] = '<environment>'
response = http.request(request)
puts response.read_body{
"id": 1,
"kyb": {
"merchantId": "156",
"name": "Example merchant",
"businessType": "Fintech",
"businessRegistrationId": "<string>",
"taxNumber": "<string>",
"directorName": "<string>",
"websiteUrl": "<string>",
"country": "CI",
"headquarterAddress": "<string>",
"id": 1,
"createdAt": "2020-10-15T12:09:49.355Z",
"deletedAt": null
},
"reference": "<REPLACE_BY_YOUR_REFERENCE>",
"amount": 100,
"currency": "XOF",
"createdAt": "2020-10-15T12:09:49.355Z",
"status": "created",
"iban": "CI93CI0080111301134291200589",
"rejectionReason": "Your request is not compliant with our policies for the following reason: ..."
}{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}{
"httpStatus": 404,
"message": "X not found",
"error": "Not found"
}{
"type": "internal_error",
"code": [
"internal_error",
"wrong_credentials",
"not_granted",
"live_mode_not_granted",
"invalid_sandbox_msisdn",
"invalid_url",
"orange_invalid_url",
"wrong_provider",
"override_business_name",
"do_not_override_business_name"
],
"message": "An error occurred on our system. Please try again later."
}Retrieve a kyb transaction by reference
curl --request GET \
--url https://api.example.com/compliance/transaction/{reference} \
--header 'ApiKey: <apikey>' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>'import requests
url = "https://api.example.com/compliance/transaction/{reference}"
headers = {
"ApiKey": "<apikey>",
"MerchantId": "<merchantid>",
"Environment": "<environment>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {ApiKey: '<apikey>', MerchantId: '<merchantid>', Environment: '<environment>'}
};
fetch('https://api.example.com/compliance/transaction/{reference}', 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.example.com/compliance/transaction/{reference}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"ApiKey: <apikey>",
"Environment: <environment>",
"MerchantId: <merchantid>"
],
]);
$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.example.com/compliance/transaction/{reference}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("ApiKey", "<apikey>")
req.Header.Add("MerchantId", "<merchantid>")
req.Header.Add("Environment", "<environment>")
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.example.com/compliance/transaction/{reference}")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/compliance/transaction/{reference}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["ApiKey"] = '<apikey>'
request["MerchantId"] = '<merchantid>'
request["Environment"] = '<environment>'
response = http.request(request)
puts response.read_body{
"id": 1,
"kyb": {
"merchantId": "156",
"name": "Example merchant",
"businessType": "Fintech",
"businessRegistrationId": "<string>",
"taxNumber": "<string>",
"directorName": "<string>",
"websiteUrl": "<string>",
"country": "CI",
"headquarterAddress": "<string>",
"id": 1,
"createdAt": "2020-10-15T12:09:49.355Z",
"deletedAt": null
},
"reference": "<REPLACE_BY_YOUR_REFERENCE>",
"amount": 100,
"currency": "XOF",
"createdAt": "2020-10-15T12:09:49.355Z",
"status": "created",
"iban": "CI93CI0080111301134291200589",
"rejectionReason": "Your request is not compliant with our policies for the following reason: ..."
}{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}{
"httpStatus": 404,
"message": "X not found",
"error": "Not found"
}{
"type": "internal_error",
"code": [
"internal_error",
"wrong_credentials",
"not_granted",
"live_mode_not_granted",
"invalid_sandbox_msisdn",
"invalid_url",
"orange_invalid_url",
"wrong_provider",
"override_business_name",
"do_not_override_business_name"
],
"message": "An error occurred on our system. Please try again later."
}Headers
Your api key. To create a key, please get into our dashboard. If you don't have access to it, please reach the Support team.
Your merchant ID. This information is available in our dashboard. If you don't have access to it, please reach the Support team.
Allow you to choose between the sandbox mode to perform some tests or the live mode for real world transactions.
live, sandbox Path Parameters
Reference of the kyb transaction to retrieve.
Response
The id identifying the transaction
1
The kyb related to the transaction
Show child attributes
Show child attributes
Reference of the transaction. Should be unique for a given merchantId
"<REPLACE_BY_YOUR_REFERENCE>"
Amount of the transaction
100
Currency in which the transaction has been done
"XOF"
Datetime in UTC timezone at which this object was created. Follows the Datetime ISO.
"2020-10-15T12:09:49.355Z"
Enum indicating the status of the kyb transaction
created, pending, rejected, validated "created"
Iban of the bank account on which funds have been transferred
"CI93CI0080111301134291200589"
The reason why a kyb transaction has been rejected by Hub2 teams (i.e, the deposit hasn't been done)
"Your request is not compliant with our policies for the following reason: ..."
