{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Expenses"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"expenses","__idx":0},"children":["Expenses"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info","name":"Beta"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Expenses API is in Beta. Additive changes are normal, and breaking changes"," ","may be made with notice while the resource incorporates customer feedback. See"," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/v1/versioning"},"children":["Versioning and compatibility"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These endpoints read the corporate expenses of the business linked to your API"," ","Access Token. They all require the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expenses:read"]}," scope."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Expenses API provides a read-only view of corporate card expenses."," ","Reimbursements use their own API resource and are not returned by these"," ","endpoints. Each expense includes its approval state, policy compliance, tags,"," ","and receipt attachments."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"list-expenses","__idx":1},"children":["List expenses"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /api/v1/expenses"]}," returns expenses for the authenticated business in every"," ","approval state. Use the same filters and sorting options for every request in a"," ","paginated result set."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl \"https://rhoapi.rho.co/api/v1/expenses?approval_status=needs_approval&page_size=20\" \\\n  -H \"Authorization: Bearer $RHO_API_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"query-parameters","__idx":2},"children":["Query parameters"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["approval_status"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Filter by approval state. Repeat the key to pass several states (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["not_ready"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["automatically_approved"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["needs_approval"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["approved"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["rejected"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["archived"]},")."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["user_id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Filter by expense owner. Repeat the key to pass several user IDs."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction_date_after"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Earliest spend date, inclusive, at midnight UTC (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["YYYY-MM-DD"]},")."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction_date_before"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Latest spend date, exclusive, at midnight UTC (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["YYYY-MM-DD"]},")."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["created_after"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Earliest creation timestamp, inclusive (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["date-time"]},")."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["created_before"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Latest creation timestamp, exclusive (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["date-time"]},")."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["has_attachments"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," selects expenses with attachments; ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}," selects those without."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sort_by"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Field to sort on (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["created_at"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction_date"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["amount"]},"). Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["created_at"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["order"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sort direction (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["asc"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["desc"]},"). Defaults to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["desc"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["page_size"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Number of expenses per page (1-100). Defaults to 20."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["page_token"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Opaque cursor from the previous response."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"example-response","__idx":3},"children":["Example response"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"expenses\": [\n    {\n      \"id\": \"0198ba3c-0000-7000-8000-000000000201\",\n      \"amount\": {\"amount\": 12500, \"currency\": \"USD\"},\n      \"transaction_date\": \"2026-09-08T14:30:00Z\",\n      \"created_at\": \"2026-09-08T14:31:00Z\",\n      \"updated_at\": \"2026-09-08T15:00:00Z\",\n      \"user_id\": \"0198ba3c-0000-7000-8000-000000000101\",\n      \"approval_status\": \"needs_approval\",\n      \"merchant_name\": \"Delta Airlines\",\n      \"merchant_category\": \"Airlines\",\n      \"source_details\": {\n        \"card_transaction\": {\n          \"card_id\": \"0198ba3c-0000-7000-8000-000000000302\",\n          \"transaction_type\": \"capture\"\n        }\n      },\n      \"policy\": {\n        \"requirements_status\": \"needs_details\",\n        \"out_of_policy_status\": \"automatic_ok\",\n        \"missing_requirements\": [{\"kind\": \"receipt\"}]\n      },\n      \"tags\": [\n        {\"field_id\": \"0198ba3c-0000-7000-8000-000000000401\", \"field_name\": \"Department\", \"value\": \"Engineering\"}\n      ],\n      \"attachments\": [\n        {\"file_id\": \"00000000-0000-0000-0000-0000000000f1\", \"file_name\": \"boarding_pass.pdf\", \"attached_at\": \"2026-09-08T14:35:00Z\"}\n      ]\n    }\n  ],\n  \"page\": {\"next_page_token\": \"opaque-cursor\"}\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["page.next_page_token"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["null"]}," when there are no further pages. Page tokens"," ","belong to the API version that created them, so restart pagination when"," ","migrating from v0 to v1."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["policy.requirements_status"]}," is either ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["needs_details"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["requirements_met"]},"."," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["policy.missing_requirements"]}," can be empty when requirement details are not"," ","available, including when the status is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["needs_details"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["policy.out_of_policy_status"]}," preserves how the policy status was determined:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Value"},"children":["Value"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Meaning"},"children":["Meaning"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["automatic_ok"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Automatically marked in policy."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["automatic_not_ok"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Automatically marked out of policy."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["manual_ok"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Manually marked in policy."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["manual_not_ok"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Manually marked out of policy."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"get-an-expense","__idx":4},"children":["Get an expense"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /api/v1/expenses/{expense_id}"]}," returns a single expense owned by the"," ","authenticated business. Missing and foreign-business expenses both return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["404 Not Found"]}," without distinguishing between them."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl \"https://rhoapi.rho.co/api/v1/expenses/0198ba3c-0000-7000-8000-000000000201\" \\\n  -H \"Authorization: Bearer $RHO_API_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"list-expense-activity","__idx":5},"children":["List expense activity"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /api/v1/expenses/{expense_id}/activity"]}," returns an expense's audit"," ","history, including approval changes and field edits. Entries are ordered most"," ","recent first and use cursor pagination."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl \"https://rhoapi.rho.co/api/v1/expenses/0198ba3c-0000-7000-8000-000000000201/activity?page_size=50\" \\\n  -H \"Authorization: Bearer $RHO_API_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"entries\": [\n    {\n      \"occurred_at\": \"2026-09-08T15:00:00Z\",\n      \"actor_user_id\": \"0198ba3c-0000-7000-8000-000000000102\",\n      \"automated\": false,\n      \"changes\": [\n        {\"field\": \"approval_status\", \"old_value\": \"NOT_READY\", \"new_value\": \"AUTOMATICALLY_APPROVED\"}\n      ],\n      \"message\": \"Expense approved\"\n    }\n  ],\n  \"page\": {\"next_page_token\": null}\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["old_value"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["new_value"]}," are display strings recorded by the activity feed."," ","Their format depends on the changed field and is not normalized to the"," ","corresponding API enum. Treat them as descriptive values rather than enum"," ","identifiers."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"get-an-expense-file","__idx":6},"children":["Get an expense file"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /api/v1/expenses/{expense_id}/files/{file_id}"]}," returns metadata and a"," ","fresh, short-lived signed download URL for a file attached to the expense."," ","Fetch a new URL when needed instead of storing it. A file attached to another"," ","expense returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["404 Not Found"]},"."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl \"https://rhoapi.rho.co/api/v1/expenses/0198ba3c-0000-7000-8000-000000000201/files/00000000-0000-0000-0000-0000000000f1\" \\\n  -H \"Authorization: Bearer $RHO_API_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"file_id\": \"00000000-0000-0000-0000-0000000000f1\",\n  \"file_name\": \"boarding_pass.pdf\",\n  \"download_url\": \"https://...\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"reference","__idx":7},"children":["Reference"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Full endpoint catalogue - paths, parameters, response shapes, and required"," ","scopes - lives in the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api/v1/openapi/expenses"},"children":["API Reference"]},"."]}]},"headings":[{"value":"Expenses","id":"expenses","depth":1},{"value":"List expenses","id":"list-expenses","depth":2},{"value":"Query parameters","id":"query-parameters","depth":3},{"value":"Example response","id":"example-response","depth":3},{"value":"Get an expense","id":"get-an-expense","depth":2},{"value":"List expense activity","id":"list-expense-activity","depth":2},{"value":"Get an expense file","id":"get-an-expense-file","depth":2},{"value":"Reference","id":"reference","depth":2}],"frontmatter":{"seo":{"title":"Expenses"}},"lastModified":"2026-10-23T10:00:23.881Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/v1/expenses","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}