View and manage accounting integrations.
- Query accounting records
Accounting API (1.0.0-alpha)
The Accounting API allows you to manage accounting data for connecting to your accounting system. The Accounting API is currently in Alpha. To access the Accounting Alpha API, please email developer-support@brex.com to express your interest. Please note that participation is determined by Brex based on program needs. For more details, please refer to https://developer.brex.com/docs/api-launch-stages/.
- Productionhttps://api.brex.com/v3/accounting/records/{record_id}
- Staging (Note: This is not a sandbox. It will not work with customer tokens.)https://api-staging.brex.com/v3/accounting/records/{record_id}
- curl
- JavaScript
- Node.js
- Python
- Ruby
- Java
curl -i -X GET \
'https://api.brex.com/v3/accounting/records/{record_id}' \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'Accounting record retrieved successfully
Amount of the accounting record
Types of accounting records representing different financial transactions:
Card-related transactions:
CARD_EXPENSE_POST: Records when a card expense is posted and settledCARD_EXPENSE_REFUND: Records when a merchant issues a refund for a card transactionCARD_EXPENSE_REPAYMENT: Records when an employee repays money to the company for a card expenseCARD_PAYMENT: Records payments from customer to Brex for card balancesCARD_PAYMENT_REFUND: Records refunds from Brex to customer for overpaymentsREWARD_REDEMPTION: Records when a reward is redeemed
Bill-related transactions:
BILL_EXPENSE: Records when a bill expense is createdBILL_EXPENSE_PAYMENT: Records when a bill is paid through ACH/wire transferBILL_EXPENSE_CARD_PAYMENT: Records when a bill is paid using a Brex card
Reimbursement-related transactions:
REIMBURSEMENT_EXPENSE_APPROVAL: Records approval of reimbursement (accrual basis)REIMBURSEMENT_EXPENSE_POST: Records when reimbursement is fulfilled (cash basis)REIMBURSEMENT_EXPENSE_REPAYMENT: Records repayment of a reimbursement expenseREIMBURSEMENT_EXPENSE_MONEY_MOVEMENT_PAYOUT: Records payout to employee/third partyREIMBURSEMENT_EXPENSE_MONEY_MOVEMENT_PAYOUT_REVERSAL: Records reversal of payoutREIMBURSEMENT_EXPENSE_MONEY_MOVEMENT_PAYIN: Records payment from customer to BrexREIMBURSEMENT_EXPENSE_MONEY_MOVEMENT_REFUND: Records refund to customer's bank
Line items for double-entry bookkeeping
Amount for this line item. Amount is always positive for AccountingRecordLineItem.
Original amount for this line item. Amount is always positive for AccountingRecordLineItem.
Accounting field mappings
Brex internal field identifier
Remote system field identifier
Brex internal field value identifier
{ "id": "accr_abc123", "amount": { "amount": 100.5, "currency": "USD" }, "original_amount": { "amount": 100.5, "currency": "USD" }, "type": "CARD_EXPENSE_POST", "review_status": "READY_FOR_EXPORT", "source_id": "exp_xyz789", "source_type": "CARD", "erp_posting_date": "2025-04-24T16:13:49.959513Z", "updated_at": "2025-04-24T16:13:49.959513Z", "version": 1, "receipts": [ { … } ], "user": { "id": "cuuser_1234", "first_name": "John", "last_name": "Doe", "email": "john.doe@example.com", "role": "EMPLOYEE", "status": "ACTIVE" }, "vendor": null, "memo": "Business lunch with client", "posted_at": "2025-04-24T16:13:49.959513Z", "due_at": null, "invoice_number": null, "line_items": [ { … } ] }
Request
Query accounting records by IDs or with filters for polling. When building integrations with Brex accounting workflow, use filter-based polling as a fallback mechanism. Suggested cadence is 1 hour.
For card and reimbursement records: Use review_status to filter by accounting workflow stage (e.g., READY_FOR_EXPORT, EXPORTED).
For bill records: Use source_type=BILL with updated_at[gt] to poll for updated bill records.
Filter Constraints:
review_statusis only supported with CARD and REIMBURSEMENT source types
Filter by accounting record IDs. ID size is limited to 500. Example: ids=accr_xxx&ids=accr_yyy
Filter by review status. Supported values: PREPARE, REVIEW, EXPORTED, READY_FOR_EXPORT.
Filter by updated_at timestamp range in UTC. Accepts gt (greater than), gte (greater than or equal), lt (less than), lte (less than or equal). Example: updated_at[gte]=2025-01-01
- Productionhttps://api.brex.com/v3/accounting/records
- Staging (Note: This is not a sandbox. It will not work with customer tokens.)https://api-staging.brex.com/v3/accounting/records
- curl
- JavaScript
- Node.js
- Python
- Ruby
- Java
curl -i -X GET \
https://api.brex.com/v3/accounting/records \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'Query accounting records response
List of accounting records
Amount of the accounting record
Types of accounting records representing different financial transactions:
Card-related transactions:
CARD_EXPENSE_POST: Records when a card expense is posted and settledCARD_EXPENSE_REFUND: Records when a merchant issues a refund for a card transactionCARD_EXPENSE_REPAYMENT: Records when an employee repays money to the company for a card expenseCARD_PAYMENT: Records payments from customer to Brex for card balancesCARD_PAYMENT_REFUND: Records refunds from Brex to customer for overpaymentsREWARD_REDEMPTION: Records when a reward is redeemed
Bill-related transactions:
BILL_EXPENSE: Records when a bill expense is createdBILL_EXPENSE_PAYMENT: Records when a bill is paid through ACH/wire transferBILL_EXPENSE_CARD_PAYMENT: Records when a bill is paid using a Brex card
Reimbursement-related transactions:
REIMBURSEMENT_EXPENSE_APPROVAL: Records approval of reimbursement (accrual basis)REIMBURSEMENT_EXPENSE_POST: Records when reimbursement is fulfilled (cash basis)REIMBURSEMENT_EXPENSE_REPAYMENT: Records repayment of a reimbursement expenseREIMBURSEMENT_EXPENSE_MONEY_MOVEMENT_PAYOUT: Records payout to employee/third partyREIMBURSEMENT_EXPENSE_MONEY_MOVEMENT_PAYOUT_REVERSAL: Records reversal of payoutREIMBURSEMENT_EXPENSE_MONEY_MOVEMENT_PAYIN: Records payment from customer to BrexREIMBURSEMENT_EXPENSE_MONEY_MOVEMENT_REFUND: Records refund to customer's bank
Line items for double-entry bookkeeping
Amount for this line item. Amount is always positive for AccountingRecordLineItem.
Original amount for this line item. Amount is always positive for AccountingRecordLineItem.
Accounting field mappings
Brex internal field identifier
Remote system field identifier
Brex internal field value identifier
{ "items": [ { … } ], "next_cursor": null, "has_next_page": false, "total_count": 1 }
Array of export results (must contain at least one result)
ID of the accounting record the export outcome applies to
Details for a successful export
- Productionhttps://api.brex.com/v3/accounting/records/export-results
- Staging (Note: This is not a sandbox. It will not work with customer tokens.)https://api-staging.brex.com/v3/accounting/records/export-results
- curl
- JavaScript
- Node.js
- Python
- Ruby
- Java
curl -i -X POST \
https://api.brex.com/v3/accounting/records/export-results \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"results": [
{
"accounting_record_id": "accr_abc123",
"success": {
"reference_id": "erp_txn_456789",
"deep_link_url": "https://erp.com/transactions/456789"
}
}
]
}'{ "updated_accounting_record_ids": [ "accr_abc123", "accr_def456" ] }