---
title: "Get support"
sidebarTitle: "Contact support"
description: "How to reach Gravv support, what to check first, and what to put in a request so support can answer it without a second round."
---
When a page says "contact support", write to the address below. Support can trace a request at once if it names the environment, the ids and the exact response you got. A request that only says "the transfer failed" needs a second round of questions first.

**Example.** A payout of 2,500.00 USD came back `transfer.status.failed`. You write: "Live. `POST /v1/transfer` at 2026-10-13 09:15 UTC, `Idempotency-Key` `9f1c…`, `transaction_id` `8d4e2b6c-…` and its `reference`. The webhook's `transfer_status` is `manual_processing_required`. What do we need to do?" Support can find the transfer from that alone.

## Contact

Email **[hello@gravv.xyz](mailto:hello@gravv.xyz)**, the address the Gravv Dashboard's support links use.

## Before you write

- **Read the response.** The error `message` usually says what to fix. See [Errors](/getting-started/errors).
- **Check the environment.** An id from sandbox is not found with a live key, and the other way round. See [Environments](/getting-started/environments).
- **Look before you retry.** After a timeout, read what the first call created before you send it again. See [Idempotent requests](/getting-started/idempotent-requests).
- **Missed a webhook?** Read and resend it from [webhook history](/platform/webhooks/webhooks-overview) yourself.
- **Hit a limit?** See [Rate limits](/getting-started/rate-limits), [Transfer limits](/platform/transfers/transfer-limits) and [Upload sizes](/getting-started/formats#upload-sizes).

## What to include

| Include | Why |
| :-- | :-- |
| Sandbox or live | The two hold separate data |
| The method and route, such as `POST /v1/transfer` | Several routes can return the same text |
| The time of the call, in UTC | Gravv returns no request id, so support finds the call by its time and ids |
| The `Idempotency-Key` you sent | It ties retries to the first call |
| The HTTP status and the whole `error` or `message` text | The exact text points to the cause |
| Every id involved: `customer_id`, `account_id`, `transaction_id` and `reference`, `external_account_id`, `card_id`, `application_id` | Support reads the records by id |
| For a webhook: the history `id` and the body's `event_id` | Each history route takes a different id |

## What never to send

- Your API key, in full or in part.
- Card numbers, CVVs or PINs.
- Identity documents or their numbers. Give the customer's id instead.
