List cards
Returns a paginated list of the company’s corporate cards, with optional filters for status, type, cardholder email, product name, and last 4 digits.
Available filters:
status: ACTIVATED, BLOCKED, CANCELLED, INACTIVATEDtype: PHYSICAL, VIRTUALemail: cardholder emailproductName: card product namelast4: last 4 digits of the card number
Use nextPageStartKey to page through results (cursor-based pagination).
curl -X GET "https://api-sandbox.contasimples.com/credit-cards/v1/cards?email=card-owner%40gmail.com&status=ACTIVATED&type=PHYSICAL&productName=Marketing%20Ads&last4=4821&nextPageStartKey=example_string&limit=10" \
-H "Content-Type: application/json" \
-H "Signature-Input: example_string" \
-H "Signature: example_string" \
-H "Authorization: Bearer YOUR_API_TOKEN"
import requests
import json
url = "https://api-sandbox.contasimples.com/credit-cards/v1/cards?email=card-owner%40gmail.com&status=ACTIVATED&type=PHYSICAL&productName=Marketing%20Ads&last4=4821&nextPageStartKey=example_string&limit=10"
headers = {
"Content-Type": "application/json",
"Signature-Input": "example_string",
"Signature": "example_string",
"Authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch("https://api-sandbox.contasimples.com/credit-cards/v1/cards?email=card-owner%40gmail.com&status=ACTIVATED&type=PHYSICAL&productName=Marketing%20Ads&last4=4821&nextPageStartKey=example_string&limit=10", {
method: "GET",
headers: {
"Content-Type": "application/json",
"Signature-Input": "example_string",
"Signature": "example_string",
"Authorization": "Bearer YOUR_API_TOKEN"
}
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api-sandbox.contasimples.com/credit-cards/v1/cards?email=card-owner%40gmail.com&status=ACTIVATED&type=PHYSICAL&productName=Marketing%20Ads&last4=4821&nextPageStartKey=example_string&limit=10", nil)
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Signature-Input", "example_string")
req.Header.Set("Signature", "example_string")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api-sandbox.contasimples.com/credit-cards/v1/cards?email=card-owner%40gmail.com&status=ACTIVATED&type=PHYSICAL&productName=Marketing%20Ads&last4=4821&nextPageStartKey=example_string&limit=10')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Content-Type'] = 'application/json'
request['Signature-Input'] = 'example_string'
request['Signature'] = 'example_string'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
response = http.request(request)
puts response.body
{
"items": [
{
"id": "example_string",
"maskedNumber": "example_string",
"cardHolderName": "John Doe",
"responsible": {
"name": "John Doe",
"email": "user@example.com"
},
"type": "PHYSICAL",
"createdAt": "2025-09-15T14:30:00.000Z",
"updatedAt": "2025-09-20T10:00:00.000Z",
"status": "ACTIVATED",
"expirationDate": "2028-12-31T23:59:59.000Z",
"name": "John Doe",
"costCenter": {
"id": "example_string",
"name": "Marketing"
},
"formattedExpirationDate": "12/2028",
"purpose": "FREE"
}
],
"nextPageStartKey": "eyJvZmZzZXQiOjB9",
"limit": 10
}
{
"error": "Bad Request",
"message": "The request contains invalid parameters or malformed data",
"code": 400,
"details": [
{
"field": "email",
"message": "Invalid email format"
}
]
}
{
"error": "Unauthorized",
"message": "Authentication required. Please provide a valid API token",
"code": 401
}
{
"error": "Not Found",
"message": "The requested resource was not found",
"code": 404
}
{
"error": "Internal Server Error",
"message": "An unexpected error occurred on the server",
"code": 500,
"requestId": "req_1234567890"
}
/credit-cards/v1/cards
Target server for requests. Edit to use your own host.
Bearer token from OAuth 2.0 client credentials. Format: Bearer TOKEN
Bearer TOKENEmail of the person responsible for the card.
Card status.
Card type.
Card product name.
Last 4 digits of the card number.
Opaque pagination token from the previous response. Pass it back unchanged to fetch the next page.
Maximum number of cards per page. Minimum: 1.
What was signed and the signature parameters, in the RFC 9421 format. A credential with a public key must send it on every call, reads included, or the request is refused with 401. The signature covers the @method, @path, and @query components, and also content-digest when there is a body. created and alg are required, and created is valid for 300 seconds. The full format, with examples, is in Request Signing.
The signature of the base defined by RFC 9421, in base64, between : and under the same label used in Signature-Input, for example sig=:SGVsbG8gd29ybGQ=:. It always goes together with Signature-Input.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. Bearer token from OAuth 2.0 client credentials. Format: Bearer TOKEN
Query Parameters
Opaque pagination token from the previous response. Pass it back unchanged to fetch the next page.
Headers
What was signed and the signature parameters, in the RFC 9421 format. A credential with a public key must send it on every call, reads included, or the request is refused with 401. The signature covers the @method, @path, and @query components, and also content-digest when there is a body. created and alg are required, and created is valid for 300 seconds. The full format, with examples, is in Request Signing.
The signature of the base defined by RFC 9421, in base64, between : and under the same label used in Signature-Input, for example sig=:SGVsbG8gd29ybGQ=:. It always goes together with Signature-Input.
Responses
List of cards.
Next page token. If absent, there is no next page. Pass to nextPageStartKey.
Items per page.