Expenses
Manages expensesDocs associated with corporate card transactions. Supports approval workflows, receipt attachments, accounting field categorization, line item breakdowns, and sync with external accounting systems.
Add Expense Line ItemsBeta
POST /api/v1/spend/expenses/{id}/add_line_items
Adds between 1 and 100 line items to an existing expense. Archived expenses cannot be edited.
x-on-behalf-of headerUnique identifier of the expense.
Expense line items to create.
Non-negative line item amount in the expense transaction currency.
Accounting field selections to assign to the expense line item.
Unique identifier of the accounting value to assign to this line item. The required value depends on type: use the id returned by List GL accounts for GENERAL_LEDGER_ACCOUNT, List tax codes for TAX_CODE, or List accounting field values for OTHER.
Type of selected accounting value.
GENERAL_LEDGER_ACCOUNTGeneral ledger account that the line item is booked to.
TAX_CODETax code applied to the line item.
OTHERCustom accounting field defined in your ERP.
Optional description of the expense line item.
Unique identifier for this request to ensure idempotency.
Unique identifier of the Airwallex account that owns this expense. This determines which account the expense amount is debited from.
Merchant accounting field selection assigned to this expense for reporting and categorization in your accounting system.
Unique identifier of the merchant associated with this expense.
Type of accounting field.
MERCHANTMerchant accounting field selection.
Name of the accounting field value in the ERP.
External unique identifier of the accounting field value in the ERP.
Name of the accounting field in the ERP software. This field is not populated for merchant accounting field selections.
Name of the accounting field value displayed in Airwallex.
Email addresses of users authorized to approve this expense. An empty array indicates no approval is required or the expense has already been approved.
Receipt images and supporting documents uploaded for this expense. Commonly used for compliance and approval workflows.
MIME type of the attached file. Common types include image/jpeg, image/png, and application/pdf.
Timestamp for when the resource was created in ISO8601 format.
Original filename of the uploaded attachment, including the file extension.
URL to access and download the attachment file.
Unique identifier of the attachment.
Attendees associated with this expense, including internal employees and external guests.
Indicates whether the attendee is external to the organization.
Name of the attendee.
Email address of the attendee. Present only when external is false.
Total amount charged to your account in billing currency, including any fees or currency conversion. This may differ from the original transaction amount.
Currency in which the billing amount is charged to your account. This is your account's primary currency, regardless of the original transaction currency.
Unique identifier of the Airwallex card used to make this purchase. Links the expense to the specific card and cardholder for tracking and reporting.
Details of the original card transaction associated with an expense, including the authorization status, amount, and currency.
Amount of the original card transaction in the transaction currency.
Currency of the original card transaction, as an ISO 4217 currency code.
Transaction status.
AUTHORIZEDTransaction has been authorized by the card network but not yet settled.
CLEAREDTransaction has been settled and cleared.
REVERSEDTransaction has been reversed or refunded.
Unique identifier of the card transaction associated with the expense.
Identifies whether the expense was made using a company card or an employee card. Possible values are COMPANY and EMPLOYEE.
COMPANYExpense made using a company card.
EMPLOYEEExpense made using an employee card.
Conversation thread and notes about this expense, typically used for approval workflows and clarifications between cardholders and approvers.
Text body of the comment.
Timestamp for when the resource was created in ISO8601 format.
Email address of the user who created this comment. Used for attribution, notifications, and audit trail tracking.
Timestamp for when the resource was created in ISO8601 format.
Optional description or memo providing additional context about the expense. Often includes the business purpose or additional details about the purchase.
Unique identifier of the expense.
Invoice number associated with the expense.
Unique identifier of the legal entity associated with this expense. Used for accounting segregation and compliance reporting across different legal entities.
Breakdown of the expense into detailed line items with individual accounting categories. The sum of all line item amounts should equal the total expense amount.
Accounting and categorization fields assigned to this specific line item. Allows for different accounting treatment of individual components within a single expense.
Unique identifier of the selected general ledger (GL) account, tax code, or accounting field value.
Type of accounting field.
GENERAL_LEDGER_ACCOUNTGeneral ledger (GL) account assigned to the line item.
TAX_CODETax code applied to the line item.
OTHERCustom accounting field defined in your ERP. The field name is provided in name.
Name of the accounting field value in the ERP.
External unique identifier of the accounting field value in the ERP.
Name of the accounting field in the ERP software. This field is populated only when type is set to OTHER.
Name of the accounting field value displayed in Airwallex.
Unique identifier of the expense line item.
Optional description providing details about this specific line item. Helps explain what this component of the expense represents for accounting and approval purposes.
Amount of this line item in the transaction currency, including all taxes. Represents the actual expense amount for this specific component of the overall expense.
Name of the payee for this expense. Not linked to your accounting system.
Timestamp when the transaction was settled, in ISO8601 format. Null if transaction is still pending settlement.
Current approval status of the expense. Additional values may appear; implementations should handle unknown values gracefully.
DRAFTAWAITING_APPROVALREJECTEDAPPROVEDARCHIVEDDELETEDExpense sync status.
NOT_SYNCEDREADY_TO_SYNCSYNCEDSYNC_FAILEDTimestamp for when the resource was updated in ISO8601 format.
| Error status | Description |
|---|---|
| 400 | Invalid request. |
| 404 | Expense not found. |
| 500 | Internal server error. |
$curl --request POST \> --url 'https://api.sandbox.airwallex.com/api/v1/spend/expenses/ba46f0ff-8081-4db6-8333-4e011fe9561d/add_line_items' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json' \> --data '{> "request_id": "ee939540-3203-4a2c-9172-89a566485dd9",> "line_items": [> {> "transaction_amount": "60.50",> "description": "Client dinner",> "accounting_field_selections": [> {> "type": "GENERAL_LEDGER_ACCOUNT",> "source_id": "c9fcfdee-f943-45c9-abaa-45df1601ae04"> }> ]> },> {> "transaction_amount": "45.00",> "description": "Taxi"> }> ]>}'
1{2 "id": "ba46f0ff-8081-4db6-8333-4e011fe9561d",3 "account_id": "acct_a2y0pxz3m4k5hoZldn97hjzp",4 "legal_entity_id": "le_U3jlHqQRNHWn2zAKeeT8sg",5 "card_id": "93eed14b-104d-4f40-ae1d-3633c6538276",6 "card_type": "EMPLOYEE",7 "status": "DRAFT",8 "card_transaction": {9 "status": "CLEARED",10 "amount": "105.50",11 "currency": "USD"12 },13 "sync_status": "NOT_SYNCED",14 "billing_currency": "USD",15 "billing_amount": "105.50",16 "approvers": [],17 "created_at": "2025-01-01T00:00:00Z",18 "updated_at": "2025-02-02T00:00:00Z",19 "accounting_field_selections": [],20 "attachments": [],21 "line_items": [22 {23 "id": "a12fca5e-4aeb-4adb-85b0-428b4f078aba",24 "transaction_amount": "60.50",25 "description": "Client dinner",26 "accounting_field_selections": [27 {28 "source_id": "c9fcfdee-f943-45c9-abaa-45df1601ae04",29 "type": "GENERAL_LEDGER_ACCOUNT",30 "external_id": "6000",31 "value": "Travel & Entertainment",32 "value_label": "Travel & Entertainment"33 }34 ]35 },36 {37 "id": "9f10c7dc-3083-48c7-8c1a-bf8f76dcf600",38 "transaction_amount": "45.00",39 "description": "Taxi",40 "accounting_field_selections": []41 }42 ],43 "comments": []44}
Delete Expense Line ItemsBeta
POST /api/v1/spend/expenses/{id}/delete_line_items
Deletes between 1 and 100 expense line items. The operation is atomic. Line item totals may temporarily differ from the expense transaction amount, but must reconcile before the expense is submitted. Archived expenses cannot be edited.
x-on-behalf-of headerUnique identifier of the expense.
Unique identifiers of the expense line items to delete.
Unique identifier of the Airwallex account that owns this expense. This determines which account the expense amount is debited from.
Merchant accounting field selection assigned to this expense for reporting and categorization in your accounting system.
Unique identifier of the merchant associated with this expense.
Type of accounting field.
MERCHANTMerchant accounting field selection.
Name of the accounting field value in the ERP.
External unique identifier of the accounting field value in the ERP.
Name of the accounting field in the ERP software. This field is not populated for merchant accounting field selections.
Name of the accounting field value displayed in Airwallex.
Email addresses of users authorized to approve this expense. An empty array indicates no approval is required or the expense has already been approved.
Receipt images and supporting documents uploaded for this expense. Commonly used for compliance and approval workflows.
MIME type of the attached file. Common types include image/jpeg, image/png, and application/pdf.
Timestamp for when the resource was created in ISO8601 format.
Original filename of the uploaded attachment, including the file extension.
URL to access and download the attachment file.
Unique identifier of the attachment.
Attendees associated with this expense, including internal employees and external guests.
Indicates whether the attendee is external to the organization.
Name of the attendee.
Email address of the attendee. Present only when external is false.
Total amount charged to your account in billing currency, including any fees or currency conversion. This may differ from the original transaction amount.
Currency in which the billing amount is charged to your account. This is your account's primary currency, regardless of the original transaction currency.
Unique identifier of the Airwallex card used to make this purchase. Links the expense to the specific card and cardholder for tracking and reporting.
Details of the original card transaction associated with an expense, including the authorization status, amount, and currency.
Amount of the original card transaction in the transaction currency.
Currency of the original card transaction, as an ISO 4217 currency code.
Transaction status.
AUTHORIZEDTransaction has been authorized by the card network but not yet settled.
CLEAREDTransaction has been settled and cleared.
REVERSEDTransaction has been reversed or refunded.
Unique identifier of the card transaction associated with the expense.
Identifies whether the expense was made using a company card or an employee card. Possible values are COMPANY and EMPLOYEE.
COMPANYExpense made using a company card.
EMPLOYEEExpense made using an employee card.
Conversation thread and notes about this expense, typically used for approval workflows and clarifications between cardholders and approvers.
Text body of the comment.
Timestamp for when the resource was created in ISO8601 format.
Email address of the user who created this comment. Used for attribution, notifications, and audit trail tracking.
Timestamp for when the resource was created in ISO8601 format.
Optional description or memo providing additional context about the expense. Often includes the business purpose or additional details about the purchase.
Unique identifier of the expense.
Invoice number associated with the expense.
Unique identifier of the legal entity associated with this expense. Used for accounting segregation and compliance reporting across different legal entities.
Breakdown of the expense into detailed line items with individual accounting categories. The sum of all line item amounts should equal the total expense amount.
Accounting and categorization fields assigned to this specific line item. Allows for different accounting treatment of individual components within a single expense.
Unique identifier of the selected general ledger (GL) account, tax code, or accounting field value.
Type of accounting field.
GENERAL_LEDGER_ACCOUNTGeneral ledger (GL) account assigned to the line item.
TAX_CODETax code applied to the line item.
OTHERCustom accounting field defined in your ERP. The field name is provided in name.
Name of the accounting field value in the ERP.
External unique identifier of the accounting field value in the ERP.
Name of the accounting field in the ERP software. This field is populated only when type is set to OTHER.
Name of the accounting field value displayed in Airwallex.
Unique identifier of the expense line item.
Optional description providing details about this specific line item. Helps explain what this component of the expense represents for accounting and approval purposes.
Amount of this line item in the transaction currency, including all taxes. Represents the actual expense amount for this specific component of the overall expense.
Name of the payee for this expense. Not linked to your accounting system.
Timestamp when the transaction was settled, in ISO8601 format. Null if transaction is still pending settlement.
Current approval status of the expense. Additional values may appear; implementations should handle unknown values gracefully.
DRAFTAWAITING_APPROVALREJECTEDAPPROVEDARCHIVEDDELETEDExpense sync status.
NOT_SYNCEDREADY_TO_SYNCSYNCEDSYNC_FAILEDTimestamp for when the resource was updated in ISO8601 format.
| Error status | Description |
|---|---|
| 400 | Invalid request. |
| 404 | Expense or line item not found. |
| 500 | Internal server error. |
$curl --request POST \> --url 'https://api.sandbox.airwallex.com/api/v1/spend/expenses/ba46f0ff-8081-4db6-8333-4e011fe9561d/delete_line_items' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json' \> --data '{> "line_item_ids": [> "9f10c7dc-3083-48c7-8c1a-bf8f76dcf600"> ]>}'
1{2 "id": "ba46f0ff-8081-4db6-8333-4e011fe9561d",3 "account_id": "acct_a2y0pxz3m4k5hoZldn97hjzp",4 "legal_entity_id": "le_U3jlHqQRNHWn2zAKeeT8sg",5 "card_id": "93eed14b-104d-4f40-ae1d-3633c6538276",6 "card_type": "EMPLOYEE",7 "status": "DRAFT",8 "card_transaction": {9 "status": "CLEARED",10 "amount": "105.50",11 "currency": "USD"12 },13 "sync_status": "NOT_SYNCED",14 "billing_currency": "USD",15 "billing_amount": "105.50",16 "approvers": [],17 "created_at": "2025-01-01T00:00:00Z",18 "updated_at": "2025-02-02T00:00:00Z",19 "accounting_field_selections": [],20 "attachments": [],21 "line_items": [22 {23 "id": "a12fca5e-4aeb-4adb-85b0-428b4f078aba",24 "transaction_amount": "105.50",25 "description": "Client dinner and transport",26 "accounting_field_selections": []27 }28 ],29 "comments": []30}
Update an ExpenseBeta
POST /api/v1/spend/expenses/{id}/update
Updates the coding and details of an existing expense, such as its description, merchant, invoice number, and attendees. Archived expenses cannot be edited.
x-on-behalf-of headerUnique identifier of the expense.
List of attendees for the expense.
Whether the attendee is external to the organization.
Email address of the attendee. Present only when external is false.
Name of the attendee. Required for external attendee.
Description or memo for the expense.
Invoice number associated with the expense.
Name of the payee for this expense. Not linked to your accounting system.
Unique identifier of the Airwallex account that owns this expense. This determines which account the expense amount is debited from.
Merchant accounting field selection assigned to this expense for reporting and categorization in your accounting system.
Unique identifier of the merchant associated with this expense.
Type of accounting field.
MERCHANTMerchant accounting field selection.
Name of the accounting field value in the ERP.
External unique identifier of the accounting field value in the ERP.
Name of the accounting field in the ERP software. This field is not populated for merchant accounting field selections.
Name of the accounting field value displayed in Airwallex.
Email addresses of users authorized to approve this expense. An empty array indicates no approval is required or the expense has already been approved.
Receipt images and supporting documents uploaded for this expense. Commonly used for compliance and approval workflows.
MIME type of the attached file. Common types include image/jpeg, image/png, and application/pdf.
Timestamp for when the resource was created in ISO8601 format.
Original filename of the uploaded attachment, including the file extension.
URL to access and download the attachment file.
Unique identifier of the attachment.
Attendees associated with this expense, including internal employees and external guests.
Indicates whether the attendee is external to the organization.
Name of the attendee.
Email address of the attendee. Present only when external is false.
Total amount charged to your account in billing currency, including any fees or currency conversion. This may differ from the original transaction amount.
Currency in which the billing amount is charged to your account. This is your account's primary currency, regardless of the original transaction currency.
Unique identifier of the Airwallex card used to make this purchase. Links the expense to the specific card and cardholder for tracking and reporting.
Details of the original card transaction associated with an expense, including the authorization status, amount, and currency.
Amount of the original card transaction in the transaction currency.
Currency of the original card transaction, as an ISO 4217 currency code.
Transaction status.
AUTHORIZEDTransaction has been authorized by the card network but not yet settled.
CLEAREDTransaction has been settled and cleared.
REVERSEDTransaction has been reversed or refunded.
Unique identifier of the card transaction associated with the expense.
Identifies whether the expense was made using a company card or an employee card. Possible values are COMPANY and EMPLOYEE.
COMPANYExpense made using a company card.
EMPLOYEEExpense made using an employee card.
Conversation thread and notes about this expense, typically used for approval workflows and clarifications between cardholders and approvers.
Text body of the comment.
Timestamp for when the resource was created in ISO8601 format.
Email address of the user who created this comment. Used for attribution, notifications, and audit trail tracking.
Timestamp for when the resource was created in ISO8601 format.
Optional description or memo providing additional context about the expense. Often includes the business purpose or additional details about the purchase.
Unique identifier of the expense.
Invoice number associated with the expense.
Unique identifier of the legal entity associated with this expense. Used for accounting segregation and compliance reporting across different legal entities.
Breakdown of the expense into detailed line items with individual accounting categories. The sum of all line item amounts should equal the total expense amount.
Accounting and categorization fields assigned to this specific line item. Allows for different accounting treatment of individual components within a single expense.
Unique identifier of the selected general ledger (GL) account, tax code, or accounting field value.
Type of accounting field.
GENERAL_LEDGER_ACCOUNTGeneral ledger (GL) account assigned to the line item.
TAX_CODETax code applied to the line item.
OTHERCustom accounting field defined in your ERP. The field name is provided in name.
Name of the accounting field value in the ERP.
External unique identifier of the accounting field value in the ERP.
Name of the accounting field in the ERP software. This field is populated only when type is set to OTHER.
Name of the accounting field value displayed in Airwallex.
Unique identifier of the expense line item.
Optional description providing details about this specific line item. Helps explain what this component of the expense represents for accounting and approval purposes.
Amount of this line item in the transaction currency, including all taxes. Represents the actual expense amount for this specific component of the overall expense.
Name of the payee for this expense. Not linked to your accounting system.
Timestamp when the transaction was settled, in ISO8601 format. Null if transaction is still pending settlement.
Current approval status of the expense. Additional values may appear; implementations should handle unknown values gracefully.
DRAFTAWAITING_APPROVALREJECTEDAPPROVEDARCHIVEDDELETEDExpense sync status.
NOT_SYNCEDREADY_TO_SYNCSYNCEDSYNC_FAILEDTimestamp for when the resource was updated in ISO8601 format.
| Error status | Description |
|---|---|
| 400 | Invalid request. |
| 404 | Not found. |
| 500 | Internal server error. |
$curl --request POST \> --url 'https://api.sandbox.airwallex.com/api/v1/spend/expenses/ba46f0ff-8081-4db6-8333-4e011fe9561d/update' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json' \> --data '{> "description": "Client dinner - Q4 planning",> "merchant": "The French Laundry",> "invoice_number": "INV-2026-001",> "attendees": [> {> "external": false,> "name": "Jane Doe",> "email": "[email protected]"> }> ]>}'
1{2 "id": "ba46f0ff-8081-4db6-8333-4e011fe9561d",3 "account_id": "acct_a2y0pxz3m4k5hoZldn97hjzp",4 "legal_entity_id": "le_U3jlHqQRNHWn2zAKeeT8sg",5 "card_id": "93eed14b-104d-4f40-ae1d-3633c6538276",6 "card_type": "EMPLOYEE",7 "status": "AWAITING_APPROVAL",8 "card_transaction": {9 "status": "CLEARED",10 "amount": "105.50",11 "currency": "USD"12 },13 "sync_status": "SYNCED",14 "billing_currency": "USD",15 "billing_amount": "105.5",16 "description": "Client dinner - Q4 planning",17 "merchant": "The French Laundry",18 "invoice_number": "INV-2026-001",19 "approvers": [20 "[email protected]"21 ],22 "created_at": "2025-01-01T00:00:00Z",23 "updated_at": "2025-02-02T00:00:00Z",24 "accounting_field_selections": [25 {26 "type": "MERCHANT",27 "source_id": "ba46f0ff-8081-4db6-8333-4e011fe9561d",28 "name": null,29 "external_id": null,30 "value": "Starbucks Coffee #1234",31 "value_label": "Starbucks Coffee #1234"32 }33 ],34 "attachments": [35 {36 "id": "0fd62109-cfc0-4c94-86a5-d01c42506b76",37 "content_type": "image/jpeg",38 "file_name": "receipt.jpg",39 "file_url": "https://files.airwallex.com/receipt.jpg",40 "created_at": "2024-12-16T09:22:00Z"41 }42 ],43 "line_items": [44 {45 "id": "a12fca5e-4aeb-4adb-85b0-428b4f078aba",46 "transaction_amount": "105.50",47 "description": "Client dinner",48 "accounting_field_selections": [49 {50 "source_id": "c9fcfdee-f943-45c9-abaa-45df1601ae04",51 "type": "GENERAL_LEDGER_ACCOUNT",52 "external_id": "6000",53 "value": "Travel & Entertainment",54 "value_label": "Travel & Entertainment"55 }56 ]57 }58 ],59 "comments": [60 {61 "content": "Expense approved - valid business purpose confirmed",62 "created_by": "[email protected]",63 "created_at": "2025-01-01T00:00:00Z"64 }65 ],66 "attendees": [67 {68 "external": false,69 "name": "Jane Doe",70 "email": "[email protected]"71 }72 ]73}
Update Expense Line ItemsBeta
POST /api/v1/spend/expenses/{id}/update_line_items
Updates between 1 and 100 expense line items. The operation is atomic. Line item totals may temporarily differ from the expense transaction amount, but must reconcile before the expense is submitted. Archived expenses cannot be edited.
x-on-behalf-of headerUnique identifier of the expense.
Expense line items to update.
Unique identifier of the expense line item.
Accounting field selections to replace on the expense line item.
Unique identifier of the accounting value to assign to this line item. The required value depends on type: use the id returned by List GL accounts for GENERAL_LEDGER_ACCOUNT, List tax codes for TAX_CODE, or List accounting field values for OTHER.
Type of selected accounting value.
GENERAL_LEDGER_ACCOUNTGeneral ledger account that the line item is booked to.
TAX_CODETax code applied to the line item.
OTHERCustom accounting field defined in your ERP.
Description of the expense line item.
Non-negative line item amount in the expense transaction currency.
Unique identifier of the Airwallex account that owns this expense. This determines which account the expense amount is debited from.
Merchant accounting field selection assigned to this expense for reporting and categorization in your accounting system.
Unique identifier of the merchant associated with this expense.
Type of accounting field.
MERCHANTMerchant accounting field selection.
Name of the accounting field value in the ERP.
External unique identifier of the accounting field value in the ERP.
Name of the accounting field in the ERP software. This field is not populated for merchant accounting field selections.
Name of the accounting field value displayed in Airwallex.
Email addresses of users authorized to approve this expense. An empty array indicates no approval is required or the expense has already been approved.
Receipt images and supporting documents uploaded for this expense. Commonly used for compliance and approval workflows.
MIME type of the attached file. Common types include image/jpeg, image/png, and application/pdf.
Timestamp for when the resource was created in ISO8601 format.
Original filename of the uploaded attachment, including the file extension.
URL to access and download the attachment file.
Unique identifier of the attachment.
Attendees associated with this expense, including internal employees and external guests.
Indicates whether the attendee is external to the organization.
Name of the attendee.
Email address of the attendee. Present only when external is false.
Total amount charged to your account in billing currency, including any fees or currency conversion. This may differ from the original transaction amount.
Currency in which the billing amount is charged to your account. This is your account's primary currency, regardless of the original transaction currency.
Unique identifier of the Airwallex card used to make this purchase. Links the expense to the specific card and cardholder for tracking and reporting.
Details of the original card transaction associated with an expense, including the authorization status, amount, and currency.
Amount of the original card transaction in the transaction currency.
Currency of the original card transaction, as an ISO 4217 currency code.
Transaction status.
AUTHORIZEDTransaction has been authorized by the card network but not yet settled.
CLEAREDTransaction has been settled and cleared.
REVERSEDTransaction has been reversed or refunded.
Unique identifier of the card transaction associated with the expense.
Identifies whether the expense was made using a company card or an employee card. Possible values are COMPANY and EMPLOYEE.
COMPANYExpense made using a company card.
EMPLOYEEExpense made using an employee card.
Conversation thread and notes about this expense, typically used for approval workflows and clarifications between cardholders and approvers.
Text body of the comment.
Timestamp for when the resource was created in ISO8601 format.
Email address of the user who created this comment. Used for attribution, notifications, and audit trail tracking.
Timestamp for when the resource was created in ISO8601 format.
Optional description or memo providing additional context about the expense. Often includes the business purpose or additional details about the purchase.
Unique identifier of the expense.
Invoice number associated with the expense.
Unique identifier of the legal entity associated with this expense. Used for accounting segregation and compliance reporting across different legal entities.
Breakdown of the expense into detailed line items with individual accounting categories. The sum of all line item amounts should equal the total expense amount.
Accounting and categorization fields assigned to this specific line item. Allows for different accounting treatment of individual components within a single expense.
Unique identifier of the selected general ledger (GL) account, tax code, or accounting field value.
Type of accounting field.
GENERAL_LEDGER_ACCOUNTGeneral ledger (GL) account assigned to the line item.
TAX_CODETax code applied to the line item.
OTHERCustom accounting field defined in your ERP. The field name is provided in name.
Name of the accounting field value in the ERP.
External unique identifier of the accounting field value in the ERP.
Name of the accounting field in the ERP software. This field is populated only when type is set to OTHER.
Name of the accounting field value displayed in Airwallex.
Unique identifier of the expense line item.
Optional description providing details about this specific line item. Helps explain what this component of the expense represents for accounting and approval purposes.
Amount of this line item in the transaction currency, including all taxes. Represents the actual expense amount for this specific component of the overall expense.
Name of the payee for this expense. Not linked to your accounting system.
Timestamp when the transaction was settled, in ISO8601 format. Null if transaction is still pending settlement.
Current approval status of the expense. Additional values may appear; implementations should handle unknown values gracefully.
DRAFTAWAITING_APPROVALREJECTEDAPPROVEDARCHIVEDDELETEDExpense sync status.
NOT_SYNCEDREADY_TO_SYNCSYNCEDSYNC_FAILEDTimestamp for when the resource was updated in ISO8601 format.
| Error status | Description |
|---|---|
| 400 | Invalid request. |
| 404 | Expense or line item not found. |
| 500 | Internal server error. |
$curl --request POST \> --url 'https://api.sandbox.airwallex.com/api/v1/spend/expenses/ba46f0ff-8081-4db6-8333-4e011fe9561d/update_line_items' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json' \> --data '{> "line_items": [> {> "id": "a12fca5e-4aeb-4adb-85b0-428b4f078aba",> "transaction_amount": "65.50",> "description": "Client dinner and tip",> "accounting_field_selections": [> {> "type": "GENERAL_LEDGER_ACCOUNT",> "source_id": "c9fcfdee-f943-45c9-abaa-45df1601ae04"> }> ]> },> {> "id": "9f10c7dc-3083-48c7-8c1a-bf8f76dcf600",> "transaction_amount": "40.00"> }> ]>}'
1{2 "id": "ba46f0ff-8081-4db6-8333-4e011fe9561d",3 "account_id": "acct_a2y0pxz3m4k5hoZldn97hjzp",4 "legal_entity_id": "le_U3jlHqQRNHWn2zAKeeT8sg",5 "card_id": "93eed14b-104d-4f40-ae1d-3633c6538276",6 "card_type": "EMPLOYEE",7 "status": "DRAFT",8 "card_transaction": {9 "status": "CLEARED",10 "amount": "105.50",11 "currency": "USD"12 },13 "sync_status": "NOT_SYNCED",14 "billing_currency": "USD",15 "billing_amount": "105.50",16 "approvers": [],17 "created_at": "2025-01-01T00:00:00Z",18 "updated_at": "2025-02-02T00:00:00Z",19 "accounting_field_selections": [],20 "attachments": [],21 "line_items": [22 {23 "id": "a12fca5e-4aeb-4adb-85b0-428b4f078aba",24 "transaction_amount": "65.50",25 "description": "Client dinner and tip",26 "accounting_field_selections": [27 {28 "source_id": "c9fcfdee-f943-45c9-abaa-45df1601ae04",29 "type": "GENERAL_LEDGER_ACCOUNT",30 "external_id": "6000",31 "value": "Travel & Entertainment",32 "value_label": "Travel & Entertainment"33 }34 ]35 },36 {37 "id": "9f10c7dc-3083-48c7-8c1a-bf8f76dcf600",38 "transaction_amount": "40.00",39 "description": "Taxi",40 "accounting_field_selections": []41 }42 ],43 "comments": []44}
Retrieve an ExpenseBeta
GET /api/v1/spend/expenses/{id}
Retrieves the details of an existing expense.
spend.expense:readUnique identifier of the expense.
Unique identifier of the Airwallex account that owns this expense. This determines which account the expense amount is debited from.
Merchant accounting field selection assigned to this expense for reporting and categorization in your accounting system.
Unique identifier of the merchant associated with this expense.
Type of accounting field.
MERCHANTMerchant accounting field selection.
Name of the accounting field value in the ERP.
External unique identifier of the accounting field value in the ERP.
Name of the accounting field in the ERP software. This field is not populated for merchant accounting field selections.
Name of the accounting field value displayed in Airwallex.
Email addresses of users authorized to approve this expense. An empty array indicates no approval is required or the expense has already been approved.
Receipt images and supporting documents uploaded for this expense. Commonly used for compliance and approval workflows.
MIME type of the attached file. Common types include image/jpeg, image/png, and application/pdf.
Timestamp for when the resource was created in ISO8601 format.
Original filename of the uploaded attachment, including the file extension.
URL to access and download the attachment file.
Unique identifier of the attachment.
Attendees associated with this expense, including internal employees and external guests.
Indicates whether the attendee is external to the organization.
Name of the attendee.
Email address of the attendee. Present only when external is false.
Total amount charged to your account in billing currency, including any fees or currency conversion. This may differ from the original transaction amount.
Currency in which the billing amount is charged to your account. This is your account's primary currency, regardless of the original transaction currency.
Unique identifier of the Airwallex card used to make this purchase. Links the expense to the specific card and cardholder for tracking and reporting.
Details of the original card transaction associated with an expense, including the authorization status, amount, and currency.
Amount of the original card transaction in the transaction currency.
Currency of the original card transaction, as an ISO 4217 currency code.
Transaction status.
AUTHORIZEDTransaction has been authorized by the card network but not yet settled.
CLEAREDTransaction has been settled and cleared.
REVERSEDTransaction has been reversed or refunded.
Unique identifier of the card transaction associated with the expense.
Identifies whether the expense was made using a company card or an employee card. Possible values are COMPANY and EMPLOYEE.
COMPANYExpense made using a company card.
EMPLOYEEExpense made using an employee card.
Conversation thread and notes about this expense, typically used for approval workflows and clarifications between cardholders and approvers.
Text body of the comment.
Timestamp for when the resource was created in ISO8601 format.
Email address of the user who created this comment. Used for attribution, notifications, and audit trail tracking.
Timestamp for when the resource was created in ISO8601 format.
Optional description or memo providing additional context about the expense. Often includes the business purpose or additional details about the purchase.
Unique identifier of the expense.
Invoice number associated with the expense.
Unique identifier of the legal entity associated with this expense. Used for accounting segregation and compliance reporting across different legal entities.
Breakdown of the expense into detailed line items with individual accounting categories. The sum of all line item amounts should equal the total expense amount.
Accounting and categorization fields assigned to this specific line item. Allows for different accounting treatment of individual components within a single expense.
Unique identifier of the selected general ledger (GL) account, tax code, or accounting field value.
Type of accounting field.
GENERAL_LEDGER_ACCOUNTGeneral ledger (GL) account assigned to the line item.
TAX_CODETax code applied to the line item.
OTHERCustom accounting field defined in your ERP. The field name is provided in name.
Name of the accounting field value in the ERP.
External unique identifier of the accounting field value in the ERP.
Name of the accounting field in the ERP software. This field is populated only when type is set to OTHER.
Name of the accounting field value displayed in Airwallex.
Unique identifier of the expense line item.
Optional description providing details about this specific line item. Helps explain what this component of the expense represents for accounting and approval purposes.
Amount of this line item in the transaction currency, including all taxes. Represents the actual expense amount for this specific component of the overall expense.
Name of the payee for this expense. Not linked to your accounting system.
Timestamp when the transaction was settled, in ISO8601 format. Null if transaction is still pending settlement.
Current approval status of the expense. Additional values may appear; implementations should handle unknown values gracefully.
DRAFTAWAITING_APPROVALREJECTEDAPPROVEDARCHIVEDDELETEDExpense sync status.
NOT_SYNCEDREADY_TO_SYNCSYNCEDSYNC_FAILEDTimestamp for when the resource was updated in ISO8601 format.
| Error status | Description |
|---|---|
| 400 | Invalid request. |
| 404 | Not found. |
| 500 | Internal server error. |
$curl --request GET \> --url 'https://api.sandbox.airwallex.com/api/v1/spend/expenses/expense_id' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json'
1{2 "id": "ba46f0ff-8081-4db6-8333-4e011fe9561d",3 "account_id": "acct_a2y0pxz3m4k5hoZldn97hjzp",4 "legal_entity_id": "le_U3jlHqQRNHWn2zAKeeT8sg",5 "card_id": "93eed14b-104d-4f40-ae1d-3633c6538276",6 "card_type": "EMPLOYEE",7 "status": "AWAITING_APPROVAL",8 "card_transaction": {9 "card_transaction_id": "43aec951-3204-4b1a-9e77-8f2c1d0a1b2c",10 "status": "CLEARED",11 "amount": "105.50",12 "currency": "USD"13 },14 "sync_status": "SYNCED",15 "billing_currency": "USD",16 "billing_amount": "105.5",17 "description": "Client dinner at restaurant for Q4 planning meeting.",18 "merchant": "Starbucks Coffee #1234",19 "invoice_number": "INV-2026-001",20 "approvers": [21 "[email protected]",22 "[email protected]"23 ],24 "created_at": "2025-01-01T00:00:00Z",25 "updated_at": "2025-02-02T00:00:00Z",26 "settled_at": "2025-03-03T10:15:30Z",27 "accounting_field_selections": [28 {29 "type": "MERCHANT",30 "source_id": "ba46f0ff-8081-4db6-8333-4e011fe9561d",31 "name": null,32 "external_id": null,33 "value": "Starbucks Coffee #1234",34 "value_label": "Starbucks Coffee #1234"35 }36 ],37 "attachments": [38 {39 "id": "0fd62109-cfc0-4c94-86a5-d01c42506b76",40 "content_type": "image/jpeg",41 "file_name": "receipt.jpg",42 "file_url": "https://files.airwallex.com/receipt.jpg",43 "created_at": "2024-12-16T09:22:00Z"44 }45 ],46 "line_items": [47 {48 "id": "a12fca5e-4aeb-4adb-85b0-428b4f078aba",49 "transaction_amount": "105.50",50 "description": "Client dinner",51 "accounting_field_selections": [52 {53 "source_id": "c9fcfdee-f943-45c9-abaa-45df1601ae04",54 "type": "GENERAL_LEDGER_ACCOUNT",55 "external_id": "6000",56 "value": "Travel & Entertainment",57 "value_label": "Travel & Entertainment"58 }59 ]60 }61 ],62 "comments": [63 {64 "content": "Expense approved - valid business purpose confirmed",65 "created_by": "[email protected]",66 "created_at": "2025-01-01T00:00:00Z"67 }68 ]69}
List all ExpensesBeta
GET /api/v1/spend/expenses
List expenses based on the query parameters.
spend.expense:readFilter by card transaction properties.
Filter by card transaction statuses. Possible values are AUTHORIZED, CLEARED, REVERSED.
Filter by card types. COMPANY identifies company cards and EMPLOYEE identifies employee cards.
Filter by expenses created after this timestamp (inclusive) in ISO8601 format.
If not specified, defaults to last 30 days from to_created_at.
Filter by legal entity identifier.
A bookmark for use in pagination to retrieve either the next page or the previous page of results. You can fetch the value for this identifier from the response of the previous API call.
The number of items returned per page, between 1 and 100. The default is 100.
Filter by expense statuses. Additional values may appear; implementations should handle unknown values gracefully.
Filter by sync statuses.
Filter by expenses created before this timestamp (exclusive) in ISO8601 format.
If not specified, defaults to now.
List of items returned.
Unique identifier of the Airwallex account that owns this expense. This determines which account the expense amount is debited from.
Merchant accounting field selection assigned to this expense for reporting and categorization in your accounting system.
Unique identifier of the merchant associated with this expense.
Type of accounting field.
MERCHANTMerchant accounting field selection.
Name of the accounting field value in the ERP.
External unique identifier of the accounting field value in the ERP.
Name of the accounting field in the ERP software. This field is not populated for merchant accounting field selections.
Name of the accounting field value displayed in Airwallex.
Email addresses of users authorized to approve this expense. An empty array indicates no approval is required or the expense has already been approved.
Receipt images and supporting documents uploaded for this expense. Commonly used for compliance and approval workflows.
MIME type of the attached file. Common types include image/jpeg, image/png, and application/pdf.
Timestamp for when the resource was created in ISO8601 format.
Original filename of the uploaded attachment, including the file extension.
URL to access and download the attachment file.
Unique identifier of the attachment.
Total amount charged to your account in billing currency, including any fees or currency conversion. This may differ from the original transaction amount.
Currency in which the billing amount is charged to your account. This is your account's primary currency, regardless of the original transaction currency.
Unique identifier of the Airwallex card used to make this purchase. Links the expense to the specific card and cardholder for tracking and reporting.
Details of the original card transaction associated with an expense, including the authorization status, amount, and currency.
Amount of the original card transaction in the transaction currency.
Currency of the original card transaction, as an ISO 4217 currency code.
Transaction status.
AUTHORIZEDTransaction has been authorized by the card network but not yet settled.
CLEAREDTransaction has been settled and cleared.
REVERSEDTransaction has been reversed or refunded.
Unique identifier of the card transaction associated with the expense.
Identifies whether the expense was made using a company card or an employee card. Possible values are COMPANY and EMPLOYEE.
COMPANYExpense made using a company card.
EMPLOYEEExpense made using an employee card.
Conversation thread and notes about this expense, typically used for approval workflows and clarifications between cardholders and approvers.
Text body of the comment.
Timestamp for when the resource was created in ISO8601 format.
Email address of the user who created this comment. Used for attribution, notifications, and audit trail tracking.
Timestamp for when the resource was created in ISO8601 format.
Unique identifier of the expense.
Unique identifier of the legal entity associated with this expense. Used for accounting segregation and compliance reporting across different legal entities.
Breakdown of the expense into detailed line items with individual accounting categories. The sum of all line item amounts should equal the total expense amount.
Accounting and categorization fields assigned to this specific line item. Allows for different accounting treatment of individual components within a single expense.
Unique identifier of the selected general ledger (GL) account, tax code, or accounting field value.
Type of accounting field.
GENERAL_LEDGER_ACCOUNTGeneral ledger (GL) account assigned to the line item.
TAX_CODETax code applied to the line item.
OTHERCustom accounting field defined in your ERP. The field name is provided in name.
Name of the accounting field value in the ERP.
External unique identifier of the accounting field value in the ERP.
Name of the accounting field in the ERP software. This field is populated only when type is set to OTHER.
Name of the accounting field value displayed in Airwallex.
Unique identifier of the expense line item.
Optional description providing details about this specific line item. Helps explain what this component of the expense represents for accounting and approval purposes.
Amount of this line item in the transaction currency, including all taxes. Represents the actual expense amount for this specific component of the overall expense.
Current approval status of the expense. Additional values may appear; implementations should handle unknown values gracefully.
DRAFTAWAITING_APPROVALREJECTEDAPPROVEDARCHIVEDDELETEDExpense sync status.
NOT_SYNCEDREADY_TO_SYNCSYNCEDSYNC_FAILEDTimestamp for when the resource was updated in ISO8601 format.
Attendees associated with this expense, including internal employees and external guests.
Indicates whether the attendee is external to the organization.
Name of the attendee.
Email address of the attendee. Present only when external is false.
Optional description or memo providing additional context about the expense. Often includes the business purpose or additional details about the purchase.
Invoice number associated with the expense.
Name of the payee for this expense. Not linked to your accounting system.
Timestamp when the transaction was settled, in ISO8601 format. Null if transaction is still pending settlement.
A pointer to the end of the page list used in pagination to retrieve the next page of results.
A pointer to the start of the page list use in pagination to retrieve the previous page of results.
| Error status | Description |
|---|---|
| 400 | Invalid request. |
| 404 | Not found. |
| 500 | Internal server error. |
$curl --request GET \> --url 'https://api.sandbox.airwallex.com/api/v1/spend/expenses' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json'
1{2 "items": [3 {4 "id": "ba46f0ff-8081-4db6-8333-4e011fe9561d",5 "account_id": "acct_a2y0pxz3m4k5hoZldn97hjzp",6 "legal_entity_id": "le_U3jlHqQRNHWn2zAKeeT8sg",7 "card_id": "93eed14b-104d-4f40-ae1d-3633c6538276",8 "card_type": "EMPLOYEE",9 "status": "AWAITING_APPROVAL",10 "card_transaction": {11 "card_transaction_id": "43aec951-3204-4b1a-9e77-8f2c1d0a1b2c",12 "status": "CLEARED",13 "amount": "105.50",14 "currency": "USD"15 },16 "sync_status": "SYNCED",17 "billing_currency": "USD",18 "billing_amount": "105.5",19 "description": "Client dinner at restaurant for Q4 planning meeting.",20 "merchant": "Starbucks Coffee #1234",21 "invoice_number": "INV-2026-001",22 "approvers": [23 "[email protected]",24 "[email protected]"25 ],26 "created_at": "2025-01-01T00:00:00Z",27 "updated_at": "2025-02-02T00:00:00Z",28 "settled_at": "2025-03-03T10:15:30Z",29 "accounting_field_selections": [30 {31 "type": "MERCHANT",32 "source_id": "ba46f0ff-8081-4db6-8333-4e011fe9561d",33 "name": null,34 "external_id": null,35 "value": "Starbucks Coffee #1234",36 "value_label": "Starbucks Coffee #1234"37 }38 ],39 "attachments": [40 {41 "id": "0fd62109-cfc0-4c94-86a5-d01c42506b76",42 "content_type": "image/jpeg",43 "file_name": "receipt.jpg",44 "file_url": "https://files.airwallex.com/receipt.jpg",45 "created_at": "2024-12-16T09:22:00Z"46 }47 ],48 "line_items": [49 {50 "id": "a12fca5e-4aeb-4adb-85b0-428b4f078aba",51 "transaction_amount": "105.50",52 "description": "Client dinner",53 "accounting_field_selections": [54 {55 "source_id": "c9fcfdee-f943-45c9-abaa-45df1601ae04",56 "type": "GENERAL_LEDGER_ACCOUNT",57 "external_id": "6000",58 "value": "Travel & Entertainment",59 "value_label": "Travel & Entertainment"60 }61 ]62 }63 ],64 "comments": [65 {66 "content": "Expense approved - valid business purpose confirmed",67 "created_by": "[email protected]",68 "created_at": "2025-01-01T00:00:00Z"69 }70 ]71 }72 ],73 "page_after": "eyJwYWdlX2JlZm9yZSI6IjIwMjUtMDctMDFUMDA6MDA6MDBaIn0=",74 "page_before": "eyJwYWdlX2JlZm9yZSI6IjIwMjUtMDctMDFUMDA6MDA6MDBaIn0="75}
Update Expense Sync StatusBeta
POST /api/v1/spend/expenses/{id}/sync
Updates the sync status of an existing expense.
A sync status can only move in the following directions:
NOT_SYNCEDcan move toREADY_TO_SYNC,SYNC_FAILED, orSYNCED.READY_TO_SYNCcan move toSYNCEDorSYNC_FAILED.SYNC_FAILEDcan move toSYNCEDorREADY_TO_SYNC.SYNCEDis a final state and cannot move to any other status.
NOT_SYNCED is the initial status of an expense and cannot be set through this endpoint.
spend.expense:writeUnique identifier of the expense.
Expense sync status.
READY_TO_SYNCSYNCEDSYNC_FAILEDUnique identifier of the Airwallex account that owns this expense. This determines which account the expense amount is debited from.
Merchant accounting field selection assigned to this expense for reporting and categorization in your accounting system.
Unique identifier of the merchant associated with this expense.
Type of accounting field.
MERCHANTMerchant accounting field selection.
Name of the accounting field value in the ERP.
External unique identifier of the accounting field value in the ERP.
Name of the accounting field in the ERP software. This field is not populated for merchant accounting field selections.
Name of the accounting field value displayed in Airwallex.
Email addresses of users authorized to approve this expense. An empty array indicates no approval is required or the expense has already been approved.
Receipt images and supporting documents uploaded for this expense. Commonly used for compliance and approval workflows.
MIME type of the attached file. Common types include image/jpeg, image/png, and application/pdf.
Timestamp for when the resource was created in ISO8601 format.
Original filename of the uploaded attachment, including the file extension.
URL to access and download the attachment file.
Unique identifier of the attachment.
Attendees associated with this expense, including internal employees and external guests.
Indicates whether the attendee is external to the organization.
Name of the attendee.
Email address of the attendee. Present only when external is false.
Total amount charged to your account in billing currency, including any fees or currency conversion. This may differ from the original transaction amount.
Currency in which the billing amount is charged to your account. This is your account's primary currency, regardless of the original transaction currency.
Unique identifier of the Airwallex card used to make this purchase. Links the expense to the specific card and cardholder for tracking and reporting.
Details of the original card transaction associated with an expense, including the authorization status, amount, and currency.
Amount of the original card transaction in the transaction currency.
Currency of the original card transaction, as an ISO 4217 currency code.
Transaction status.
AUTHORIZEDTransaction has been authorized by the card network but not yet settled.
CLEAREDTransaction has been settled and cleared.
REVERSEDTransaction has been reversed or refunded.
Unique identifier of the card transaction associated with the expense.
Identifies whether the expense was made using a company card or an employee card. Possible values are COMPANY and EMPLOYEE.
COMPANYExpense made using a company card.
EMPLOYEEExpense made using an employee card.
Conversation thread and notes about this expense, typically used for approval workflows and clarifications between cardholders and approvers.
Text body of the comment.
Timestamp for when the resource was created in ISO8601 format.
Email address of the user who created this comment. Used for attribution, notifications, and audit trail tracking.
Timestamp for when the resource was created in ISO8601 format.
Optional description or memo providing additional context about the expense. Often includes the business purpose or additional details about the purchase.
Unique identifier of the expense.
Invoice number associated with the expense.
Unique identifier of the legal entity associated with this expense. Used for accounting segregation and compliance reporting across different legal entities.
Breakdown of the expense into detailed line items with individual accounting categories. The sum of all line item amounts should equal the total expense amount.
Accounting and categorization fields assigned to this specific line item. Allows for different accounting treatment of individual components within a single expense.
Unique identifier of the selected general ledger (GL) account, tax code, or accounting field value.
Type of accounting field.
GENERAL_LEDGER_ACCOUNTGeneral ledger (GL) account assigned to the line item.
TAX_CODETax code applied to the line item.
OTHERCustom accounting field defined in your ERP. The field name is provided in name.
Name of the accounting field value in the ERP.
External unique identifier of the accounting field value in the ERP.
Name of the accounting field in the ERP software. This field is populated only when type is set to OTHER.
Name of the accounting field value displayed in Airwallex.
Unique identifier of the expense line item.
Optional description providing details about this specific line item. Helps explain what this component of the expense represents for accounting and approval purposes.
Amount of this line item in the transaction currency, including all taxes. Represents the actual expense amount for this specific component of the overall expense.
Name of the payee for this expense. Not linked to your accounting system.
Timestamp when the transaction was settled, in ISO8601 format. Null if transaction is still pending settlement.
Current approval status of the expense. Additional values may appear; implementations should handle unknown values gracefully.
DRAFTAWAITING_APPROVALREJECTEDAPPROVEDARCHIVEDDELETEDExpense sync status.
NOT_SYNCEDREADY_TO_SYNCSYNCEDSYNC_FAILEDTimestamp for when the resource was updated in ISO8601 format.
| Error status | Description |
|---|---|
| 400 | Invalid request. |
| 404 | Not found. |
| 500 | Internal server error. |
$curl --request POST \> --url 'https://api.sandbox.airwallex.com/api/v1/spend/expenses/expense_id/sync' \> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \> --header 'Content-Type: application/json' \> --data '{> "sync_status": "SYNCED">}'
1{2 "id": "ba46f0ff-8081-4db6-8333-4e011fe9561d",3 "account_id": "acct_a2y0pxz3m4k5hoZldn97hjzp",4 "legal_entity_id": "le_U3jlHqQRNHWn2zAKeeT8sg",5 "card_id": "93eed14b-104d-4f40-ae1d-3633c6538276",6 "card_type": "EMPLOYEE",7 "status": "AWAITING_APPROVAL",8 "card_transaction": {9 "card_transaction_id": "43aec951-3204-4b1a-9e77-8f2c1d0a1b2c",10 "status": "CLEARED",11 "amount": "105.50",12 "currency": "USD"13 },14 "sync_status": "SYNCED",15 "billing_currency": "USD",16 "billing_amount": "105.5",17 "description": "Client dinner at restaurant for Q4 planning meeting.",18 "merchant": "Starbucks Coffee #1234",19 "approvers": [20 "[email protected]",21 "[email protected]"22 ],23 "created_at": "2025-01-01T00:00:00Z",24 "updated_at": "2025-02-02T00:00:00Z",25 "settled_at": "2025-03-03T10:15:30Z",26 "accounting_field_selections": [27 {28 "type": "MERCHANT",29 "source_id": "ba46f0ff-8081-4db6-8333-4e011fe9561d",30 "name": null,31 "external_id": null,32 "value": "Starbucks Coffee #1234",33 "value_label": "Starbucks Coffee #1234"34 }35 ],36 "attachments": [37 {38 "id": "0fd62109-cfc0-4c94-86a5-d01c42506b76",39 "content_type": "image/jpeg",40 "file_name": "receipt.jpg",41 "file_url": "https://files.airwallex.com/receipt.jpg",42 "created_at": "2024-12-16T09:22:00Z"43 }44 ],45 "line_items": [46 {47 "id": "a12fca5e-4aeb-4adb-85b0-428b4f078aba",48 "transaction_amount": "105.50",49 "description": "Client dinner",50 "accounting_field_selections": [51 {52 "source_id": "c9fcfdee-f943-45c9-abaa-45df1601ae04",53 "type": "GENERAL_LEDGER_ACCOUNT",54 "external_id": "6000",55 "value": "Travel & Entertainment",56 "value_label": "Travel & Entertainment"57 }58 ]59 }60 ],61 "comments": [62 {63 "content": "Expense approved - valid business purpose confirmed",64 "created_by": "[email protected]",65 "created_at": "2025-01-01T00:00:00Z"66 }67 ]68}