Card statement
Returns card transactions for a date range. The response is paginated and includes card, category, cost center, status, and attachments.
Rules:
- The range between
startDateandendDatemust not exceed 62 days. limitmust be between 5 and 100 per page.- Use
nextPageStartKeyto paginate (cursor).
See also: Data dictionary for field meanings; Best practices for pagination and retry patterns.
curl -X GET "https://api-sandbox.contasimples.com/statements/v1/credit-card?limit=50&startDate=2025-09-01&endDate=2025-09-30&types=%5B%22PURCHASE%22%5D&cardIds=cardId1%2CcardId2&nextPageStartKey=example_string" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"
import requests
import json
url = "https://api-sandbox.contasimples.com/statements/v1/credit-card?limit=50&startDate=2025-09-01&endDate=2025-09-30&types=%5B%22PURCHASE%22%5D&cardIds=cardId1%2CcardId2&nextPageStartKey=example_string"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch("https://api-sandbox.contasimples.com/statements/v1/credit-card?limit=50&startDate=2025-09-01&endDate=2025-09-30&types=%5B%22PURCHASE%22%5D&cardIds=cardId1%2CcardId2&nextPageStartKey=example_string", {
method: "GET",
headers: {
"Content-Type": "application/json",
"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/statements/v1/credit-card?limit=50&startDate=2025-09-01&endDate=2025-09-30&types=%5B%22PURCHASE%22%5D&cardIds=cardId1%2CcardId2&nextPageStartKey=example_string", nil)
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
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/statements/v1/credit-card?limit=50&startDate=2025-09-01&endDate=2025-09-30&types=%5B%22PURCHASE%22%5D&cardIds=cardId1%2CcardId2&nextPageStartKey=example_string')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
response = http.request(request)
puts response.body
{
"transactions": [
{
"id": "example_string",
"operation": "CASH_IN",
"transactionDate": "2025-09-15T14:30:00.000Z",
"status": "PENDING",
"isCanceled": true,
"type": "PURCHASE",
"merchant": "example_string",
"amountBrl": 150.75,
"exchangeRateUsd": 0,
"card": {
"id": "example_string",
"maskedNumber": "example_string",
"responsibleName": "John Doe",
"responsibleEmail": "user@example.com",
"type": "VIRTUAL"
},
"category": {
"id": "example_string",
"name": "Food & dining"
},
"costCenter": {
"id": "example_string",
"name": "Marketing"
},
"isConciled": true,
"installment": 1,
"attachments": [
{
"id": "example_string",
"name": "receipt.pdf",
"type": "image/jpeg",
"_links": {
"content": {
"href": "/attachments/v1/content/{id}",
"rel": "GET"
}
}
}
],
"notes": "example_string"
}
],
"nextPageStartKey": "example_string"
}
{
"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"
}
/statements/v1/credit-card
Target server for requests. Edit to use your own host.
Bearer token from OAuth 2.0 client credentials. Format: Bearer TOKEN
Bearer TOKENMaximum number of transactions per page. Min: 5, max: 100.
Start of the date range (YYYY-MM-DD). The full range may not exceed 62 days.
End of the date range (YYYY-MM-DD). The full range may not exceed 62 days.
Optional filter by transaction type(s).
Optional filter by card ID(s) (comma-separated).
Opaque pagination token from the previous response. Pass it back unchanged to fetch the next page.
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
Start of the date range (YYYY-MM-DD). The full range may not exceed 62 days.
2025-09-01End of the date range (YYYY-MM-DD). The full range may not exceed 62 days.
2025-09-30Optional filter by transaction type(s).
Opaque pagination token from the previous response. Pass it back unchanged to fetch the next page.
Responses
Transactions in the requested range.
Next page token. If absent, there is no next page. Pass to nextPageStartKey.