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

# Cash-ins

> Code-based cash deposits at retail locations that auto-convert to USDC.

A cash-in is an in-person cash deposit flow for retail locations. The developer creates a cash-in that generates a deposit code. The customer takes that code to a partner retail location, deposits cash in any amount, and OMS automatically converts it to USDC and delivers it to the destination wallet.

Cash-ins skip the quote step: the customer decides how much to deposit at the counter, so no amount is specified at creation.

## Object

```json theme={null}
{
  "id": "ci_...",
  "status": "pending",
  "customerId": "cst_...",
  "source": {
    "asset": "usd",
    "network": "cash",
    "indicatedAmount": "100.00"
  },
  "destination": {
    "wallet": { "wallet": "wlt_..." },
    "asset": "usdc",
    "network": "polygon"
  },
  "cash": {
    "cashLocationId": "loc_...",
    "cashLocationReference": "..."
  },
  "depositInstructions": {
    "code": "ABC 12345",
    "expiresAt": "2025-01-15T11:30:00Z",
    "locationName": "CVS Pharmacy #4521",
    "locationAddress": "123 Main St, New York, NY 10001"
  },
  "omsFeeSchedule": {
    "feeCurrency": "usd",
    "entries": [
      { "type": "percentage", "rate": "0.015" },
      { "type": "fixed", "amount": "0.50" }
    ]
  },
  "transaction": null,
  "createdAt": "2025-01-15T10:30:00Z",
  "completedAt": null
}
```

Display the `depositInstructions.code` in your UI. The `omsFeeSchedule` is included so you can show customers the fee structure before they visit the retail location.

## Flow

```
POST /cash-ins  →  deposit code (valid 1 hour)
                      │
      customer deposits cash at retail location
                      │
              OMS converts to USDC
                      │
         transaction.fiatToCrypto.completed
```

The deposit code is valid for one hour. If it expires before the customer deposits, refresh it via `POST /cash-ins/{id}/refresh`: no need to create a new cash-in.

## Supported networks

Cash deposits are processed through OMS's retail partner network:

* **GreenDot**: US retail locations (CVS, Walgreens, Walmart)
* **AllPoint ATM**: ATM network for cash withdrawals

## Status

| Status       | Meaning                                        |
| ------------ | ---------------------------------------------- |
| `pending`    | Deposit code issued, awaiting customer deposit |
| `processing` | Cash received; conversion in progress          |
| `completed`  | USDC delivered to the destination wallet       |
| `expired`    | Code expired before a deposit was made         |

## Key operations

| Operation            | Endpoint                            |
| -------------------- | ----------------------------------- |
| Create a cash-in     | `POST /cash-ins`                    |
| Refresh deposit code | `POST /cash-ins/{cashInId}/refresh` |
| Get a cash-in        | `GET /cash-ins/{cashInId}`          |
| List cash-ins        | `GET /cash-ins`                     |

## Related

* [Cash-in guide](/api-reference/guide-cash-in): full walkthrough with request/response and fee configuration
* [Transactions](/payments/transactions): standard two-step flow for card and bank transfers
