Reverse journal
curl --request POST \
--url https://api.entendre.finance/v1/journal-entries/{journal_id}/reverse \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'X-API-Key: <api-key>'const options = {
method: 'POST',
headers: {'Idempotency-Key': '<idempotency-key>', 'X-API-Key': '<api-key>'}
};
fetch('https://api.entendre.finance/v1/journal-entries/{journal_id}/reverse', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.entendre.finance/v1/journal-entries/{journal_id}/reverse"
headers = {
"Idempotency-Key": "<idempotency-key>",
"X-API-Key": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text){
"data": {
"id": "je_507f1f77bcf86cd799439011",
"organization_id": "org_507f1f77bcf86cd799439011",
"sequence_number": "JE-42",
"status": "draft",
"originated_by": "user",
"accounting_date": "2026-08-31T12:00:00Z",
"posted_at": null,
"memo": "Record August opening balance",
"source_type": "MANUAL",
"sync_date": null,
"last_synced_at": null,
"last_unsynced_at": null,
"legal_entity_id": "le_507f1f77bcf86cd799439011",
"transaction_id": null,
"transaction_sequence_number": null,
"accounting_period_id": null,
"classification": null,
"tag_ids": [],
"reversal_chain": {
"previous_entry_id": null,
"next_entry_id": null
},
"period_auto_reassigned": false,
"intended_accounting_date": null,
"legal_entity_auto_assigned": false,
"lines": [
{
"id": "jel_507f1f77bcf86cd799439011",
"ledger_account_id": "lac_507f1f77bcf86cd799439011",
"legal_entity_id": "le_507f1f77bcf86cd799439011",
"credit_or_debit": "DEBIT",
"amount": "100.00",
"currency": "USD",
"memo": null,
"tag_ids": []
},
{
"id": "jel_507f1f77bcf86cd799439012",
"ledger_account_id": "lac_507f1f77bcf86cd799439012",
"legal_entity_id": "le_507f1f77bcf86cd799439011",
"credit_or_debit": "CREDIT",
"amount": "100.00",
"currency": "USD",
"memo": null,
"tag_ids": []
}
],
"is_sync": false,
"latest_gl_sync_attempt": null,
"created_at": "2026-08-31T12:00:00Z",
"updated_at": "2026-08-31T12:00:00Z"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid path, query or request body.",
"request_id": "req_example"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"request_id": "req_example"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient access to organization",
"request_id": "req_example"
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found",
"request_id": "req_example"
}
}{
"error": {
"code": "CONFLICT",
"message": "The resource state does not allow this operation.",
"request_id": "req_example"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 30s.",
"request_id": "req_example"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error",
"request_id": "req_example"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service unavailable.",
"request_id": "req_example"
}
}Journals
Reverse journal
Creates a linked journal that reverses the original journal.
POST
/
v1
/
journal-entries
/
{journal_id}
/
reverse
Reverse journal
curl --request POST \
--url https://api.entendre.finance/v1/journal-entries/{journal_id}/reverse \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'X-API-Key: <api-key>'const options = {
method: 'POST',
headers: {'Idempotency-Key': '<idempotency-key>', 'X-API-Key': '<api-key>'}
};
fetch('https://api.entendre.finance/v1/journal-entries/{journal_id}/reverse', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.entendre.finance/v1/journal-entries/{journal_id}/reverse"
headers = {
"Idempotency-Key": "<idempotency-key>",
"X-API-Key": "<api-key>"
}
response = requests.post(url, headers=headers)
print(response.text){
"data": {
"id": "je_507f1f77bcf86cd799439011",
"organization_id": "org_507f1f77bcf86cd799439011",
"sequence_number": "JE-42",
"status": "draft",
"originated_by": "user",
"accounting_date": "2026-08-31T12:00:00Z",
"posted_at": null,
"memo": "Record August opening balance",
"source_type": "MANUAL",
"sync_date": null,
"last_synced_at": null,
"last_unsynced_at": null,
"legal_entity_id": "le_507f1f77bcf86cd799439011",
"transaction_id": null,
"transaction_sequence_number": null,
"accounting_period_id": null,
"classification": null,
"tag_ids": [],
"reversal_chain": {
"previous_entry_id": null,
"next_entry_id": null
},
"period_auto_reassigned": false,
"intended_accounting_date": null,
"legal_entity_auto_assigned": false,
"lines": [
{
"id": "jel_507f1f77bcf86cd799439011",
"ledger_account_id": "lac_507f1f77bcf86cd799439011",
"legal_entity_id": "le_507f1f77bcf86cd799439011",
"credit_or_debit": "DEBIT",
"amount": "100.00",
"currency": "USD",
"memo": null,
"tag_ids": []
},
{
"id": "jel_507f1f77bcf86cd799439012",
"ledger_account_id": "lac_507f1f77bcf86cd799439012",
"legal_entity_id": "le_507f1f77bcf86cd799439011",
"credit_or_debit": "CREDIT",
"amount": "100.00",
"currency": "USD",
"memo": null,
"tag_ids": []
}
],
"is_sync": false,
"latest_gl_sync_attempt": null,
"created_at": "2026-08-31T12:00:00Z",
"updated_at": "2026-08-31T12:00:00Z"
}
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid path, query or request body.",
"request_id": "req_example"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required.",
"request_id": "req_example"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient access to organization",
"request_id": "req_example"
}
}{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Resource not found",
"request_id": "req_example"
}
}{
"error": {
"code": "CONFLICT",
"message": "The resource state does not allow this operation.",
"request_id": "req_example"
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 30s.",
"request_id": "req_example"
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error",
"request_id": "req_example"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service unavailable.",
"request_id": "req_example"
}
}Entendre sets the reversal date, accounting period and lines. You cannot send a reversal date or a reason. The original journal stays available.
Authorizations
Your organization API key. Some operations also need a key that is associated with a user; their pages say so.
Headers
Unique key for this operation. Retry with the same key and request body after a timeout. Keys are retained for at least 24 hours.
Required string length:
1 - 255Path Parameters
ID of the journal.
Minimum string length:
1