Download OpenAPI specification:Download
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/.
Create a new accounting integration. The behavior depends on the existing active integration:
This ensures only one active integration exists per account.
Integration created successfully
Bad request
Unauthorized
Forbidden
Active integration exists with different vendor or different vendor account ID
Internal server error
{- "vendor": "ERP_A",
- "vendor_account_id": "vendor_account_id"
}{- "id": "int_abc123",
- "vendor": "ERP_A",
- "status": "ACTIVE",
- "created_at": "2025-08-15T10:00:00Z",
- "vendor_account_id": "vendor_account_id"
}Disconnect an active accounting integration.
Integration disconnected successfully
Unauthorized
Forbidden
Integration not found
Integration is not active
Internal server error
{- "id": "int_abc123",
- "vendor": "ERP_A",
- "status": "DISABLED",
- "created_at": "2025-08-15T10:00:00Z",
- "vendor_account_id": "vendor_account_id"
}Reactivate a disconnected accounting integration.
Integration reactivated successfully
Unauthorized
Forbidden
Integration not found
Active integration already exists
Internal server error
{- "id": "int_abc123",
- "vendor": "ERP_A",
- "status": "ACTIVE",
- "created_at": "2025-08-15T10:00:00Z",
- "vendor_account_id": "vendor_account_id"
}Retrieve a single accounting record by its unique identifier
Accounting record retrieved successfully
Bad request
Unauthorized
Forbidden
Record not found
Internal server error
{- "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,
- "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": [
- {
- "id": "arli_abc123",
- "type": "DEBIT",
- "amount": {
- "amount": 100.5,
- "currency": "USD"
}, - "original_amount": {
- "amount": 100.5,
- "currency": "USD"
}, - "memo": "Office supplies",
- "accounting_field_values": [
- {
- "brex_field_id": "ef_123",
- "remote_field_id": "1",
- "brex_field_value_id": "efo_123",
- "remote_field_value_id": "123"
}
]
}
]
}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_status is only supported with CARD and REIMBURSEMENT source typesQuery accounting records response
Bad request
Unauthorized
Forbidden
Internal server error
{- "items": [
- {
- "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,
- "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": [
- {
- "id": "arli_abc123",
- "type": "DEBIT",
- "amount": {
- "amount": 100.5,
- "currency": "USD"
}, - "original_amount": {
- "amount": 100.5,
- "currency": "USD"
}, - "memo": "Office supplies",
- "accounting_field_values": [
- {
- "brex_field_id": "ef_123",
- "remote_field_id": "1",
- "brex_field_value_id": "efo_123",
- "remote_field_value_id": "123"
}
]
}
]
}
], - "next_cursor": null,
- "has_next_page": false,
- "total_count": 1
}Report export success or failure for accounting records.
required | Array of SuccessfulExportResult (object) or FailedExportResult (object) non-empty Array of export results (must contain at least one result) |
Export results processed successfully
Not found - Given accounting record id is not found
Validation failed (duplicate accounting record ids or records not READY_FOR_EXPORT)
Internal server error
{- "results": [
- {
- "accounting_record_id": "accr_abc123",
- "success": {
- "reference_id": "erp_txn_456789",
}
}
]
}{- "updated_accounting_record_ids": [
- "accr_abc123",
- "accr_def456"
]
}