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

# Recording a Payment

> Log a customer payment straight from the group chat

When a customer pays, just say so:

```
Payment received Jordan 29,000
```

The bot resolves the customer, applies the payment, and replies with exactly what it did:

```
💰 Payment recorded — Jordan: $29,000
  Applied SKP-20260916-B83484CB: $29,000 → paid
Jordan now owes: $0
```

## Which order gets paid?

If you don't name a specific order, the bot pays down **Jordan's oldest open order first**. If the payment is bigger than that order's balance, the leftover automatically rolls onto the next-oldest open order, and so on:

```
💰 Payment recorded — Jordan: $29,000
  Applied SKP-20260801-A1B2C3D4: $10,000 → paid
  Applied SKP-20260916-B83484CB: $19,000 → partially paid ($10,750 remaining)
Jordan now owes: $10,750
```

This means you never have to remember or type an order number for the common case — "Payment received Jordan 29,000" just works even if Jordan has multiple invoices outstanding.

## Pointing at a specific order

If you want to be precise — say the payment is specifically for one invoice — include the order/PO number:

```
Payment received Jordan 29,000 for SKP-20260916-B83484CB
```

This applies the full amount to that order only, regardless of what else is open.

## Overpayments

If the amount is more than everything Jordan currently owes, the bot pays off every open order and tells you about the leftover rather than guessing what to do with it:

```
💰 Payment recorded — Jordan: $500
  Applied SKP-20260916-B83484CB: $150 → paid
⚠️ $350 could not be applied — no more open orders for Jordan, please check.
Jordan now owes: $0
```

Flag that to an admin — it usually means either the amount was mistyped or it's meant for an order that hasn't been placed yet.

## Payment method

If you mention how they paid — cash, e-transfer, bank transfer — the bot records it. If you don't say, it defaults to cash; an admin can correct this later from the dashboard if needed.

<Note>
  If the customer name isn't recognized, the bot will say so rather than guessing or creating a new customer record from a payment message.
</Note>
