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 "Signature-Input: example_string" \
-H "Signature: example_string" \
-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",
"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/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",
"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/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("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/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['Signature-Input'] = 'example_string'
request['Signature'] = 'example_string'
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.
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
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.
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
Transactions in the requested range.
Next page token. If absent, there is no next page. Pass to nextPageStartKey.