Atualizar Transação de Cartão
Atualiza informações editáveis de uma transação de cartão de crédito, identificada por transactionId.
Use este endpoint para enriquecer despesas no seu fluxo de conciliação ou ERP — por exemplo, registrar contexto da compra, conciliar a transação ou classificá-la por categoria.
Campos editáveis hoje:
notes— observação da transação (máximo 1000 caracteres). Envie string vazia ("") para limpar.isConciled— marca a transação como conciliada (true) ou desconciliada (false).categoryId— ID numérico da categoria.costCenterId— UUID do centro de custo (use o valor do campoidretornado em GET /cost-centers/v1/cost-centers).
Regras:
- O
transactionIddeve ser oidda transação retornado no extrato (GET /statements/v1/credit-card) — ULID (ex.:01JB4M8WQ2YX5KN7RT9HF3DE6C); não é UUID. - Ao menos um campo deve ser informado no corpo.
- Em caso de sucesso, a API retorna 204 No Content (sem corpo).
curl -X PATCH "https://api-sandbox.contasimples.com/statements/v1/credit-card/01JB4M8WQ2YX5KN7RT9HF3DE6C" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"notes": "Almoço com cliente Acme — reunião comercial 25/05",
"isConciled": true,
"categoryId": 1146,
"costCenterId": "a02f8f63-8b1b-4328-9d7d-0d2e351b8118"
}'
import requests
import json
url = "https://api-sandbox.contasimples.com/statements/v1/credit-card/01JB4M8WQ2YX5KN7RT9HF3DE6C"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
data = {
"notes": "Almoço com cliente Acme — reunião comercial 25/05",
"isConciled": true,
"categoryId": 1146,
"costCenterId": "a02f8f63-8b1b-4328-9d7d-0d2e351b8118"
}
response = requests.patch(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api-sandbox.contasimples.com/statements/v1/credit-card/01JB4M8WQ2YX5KN7RT9HF3DE6C", {
method: "PATCH",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
},
body: JSON.stringify({
"notes": "Almoço com cliente Acme — reunião comercial 25/05",
"isConciled": true,
"categoryId": 1146,
"costCenterId": "a02f8f63-8b1b-4328-9d7d-0d2e351b8118"
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"notes": "Almoço com cliente Acme — reunião comercial 25/05",
"isConciled": true,
"categoryId": 1146,
"costCenterId": "a02f8f63-8b1b-4328-9d7d-0d2e351b8118"
}`)
req, err := http.NewRequest("PATCH", "https://api-sandbox.contasimples.com/statements/v1/credit-card/01JB4M8WQ2YX5KN7RT9HF3DE6C", bytes.NewBuffer(data))
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/01JB4M8WQ2YX5KN7RT9HF3DE6C')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request.body = '{
"notes": "Almoço com cliente Acme — reunião comercial 25/05",
"isConciled": true,
"categoryId": 1146,
"costCenterId": "a02f8f63-8b1b-4328-9d7d-0d2e351b8118"
}'
response = http.request(request)
puts response.body
{}
{
"error": "Bad Request",
"message": "Um ou mais parâmetros da requisição são inválidos.",
"code": 400,
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"details": [
"O campo exemplo deve ter um valor entre 5 e 100.",
"datas devem estar no formato YYYY-MM-DD."
]
}
{
"error": "Unauthorized",
"message": "Token de acesso inválido ou expirado.",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"code": 401
}
{
"error": "Forbidden",
"message": "Você não tem permissão para realizar esta operação.",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"code": 403
}
{
"error": "Not Found",
"message": "O recurso solicitado não foi encontrado.",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"code": 404
}
{
"error": "Unprocessable Entity",
"message": "A categoria informada não existe ou não pertence à empresa.",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"code": 422
}
{
"error": "Internal Server Error",
"message": "Ocorreu um erro inesperado ao processar a solicitação.",
"requestId": "123e4567-e89b-12d3-a456-426614174000",
"code": 500
}
/statements/v1/credit-card/{transactionId}Target server for requests. Edit to use your own host.
Token Bearer obtido via OAuth 2.0 Client Credentials. Formato: Bearer {token}
Bearer {token}ID da transação no extrato (ULID) — use o valor do campo id retornado em GET /statements/v1/credit-card (ex.: 01JB4M8WQ2YX5KN7RT9HF3DE6C).
The media type of the request body
Observação da transação. Envie string vazia ("") para limpar.
Marca a transação como conferida (true) ou pendente (false).
ID da categoria — use o valor do campo id retornado em GET /categories/v1/categories.
UUID do centro de custo — use o valor do campo id retornado em GET /cost-centers/v1/cost-centers.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. Token Bearer obtido via OAuth 2.0 Client Credentials. Formato: Bearer {token}
Path Parameters
ID da transação no extrato (ULID) — use o valor do campo id retornado em GET /statements/v1/credit-card (ex.: 01JB4M8WQ2YX5KN7RT9HF3DE6C).
Body
Observação da transação. Envie string vazia ("") para limpar.
Marca a transação como conferida (true) ou pendente (false).
ID da categoria — use o valor do campo id retornado em GET /categories/v1/categories.
UUID do centro de custo — use o valor do campo id retornado em GET /cost-centers/v1/cost-centers.
Responses
Transação atualizada com sucesso. Sem corpo na resposta (No Content).
Breve identificação do tipo de erro (ex.: Bad Request, Not Found).
Descrição breve do erro para o cliente da API.
Código HTTP do erro (corresponde ao status da resposta).
Opcional. Em erros 400, pode ser uma string com um único detalhe ou um array de strings com cada falha de validação.
Breve identificação do tipo de erro (ex.: Bad Request, Not Found).
Descrição breve do erro para o cliente da API.
Código HTTP do erro (corresponde ao status da resposta).
Opcional. Em erros 400, pode ser uma string com um único detalhe ou um array de strings com cada falha de validação.
Breve identificação do tipo de erro (ex.: Bad Request, Not Found).
Descrição breve do erro para o cliente da API.
Código HTTP do erro (corresponde ao status da resposta).
Opcional. Em erros 400, pode ser uma string com um único detalhe ou um array de strings com cada falha de validação.
Breve identificação do tipo de erro (ex.: Bad Request, Not Found).
Descrição breve do erro para o cliente da API.
Código HTTP do erro (corresponde ao status da resposta).
Opcional. Em erros 400, pode ser uma string com um único detalhe ou um array de strings com cada falha de validação.
Breve identificação do tipo de erro (ex.: Bad Request, Not Found).
Descrição breve do erro para o cliente da API.
Código HTTP do erro (corresponde ao status da resposta).
Opcional. Em erros 400, pode ser uma string com um único detalhe ou um array de strings com cada falha de validação.
Breve identificação do tipo de erro (ex.: Bad Request, Not Found).
Descrição breve do erro para o cliente da API.
Código HTTP do erro (corresponde ao status da resposta).
Opcional. Em erros 400, pode ser uma string com um único detalhe ou um array de strings com cada falha de validação.