# Acknowledge a mobile survey handoff (/api-reference/survey-channels/acknowledgeMobileSurveyDelivery)

`POST /v1/retention/survey-deliveries/{id}/receipt`

Base URL: `https://api.bitelio.com`

Requires retention:view and retention:edit. Idempotent and scoped to this project, delivery and receiptToken. Report ACCEPTED when your notification provider accepts, DELIVERED only with provider/device evidence, FAILED when definitely not delivered, OPENED only after a real user opens the notification, and CLICKED after a deliberate interaction. Send receipts from your merchant server, never expose the secret API key or receiptToken in an app binary. Opening and clicking imply delivery; repeated or out-of-order receipts preserve the first timestamps and cannot downgrade DELIVERED. Bitelio never automatically reissues an uncertain handoff. Tracking-disabled projects and customers who withdraw from follow-up do not collect interaction timestamps. Limit 120 requests/minute shared per project.

## Path parameters

- `id`: string (required)

## Request body

- `receiptToken`: string (uuid) (required)
- `status`: enum ("ACCEPTED" | "DELIVERED" | "FAILED" | "OPENED" | "CLICKED") (required)

Example:

```json
{
  "receiptToken": "string",
  "status": "ACCEPTED"
}
```

## Responses

### `200` — Success

- `acknowledged`: boolean (required)

```json
{
  "acknowledged": false
}
```

### `400` — Invalid input or unavailable channel

### `401` — Secret API key required

### `403` — Required project permission is missing

### `429` — Project rate limit exceeded. Retry-After identifies the wait in seconds.

### `503` — Rate limiter temporarily unavailable; retry later.

## Example request

```bash
curl -X POST 'https://api.bitelio.com/v1/retention/survey-deliveries/{id}/receipt' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"receiptToken":"string","status":"ACCEPTED"}'
```
