# FAQ

## :book:Questions & Answers

Have a question about using the API? This section covers the most common issues, tips, and answers to help you integrate faster and avoid common pitfalls. If you don’t find what you’re looking for here, reach out to our support team.

<details>

<summary><strong>Which OAuth grant type is supported?</strong></summary>

`client_credentials` only. Include `grant_type=client_credentials` in the form data.

</details>

<details>

<summary><strong>Where do I obtain <code>client_id</code> and <code>client_secret</code>?</strong></summary>

Generate them in the Partner Dashboard under **API Keys**.

</details>

<details>

<summary><strong>How long is an <code>access_token</code> valid?</strong></summary>

Exactly the value of `expires_in` returned by the token call—currently **3600 seconds (60 minutes)**.

</details>

<details>

<summary><strong>What is the minimal body for <code>POST /payment/request</code>?</strong></summary>

```
{
  "amount": "100",
  "currency": "USD",
  "redirect_url": "https://yourapp.com/thanks"
}
```

</details>

<details>

<summary><strong>Can I tag requests for internal tracking?</strong></summary>

Yes, pass a `reference_id` string. It is returned unchanged in all responses.

</details>

<details>

<summary><strong>What is the API rate limit?</strong></summary>

The API enforces a rate limit of **5 requests per second per API key**.

If you exceed this limit, you will receive an HTTP 429 “Too Many Requests” response. To avoid hitting the rate limit:

* Space out your requests evenly
* Implement exponential backoff and retry logic when you receive a 429 error
* Monitor your request volume to stay within limits

If your use case requires a higher rate limit, please contact our support team to discuss your integration needs.

</details>

<details>

<summary><strong>How do I confirm payment completion?</strong></summary>

Poll `GET /payment/request/{id}` until `status` equals `paid`.

</details>

<details>

<summary><strong>What statuses can a payment request have?</strong></summary>

`pending`, `paid`, `expired`, or `cancelled`.

</details>

<details>

<summary><strong>What happens if required fields are missing?</strong></summary>

The API returns `400 Bad Request` with details in the `error.message` field.

</details>

<details>

<summary><strong>Does the API support recurring or partial payments?</strong></summary>

No. Each Payment Request is a one‑off charge for a fixed amount.

</details>

***
