> ## Documentation Index
> Fetch the complete documentation index at: https://docs.archal.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Ramp

> Cards, funds, expenses, reimbursements, bills, and travel.

Ramp is included in Archal's environment catalog. Use it in a sandbox for cards, funds, expenses, reimbursements, bills, and travel.

|                 |                                             |
| --------------- | ------------------------------------------- |
| Environment ID  | `ramp`                                      |
| Transport       | MCP                                         |
| State           | JSON                                        |
| Contract        | `archal.environment-state.ramp` version `1` |
| Channel         | Preview                                     |
| Curated samples | 5                                           |

Preview means the environment is included for testing, but its upstream coverage is incomplete. Verify the operations your test depends on.

## Compatibility boundary

**Local catalog validation:** All five published samples passed. Checks cover the state contract, relationships, artifact hash, secret scan, and size limit.

<Note>
  Local catalog validation is not hosted proof. Archal checks current certification, reset, and isolation evidence before admitting new sandboxes. Use the authenticated environment catalog for live availability.
</Note>

* No REST claim, payment-network behavior, broad ledger mutation, or arbitrary permissions.

## Curated starting states

List the five samples with `archal sample list ramp`. Each sample is a versioned starting state with a representative read, mutation, expected diff, reset expectation, and verified artifact hash.

<AccordionGroup>
  <Accordion title="Ramp bill-comment baseline">
    Read one finance operator and post a comment on one retained pending bill.

    **Sample ID:** `ramp.privacy-review.v1`

    **Category:** `minimal`

    **Starting state:** 2 records across `bills`: 1, `users`: 1

    **Supported surface:** Stateful seeded business records for selected approvals and comments through MCP.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `mcp.approvals`

    **First read:** MCP tool `get-org-chart`. Expected result: success.

    **First-read input**

    ```json theme={null}
    {}
    ```

    **Representative mutation:** MCP tool `post-comment`. Expected result: success.

    **Mutation input**

    ```json theme={null}
    {
      "mention_user_uuids": [],
      "message": "Receipt and merchant match. Ready for the finance approver.",
      "ramp_object_type": "bill",
      "ramp_object_uuid": "bill_verde_220"
    }
    ```

    **Expected diff:** changes include `comments`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * No REST claim, payment-network behavior, broad ledger mutation, or arbitrary permissions.

    **Start this sample**

    ```bash theme={null}
    archal sample show ramp.privacy-review.v1 --raw > archal-ramp-privacy-review.json
    archal state validate ramp archal-ramp-privacy-review.json
    archal session create ramp \
      --state ramp=archal-ramp-privacy-review.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show ramp.privacy-review.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/ramp/privacy-review/state.json` and is 1,717 bytes. The CLI verifies SHA-256 `fc61935f9777415a365a0bb4330921cd74f54f2c15c8e233e23d66afa57f0c96` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Ramp quarter-close approvals">
    Exercise a finance operator, employee, card, bill, and reimbursement in a small approval queue.

    **Sample ID:** `ramp.quarter-close-approvals.v1`

    **Category:** `small-team`

    **Starting state:** 5 records across `bills`: 1, `cards`: 1, `reimbursements`: 1, `users`: 2

    **Supported surface:** Stateful seeded business records for selected approvals and comments through MCP.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `mcp.approvals`

    **First read:** MCP tool `get-org-chart`. Expected result: success.

    **First-read input**

    ```json theme={null}
    {}
    ```

    **Representative mutation:** MCP tool `post-comment`. Expected result: success.

    **Mutation input**

    ```json theme={null}
    {
      "mention_user_uuids": [],
      "message": "Receipt and merchant match. Ready for the finance approver.",
      "ramp_object_type": "bill",
      "ramp_object_uuid": "bill_verde_771"
    }
    ```

    **Expected diff:** changes include `comments`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * No REST claim, payment-network behavior, broad ledger mutation, or arbitrary permissions.

    **Start this sample**

    ```bash theme={null}
    archal sample show ramp.quarter-close-approvals.v1 --raw > archal-ramp-quarter-close-approvals.json
    archal state validate ramp archal-ramp-quarter-close-approvals.json
    archal session create ramp \
      --state ramp=archal-ramp-quarter-close-approvals.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show ramp.quarter-close-approvals.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/ramp/quarter-close-approvals/state.json` and is 3,676 bytes. The CLI verifies SHA-256 `ed6bda64b56f229149a8bb034da266340be02787a6aff313ff2c6ce488d3748d` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Ramp populated business operations">
    Cover users, cards, funds, transactions, bills, reimbursements, requests, receipts, travel, and knowledge records.

    **Sample ID:** `ramp.business-operations-corpus.v1`

    **Category:** `populated`

    **Starting state:** 59 records across `articles`: 6, `bills`: 1, `bookings`: 2, `cards`: 2, `funds`: 9, `locations`: 2, `purchaseOrders`: 1, `receipts`: 2, `reimbursements`: 3, `requests`: 5, `trackingCategories`: 2, `transactions`: 20, `trips`: 1, `users`: 3

    **Supported surface:** Stateful seeded business records for selected approvals and comments through MCP.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `mcp.approvals`

    **First read:** MCP tool `get-org-chart`. Expected result: success.

    **First-read input**

    ```json theme={null}
    {}
    ```

    **Representative mutation:** MCP tool `post-comment`. Expected result: success.

    **Mutation input**

    ```json theme={null}
    {
      "mention_user_uuids": [],
      "message": "Receipt and merchant match. Ready for the finance approver.",
      "ramp_object_type": "transaction",
      "ramp_object_uuid": "5f137237-16f4-467e-8fdb-c5c57a9a05bc"
    }
    ```

    **Expected diff:** changes include `comments`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * No REST claim, payment-network behavior, broad ledger mutation, or arbitrary permissions.

    **Start this sample**

    ```bash theme={null}
    archal sample show ramp.business-operations-corpus.v1 --raw > archal-ramp-business-operations-corpus.json
    archal state validate ramp archal-ramp-business-operations-corpus.json
    archal session create ramp \
      --state ramp=archal-ramp-business-operations-corpus.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show ramp.business-operations-corpus.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/ramp/business-operations-corpus/state.json` and is 60,685 bytes. The CLI verifies SHA-256 `6ab811fcef866279ca7048b9224033a75bb0d77a693a8fcd24caf4ea3acffa4b` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Ramp receipt amount mismatch">
    Verify review behavior when a reimbursement claim materially exceeds the receipt OCR total.

    **Sample ID:** `ramp.receipt-amount-mismatch.v1`

    **Category:** `edge-case`

    **Starting state:** 9 records across `articles`: 1, `reimbursements`: 3, `users`: 5

    **Supported surface:** Stateful seeded business records for selected approvals and comments through MCP.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `mcp.approvals`

    **First read:** MCP tool `get-reimbursements`. Expected result: success.

    **First-read input**

    ```json theme={null}
    {
      "page_size": 10,
      "reimbursement_uuids": [
        "reimb_jb_7701"
      ],
      "reimbursements_to_retrieve": "all_reimbursements"
    }
    ```

    **Representative mutation:** MCP tool `post-comment`. Expected result: success.

    **Mutation input**

    ```json theme={null}
    {
      "mention_user_uuids": [],
      "message": "Hold for review: the $847.50 reimbursement exceeds the $521.50 receipt OCR total by $326.00.",
      "ramp_object_type": "reimbursement",
      "ramp_object_uuid": "reimb_jb_7701"
    }
    ```

    **Expected diff:** changes include `comments`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * No REST claim, payment-network behavior, broad ledger mutation, or arbitrary permissions.

    **Start this sample**

    ```bash theme={null}
    archal sample show ramp.receipt-amount-mismatch.v1 --raw > archal-ramp-receipt-amount-mismatch.json
    archal state validate ramp archal-ramp-receipt-amount-mismatch.json
    archal session create ramp \
      --state ramp=archal-ramp-receipt-amount-mismatch.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show ramp.receipt-amount-mismatch.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/ramp/receipt-amount-mismatch/state.json` and is 9,458 bytes. The CLI verifies SHA-256 `95c5454ce89a43d3ba498bfd8431501d3620f558be77d7357eac6ebe47118d1b` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Ramp expense-split review workflow">
    Review a seven-transaction pending-expense queue, isolate four related TechWorld purchases for approval-threshold splitting, and comment on the first transaction.

    **Sample ID:** `ramp.expense-split-review.v1`

    **Category:** `workflow`

    **Starting state:** 15 records across `articles`: 1, `cards`: 1, `transactions`: 7, `users`: 6

    **Supported surface:** Stateful seeded business records for selected approvals and comments through MCP.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `mcp.approvals`

    **First read:** MCP tool `get-transactions`. Expected result: success.

    **First-read input**

    ```json theme={null}
    {
      "page_size": 10,
      "reason_memo_merchant_or_user_name_text_search": "TechWorld Electronics",
      "state": "pending",
      "transactions_to_retrieve": "all_transactions_across_entire_business"
    }
    ```

    **Representative mutation:** MCP tool `post-comment`. Expected result: success.

    **Mutation input**

    ```json theme={null}
    {
      "mention_user_uuids": [],
      "message": "Receipt and merchant match. Ready for the finance approver.",
      "ramp_object_type": "transaction",
      "ramp_object_uuid": "txn_aw_3301"
    }
    ```

    **Expected diff:** changes include `comments`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * No REST claim, payment-network behavior, broad ledger mutation, or arbitrary permissions.

    **Start this sample**

    ```bash theme={null}
    archal sample show ramp.expense-split-review.v1 --raw > archal-ramp-expense-split-review.json
    archal state validate ramp archal-ramp-expense-split-review.json
    archal session create ramp \
      --state ramp=archal-ramp-expense-split-review.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show ramp.expense-split-review.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/ramp/expense-split-review/state.json` and is 12,650 bytes. The CLI verifies SHA-256 `807c01b69d30df5b2c284dd61d47b59e69412df67a76ab509c97be19d764265c` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>
</AccordionGroup>

## Use custom state

Start from a sample when possible. For custom state, inspect the contract with `archal environment describe ramp`, then validate the file before creating a sandbox:

```bash theme={null}
archal state validate ramp state.json
```

Loading state replaces the current collections and establishes a new reset baseline. See [Starting state](/sandboxes/starting-state) before replacing state in an existing sandbox.
