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

> ## Agent Instructions
> Nash exposes two MCP servers. The docs MCP server at https://docs.usenash.com/mcp searches this documentation and needs no credentials. The Nash MCP server at https://mcp.usenash.com/mcp operates an organization's deliveries and needs a Nash API key. See https://docs.usenash.com/reference/build-with-ai.
> Use the Sandbox environment (https://api.sandbox.usenash.com/v1) for anything that creates or dispatches deliveries during development.

# Delivery fees and pricing

> What a quote's price includes, which fees land on a delivery, how totalPriceCents is computed, and when each fee is final.

Every quote and every delivery carries the same family of money fields, all integer cents in the record's `currency`. This page explains what each one holds, what `totalPriceCents` does and doesn't include, and when a fee is final, so you can bill and reconcile without guessing.

## When to use this

* You bill your own customers for delivery, or reconcile provider invoices against what Nash reports.
* A delivery's total came out different from the quote you accepted and you want to know why.
* You're building a report and need to know which fields to add up.

If you only show a price at checkout, you don't need most of this: display the quote's `totalPriceCents` and stop.

## Quote versus delivery

A **quote** is a provider's offer to do the delivery, valid until its `expireTime`. A **delivery** is the fulfillment attempt Nash creates when you dispatch a quote. A quote's total is an estimate; a delivery's total is what the provider is charging for the work.

At dispatch, the delivery copies `priceCents`, `taxAmountCents`, and `tollFeeCents` from the quote. Every other fee on the delivery starts at `0` and is filled in as the delivery progresses, so a delivery read right after dispatch always matches its quote and a delivery read after completion may not.

## Fields on a quote

| Field                                              | What it holds                                                                                                                                        |
| -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `priceCents`                                       | The base delivery fee.                                                                                                                               |
| `taxAmountCents`                                   | Tax on the fee.                                                                                                                                      |
| `tollFeeCents`                                     | Tolls.                                                                                                                                               |
| `totalPriceCents`                                  | `priceCents` + `taxAmountCents` + `tollFeeCents`.                                                                                                    |
| `totalPriceBreakdown`                              | The non-zero fees that make up the total, keyed by field name (see below).                                                                           |
| `insuranceFeeCents`                                | Insurance the provider would charge. Shown on the quote but **not** included in its total.                                                           |
| `nashFeeCents`                                     | The Nash platform fee. **Not** included in the total.                                                                                                |
| `costSplitCustomerCents`, `costSplitBusinessCents` | How the total splits between your customer and your business, when your dispatch strategy defines a split. Otherwise `null`.                         |
| `currency`                                         | ISO currency code.                                                                                                                                   |
| `expireTime`                                       | When the offer stops being valid. Dispatching an expired quote returns `400`; [refresh the quotes](/api-reference/order/refresh-order-quotes) first. |

## Fields on a delivery

Seven provider fees add up to the delivery's total. The rest of the money fields sit beside it.

**Provider fees (included in `totalPriceCents`)**

| Field                  | What it holds                                                                                                | When it's set                                                                                                               |
| ---------------------- | ------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- |
| `priceCents`           | The base delivery fee, copied from the quote.                                                                | Dispatch. Reset to `0` if the delivery is canceled.                                                                         |
| `taxAmountCents`       | Tax on the fee.                                                                                              | Dispatch. Reset to `0` if the delivery is canceled.                                                                         |
| `tollFeeCents`         | Tolls.                                                                                                       | Dispatch.                                                                                                                   |
| `insuranceFeeCents`    | Insurance, from your provider contract.                                                                      | When the delivery completes, or fails after the driver reached the dropoff. Not applied to batch deliveries.                |
| `waitFeeCents`         | A charge for time the driver spent waiting. `waitTimeMinutes` alongside it holds the minutes the fee covers. | Same moment as the insurance fee. Computed from your contract's wait-fee schedule, or recorded as the provider reported it. |
| `cancellationFeeCents` | A charge for a cancellation.                                                                                 | When the delivery is canceled, if your contract sets one for that kind of cancellation.                                     |
| `returnFeeCents`       | A charge for bringing the package back.                                                                      | When the delivery's status becomes `returned`.                                                                              |

**Other money fields (not included in `totalPriceCents`)**

| Field                    | What it holds                                                                           |
| ------------------------ | --------------------------------------------------------------------------------------- |
| `nashFeeCents`           | The Nash platform fee. Reset to `0` if the delivery is canceled.                        |
| `tasks[].tipAmountCents` | The tip you set on the order, carried on the task rather than the delivery.             |
| `bonusPayCents`          | Bonus pay for the driver, separate from the provider's fees.                            |
| `otherProviderFees`      | Reserved for provider charges that don't fit the fields above. Currently always `null`. |
| `currency`               | ISO currency code.                                                                      |

## What `totalPriceCents` includes

```text theme={"dark"}
totalPriceCents = priceCents
                + taxAmountCents
                + tollFeeCents
                + insuranceFeeCents
                + waitFeeCents
                + cancellationFeeCents
                + returnFeeCents
```

It is the provider's charges and nothing else. A common mistake is to treat it as the all-in cost and under-bill: the Nash fee and the tip are outside it. To see everything a delivery costs you, add `nashFeeCents` and the task's `tipAmountCents` to `totalPriceCents`.

Because the cancellation path zeroes `priceCents`, `taxAmountCents`, and `nashFeeCents`, a canceled delivery's total collapses to its `cancellationFeeCents`, plus any toll, wait, or return fee that was already booked.

## Reading `totalPriceBreakdown`

`totalPriceBreakdown` is a map of the provider fees that went into the total, keyed by the same field names. It's sparse: a fee whose value is `0` or `null` is left out entirely, and the keys come in no particular order.

```json theme={"dark"}
{
  "totalPriceBreakdown": {
    "priceCents": 1209,
    "taxAmountCents": 97,
    "waitFeeCents": 300
  },
  "totalPriceCents": 1606
}
```

Read it as "which fees applied", default any missing key to `0`, and don't depend on key order. On a quote, the map only ever holds `priceCents`, `taxAmountCents`, and `tollFeeCents`.

## When fees are final

| Moment                                                             | What changes                                                                                  |
| ------------------------------------------------------------------ | --------------------------------------------------------------------------------------------- |
| Dispatch                                                           | `priceCents`, `taxAmountCents`, `tollFeeCents` copied from the quote. Other fees `0`.         |
| Delivery completed, or failed after the driver reached the dropoff | `waitFeeCents` (and `waitTimeMinutes`) and `insuranceFeeCents` are set.                       |
| Delivery canceled                                                  | `cancellationFeeCents` is set. `priceCents`, `taxAmountCents`, and `nashFeeCents` become `0`. |
| Delivery returned                                                  | `returnFeeCents` is set.                                                                      |

Reconcile a delivery only once it has reached a [terminal status](/reference/delivery-status#terminal-statuses). Until then, `totalPriceCents` is the quoted amount and can still move. If you consume [webhooks](/reference/webhooks), the `delivery` event for each of these transitions carries the delivery with its fee fields as of that moment, so the terminal event is the one to bill from.

For a batch job, the contract-based wait, cancellation, and return fees are booked on the **first** delivery in the batch rather than spread across each package. Look there when you reconcile a batch.

## Related

<CardGroup cols={2}>
  <Card title="Jobs overview" href="/api-reference/job/jobs">
    Where the delivery object sits inside a job, and the paths to reach it.
  </Card>

  <Card title="Delivery status" href="/reference/delivery-status">
    The status list, including which statuses are terminal.
  </Card>

  <Card title="Dispatch strategies" href="/reference/dispatch-strategies">
    How Nash chooses a quote, and what a strategy is allowed to spend.
  </Card>

  <Card title="Refunds & incidents" href="/reference/refunds-and-incidents">
    Report a problem with a delivery and request a refund.
  </Card>
</CardGroup>
