Create a cardholder
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
account_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
phone: {number: '<string>', country_code: '<string>'}
})
};
fetch('https://core.prod.gnosispay.com/partner-api/v1/cardholders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://core.prod.gnosispay.com/partner-api/v1/cardholders \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"phone": {
"number": "<string>",
"country_code": "<string>"
}
}
'import requests
url = "https://core.prod.gnosispay.com/partner-api/v1/cardholders"
payload = {
"account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"phone": {
"number": "<string>",
"country_code": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://core.prod.gnosispay.com/partner-api/v1/cardholders"
payload := strings.NewReader("{\n \"account_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"phone\": {\n \"number\": \"<string>\",\n \"country_code\": \"<string>\"\n }\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://core.prod.gnosispay.com/partner-api/v1/cardholders")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"phone\": {\n \"number\": \"<string>\",\n \"country_code\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.prod.gnosispay.com/partner-api/v1/cardholders")
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 \"account_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"phone\": {\n \"number\": \"<string>\",\n \"country_code\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"cardholder_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"code": 123,
"message": "<string>",
"reason": "<string>"
}Cards
Create a cardholder
Creates a cardholder for an account.
In the recommended onboarding flow, call this after the linked account is active. The cardholder’s verified identity is taken from the KYC profile already associated with the account; the request supplies only the account and contact phone number.
Returns 422 with reason CARDHOLDER_CREATION_LIMIT_EXCEEDED when creating the
cardholder would exceed the configured number of cardholders for the account.
POST
/
v1
/
cardholders
Create a cardholder
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
account_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
phone: {number: '<string>', country_code: '<string>'}
})
};
fetch('https://core.prod.gnosispay.com/partner-api/v1/cardholders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://core.prod.gnosispay.com/partner-api/v1/cardholders \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"phone": {
"number": "<string>",
"country_code": "<string>"
}
}
'import requests
url = "https://core.prod.gnosispay.com/partner-api/v1/cardholders"
payload = {
"account_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"phone": {
"number": "<string>",
"country_code": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://core.prod.gnosispay.com/partner-api/v1/cardholders"
payload := strings.NewReader("{\n \"account_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"phone\": {\n \"number\": \"<string>\",\n \"country_code\": \"<string>\"\n }\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://core.prod.gnosispay.com/partner-api/v1/cardholders")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"phone\": {\n \"number\": \"<string>\",\n \"country_code\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.prod.gnosispay.com/partner-api/v1/cardholders")
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 \"account_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"phone\": {\n \"number\": \"<string>\",\n \"country_code\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"cardholder_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"code": 123,
"message": "<string>",
"reason": "<string>"
}Body
application/json
Account and contact phone number for the new cardholder.
Response
The request has succeeded.
The ID of the newly created cardholder.