curl --request POST \
--url https://apigwuat.corpay.com/customers/subcustomer \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customerName": "<string>",
"customerContact": {
"emailAddress": "jsmith@example.com",
"firstName": "<string>",
"lastName": "<string>",
"middleName": "<string>",
"mobilePhone": "<string>",
"telephone": "<string>"
},
"customerAddress": {
"addressLines": "<string>",
"city": "<string>",
"country": "<string>",
"countryCode": "<string>",
"region": "<string>",
"zipCode": "<string>"
},
"customerAccountNumber": "<string>",
"customerBusinessReference": "<string>"
}
'import requests
url = "https://apigwuat.corpay.com/customers/subcustomer"
payload = {
"customerName": "<string>",
"customerContact": {
"emailAddress": "jsmith@example.com",
"firstName": "<string>",
"lastName": "<string>",
"middleName": "<string>",
"mobilePhone": "<string>",
"telephone": "<string>"
},
"customerAddress": {
"addressLines": "<string>",
"city": "<string>",
"country": "<string>",
"countryCode": "<string>",
"region": "<string>",
"zipCode": "<string>"
},
"customerAccountNumber": "<string>",
"customerBusinessReference": "<string>"
}
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({
customerName: '<string>',
customerContact: {
emailAddress: 'jsmith@example.com',
firstName: '<string>',
lastName: '<string>',
middleName: '<string>',
mobilePhone: '<string>',
telephone: '<string>'
},
customerAddress: {
addressLines: '<string>',
city: '<string>',
country: '<string>',
countryCode: '<string>',
region: '<string>',
zipCode: '<string>'
},
customerAccountNumber: '<string>',
customerBusinessReference: '<string>'
})
};
fetch('https://apigwuat.corpay.com/customers/subcustomer', 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://apigwuat.corpay.com/customers/subcustomer",
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([
'customerName' => '<string>',
'customerContact' => [
'emailAddress' => 'jsmith@example.com',
'firstName' => '<string>',
'lastName' => '<string>',
'middleName' => '<string>',
'mobilePhone' => '<string>',
'telephone' => '<string>'
],
'customerAddress' => [
'addressLines' => '<string>',
'city' => '<string>',
'country' => '<string>',
'countryCode' => '<string>',
'region' => '<string>',
'zipCode' => '<string>'
],
'customerAccountNumber' => '<string>',
'customerBusinessReference' => '<string>'
]),
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://apigwuat.corpay.com/customers/subcustomer"
payload := strings.NewReader("{\n \"customerName\": \"<string>\",\n \"customerContact\": {\n \"emailAddress\": \"jsmith@example.com\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"middleName\": \"<string>\",\n \"mobilePhone\": \"<string>\",\n \"telephone\": \"<string>\"\n },\n \"customerAddress\": {\n \"addressLines\": \"<string>\",\n \"city\": \"<string>\",\n \"country\": \"<string>\",\n \"countryCode\": \"<string>\",\n \"region\": \"<string>\",\n \"zipCode\": \"<string>\"\n },\n \"customerAccountNumber\": \"<string>\",\n \"customerBusinessReference\": \"<string>\"\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://apigwuat.corpay.com/customers/subcustomer")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customerName\": \"<string>\",\n \"customerContact\": {\n \"emailAddress\": \"jsmith@example.com\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"middleName\": \"<string>\",\n \"mobilePhone\": \"<string>\",\n \"telephone\": \"<string>\"\n },\n \"customerAddress\": {\n \"addressLines\": \"<string>\",\n \"city\": \"<string>\",\n \"country\": \"<string>\",\n \"countryCode\": \"<string>\",\n \"region\": \"<string>\",\n \"zipCode\": \"<string>\"\n },\n \"customerAccountNumber\": \"<string>\",\n \"customerBusinessReference\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://apigwuat.corpay.com/customers/subcustomer")
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 \"customerName\": \"<string>\",\n \"customerContact\": {\n \"emailAddress\": \"jsmith@example.com\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"middleName\": \"<string>\",\n \"mobilePhone\": \"<string>\",\n \"telephone\": \"<string>\"\n },\n \"customerAddress\": {\n \"addressLines\": \"<string>\",\n \"city\": \"<string>\",\n \"country\": \"<string>\",\n \"countryCode\": \"<string>\",\n \"region\": \"<string>\",\n \"zipCode\": \"<string>\"\n },\n \"customerAccountNumber\": \"<string>\",\n \"customerBusinessReference\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"customerAccountNumber": 50000002122
}{
"errorCode": "ER-001",
"errorDescription": "Invalid request parameters"
}{
"errorCode": "ER-012",
"errorDescription": "The server encountered an unexpected condition and could not complete the request. Please contact Corpay Support."
}Create sub customer
Create a sub-customer either under customer by supplying the ‘Customer Account Number’ in the request, or under the top-level customer if not provided in request. The system returns the ‘Customer Account Number’ of the newly created customer. Sub-customers can be created only up to two levels below the top-level customer. Supplied Address and Contact data are created as MAIN address and contact for customer. Top-level customer creation is corpay’s responsibility. The top-level customer cannot be created via APIs. All customers under top-level customer are identified as sub customer.
curl --request POST \
--url https://apigwuat.corpay.com/customers/subcustomer \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customerName": "<string>",
"customerContact": {
"emailAddress": "jsmith@example.com",
"firstName": "<string>",
"lastName": "<string>",
"middleName": "<string>",
"mobilePhone": "<string>",
"telephone": "<string>"
},
"customerAddress": {
"addressLines": "<string>",
"city": "<string>",
"country": "<string>",
"countryCode": "<string>",
"region": "<string>",
"zipCode": "<string>"
},
"customerAccountNumber": "<string>",
"customerBusinessReference": "<string>"
}
'import requests
url = "https://apigwuat.corpay.com/customers/subcustomer"
payload = {
"customerName": "<string>",
"customerContact": {
"emailAddress": "jsmith@example.com",
"firstName": "<string>",
"lastName": "<string>",
"middleName": "<string>",
"mobilePhone": "<string>",
"telephone": "<string>"
},
"customerAddress": {
"addressLines": "<string>",
"city": "<string>",
"country": "<string>",
"countryCode": "<string>",
"region": "<string>",
"zipCode": "<string>"
},
"customerAccountNumber": "<string>",
"customerBusinessReference": "<string>"
}
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({
customerName: '<string>',
customerContact: {
emailAddress: 'jsmith@example.com',
firstName: '<string>',
lastName: '<string>',
middleName: '<string>',
mobilePhone: '<string>',
telephone: '<string>'
},
customerAddress: {
addressLines: '<string>',
city: '<string>',
country: '<string>',
countryCode: '<string>',
region: '<string>',
zipCode: '<string>'
},
customerAccountNumber: '<string>',
customerBusinessReference: '<string>'
})
};
fetch('https://apigwuat.corpay.com/customers/subcustomer', 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://apigwuat.corpay.com/customers/subcustomer",
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([
'customerName' => '<string>',
'customerContact' => [
'emailAddress' => 'jsmith@example.com',
'firstName' => '<string>',
'lastName' => '<string>',
'middleName' => '<string>',
'mobilePhone' => '<string>',
'telephone' => '<string>'
],
'customerAddress' => [
'addressLines' => '<string>',
'city' => '<string>',
'country' => '<string>',
'countryCode' => '<string>',
'region' => '<string>',
'zipCode' => '<string>'
],
'customerAccountNumber' => '<string>',
'customerBusinessReference' => '<string>'
]),
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://apigwuat.corpay.com/customers/subcustomer"
payload := strings.NewReader("{\n \"customerName\": \"<string>\",\n \"customerContact\": {\n \"emailAddress\": \"jsmith@example.com\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"middleName\": \"<string>\",\n \"mobilePhone\": \"<string>\",\n \"telephone\": \"<string>\"\n },\n \"customerAddress\": {\n \"addressLines\": \"<string>\",\n \"city\": \"<string>\",\n \"country\": \"<string>\",\n \"countryCode\": \"<string>\",\n \"region\": \"<string>\",\n \"zipCode\": \"<string>\"\n },\n \"customerAccountNumber\": \"<string>\",\n \"customerBusinessReference\": \"<string>\"\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://apigwuat.corpay.com/customers/subcustomer")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customerName\": \"<string>\",\n \"customerContact\": {\n \"emailAddress\": \"jsmith@example.com\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"middleName\": \"<string>\",\n \"mobilePhone\": \"<string>\",\n \"telephone\": \"<string>\"\n },\n \"customerAddress\": {\n \"addressLines\": \"<string>\",\n \"city\": \"<string>\",\n \"country\": \"<string>\",\n \"countryCode\": \"<string>\",\n \"region\": \"<string>\",\n \"zipCode\": \"<string>\"\n },\n \"customerAccountNumber\": \"<string>\",\n \"customerBusinessReference\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://apigwuat.corpay.com/customers/subcustomer")
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 \"customerName\": \"<string>\",\n \"customerContact\": {\n \"emailAddress\": \"jsmith@example.com\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"middleName\": \"<string>\",\n \"mobilePhone\": \"<string>\",\n \"telephone\": \"<string>\"\n },\n \"customerAddress\": {\n \"addressLines\": \"<string>\",\n \"city\": \"<string>\",\n \"country\": \"<string>\",\n \"countryCode\": \"<string>\",\n \"region\": \"<string>\",\n \"zipCode\": \"<string>\"\n },\n \"customerAccountNumber\": \"<string>\",\n \"customerBusinessReference\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"customerAccountNumber": 50000002122
}{
"errorCode": "ER-001",
"errorDescription": "Invalid request parameters"
}{
"errorCode": "ER-012",
"errorDescription": "The server encountered an unexpected condition and could not complete the request. Please contact Corpay Support."
}p50: 250 ms, p99: 800 ms.
Measured on successful requests (2xx), server-side only.
How to interpret these metrics
Authorizations
Use OAuth2 client credentials to obtain a bearer token.
Token endpoint:
POST <BASE_URL>/keycloak/realms/longship/protocol/openid-connect/token
Use the same base URL as the selected API server:
- Test environment:
https://apigwuat.corpay.com - Production environment:
https://apigw.corpay.com
Example:
curl --location '<BASE_URL>/keycloak/realms/longship/protocol/openid-connect/token' \
--header 'accept: application/json' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=.......' \
--data-urlencode 'client_secret=......'Body
310Show child attributes
Show child attributes
If customer address is provided then all the fields inside the address object needs to be provided.
Show child attributes
Show child attributes
Reference to Consumer System Internal Identifier
40Response
Subcustomer's customer account number