Airwallex logo

ReimbursementsBeta

Copy for LLMView as Markdown

Manages out-of-pocket expense reimbursements, including individual requests and grouped reports. Supports approval workflows, receipt attachments, payment processing, and sync with external accounting systems.

Endpoints
GET /api/v1/spend/reimbursement_reports
GET /api/v1/spend/reimbursement_reports/{id}
POST /api/v1/spend/reimbursement_reports/{id}/mark_as_paid
GET /api/v1/spend/reimbursement_reports/{id}/reimbursements
GET /api/v1/spend/reimbursement_reports/{id}/reimbursements/{reimbursement_id}
POST /api/v1/spend/reimbursement_reports/{id}/sync
GET /api/v1/spend/reimbursement_reports/{id}/transfers/{transfer_id}
POST /api/v1/spend/reimbursement_reports/{id}/transfers/{transfer_id}/sync

List reimbursement reports

GET /api/v1/spend/reimbursement_reports

List reimbursement reports based on the query parameters.

Parameters
approverstring

Filter by approver user email.

from_updated_atstring

Filter by reimbursement reports updated after this timestamp (inclusive) in ISO8601 format.

legal_entity_idstring

Filter by legal entity unique identifier.

pagestring

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.

statusarray

Filter by reimbursement report statuses. Possible values are DRAFT, AWAITING_APPROVAL, AWAITING_PAYMENT, PAYMENT_IN_PROGRESS, PAID, REJECTED, MARKED_AS_PAID.

sync_statusarray

Filter by sync statuses. Possible values are NOT_SYNCED, SYNCED, SYNC_FAILED.

to_updated_atstring

Filter by reimbursement reports updated before this timestamp (exclusive) in ISO8601 format.

Response body - 200 OK
itemsarray
items.accounting_field_selectionsarray

Accounting and categorization fields assigned to this reimbursement report as a whole. Includes general ledger accounts, cost centers, departments, and custom accounting dimensions for proper reimbursement categorization and reporting in your ERP system.

items.accounting_field_selections.typestring

Type of accounting field. Possible values are SUBSIDIARY, MERCHANT, GENERAL_LEDGER_ACCOUNT, TAX_CODE, CLASS, DEPARTMENT, LOCATION, PROJECT, OTHER.

items.accounting_field_selections.valuestring

Name of the accounting field value in the ERP.

items.accounting_field_selections.external_idstring

External unique identifier of the accounting field value in the ERP.

items.accounting_field_selections.namestring

Name of the accounting field in the ERP software. This field is populated only when type is set to OTHER.

items.accounting_field_selections.value_labelstring

Name of the accounting field value displayed in Airwallex.

items.approversarray

Email addresses of users authorized to approve this reimbursement report. Defines the approval workflow and who can authorize payment processing.

items.commentsarray

List of comments on reimbursement report.

items.comments.contentstring

Text body of the comment.

items.comments.created_atstring

Timestamp for when the resource was created in ISO8601 format.

items.comments.created_bystring

Email address of the user who created this comment. Used for attribution, notifications, and audit trail tracking.

items.created_atstring

Timestamp for when the resource was created in ISO8601 format.

items.idstring

Unique identifier of the reimbursement report.

items.legal_entity_idstring

Unique identifier of the business entity associated with this reimbursement report. Used for accounting segregation and compliance reporting across different business entities.

items.reimbursement_report_transfer_idsarray

Set of unique identifiers of reimbursement report transfers associated with this report. Contains all transfers that have a valid bank transfer unique identifier and are associated with this report. Empty set when no qualifying transfers exist.

items.statusstring

Current status of the reimbursement report. Possible values: DRAFT, AWAITING_APPROVAL, AWAITING_PAYMENT, PAYMENT_IN_PROGRESS, PAID, REJECTED, MARKED_AS_PAID. Additional values may appear; implementations should handle unknown values gracefully.

DRAFT, AWAITING_APPROVAL, AWAITING_PAYMENT, PAYMENT_IN_PROGRESS, PAID, DELETED, REJECTED, MARKED_AS_PAID

items.sync_statusstring

Sync status for an accounting system. Possible values are NOT_SYNCED, SYNCED, SYNC_FAILED.

items.updated_atstring

Timestamp for when the resource was updated in ISO8601 format.

items.beneficiary_idstring

Unique identifier of the person who will receive the reimbursement payment.

items.billing_currencystring

Currency in which the reimbursement is paid to the beneficiary, as an ISO 4217 currency code.

items.created_bystring

Email address of the user who submitted this reimbursement report.

items.namestring

User-defined name for the reimbursement report.

page_afterstring

A pointer to the end of the page list used in pagination to retrieve the next page of results.

page_beforestring

A pointer to the start of the page list use in pagination to retrieve the previous page of results.

Errors
Error statusDescription
400

Invalid Request.

404

Not found.

500

Internal server error.

GET /api/v1/spend/reimbursement_reports
$curl --request GET \
> --url 'https://api.airwallex.com/api/v1/spend/reimbursement_reports' \
> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
> --header 'Content-Type: application/json'
Response (200 OK)
1{
2 "items": [
3 {
4 "approvers": [],
5 "beneficiary_id": null,
6 "billing_currency": "USD",
7 "created_at": "2025-01-01T00:00:00Z",
8 "created_by": "[email protected]",
9 "id": "5ff441f8-1721-4148-b73a-bf690733f0f4",
10 "legal_entity_id": "le_U3jlHqQRNHWn2zAKeeT8sg",
11 "name": "Reimbursement report 2025-11-24",
12 "status": "DRAFT",
13 "sync_status": "NOT_SYNCED",
14 "updated_at": "2025-02-02T00:00:00Z"
15 }
16 ],
17 "page_after": "eyJwYWdlX2JlZm9yZSI6IjIwMjUtMDctMDFUMDA6MDA6MDBaIn0=",
18 "page_before": "eyJwYWdlX2JlZm9yZSI6IjIwMjUtMDctMDFUMDA6MDA6MDBaIn0="
19}
Was this section helpful?

Get reimbursement report

GET /api/v1/spend/reimbursement_reports/{id}

Retrieves the details of an existing reimbursement report.

Parameters
idrequiredstring

Unique identifier of the reimbursement report.

Response body - 200 OK
accounting_field_selectionsarray

Accounting and categorization fields assigned to this reimbursement report as a whole. Includes general ledger accounts, cost centers, departments, and custom accounting dimensions for proper reimbursement categorization and reporting in your ERP system.

accounting_field_selections.typestring

Type of accounting field. Possible values are SUBSIDIARY, MERCHANT, GENERAL_LEDGER_ACCOUNT, TAX_CODE, CLASS, DEPARTMENT, LOCATION, PROJECT, OTHER.

accounting_field_selections.valuestring

Name of the accounting field value in the ERP.

accounting_field_selections.external_idstring

External unique identifier of the accounting field value in the ERP.

accounting_field_selections.namestring

Name of the accounting field in the ERP software. This field is populated only when type is set to OTHER.

accounting_field_selections.value_labelstring

Name of the accounting field value displayed in Airwallex.

approversarray

Email addresses of users authorized to approve this reimbursement report. Defines the approval workflow and who can authorize payment processing.

beneficiary_idstring

Unique identifier of the person who will receive the reimbursement payment.

billing_currencystring

Currency in which the reimbursement is paid to the beneficiary, as an ISO 4217 currency code.

commentsarray

List of comments on reimbursement report.

comments.contentstring

Text body of the comment.

comments.created_atstring

Timestamp for when the resource was created in ISO8601 format.

comments.created_bystring

Email address of the user who created this comment. Used for attribution, notifications, and audit trail tracking.

created_atstring

Timestamp for when the resource was created in ISO8601 format.

created_bystring

Email address of the user who submitted this reimbursement report.

idstring

Unique identifier of the reimbursement report.

legal_entity_idstring

Unique identifier of the business entity associated with this reimbursement report. Used for accounting segregation and compliance reporting across different business entities.

namestring

User-defined name for the reimbursement report.

reimbursement_report_transfer_idsarray

Set of unique identifiers of reimbursement report transfers associated with this report. Contains all transfers that have a valid bank transfer unique identifier and are associated with this report. Empty set when no qualifying transfers exist.

statusstring

Current status of the reimbursement report. Possible values: DRAFT, AWAITING_APPROVAL, AWAITING_PAYMENT, PAYMENT_IN_PROGRESS, PAID, REJECTED, MARKED_AS_PAID. Additional values may appear; implementations should handle unknown values gracefully.

DRAFT, AWAITING_APPROVAL, AWAITING_PAYMENT, PAYMENT_IN_PROGRESS, PAID, DELETED, REJECTED, MARKED_AS_PAID

sync_statusstring

Sync status for an accounting system. Possible values are NOT_SYNCED, SYNCED, SYNC_FAILED.

updated_atstring

Timestamp for when the resource was updated in ISO8601 format.

Errors
Error statusDescription
400

Invalid Request.

404

Not found.

500

Internal server error.

GET /api/v1/spend/reimbursement_reports/{id}
$curl --request GET \
> --url 'https://api.airwallex.com/api/v1/spend/reimbursement_reports/reimbursement_id' \
> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
> --header 'Content-Type: application/json'
Response (200 OK)
1{
2 "id": "126ff4d1-737c-4a62-a862-f76b3f103357",
3 "legal_entity_id": "le_U3jlHqQRNHWn2zAKeeT8sg",
4 "name": "Q4 2024 Business Travel - San Francisco",
5 "status": "MARKED_AS_PAID",
6 "sync_status": "SYNCED",
7 "billing_currency": "USD",
8 "approvers": [
11 ],
12 "created_by": "[email protected]",
13 "created_at": "2025-01-01T00:00:00Z",
14 "updated_at": "2025-02-02T00:00:00Z",
15 "beneficiary_id": "55458be4-271c-488d-a12b-5e0709f4a0c0",
16 "comments": [
17 {
18 "content": "Expense approved - valid business purpose confirmed",
19 "created_by": "[email protected]",
20 "created_at": "2025-01-01T00:00:00Z"
21 }
22 ],
23 "reimbursement_report_transfer_ids": [
24 "9ee00d7d-76ca-4713-bc62-15fc111eaa0c",
25 "8dd91c6c-65ba-4602-ab51-04fc000dd90b"
26 ],
27 "accounting_field_selections": [
28 {
29 "type": "OTHER",
30 "name": "Cost Center",
31 "external_id": "1036f6f7-87e4-4508-b865-f670b1926022",
32 "value": "Office Expense",
33 "value_label": "Office Expense"
34 }
35 ]
36}
Was this section helpful?

Mark reimbursement report as paid

POST /api/v1/spend/reimbursement_reports/{id}/mark_as_paid

Marks a reimbursement report as paid outside of Airwallex.

Parameters
idrequiredstring

Unique identifier of the reimbursement report.

Response body - 200 OK
accounting_field_selectionsarray

Accounting and categorization fields assigned to this reimbursement report as a whole. Includes general ledger accounts, cost centers, departments, and custom accounting dimensions for proper reimbursement categorization and reporting in your ERP system.

accounting_field_selections.typestring

Type of accounting field. Possible values are SUBSIDIARY, MERCHANT, GENERAL_LEDGER_ACCOUNT, TAX_CODE, CLASS, DEPARTMENT, LOCATION, PROJECT, OTHER.

accounting_field_selections.valuestring

Name of the accounting field value in the ERP.

accounting_field_selections.external_idstring

External unique identifier of the accounting field value in the ERP.

accounting_field_selections.namestring

Name of the accounting field in the ERP software. This field is populated only when type is set to OTHER.

accounting_field_selections.value_labelstring

Name of the accounting field value displayed in Airwallex.

approversarray

Email addresses of users authorized to approve this reimbursement report. Defines the approval workflow and who can authorize payment processing.

beneficiary_idstring

Unique identifier of the person who will receive the reimbursement payment.

billing_currencystring

Currency in which the reimbursement is paid to the beneficiary, as an ISO 4217 currency code.

commentsarray

List of comments on reimbursement report.

comments.contentstring

Text body of the comment.

comments.created_atstring

Timestamp for when the resource was created in ISO8601 format.

comments.created_bystring

Email address of the user who created this comment. Used for attribution, notifications, and audit trail tracking.

created_atstring

Timestamp for when the resource was created in ISO8601 format.

created_bystring

Email address of the user who submitted this reimbursement report.

idstring

Unique identifier of the reimbursement report.

legal_entity_idstring

Unique identifier of the business entity associated with this reimbursement report. Used for accounting segregation and compliance reporting across different business entities.

namestring

User-defined name for the reimbursement report.

reimbursement_report_transfer_idsarray

Set of unique identifiers of reimbursement report transfers associated with this report. Contains all transfers that have a valid bank transfer unique identifier and are associated with this report. Empty set when no qualifying transfers exist.

statusstring

Current status of the reimbursement report. Possible values: DRAFT, AWAITING_APPROVAL, AWAITING_PAYMENT, PAYMENT_IN_PROGRESS, PAID, REJECTED, MARKED_AS_PAID. Additional values may appear; implementations should handle unknown values gracefully.

DRAFT, AWAITING_APPROVAL, AWAITING_PAYMENT, PAYMENT_IN_PROGRESS, PAID, DELETED, REJECTED, MARKED_AS_PAID

sync_statusstring

Sync status for an accounting system. Possible values are NOT_SYNCED, SYNCED, SYNC_FAILED.

updated_atstring

Timestamp for when the resource was updated in ISO8601 format.

Errors
Error statusDescription
400

Invalid Request.

404

Not found.

500

Internal server error.

POST /api/v1/spend/reimbursement_reports/{id}/mark_as_paid
$curl --request POST \
> --url 'https://api.airwallex.com/api/v1/spend/reimbursement_reports/reimbursement_id/mark_as_paid' \
> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
> --header 'Content-Type: application/json'
Response (200 OK)
1{
2 "id": "126ff4d1-737c-4a62-a862-f76b3f103357",
3 "legal_entity_id": "le_U3jlHqQRNHWn2zAKeeT8sg",
4 "name": "Q4 2024 Business Travel - San Francisco",
5 "status": "MARKED_AS_PAID",
6 "sync_status": "SYNCED",
7 "billing_currency": "USD",
8 "approvers": [
11 ],
12 "created_by": "[email protected]",
13 "created_at": "2025-01-01T00:00:00Z",
14 "updated_at": "2025-02-02T00:00:00Z",
15 "beneficiary_id": "55458be4-271c-488d-a12b-5e0709f4a0c0",
16 "comments": [
17 {
18 "content": "Expense approved - valid business purpose confirmed",
19 "created_by": "[email protected]",
20 "created_at": "2025-01-01T00:00:00Z"
21 }
22 ],
23 "reimbursement_report_transfer_ids": [
24 "9ee00d7d-76ca-4713-bc62-15fc111eaa0c",
25 "8dd91c6c-65ba-4602-ab51-04fc000dd90b"
26 ],
27 "accounting_field_selections": [
28 {
29 "type": "OTHER",
30 "name": "Cost Center",
31 "external_id": "1036f6f7-87e4-4508-b865-f670b1926022",
32 "value": "Office Expense",
33 "value_label": "Office Expense"
34 }
35 ]
36}
Was this section helpful?

List reimbursements

GET /api/v1/spend/reimbursement_reports/{id}/reimbursements

List reimbursements in a specific reimbursement report.

Parameters
idrequiredstring

Unique identifier of the reimbursement report.

pagestring

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.

Response body - 200 OK
itemsarray
items.accounting_field_selectionsarray

Accounting categories and custom fields assigned to this reimbursement for categorization and reporting.

items.accounting_field_selections.typestring

Type of accounting field. Possible values are SUBSIDIARY, MERCHANT, GENERAL_LEDGER_ACCOUNT, TAX_CODE, CLASS, DEPARTMENT, LOCATION, PROJECT, OTHER.

items.accounting_field_selections.valuestring

Name of the accounting field value in the ERP.

items.accounting_field_selections.external_idstring

External unique identifier of the accounting field value in the ERP.

items.accounting_field_selections.namestring

Name of the accounting field in the ERP software. This field is populated only when type is set to OTHER.

items.accounting_field_selections.value_labelstring

Name of the accounting field value displayed in Airwallex.

items.attachmentsarray

Supporting documents uploaded for this reimbursement, such as receipts, invoices, and boarding passes.

items.attachments.content_typestring

MIME type of the attached file. Common types include image/jpeg, image/png, and application/pdf.

items.attachments.created_atstring

Timestamp for when the resource was created in ISO8601 format.

items.attachments.file_namestring

Original filename of the uploaded attachment, including the file extension.

items.attachments.file_urlstring

URL to access and download the attachment file. Authentication is required.

items.attachments.idstring

Unique identifier of the attachment.

items.billing_amountstring

Amount claimed for reimbursement, including all taxes. This is the amount charged to your card or paid out-of-pocket, and may differ from the transaction amount due to currency conversion or exchange rate differences.

items.commentsarray

Comments and notes related to this reimbursement, added during the review and approval process.

items.comments.contentstring

Text body of the comment.

items.comments.created_atstring

Timestamp for when the resource was created in ISO8601 format.

items.comments.created_bystring

Email address of the user who created this comment. Used for attribution, notifications, and audit trail tracking.

items.created_atstring

Timestamp for when the resource was created in ISO8601 format.

items.idstring

Unique identifier of the reimbursement.

items.line_itemsarray

Breakdown of the reimbursement into individual line items, each with its own amount, tax details, and accounting categorization. The sum of all line item amounts equals the total transaction amount.

items.line_items.accounting_field_selectionsarray

Accounting and categorization fields assigned to this specific line item. Allows for different accounting treatment of individual lines within a single reimbursement.

items.line_items.accounting_field_selections.typestring

Type of accounting field. Possible values are SUBSIDIARY, MERCHANT, GENERAL_LEDGER_ACCOUNT, TAX_CODE, CLASS, DEPARTMENT, LOCATION, PROJECT, OTHER.

items.line_items.accounting_field_selections.valuestring

Name of the accounting field value in the ERP.

items.line_items.accounting_field_selections.external_idstring

External unique identifier of the accounting field value in the ERP.

items.line_items.accounting_field_selections.namestring

Name of the accounting field in the ERP software. This field is populated only when type is set to OTHER.

items.line_items.accounting_field_selections.value_labelstring

Name of the accounting field value displayed in Airwallex.

items.line_items.billing_amountstring

Amount of this line item, including all taxes.

items.line_items.idstring

Unique identifier of the reimbursement line item.

items.line_items.transaction_amountstring

Amount of this line item in the transaction currency.

items.line_items.tax_amountstring

Tax amount included in the line item transaction amount. Null when tax information is not available.

items.transaction_amountstring

Total amount of the original purchase in the transaction currency, including all taxes.

items.updated_atstring

Timestamp for when the resource was updated in ISO8601 format.

items.attendeesarray

Attendees associated with this reimbursement, including internal employees and external guests.

items.attendees.externalboolean

Indicates whether the attendee is external to the organization.

items.attendees.namestring

Name of the attendee.

items.attendees.emailstring

Email address of the attendee. Present only when external is false.

items.descriptionstring

User-provided description or purpose of the amount being reimbursed. Typically includes business justification, trip purpose, or transaction details.

items.merchant_namestring

Name of the merchant or service provider where the purchase was made.

items.transaction_currencystring

Currency of the original transaction, as an ISO 4217 currency code. May differ from your account's billing currency. Null when currency information is not available.

items.transaction_datestring

Date of the original purchase or service delivery in ISO8601 format. This is not the submission date.

page_afterstring

A pointer to the end of the page list used in pagination to retrieve the next page of results.

page_beforestring

A pointer to the start of the page list use in pagination to retrieve the previous page of results.

Errors
Error statusDescription
400

Invalid Request.

404

Not found.

500

Internal server error.

GET /api/v1/spend/reimbursement_reports/{id}/reimbursements
$curl --request GET \
> --url 'https://api.airwallex.com/api/v1/spend/reimbursement_reports/reimbursement_id/reimbursements' \
> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
> --header 'Content-Type: application/json'
Response (200 OK)
1{
2 "items": [
3 {
4 "accounting_field_selections": [],
5 "attachments": [
6 {
7 "content_type": "application/pdf",
8 "created_at": "2025-11-27T10:00:00Z",
9 "file_name": "receipt.pdf",
10 "file_url": "https://example.com/receipt.pdf",
11 "id": "1540326e-f828-4c16-9ef0-2e5045618637"
12 }
13 ],
14 "billing_amount": "551.00",
15 "comments": [],
16 "created_at": "2025-11-10T12:00:00Z",
17 "description": "Hotel stay for business trip",
18 "id": "1ae9f098-c845-4c31-a7b2-2fc65eb3bbbb",
19 "line_items": [
20 {
21 "accounting_field_selections": [
22 {
23 "name": "Department",
24 "type": "OTHER",
25 "value": "123456",
26 "value_id": null,
27 "value_label": "Communications"
28 }
29 ],
30 "id": "1706880f-4257-4f6e-a714-ced27172fdf6",
31 "tax_amount": "0.00",
32 "transaction_amount": "551.00"
33 }
34 ],
35 "merchant_name": "A Grand Hotel",
36 "transaction_amount": "551.00",
37 "transaction_currency": "USD",
38 "transaction_date": "2024-12-15T00:00:00Z",
39 "updated_at": "2025-11-10T00:00:00Z"
40 }
41 ],
42 "page_after": "eyJwYWdlX2JlZm9yZSI6IjIwMjUtMDctMDFUMDA6MDA6MDBaIn0=",
43 "page_before": "eyJwYWdlX2JlZm9yZSI6IjIwMjUtMDctMDFUMDA6MDA6MDBaIn0="
44}
Was this section helpful?

Get reimbursement

GET /api/v1/spend/reimbursement_reports/{id}/reimbursements/{reimbursement_id}

Retrieves a specific reimbursement within a reimbursement report.

Parameters
idrequiredstring

Unique identifier of the reimbursement report.

reimbursement_idrequiredstring

Unique identifier of the reimbursement.

Response body - 200 OK
accounting_field_selectionsarray

Accounting categories and custom fields assigned to this reimbursement for categorization and reporting.

accounting_field_selections.typestring

Type of accounting field. Possible values are SUBSIDIARY, MERCHANT, GENERAL_LEDGER_ACCOUNT, TAX_CODE, CLASS, DEPARTMENT, LOCATION, PROJECT, OTHER.

accounting_field_selections.valuestring

Name of the accounting field value in the ERP.

accounting_field_selections.external_idstring

External unique identifier of the accounting field value in the ERP.

accounting_field_selections.namestring

Name of the accounting field in the ERP software. This field is populated only when type is set to OTHER.

accounting_field_selections.value_labelstring

Name of the accounting field value displayed in Airwallex.

attachmentsarray

Supporting documents uploaded for this reimbursement, such as receipts, invoices, and boarding passes.

attachments.content_typestring

MIME type of the attached file. Common types include image/jpeg, image/png, and application/pdf.

attachments.created_atstring

Timestamp for when the resource was created in ISO8601 format.

attachments.file_namestring

Original filename of the uploaded attachment, including the file extension.

attachments.file_urlstring

URL to access and download the attachment file. Authentication is required.

attachments.idstring

Unique identifier of the attachment.

attendeesarray

Attendees associated with this reimbursement, including internal employees and external guests.

attendees.externalboolean

Indicates whether the attendee is external to the organization.

attendees.namestring

Name of the attendee.

attendees.emailstring

Email address of the attendee. Present only when external is false.

billing_amountstring

Amount claimed for reimbursement, including all taxes. This is the amount charged to your card or paid out-of-pocket, and may differ from the transaction amount due to currency conversion or exchange rate differences.

commentsarray

Comments and notes related to this reimbursement, added during the review and approval process.

comments.contentstring

Text body of the comment.

comments.created_atstring

Timestamp for when the resource was created in ISO8601 format.

comments.created_bystring

Email address of the user who created this comment. Used for attribution, notifications, and audit trail tracking.

created_atstring

Timestamp for when the resource was created in ISO8601 format.

descriptionstring

User-provided description or purpose of the amount being reimbursed. Typically includes business justification, trip purpose, or transaction details.

idstring

Unique identifier of the reimbursement.

line_itemsarray

Breakdown of the reimbursement into individual line items, each with its own amount, tax details, and accounting categorization. The sum of all line item amounts equals the total transaction amount.

line_items.accounting_field_selectionsarray

Accounting and categorization fields assigned to this specific line item. Allows for different accounting treatment of individual lines within a single reimbursement.

line_items.accounting_field_selections.typestring

Type of accounting field. Possible values are SUBSIDIARY, MERCHANT, GENERAL_LEDGER_ACCOUNT, TAX_CODE, CLASS, DEPARTMENT, LOCATION, PROJECT, OTHER.

line_items.accounting_field_selections.valuestring

Name of the accounting field value in the ERP.

line_items.accounting_field_selections.external_idstring

External unique identifier of the accounting field value in the ERP.

line_items.accounting_field_selections.namestring

Name of the accounting field in the ERP software. This field is populated only when type is set to OTHER.

line_items.accounting_field_selections.value_labelstring

Name of the accounting field value displayed in Airwallex.

line_items.billing_amountstring

Amount of this line item, including all taxes.

line_items.idstring

Unique identifier of the reimbursement line item.

line_items.transaction_amountstring

Amount of this line item in the transaction currency.

line_items.tax_amountstring

Tax amount included in the line item transaction amount. Null when tax information is not available.

merchant_namestring

Name of the merchant or service provider where the purchase was made.

transaction_amountstring

Total amount of the original purchase in the transaction currency, including all taxes.

transaction_currencystring

Currency of the original transaction, as an ISO 4217 currency code. May differ from your account's billing currency. Null when currency information is not available.

transaction_datestring

Date of the original purchase or service delivery in ISO8601 format. This is not the submission date.

updated_atstring

Timestamp for when the resource was updated in ISO8601 format.

Errors
Error statusDescription
400

Invalid Request.

404

Not found.

500

Internal server error.

GET /api/v1/spend/reimbursement_reports/{id}/reimbursements/{reimbursement_id}
$curl --request GET \
> --url 'https://api.airwallex.com/api/v1/spend/reimbursement_reports/reimbursement_id/reimbursements/reimbursement_id' \
> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
> --header 'Content-Type: application/json'
Response (200 OK)
1{
2 "id": "2d0a09cc-0a33-4fbd-b132-d3aa858d5491",
3 "description": "Business flight to San Francisco for client meeting - Q4 2024",
4 "merchant_name": "American Airlines",
5 "transaction_amount": "1247.5",
6 "transaction_currency": "EUR",
7 "billing_amount": "1350.25",
8 "transaction_date": "2024-12-15T14:30:00Z",
9 "line_items": [
10 {
11 "id": "c9dcab16-f66a-4b4f-bb86-3531187218c8",
12 "billing_amount": "125.5",
13 "transaction_amount": "120.0",
14 "tax_amount": "12.5",
15 "accounting_field_selections": [
16 {
17 "type": "OTHER",
18 "name": "Cost Center",
19 "external_id": "1036f6f7-87e4-4508-b865-f670b1926022",
20 "value": "Office Expense",
21 "value_label": "Office Expense"
22 }
23 ]
24 }
25 ],
26 "attachments": [
27 {
28 "id": "985461d5-016f-4e1f-a387-5f1380b42d92",
29 "content_type": "image/jpeg",
30 "file_name": "flight_receipt_AA1234.jpg",
31 "file_url": "https://files.example.com/receipts/985461d5-016f-4e1f-a387-5f1380b42d92",
32 "created_at": "2024-12-15T14:45:00Z"
33 },
34 {
35 "id": "773621a8-912c-4b2d-8756-1e8946d12345",
36 "content_type": "application/pdf",
37 "file_name": "hotel_invoice_hyatt.pdf",
38 "file_url": "https://files.example.com/receipts/773621a8-912c-4b2d-8756-1e8946d12345",
39 "created_at": "2024-12-16T09:22:00Z"
40 }
41 ],
42 "comments": [
43 {
44 "content": "Expense approved - valid business purpose confirmed",
45 "created_by": "[email protected]",
46 "created_at": "2025-01-01T00:00:00Z"
47 }
48 ],
49 "accounting_field_selections": [
50 {
51 "type": "OTHER",
52 "name": "Cost Center",
53 "external_id": "1036f6f7-87e4-4508-b865-f670b1926022",
54 "value": "Office Expense",
55 "value_label": "Office Expense"
56 }
57 ],
58 "created_at": "2025-01-01T00:00:00Z",
59 "updated_at": "2025-02-02T00:00:00Z"
60}
Was this section helpful?

Update reimbursement report sync status

POST /api/v1/spend/reimbursement_reports/{id}/sync

Updates the sync status of an existing reimbursement report.

Parameters
idrequiredstring

Unique identifier of the reimbursement report.

Request body
sync_statusrequiredstring

Sync status for an accounting system. Possible values are NOT_SYNCED, SYNCED, SYNC_FAILED.

Response body - 200 OK
accounting_field_selectionsarray

Accounting and categorization fields assigned to this reimbursement report as a whole. Includes general ledger accounts, cost centers, departments, and custom accounting dimensions for proper reimbursement categorization and reporting in your ERP system.

accounting_field_selections.typestring

Type of accounting field. Possible values are SUBSIDIARY, MERCHANT, GENERAL_LEDGER_ACCOUNT, TAX_CODE, CLASS, DEPARTMENT, LOCATION, PROJECT, OTHER.

accounting_field_selections.valuestring

Name of the accounting field value in the ERP.

accounting_field_selections.external_idstring

External unique identifier of the accounting field value in the ERP.

accounting_field_selections.namestring

Name of the accounting field in the ERP software. This field is populated only when type is set to OTHER.

accounting_field_selections.value_labelstring

Name of the accounting field value displayed in Airwallex.

approversarray

Email addresses of users authorized to approve this reimbursement report. Defines the approval workflow and who can authorize payment processing.

beneficiary_idstring

Unique identifier of the person who will receive the reimbursement payment.

billing_currencystring

Currency in which the reimbursement is paid to the beneficiary, as an ISO 4217 currency code.

commentsarray

List of comments on reimbursement report.

comments.contentstring

Text body of the comment.

comments.created_atstring

Timestamp for when the resource was created in ISO8601 format.

comments.created_bystring

Email address of the user who created this comment. Used for attribution, notifications, and audit trail tracking.

created_atstring

Timestamp for when the resource was created in ISO8601 format.

created_bystring

Email address of the user who submitted this reimbursement report.

idstring

Unique identifier of the reimbursement report.

legal_entity_idstring

Unique identifier of the business entity associated with this reimbursement report. Used for accounting segregation and compliance reporting across different business entities.

namestring

User-defined name for the reimbursement report.

reimbursement_report_transfer_idsarray

Set of unique identifiers of reimbursement report transfers associated with this report. Contains all transfers that have a valid bank transfer unique identifier and are associated with this report. Empty set when no qualifying transfers exist.

statusstring

Current status of the reimbursement report. Possible values: DRAFT, AWAITING_APPROVAL, AWAITING_PAYMENT, PAYMENT_IN_PROGRESS, PAID, REJECTED, MARKED_AS_PAID. Additional values may appear; implementations should handle unknown values gracefully.

DRAFT, AWAITING_APPROVAL, AWAITING_PAYMENT, PAYMENT_IN_PROGRESS, PAID, DELETED, REJECTED, MARKED_AS_PAID

sync_statusstring

Sync status for an accounting system. Possible values are NOT_SYNCED, SYNCED, SYNC_FAILED.

updated_atstring

Timestamp for when the resource was updated in ISO8601 format.

Errors
Error statusDescription
400

Invalid Request.

404

Not found.

500

Internal server error.

POST /api/v1/spend/reimbursement_reports/{id}/sync
$curl --request POST \
> --url 'https://api.airwallex.com/api/v1/spend/reimbursement_reports/reimbursement_id/sync' \
> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
> --header 'Content-Type: application/json' \
> --data '{
> "sync_status": "SYNCED"
>}'
Response (200 OK)
1{
2 "id": "126ff4d1-737c-4a62-a862-f76b3f103357",
3 "legal_entity_id": "le_U3jlHqQRNHWn2zAKeeT8sg",
4 "name": "Q4 2024 Business Travel - San Francisco",
5 "status": "MARKED_AS_PAID",
6 "sync_status": "SYNCED",
7 "billing_currency": "USD",
8 "approvers": [
11 ],
12 "created_by": "[email protected]",
13 "created_at": "2025-01-01T00:00:00Z",
14 "updated_at": "2025-02-02T00:00:00Z",
15 "beneficiary_id": "55458be4-271c-488d-a12b-5e0709f4a0c0",
16 "comments": [
17 {
18 "content": "Expense approved - valid business purpose confirmed",
19 "created_by": "[email protected]",
20 "created_at": "2025-01-01T00:00:00Z"
21 }
22 ],
23 "reimbursement_report_transfer_ids": [
24 "9ee00d7d-76ca-4713-bc62-15fc111eaa0c",
25 "8dd91c6c-65ba-4602-ab51-04fc000dd90b"
26 ],
27 "accounting_field_selections": [
28 {
29 "type": "OTHER",
30 "name": "Cost Center",
31 "external_id": "1036f6f7-87e4-4508-b865-f670b1926022",
32 "value": "Office Expense",
33 "value_label": "Office Expense"
34 }
35 ]
36}
Was this section helpful?

Get reimbursement report transfer

GET /api/v1/spend/reimbursement_reports/{id}/transfers/{transfer_id}

Retrieves the details of an existing reimbursement report transfer.

Parameters
idrequiredstring

Unique identifier of the reimbursement report.

transfer_idrequiredstring

Unique identifier of the reimbursement report transfer.

Response body - 200 OK
account_idstring

Unique identifier of the Airwallex account that funds this reimbursement report transfer. This determines which account the transfer amount is debited from.

beneficiary_idstring

Unique identifier of the person receiving funds from this reimbursement transfer.

idstring

Unique identifier of the reimbursement report transfer.

sync_statusstring

Sync status for an accounting system. Possible values are NOT_SYNCED, SYNCED, SYNC_FAILED.

transfer_idstring

Unique identifier of the transfer used for this reimbursement report transfer.

Errors
Error statusDescription
400

Invalid Request.

404

Not found.

500

Internal server error.

GET /api/v1/spend/reimbursement_reports/{id}/transfers/{transfer_id}
$curl --request GET \
> --url 'https://api.airwallex.com/api/v1/spend/reimbursement_reports/reimbursement_id/transfers/transfer_id' \
> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
> --header 'Content-Type: application/json'
Response (200 OK)
1{
2 "id": "9ee00d7d-76ca-4713-bc62-15fc111eaa0c",
3 "sync_status": "SYNCED",
4 "account_id": "acct_a2y0pxz3m4k5hoZldn97hjzp",
5 "beneficiary_id": "a630598a-ad9c-48c6-a28e-a50ffcda7aa8",
6 "transfer_id": "bc2bd9c5-c942-4117-ab65-a38708d16cde"
7}
Was this section helpful?

Update reimbursement report transfer sync status

POST /api/v1/spend/reimbursement_reports/{id}/transfers/{transfer_id}/sync

Updates the sync status of an existing reimbursement report transfer.

Parameters
idrequiredstring

Unique identifier of the reimbursement report.

transfer_idrequiredstring

Unique identifier of the reimbursement report transfer.

Request body
sync_statusrequiredstring

Sync status for an accounting system. Possible values are NOT_SYNCED, SYNCED, SYNC_FAILED.

Response body - 200 OK
account_idstring

Unique identifier of the Airwallex account that funds this reimbursement report transfer. This determines which account the transfer amount is debited from.

beneficiary_idstring

Unique identifier of the person receiving funds from this reimbursement transfer.

idstring

Unique identifier of the reimbursement report transfer.

sync_statusstring

Sync status for an accounting system. Possible values are NOT_SYNCED, SYNCED, SYNC_FAILED.

transfer_idstring

Unique identifier of the transfer used for this reimbursement report transfer.

Errors
Error statusDescription
400

Invalid Request.

404

Not found.

500

Internal server error.

POST /api/v1/spend/reimbursement_reports/{id}/transfers/{transfer_id}/sync
$curl --request POST \
> --url 'https://api.airwallex.com/api/v1/spend/reimbursement_reports/reimbursement_id/transfers/transfer_id/sync' \
> --header 'Authorization: Bearer {{ACCESS_TOKEN}}' \
> --header 'Content-Type: application/json' \
> --data '{
> "sync_status": "SYNCED"
>}'
Response (200 OK)
1{
2 "id": "9ee00d7d-76ca-4713-bc62-15fc111eaa0c",
3 "sync_status": "SYNCED",
4 "account_id": "acct_a2y0pxz3m4k5hoZldn97hjzp",
5 "beneficiary_id": "a630598a-ad9c-48c6-a28e-a50ffcda7aa8",
6 "transfer_id": "bc2bd9c5-c942-4117-ab65-a38708d16cde"
7}
Was this section helpful?