Sail

List Reimbursements

GET/users/{user_id}/reimbursements

Requires the benefit_account key scope. receipt_url is omitted on list reads.

Path Parameters

user_idstringrequired

The Sail user id.

Query Parameters

statusstring

Filter to reimbursements in this status.

limitinteger

Max results per page.

offsetinteger

Pagination offset.

Response

Reimbursements.

dataobject[]
Show data properties
idstring

The Sail reimbursement id.

status"pending" | "submitted" | "processing" | "completed" | "failed"

The reimbursement’s current processing status.

amountnumber<float>

Sum of the included expenses, USD.

account_idstring

The funding account. Join to /accounts/{account_id} for provider and balance context.

expensesobject[]

The expenses included in this reimbursement.

Show expenses properties
idstring

The Sail expense id.

namestring

The expense’s display name.

amountnumber<float>

The expense’s amount, USD.

datestring<date>

The expense’s transaction date.

receipt_urlstring

Reimbursement receipt document. Populated once completed; present on the single-resource GET only.

submitted_atstring<date-time>

When the reimbursement was submitted for processing.

completed_atstring<date-time>

When the reimbursement completed. Null while still in progress.

paginationobject

Pagination metadata for this page.

Show pagination properties
totalinteger

Total number of matching records, across all pages.

limitinteger

The limit used for this page.

offsetinteger

The offset used for this page.

has_moreboolean

Whether additional pages remain after this one.

Standard error envelope covering 400, 401, 403, 404, 429, and 500.

errorobject

The error detail.

Show error properties
codestring

Machine-readable code, e.g. not_found, token_scope_mismatch, product_not_enabled, insufficient_key_scope, insufficient_token_scope, user_token_required, user_token_expired, invalid_user_token, invalid_key_configuration, connection_not_reconnectable, rate_limited.

messagestring

Human-readable error message. May change, so match on error.code instead.

paramstring

The request field that caused the error, when applicable. Null otherwise.

Request
curl -X GET "https://live.savewithsail.com/api/v1/users/<user_id>/reimbursements?status=<status>&limit=<limit>&offset=<offset>" \
  -H "Authorization: Bearer <token>"
Response
{
  "data": [
    {
      "id": "reimb_8c1f",
      "status": "pending",
      "amount": 0,
      "account_id": "string",
      "expenses": [
        {
          "id": "string",
          "name": "string",
          "amount": 0,
          "date": "2024-01-01"
        }
      ],
      "receipt_url": "string",
      "submitted_at": "1970-01-01T00:00:00.000Z",
      "completed_at": "1970-01-01T00:00:00.000Z"
    }
  ],
  "pagination": {
    "total": 0,
    "limit": 0,
    "offset": 0,
    "has_more": true
  }
}