curl --request DELETE \
--url https://api.global.direct.reap.global/2026-07-13/cards/{cardId} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"reason": "<string>"
}
'const options = {
method: 'DELETE',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({reason: '<string>'})
};
fetch('https://api.global.direct.reap.global/2026-07-13/cards/{cardId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.global.direct.reap.global/2026-07-13/cards/{cardId}"
payload = { "reason": "<string>" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.delete(url, json=payload, headers=headers)
print(response.text){
"id": "3db05d6f-97a9-4c06-a578-087b14b4f859",
"type": "virtual",
"status": "terminated",
"title": "Travel card",
"last4": "4242",
"expiresAt": "2028-08-31",
"isRevolving": false,
"planType": "topUp",
"category": "travel",
"cardholder": {
"userId": "user_01JZ2Q1J4Y8P7M6N5K3H2G1F0E",
"name": "Ada Lovelace",
"email": "ada@example.com"
},
"spendCap": {
"amount": "5000.00",
"currency": "USD"
},
"spentAmount": {
"amount": "0.00",
"currency": "USD"
},
"spendControl": {
"limits": {
"transaction": {
"amount": "1000.00",
"currency": "USD"
},
"monthly": {
"amount": "5000.00",
"currency": "USD"
}
},
"spent": {
"monthly": {
"amount": "0.00",
"currency": "USD"
}
},
"atm": {
"dailyWithdrawal": {
"amount": "500.00",
"currency": "USD"
},
"dailyFrequency": 3
}
},
"restriction": {
"time": {
"start": "09:00",
"end": "18:00"
}
},
"createdAt": "2026-07-13T08:00:00.000Z",
"updatedAt": "2026-07-13T08:00:00.000Z"
}Terminate card
Required API-key scope: cards:write.
Permanently closes a card. A terminated card can’t be used or reactivated, so use Freeze card instead if you might need it again. Typical uses: a team member leaves, a vendor is cancelled or a campaign ends. See Cards.
curl --request DELETE \
--url https://api.global.direct.reap.global/2026-07-13/cards/{cardId} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"reason": "<string>"
}
'const options = {
method: 'DELETE',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({reason: '<string>'})
};
fetch('https://api.global.direct.reap.global/2026-07-13/cards/{cardId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.global.direct.reap.global/2026-07-13/cards/{cardId}"
payload = { "reason": "<string>" }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.delete(url, json=payload, headers=headers)
print(response.text){
"id": "3db05d6f-97a9-4c06-a578-087b14b4f859",
"type": "virtual",
"status": "terminated",
"title": "Travel card",
"last4": "4242",
"expiresAt": "2028-08-31",
"isRevolving": false,
"planType": "topUp",
"category": "travel",
"cardholder": {
"userId": "user_01JZ2Q1J4Y8P7M6N5K3H2G1F0E",
"name": "Ada Lovelace",
"email": "ada@example.com"
},
"spendCap": {
"amount": "5000.00",
"currency": "USD"
},
"spentAmount": {
"amount": "0.00",
"currency": "USD"
},
"spendControl": {
"limits": {
"transaction": {
"amount": "1000.00",
"currency": "USD"
},
"monthly": {
"amount": "5000.00",
"currency": "USD"
}
},
"spent": {
"monthly": {
"amount": "0.00",
"currency": "USD"
}
},
"atm": {
"dailyWithdrawal": {
"amount": "500.00",
"currency": "USD"
},
"dailyFrequency": 3
}
},
"restriction": {
"time": {
"start": "09:00",
"end": "18:00"
}
},
"createdAt": "2026-07-13T08:00:00.000Z",
"updatedAt": "2026-07-13T08:00:00.000Z"
}Authorizations
Enter your API key
Path Parameters
The card's ID, as returned by List cards or Create card.
Body
An optional note on why the card is being closed, up to 255 characters, for example Employee left.
255Response
The card's unique ID. Use it with Retrieve a card, Freeze card and the other card endpoints.
Whether this is a virtual or a physical card.
virtual, physical Where the card is in its lifecycle: pending (a physical card not yet activated), active (ready to use), frozen (paused, can be unfrozen), inactive (not usable for another reason, such as a restricted or blocked card), expiring (a physical card within 90 days of its expiry date), expired or terminated (permanently closed).
pending, active, frozen, inactive, expiring, expired, terminated The card's nickname, set when the card was created or renamed with Edit card details.
The last four digits of the card number. To see the full card details, use Reveal card details.
The date the card expires (YYYY-MM-DD).
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$Whether the card draws from your business's shared revolving budget. It's always false for top-up cards.
How the card is funded: subscription (draws on shared credit within its limits), topUp (has its own fixed budget in spendCap) or physical (a physical card plan).
physical, subscription, topUp The display name of the card category chosen when the card was created, for example travel. It describes what the card is for and is different from each card transaction's category. To create a card with this category, pass its id from List card categories.
The team member the card belongs to.
Show child attributes
Show child attributes
The fixed budget set aside for the card; for top-up cards, this is how much the card can spend in total. Change it with Update spend control. Null if the card has no fixed budget.
Show child attributes
Show child attributes
How much has been spent on the card since it was created. For top-up cards, compare it with spendCap to see how much budget is left.
Show child attributes
Show child attributes
The card's spending limits, plus how much has been spent in each period so far.
Show child attributes
Show child attributes
Rules on when the card can be used. Change them with Update card usage restriction.
Show child attributes
Show child attributes
When the card was created, in UTC.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$When the card's details, limits or status last changed, in UTC.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$