Delete a card
curl --request DELETE \
--url https://api.getlemma.com/v0/cards/{card_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getlemma.com/v0/cards/{card_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getlemma.com/v0/cards/{card_id}', 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://api.getlemma.com/v0/cards/{card_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getlemma.com/v0/cards/{card_id}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.getlemma.com/v0/cards/{card_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getlemma.com/v0/cards/{card_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "card_Bx5nTm8hKw3pVd7c",
"created_at": "2026-07-28T18:45:00Z",
"entity_id": "entity_k7mXp2vR9nTfBw4s",
"bank_account_id": "account_maple_ridge_cigna_01",
"nickname": "Acme ops card",
"last_4": "4242",
"status": "canceled",
"authorization_controls": {
"usage": {
"category": "multi_use",
"multi_use": {
"spending_limits": [
{ "interval": "per_transaction", "amount": 25000, "merchant_category_codes": null },
{ "interval": "per_day", "amount": 100000, "merchant_category_codes": null }
]
}
},
"merchant_acceptor_identifier": null,
"merchant_category_code": { "allowed": null, "blocked": ["7995", "6051"] },
"merchant_country": null
}
}
{
"statusCode": 403,
"error": "Forbidden",
"message": "Insufficient permissions to cancel cards for this entity"
}
{
"statusCode": 404,
"error": "Not Found",
"message": "Card not found"
}
Cards
Delete a card
Permanently cancel a card so it can no longer be used.
DELETE
/
v0
/
cards
/
{card_id}
Delete a card
curl --request DELETE \
--url https://api.getlemma.com/v0/cards/{card_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getlemma.com/v0/cards/{card_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getlemma.com/v0/cards/{card_id}', 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://api.getlemma.com/v0/cards/{card_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getlemma.com/v0/cards/{card_id}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://api.getlemma.com/v0/cards/{card_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getlemma.com/v0/cards/{card_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "card_Bx5nTm8hKw3pVd7c",
"created_at": "2026-07-28T18:45:00Z",
"entity_id": "entity_k7mXp2vR9nTfBw4s",
"bank_account_id": "account_maple_ridge_cigna_01",
"nickname": "Acme ops card",
"last_4": "4242",
"status": "canceled",
"authorization_controls": {
"usage": {
"category": "multi_use",
"multi_use": {
"spending_limits": [
{ "interval": "per_transaction", "amount": 25000, "merchant_category_codes": null },
{ "interval": "per_day", "amount": 100000, "merchant_category_codes": null }
]
}
},
"merchant_acceptor_identifier": null,
"merchant_category_code": { "allowed": null, "blocked": ["7995", "6051"] },
"merchant_country": null
}
}
{
"statusCode": 403,
"error": "Forbidden",
"message": "Insufficient permissions to cancel cards for this entity"
}
{
"statusCode": 404,
"error": "Not Found",
"message": "Card not found"
}
Cancels a card so it can no longer be used for payments. Cancelling a card cannot be undone: if you only need to pause spending temporarily, freeze the card instead.
You can only cancel cards issued by your platform. A card issued by the entity’s staff in the Lemma app returns a 404.
Path parameters
string
required
The card’s unique identifier.
Response
Returns the canceled card object.string
Unique identifier for the card, prefixed with
card_.string
The ID of the entity that owns this card.
string
The bank account this card draws from.
string
The human-readable label for this card.
string
The last 4 digits of the card number.
enum
object
Every control restricting how this card can be used, including the ones Lemma
applies to every card it issues.
Show Authorization controls object
Show Authorization controls object
object
How many times this card can be used, and its controls.
Show Usage object
Show Usage object
enum
Whether the card is for a single use or multiple uses.
Show Available options
Show Available options
string
The card can be used for multiple authorizations. The only
category issuable today.
object
Controls for multi-use cards.
Show Multi-use object
Show Multi-use object
object[]
Every spending limit enforced on this card, including the ones
Lemma applies automatically.
Show Limit object
Show Limit object
enum
integer
Cap in cents.
string[] | null
Merchant category codes this limit applies to.
null applies
to all merchants.object | null
Restricts which Merchant Acceptor IDs this card may transact with.
null
when this dimension is unrestricted.object | null
Restricts which merchant categories this card may transact with, including
the categories Lemma blocks on every card it issues.
null when this
dimension is unrestricted.object | null
Restricts which merchant countries this card may transact with, as ISO
3166-1 alpha-2 codes.
null when this dimension is unrestricted.{
"id": "card_Bx5nTm8hKw3pVd7c",
"created_at": "2026-07-28T18:45:00Z",
"entity_id": "entity_k7mXp2vR9nTfBw4s",
"bank_account_id": "account_maple_ridge_cigna_01",
"nickname": "Acme ops card",
"last_4": "4242",
"status": "canceled",
"authorization_controls": {
"usage": {
"category": "multi_use",
"multi_use": {
"spending_limits": [
{ "interval": "per_transaction", "amount": 25000, "merchant_category_codes": null },
{ "interval": "per_day", "amount": 100000, "merchant_category_codes": null }
]
}
},
"merchant_acceptor_identifier": null,
"merchant_category_code": { "allowed": null, "blocked": ["7995", "6051"] },
"merchant_country": null
}
}
{
"statusCode": 403,
"error": "Forbidden",
"message": "Insufficient permissions to cancel cards for this entity"
}
{
"statusCode": 404,
"error": "Not Found",
"message": "Card not found"
}
⌘I