Updates the expense details of a transaction. The identifier can be the card transaction ID (CTX-...) or its expense ID (EXP-...). Send only the fields you want to change.
Get valid IDs for each field from:
category_identifier: List expense categoriesvendor_identifier: List accounting vendorstax_rate_identifier: List accounting tax ratesexpense_account_identifier: List accounting expense accountspayment_account_identifier: List accounting payment accounts
status is one of incomplete, pending_review, ready, or synced. If you don't send status, an incomplete expense moves to pending_review automatically once it's ready for review, for example when all required fields are filled.
The response is {"success": true} with the updated transaction in data, in the same shape as Fetch expense transaction details. An unknown or inactive identifier returns 422 with VALIDATION_ERROR; so does a vendor whose currency differs from the transaction's (Wafeq vendors are exempt).
429Too many requests. You sent more than 100 requests in 30 seconds from one IP address. This response has no JSON body. See Rate limits.
500Unexpected error