/v1/spaces/{space_id}/transactions. Uma transação fora desse espaço recebe 404 NOT_FOUND, igual a uma que não existe.
O objeto da transação
Leia
amount com um tipo decimal, não com ponto flutuante, para não perder nenhum centavo.
Liste e exporte seu histórico
GET /v1/spaces/{space_id}/transactions devolve uma página, das mais novas para as mais antigas. A ordem é fixa: transacted_at decrescente, depois id.
Cada resposta traz
next_cursor. Envie esse valor em after para ler a próxima página, com os mesmos filtros. Na última página, next_cursor é null. O cursor é opaco: não monte nem altere esse valor.
Uma transação com data futura só aparece quando
to_date inclui a data dela.curl e jq:
Veja uma transação
GET /v1/spaces/{space_id}/transactions/{transaction_id} devolve uma transação.
Registre uma transação
POST /v1/spaces/{space_id}/transactions registra uma transação manual. Ela exige o escopo pfm:transactions:write e o header Idempotency-Key.
Registre gastos numa conta manual. Uma conta conectada já recebe todas as transações do banco, então um registro manual nela pode contar duas vezes.
Um campo fora desta tabela recebe
400 BAD_REQUEST. Um valor inválido ou um ID de outro espaço recebe 422 VALIDATION_FAILED, e o Visor não registra nada. O guia de primeiros passos tem um exemplo completo.
Registre transações em lote
POST /v1/spaces/{space_id}/transactions/batch registra de 1 a 100 transações. Ela exige o escopo pfm:transactions:write. Envie um objeto com uma lista transactions. Cada linha aceita os campos da criação individual e exige seu próprio idempotency_key. A chave aceita de 1 a 128 letras, dígitos ou - _ . :, como o header da criação individual. O lote não exige o header Idempotency-Key.
200 OK. A lista data traz um resultado por linha, na mesma ordem da entrada:
Cada linha é salva de forma independente. Uma falha não desfaz os sucessos nem impede as próximas linhas. Um valor inválido devolve
VALIDATION_FAILED com details.errors; uma linha malformada traz seu próprio erro. O objeto do lote deve conter apenas transactions, com 1 a 100 linhas. Um objeto malformado, uma lista vazia ou mais de 100 linhas devolve 400 BAD_REQUEST antes de registrar qualquer transação.
Para tentar de novo, mantenha a chave original de cada linha. A mesma conta e chave compartilham o registro de idempotência da criação individual, então a nova tentativa devolve replayed sem criar outra transação. Mudar o valor, tipo, descrição, data ou categoria devolve IDEMPOTENCY_CONFLICT naquela linha. A mesma chave pode criar outra transação em outra conta. Cada lote conta como uma requisição no limite do token.
Edite uma transação
PATCH /v1/spaces/{space_id}/transactions/{transaction_id} muda só os campos do corpo. Ela exige o escopo pfm:transactions:write.
tag_idssubstitui todas as tags. Uma lista vazia remove todas. Semtag_ids, as tags continuam.- Um texto vazio em
notesremove as notas.nullnão é aceito. - A edição é atômica. Se um valor for inválido, nada muda.
- A conta de uma transação não muda.
Exclua uma transação
DELETE /v1/spaces/{space_id}/transactions/{transaction_id} devolve 204 No Content. Ela exige o escopo pfm:transactions:write.
- O Visor apaga uma transação manual e desfaz o efeito dela no saldo da conta.
- O Visor oculta uma transação conectada, para que a próxima sincronização do banco não a traga de volta.
- Uma transação da qual outro registro depende, como uma parcela paga, recebe
409 TRANSACTION_CONFLICT.