Infracard

Card Holders

Card holder management

List card holders

Returns card holders for the authenticated merchant with pagination.

GET
/card-holders

Authorization

x-api-key<token>

In: header

Query Parameters

limitunknown

Items per page.

pageunknown

Page number (1-indexed).

Response Body

CardHolderResponse paginated response

TypeScript Definitions

Use the response body type in TypeScript.

dataRequiredarray<object>
paginationRequiredobject
curl -X GET "https://example.com/card-holders?limit=20&page=1" \
  -H "x-api-key: <token>"
fetch("https://example.com/card-holders?limit=20&page=1", {
  headers: {
    "x-api-key": "<token>"
  }
})
package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
)

func main() {
  url := "https://example.com/card-holders?limit=20&page=1"

  req, _ := http.NewRequest("GET", url, nil)
  req.Header.Add("x-api-key", "<token>")
  res, _ := http.DefaultClient.Do(req)
  defer res.Body.Close()
  body, _ := ioutil.ReadAll(res.Body)

  fmt.Println(res)
  fmt.Println(string(body))
}
import requests

url = "https://example.com/card-holders?limit=20&page=1"

response = requests.request("GET", url, headers = {
  "x-api-key": "<token>"
})

print(response.text)
{
  "data": [
    {
      "cardHolderId": "holder_01J2Y8A9B0C1D2E3F4G5H6I7J8",
      "merchantId": "mrc_01J2Y3Z4A5B6C7D8E9F0G1H2J3",
      "cardOfferingId": "off_01J2Y7Q8R9S0T1U2V3W4X5Y6Z7",
      "status": "approved",
      "firstName": "John",
      "lastName": "Doe",
      "email": "john@example.com",
      "createdAt": "2026-02-09T18:04:05.000Z"
    }
  ],
  "pagination": {
    "total": 0,
    "page": 0,
    "limit": 0,
    "totalPages": 0
  }
}

Create a card holder

Creates a card holder profile to support offerings that require holder KYC details.

POST
/card-holders

Authorization

x-api-key<token>

In: header

Request Body

application/jsonRequired
cardOfferingIdRequiredstring

Card offering ID

areaCodeRequiredstring

Phone area code

mobileRequiredstring
emailRequiredstring
firstNameRequiredstring
lastNameRequiredstring
birthdaystring

yyyy-MM-dd format

countrystring

ISO 3166-1 alpha-2 code

townstring
addressstring
postCodestring

Response Body

CardHolderResponse response

TypeScript Definitions

Use the response body type in TypeScript.

dataRequiredobject
curl -X POST "https://example.com/card-holders" \
  -H "x-api-key: <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "cardOfferingId": "off_01J2Y7Q8R9S0T1U2V3W4X5Y6Z7",
    "areaCode": "1",
    "mobile": "5551234567",
    "email": "holder@example.com",
    "firstName": "John",
    "lastName": "Doe",
    "birthday": "1990-01-15",
    "country": "US",
    "town": "New York",
    "address": "123 Main St",
    "postCode": "10001"
  }'
const body = JSON.stringify({
  "cardOfferingId": "off_01J2Y7Q8R9S0T1U2V3W4X5Y6Z7",
  "areaCode": "1",
  "mobile": "5551234567",
  "email": "holder@example.com",
  "firstName": "John",
  "lastName": "Doe",
  "birthday": "1990-01-15",
  "country": "US",
  "town": "New York",
  "address": "123 Main St",
  "postCode": "10001"
})

fetch("https://example.com/card-holders", {
  headers: {
    "x-api-key": "<token>"
  },
  body
})
package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
  "strings"
)

func main() {
  url := "https://example.com/card-holders"
  body := strings.NewReader(`{
    "cardOfferingId": "off_01J2Y7Q8R9S0T1U2V3W4X5Y6Z7",
    "areaCode": "1",
    "mobile": "5551234567",
    "email": "holder@example.com",
    "firstName": "John",
    "lastName": "Doe",
    "birthday": "1990-01-15",
    "country": "US",
    "town": "New York",
    "address": "123 Main St",
    "postCode": "10001"
  }`)
  req, _ := http.NewRequest("POST", url, body)
  req.Header.Add("x-api-key", "<token>")
  req.Header.Add("Content-Type", "application/json")
  res, _ := http.DefaultClient.Do(req)
  defer res.Body.Close()
  body, _ := ioutil.ReadAll(res.Body)

  fmt.Println(res)
  fmt.Println(string(body))
}
import requests

url = "https://example.com/card-holders"
body = {
  "cardOfferingId": "off_01J2Y7Q8R9S0T1U2V3W4X5Y6Z7",
  "areaCode": "1",
  "mobile": "5551234567",
  "email": "holder@example.com",
  "firstName": "John",
  "lastName": "Doe",
  "birthday": "1990-01-15",
  "country": "US",
  "town": "New York",
  "address": "123 Main St",
  "postCode": "10001"
}
response = requests.request("POST", url, json = body, headers = {
  "x-api-key": "<token>",
  "Content-Type": "application/json"
})

print(response.text)
{
  "data": {
    "cardHolderId": "holder_01J2Y8A9B0C1D2E3F4G5H6I7J8",
    "merchantId": "mrc_01J2Y3Z4A5B6C7D8E9F0G1H2J3",
    "cardOfferingId": "off_01J2Y7Q8R9S0T1U2V3W4X5Y6Z7",
    "status": "approved",
    "firstName": "John",
    "lastName": "Doe",
    "email": "john@example.com",
    "createdAt": "2026-02-09T18:04:05.000Z"
  }
}

Get card holder reference data

Returns reference datasets (regions, cities, dial codes) for holder onboarding forms.

GET
/card-holders/reference-data

Authorization

x-api-key<token>

In: header

Query Parameters

cardOfferingIdRequiredstring

Card offering ID.

countrystring

ISO 3166-1 alpha-2 country code.

Response Body

ReferenceDataResponse response

TypeScript Definitions

Use the response body type in TypeScript.

dataRequiredobject
curl -X GET "https://example.com/card-holders/reference-data?cardOfferingId=off_01J2Y7Q8R9S0T1U2V3W4X5Y6Z7&country=US" \
  -H "x-api-key: <token>"
fetch("https://example.com/card-holders/reference-data?cardOfferingId=off_01J2Y7Q8R9S0T1U2V3W4X5Y6Z7&country=US", {
  headers: {
    "x-api-key": "<token>"
  }
})
package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
)

func main() {
  url := "https://example.com/card-holders/reference-data?cardOfferingId=off_01J2Y7Q8R9S0T1U2V3W4X5Y6Z7&country=US"

  req, _ := http.NewRequest("GET", url, nil)
  req.Header.Add("x-api-key", "<token>")
  res, _ := http.DefaultClient.Do(req)
  defer res.Body.Close()
  body, _ := ioutil.ReadAll(res.Body)

  fmt.Println(res)
  fmt.Println(string(body))
}
import requests

url = "https://example.com/card-holders/reference-data?cardOfferingId=off_01J2Y7Q8R9S0T1U2V3W4X5Y6Z7&country=US"

response = requests.request("GET", url, headers = {
  "x-api-key": "<token>"
})

print(response.text)
{
  "data": {
    "regions": [
      {
        "code": "US",
        "name": "United States"
      }
    ],
    "cities": [
      {
        "code": "US",
        "name": "United States"
      }
    ],
    "areaCodes": [
      {
        "code": "US",
        "name": "United States",
        "dialCode": "+1"
      }
    ]
  }
}