/transactions/{id}
Update a transaction by ID. Locks apply per line: lines whose journal entries are attached to an owner statement or fall into a books-closed month are locked while the remaining lines stay editable. Changing line account, assignment, listing, or reservation context can recompute a default or forced party. See https://docs.vrplatform.app/guides/build/transactions#decision-table. For expense attachments, pass attachmentIds to replace the attached set. Omit attachmentIds to keep current attachments. Attachments are only supported for expense transactions.
Required scope: transactions:write
Authorization
apiKey API key provided in dashboard
In: header
Path Parameters
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$uuidQuery Parameters
Validate this request through the real write path, then roll back all changes. See https://docs.vrplatform.app/api/dry-run-mode.
Request Body
application/json
Root bank account; the source account for transfers
Transaction contact; required for non-opening-balance expenses
Public transaction type. Transfers are internal bank-to-bank movements; payouts represent owner or manager distributions.
"deposit" | "expense" | "transfer" | "payout"Expense attachment IDs returned by POST /transactions/attachments. Only expense transactions support attachments. Omit to leave existing attachments unchanged on update; send an array to replace the attached set.
Expense payment and reconciliation state
Lines to be added (can not be combined with "lines" in the same request)
Lines to be updated (can not be combined with "lines" in the same request)
Lines to be deleted (can not be combined with "lines" in the same request)
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PUT "https://api.vrplatform.app/transactions/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{}'{
"description": "string",
"status": "active",
"uniqueRef": "string",
"isOpeningBalance": true,
"type": "deposit",
"date": "string",
"lines": [
{
"uniqueRef": "string",
"description": "string",
"assignment": "accountsPayable",
"amount": -9007199254740991,
"ownerStatementId": "eccddabd-554b-48ab-a66d-28a57ff66fa9",
"matchReservationConfirmationCode": "string",
"matchReservationStripeGuestRef": "string",
"matchReservationProcessorBookingRef": "string",
"matchLineTypeClassification": "string",
"id": "string",
"issues": [
{
"code": "unassignedAccount",
"severity": "error",
"context": {
"lineType": "string"
}
}
],
"recurringTemplate": {
"id": "string"
},
"total": 0,
"listing": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"uniqueRef": "string",
"shortRef": "string"
},
"reservation": {
"id": "string",
"shortRef": "string",
"confirmationCode": "string",
"uniqueRef": "string",
"status": "booked",
"checkIn": "string",
"checkOut": "string"
},
"account": {
"id": "string",
"name": "string",
"uniqueRef": "string",
"status": "active"
},
"party": "owners",
"contact": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"firstName": "string",
"uniqueRef": "string",
"shortRef": "string",
"email": "user@example.com",
"type": "owner"
},
"matchStatus": "string",
"appliedAmount": {
"taxBehavior": "excluded",
"taxRate": {
"id": "string",
"name": "string",
"basisPoints": 100000
}
},
"markup": {
"amount": -9007199254740991,
"taxBehavior": "excluded",
"taxRate": {
"id": "string",
"name": "string",
"basisPoints": 100000
}
},
"lock": {
"status": "locked",
"booksClosed": {
"date": "string"
},
"ownerStatement": {
"ids": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
},
"reconciled": {
"bankRecordIds": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
},
"statementPeriod": {
"hits": [
{
"listingId": "8c73d933-f7ed-437e-9da1-caac95adc1ae",
"txnAt": "string",
"openFrom": "string"
}
]
}
}
}
],
"attachmentIds": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"recurringTemplateId": "d73afa31-bf14-4baf-aede-be5f4b4ff489",
"matchBankAccountLast4": "string",
"id": "string",
"shortRef": "string",
"lock": {
"status": "locked",
"booksClosed": {
"date": "string"
},
"ownerStatement": {
"ids": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
},
"reconciled": {
"bankRecordIds": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
},
"statementPeriod": {
"hits": [
{
"listingId": "8c73d933-f7ed-437e-9da1-caac95adc1ae",
"txnAt": "string",
"openFrom": "string"
}
]
}
},
"issues": [
{
"code": "line_unassignedAccount",
"severity": "error",
"context": {}
}
],
"currency": "string",
"amount": -9007199254740991,
"recurringTemplate": {
"id": "string"
},
"attachments": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"transactionId": "75906707-8c31-479c-b354-aa805c4cefbc",
"createdAt": "2024-01-15T12:30:00.000+00:00",
"filename": "string",
"extension": "string",
"contentType": "string",
"byteSize": -9007199254740991,
"isOwnerAccessible": true
}
],
"account": {
"id": "string",
"name": "string",
"uniqueRef": "string",
"status": "active"
},
"payment": {
"bankRecordIds": [
"string"
],
"status": "unpaid",
"lock": {
"status": "locked",
"booksClosed": {
"date": "string"
},
"ownerStatement": {
"ids": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
},
"reconciled": {
"bankRecordIds": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
},
"statementPeriod": {
"hits": [
{
"listingId": "8c73d933-f7ed-437e-9da1-caac95adc1ae",
"txnAt": "string",
"openFrom": "string"
}
]
}
},
"date": "string"
},
"connection": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"status": "active",
"uniqueRef": "string",
"appId": "string"
},
"contact": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"firstName": "string",
"uniqueRef": "string",
"shortRef": "string",
"email": "user@example.com",
"type": "owner"
},
"source": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"type": "string",
"status": "active",
"appId": "string",
"appIcon": "string"
},
"matchStatus": "string",
"matchedByBankRule": true
}{
"code": "string",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"context": null
}{
"code": "string",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"context": null
}{
"code": "string",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"context": null
}{
"code": "string",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"context": null
}{
"code": "string",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"context": null
}{
"code": "string",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"context": null
}