Cards
Card lifecycle and management
List cards
Returns cards for the authenticated merchant with optional status filter and pagination.
Authorization
x-api-key<token>In: header
Query Parameters
statusstringFilter by card status.
"PENDING" | "ACTIVE" | "FREEZING" | "FROZEN" | "UNFREEZING" | "CANCELLING" | "CANCELLED" | "FAILED" | "BLOCKED"limitunknownItems per page.
pageunknownPage number (1-indexed).
Response Body
CardResponse paginated response
TypeScript Definitions
Use the response body type in TypeScript.
dataRequiredarray<object>paginationRequiredobjectcurl -X GET "https://example.com/cards?status=PENDING&limit=20&page=1" \
-H "x-api-key: <token>"fetch("https://example.com/cards?status=PENDING&limit=20&page=1", {
headers: {
"x-api-key": "<token>"
}
})package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://example.com/cards?status=PENDING&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/cards?status=PENDING&limit=20&page=1"
response = requests.request("GET", url, headers = {
"x-api-key": "<token>"
})
print(response.text){
"data": [
{
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"merchantId": "mrc_01J2Y3Z4A5B6C7D8E9F0G1H2J3",
"cardOfferingId": "off_01J2Y7Q8R9S0T1U2V3W4X5Y6Z7",
"lastFour": "1234",
"status": "ACTIVE",
"balance": "100.00",
"currency": "USD",
"createdAt": "2026-02-09T18:04:05.000Z"
}
],
"pagination": {
"total": 0,
"page": 0,
"limit": 0,
"totalPages": 0
}
}Issue a new card
Submits an asynchronous card issuance request for a merchant.
Authorization
x-api-key<token>In: header
Request Body
application/jsonRequiredofferingIdRequiredstringCard offering ID
amountRequiredstringInitial load amount
merchantOrderNoRequiredstringUnique merchant order reference
holderIdstringCard holder ID (if offering requires one)
Response Body
OrderResponse response
TypeScript Definitions
Use the response body type in TypeScript.
dataRequiredobjectcurl -X POST "https://example.com/cards" \
-H "x-api-key: <token>" \
-H "Content-Type: application/json" \
-d '{
"offeringId": "off_01J2Y7Q8R9S0T1U2V3W4X5Y6Z7",
"amount": "50.00",
"merchantOrderNo": "ord_20260209_001",
"holderId": "holder_01J2Y8A9B0C1D2E3F4G5H6I7J8"
}'const body = JSON.stringify({
"offeringId": "off_01J2Y7Q8R9S0T1U2V3W4X5Y6Z7",
"amount": "50.00",
"merchantOrderNo": "ord_20260209_001",
"holderId": "holder_01J2Y8A9B0C1D2E3F4G5H6I7J8"
})
fetch("https://example.com/cards", {
headers: {
"x-api-key": "<token>"
},
body
})package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "https://example.com/cards"
body := strings.NewReader(`{
"offeringId": "off_01J2Y7Q8R9S0T1U2V3W4X5Y6Z7",
"amount": "50.00",
"merchantOrderNo": "ord_20260209_001",
"holderId": "holder_01J2Y8A9B0C1D2E3F4G5H6I7J8"
}`)
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/cards"
body = {
"offeringId": "off_01J2Y7Q8R9S0T1U2V3W4X5Y6Z7",
"amount": "50.00",
"merchantOrderNo": "ord_20260209_001",
"holderId": "holder_01J2Y8A9B0C1D2E3F4G5H6I7J8"
}
response = requests.request("POST", url, json = body, headers = {
"x-api-key": "<token>",
"Content-Type": "application/json"
})
print(response.text){
"data": {
"orderNo": "ord_provider_01J2Y9K0L1M2N3P4Q5R6S7T8U9",
"merchantOrderNo": "ord_20260209_001"
}
}Get sensitive card info (PAN, CVV, expiry)
Retrieves PCI-sensitive card fields for an issued card.
Authorization
x-api-key<token>In: header
Query Parameters
cardIdRequiredstringCard ID.
Response Body
SensitiveCardInfoResponse response
TypeScript Definitions
Use the response body type in TypeScript.
dataRequiredobjectcurl -X GET "https://example.com/cards/sensitive?cardId=card_01J2Y4K5M6N7P8Q9R0S1T2U3V4" \
-H "x-api-key: <token>"fetch("https://example.com/cards/sensitive?cardId=card_01J2Y4K5M6N7P8Q9R0S1T2U3V4", {
headers: {
"x-api-key": "<token>"
}
})package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://example.com/cards/sensitive?cardId=card_01J2Y4K5M6N7P8Q9R0S1T2U3V4"
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/cards/sensitive?cardId=card_01J2Y4K5M6N7P8Q9R0S1T2U3V4"
response = requests.request("GET", url, headers = {
"x-api-key": "<token>"
})
print(response.text){
"data": {
"cardNumber": "4111111111111111",
"cvv": "123",
"expiryMonth": "12",
"expiryYear": "2027"
}
}Get card details
Returns non-sensitive card metadata and balance information.
Authorization
x-api-key<token>In: header
Query Parameters
cardIdRequiredstringCard ID.
Response Body
CardResponse response
TypeScript Definitions
Use the response body type in TypeScript.
dataRequiredobjectcurl -X GET "https://example.com/cards/info?cardId=card_01J2Y4K5M6N7P8Q9R0S1T2U3V4" \
-H "x-api-key: <token>"fetch("https://example.com/cards/info?cardId=card_01J2Y4K5M6N7P8Q9R0S1T2U3V4", {
headers: {
"x-api-key": "<token>"
}
})package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://example.com/cards/info?cardId=card_01J2Y4K5M6N7P8Q9R0S1T2U3V4"
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/cards/info?cardId=card_01J2Y4K5M6N7P8Q9R0S1T2U3V4"
response = requests.request("GET", url, headers = {
"x-api-key": "<token>"
})
print(response.text){
"data": {
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"merchantId": "mrc_01J2Y3Z4A5B6C7D8E9F0G1H2J3",
"cardOfferingId": "off_01J2Y7Q8R9S0T1U2V3W4X5Y6Z7",
"lastFour": "1234",
"status": "ACTIVE",
"balance": "100.00",
"currency": "USD",
"createdAt": "2026-02-09T18:04:05.000Z"
}
}Freeze a card
Blocks card usage while preserving card state for later unfreeze.
Authorization
x-api-key<token>In: header
Request Body
application/jsonRequiredcardIdRequiredstringCard ID
merchantOrderNoRequiredstringUnique merchant order reference
Response Body
Card frozen
curl -X POST "https://example.com/cards/freeze" \
-H "x-api-key: <token>" \
-H "Content-Type: application/json" \
-d '{
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"merchantOrderNo": "ord_20260209_002"
}'const body = JSON.stringify({
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"merchantOrderNo": "ord_20260209_002"
})
fetch("https://example.com/cards/freeze", {
headers: {
"x-api-key": "<token>"
},
body
})package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "https://example.com/cards/freeze"
body := strings.NewReader(`{
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"merchantOrderNo": "ord_20260209_002"
}`)
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/cards/freeze"
body = {
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"merchantOrderNo": "ord_20260209_002"
}
response = requests.request("POST", url, json = body, headers = {
"x-api-key": "<token>",
"Content-Type": "application/json"
})
print(response.text)Unfreeze a card
Re-enables a previously frozen card.
Authorization
x-api-key<token>In: header
Request Body
application/jsonRequiredcardIdRequiredstringCard ID
merchantOrderNoRequiredstringUnique merchant order reference
Response Body
Card unfrozen
curl -X POST "https://example.com/cards/unfreeze" \
-H "x-api-key: <token>" \
-H "Content-Type: application/json" \
-d '{
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"merchantOrderNo": "ord_20260209_003"
}'const body = JSON.stringify({
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"merchantOrderNo": "ord_20260209_003"
})
fetch("https://example.com/cards/unfreeze", {
headers: {
"x-api-key": "<token>"
},
body
})package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "https://example.com/cards/unfreeze"
body := strings.NewReader(`{
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"merchantOrderNo": "ord_20260209_003"
}`)
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/cards/unfreeze"
body = {
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"merchantOrderNo": "ord_20260209_003"
}
response = requests.request("POST", url, json = body, headers = {
"x-api-key": "<token>",
"Content-Type": "application/json"
})
print(response.text)Cancel a card
Permanently deactivates a card. The card must be in ACTIVE status.
Authorization
x-api-key<token>In: header
Request Body
application/jsonRequiredcardIdRequiredstringCard ID
merchantOrderNoRequiredstringUnique merchant order reference
Response Body
Card cancellation requested
curl -X POST "https://example.com/cards/cancel" \
-H "x-api-key: <token>" \
-H "Content-Type: application/json" \
-d '{
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"merchantOrderNo": "ord_20260209_006"
}'const body = JSON.stringify({
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"merchantOrderNo": "ord_20260209_006"
})
fetch("https://example.com/cards/cancel", {
headers: {
"x-api-key": "<token>"
},
body
})package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "https://example.com/cards/cancel"
body := strings.NewReader(`{
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"merchantOrderNo": "ord_20260209_006"
}`)
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/cards/cancel"
body = {
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"merchantOrderNo": "ord_20260209_006"
}
response = requests.request("POST", url, json = body, headers = {
"x-api-key": "<token>",
"Content-Type": "application/json"
})
print(response.text)Withdraw funds from a card
Submits an asynchronous withdrawal request for an existing card.
Authorization
x-api-key<token>In: header
Request Body
application/jsonRequiredcardIdRequiredstringCard ID
amountRequiredstringWithdrawal amount
merchantOrderNoRequiredstringUnique merchant order reference
Response Body
Withdrawal requested
curl -X POST "https://example.com/cards/withdraw" \
-H "x-api-key: <token>" \
-H "Content-Type: application/json" \
-d '{
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"amount": "25.00",
"merchantOrderNo": "ord_20260209_005"
}'const body = JSON.stringify({
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"amount": "25.00",
"merchantOrderNo": "ord_20260209_005"
})
fetch("https://example.com/cards/withdraw", {
headers: {
"x-api-key": "<token>"
},
body
})package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "https://example.com/cards/withdraw"
body := strings.NewReader(`{
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"amount": "25.00",
"merchantOrderNo": "ord_20260209_005"
}`)
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/cards/withdraw"
body = {
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"amount": "25.00",
"merchantOrderNo": "ord_20260209_005"
}
response = requests.request("POST", url, json = body, headers = {
"x-api-key": "<token>",
"Content-Type": "application/json"
})
print(response.text)Deposit funds to a card
Submits an asynchronous deposit request for an existing card.
Authorization
x-api-key<token>In: header
Request Body
application/jsonRequiredcardIdRequiredstringCard ID
amountRequiredstringDeposit amount
merchantOrderNoRequiredstringUnique merchant order reference
Response Body
OrderResponse response
TypeScript Definitions
Use the response body type in TypeScript.
dataRequiredobjectcurl -X POST "https://example.com/cards/deposit" \
-H "x-api-key: <token>" \
-H "Content-Type: application/json" \
-d '{
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"amount": "25.00",
"merchantOrderNo": "ord_20260209_004"
}'const body = JSON.stringify({
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"amount": "25.00",
"merchantOrderNo": "ord_20260209_004"
})
fetch("https://example.com/cards/deposit", {
headers: {
"x-api-key": "<token>"
},
body
})package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "https://example.com/cards/deposit"
body := strings.NewReader(`{
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"amount": "25.00",
"merchantOrderNo": "ord_20260209_004"
}`)
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/cards/deposit"
body = {
"cardId": "card_01J2Y4K5M6N7P8Q9R0S1T2U3V4",
"amount": "25.00",
"merchantOrderNo": "ord_20260209_004"
}
response = requests.request("POST", url, json = body, headers = {
"x-api-key": "<token>",
"Content-Type": "application/json"
})
print(response.text){
"data": {
"orderNo": "ord_provider_01J2Y9K0L1M2N3P4Q5R6S7T8U9",
"merchantOrderNo": "ord_20260209_001"
}
}