Skip to main content
PUT
Update a transaction by ID.

Authorizations

Authorization
string
header
required

Token da sessão no cabeçalho Authorization, no formato Bearer (mesmo esquema ApiKeyAuth do contrato).

Headers

x-company-id
string
required

company uuid

Path Parameters

id
string
required

Transaction ID

Body

application/json

Transaction data (com reason opcional)

amount
number
bank_account_id
string
coa_id
integer
competence
string<date>
contact
string
cost_center_id
string

CostCenterID e BankAccountID seguem string (e não ponteiro): o corpo atual continua válido byte a byte, e ausência de conta deixou de ser erro por si só — passou a depender de haver, ou não, cartão no lugar dela.

credit_card_account_id
string

CreditCardAccountID é a SEGUNDA origem possível (Decisão B). Aditivo: ausente, tudo se comporta exatamente como antes desta feature.

due_date
string<date>

DueDate, Competence e PaymentDate são DateOnly (não time.Time): aceitam "AAAA-MM-DD" (Swagger) e RFC3339 (frontend web) — ver date_only.go.

installments
integer

Installments é PONTEIRO para distinguir "ausente" de "1". Os dois significam à vista, mas só o ponteiro permite recusar installments enviado junto com conta bancária — silenciar levaria o usuário a crer que parcelou algo que não foi parcelado (mesma regra que a coluna Parcelas do CSV tem na spec).

O TETO (24, decisão Q2) NÃO é validado aqui: quem o decide é creditcardrepo.validatePurchaseRequest, via ErrInstallmentsOutOfRange, e duplicar o número neste arquivo criaria duas fontes para o mesmo limite.

more_infos
string
payment_date
string<date>
reason
string

Reason é lido SÓ pelo PUT de lançamento de conta bancária (paid-transaction-reversal / T7): obrigatório quando a edição move dinheiro (valor, conta ou tipo de lançamento pago — RN7), ignorado quando não move. O POST de criação o ignora.

reference
string
supplier_id
string
tags
string[]
type
string
url
string

Response

OK

message
string