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

# Datafono

> Charge on a standalone card terminal and mark it paid, like cash, with @fire-spark/payments-cash.

A card terminal (datáfono) is a card machine Fire spark does not control. Staff charges the card on the terminal and marks the order paid. It works like cash: the tender stays `IDLE` until the store marks it paid.

| | |
| - | - |
| Countries | All |
| Currencies | The order currency |
| Status | Available |
| Package | `@fire-spark/payments-cash` |

## Requirements

* A card terminal from your bank or acquirer. Fire spark does not connect to it: no credentials and no device fields.
* Works in app, web, call center, and POS. Kiosks do not offer it: kiosk customers pay cash at the counter.
* Fire spark does not record installments, tips, card brand, or last 4 digits. The terminal handles those.

## Activate it

In the dashboard, open your merchant, go to **Payments**, and create a payment with the provider **Fire spark** and the method **PIN pad** (*Datafono*). Choose the stores and channels where it applies. It has no configuration fields.

## Use it in the SDK

```bash theme={null}
pnpm add @fire-spark/payments-cash
```

```typescript theme={null}
import { cardTerminalPayments } from "@fire-spark/payments-cash";

order.setPaymentAdapters([cardTerminalPayments()]);
order.setPaymentOptions({ cashCollectAt: "DOOR" }); // "COUNTER" at the register

const result = await order.payIntent({ payment: terminalPayment });
// result.status === "PENDING" while the tender is IDLE
```

`collect_at` comes from `cashCollectAt`, same as cash. If you place the order without the SDK with `type: "PIN_PAD"` and `provider: "firespark"`, the API defaults to `DOOR`. In POS the sale is `PAID` when recorded, and the approval code, if typed, is saved as `provider_reference`.

## What the customer sees

The channel shows its own "pay by card on delivery" or "at the counter" message. The adapter result metadata includes `attempt_reference`. There are no `details` and no Fire spark voucher.

## Webhooks

None.

## Common errors

| Spark code | Provider code | What to do |
| - | - | - |
| `CANCELLED_BY_USER` | — | The customer cancelled before placing. Nothing was charged. |

A terminal decline never reaches Fire spark: retry on the terminal or switch methods.

## Compatibility

| `@fire-spark/payments-cash` | Provider | `@fire-spark/payments` |
| - | - | - |
| After 0.9.1 | No external provider | Same version |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.