# Introduction

> Accept bKash and Nagad payments with a few lines of code — and try everything in test mode first.

Devzity lets your website or app accept **bKash and Nagad** payments. You create a **Payment** from your server, send your customer to its **checkout page**, and Devzity tells you when it is paid.

```text
Your server ──(secret key)──▶ Devzity API ──▶ checkout_url ──▶ your customer pays
                                   │
                                   └──▶ signed webhook ──▶ your server fulfils the order
```

## Start in test mode

Test mode moves **no real money** and needs no bKash or Nagad account, no Devzity receiving setup and no Service Credit. You can create a payment, complete it with one call, and receive a signed webhook in a few minutes.

> **Tip:** Follow the [Quickstart](https://docs.devzity.com/v1/quickstart.md). It is one short page — and you can pick your platform at the top.

## What you can use

| You use | For |
| --- | --- |
| [Node.js SDK](https://docs.devzity.com/v1/quickstart.md) | Node.js / TypeScript servers |
| [Next.js helpers](https://docs.devzity.com/v1/quickstart.md) | Next.js App Router routes and webhooks |
| [REST](https://docs.devzity.com/v1/rest.md) | PHP, Laravel, Java / Spring Boot, Go, Python, curl — anything that speaks HTTP; available today |
| [Android](https://docs.devzity.com/v1/android.md) and [iOS](https://docs.devzity.com/v1/ios.md) checkout SDKs | Opening checkout from a native app and handling the return |
| [React Native](https://docs.devzity.com/v1/react-native.md) and [Flutter](https://docs.devzity.com/v1/flutter.md) | The same pattern with standard link handling |

> **Warning:** **Secret keys belong on your server.** A browser page, Android app, iOS app, React Native or Flutter bundle can be unpacked by anyone. Mobile and browser code only ever receive a `checkout_url` from **your** backend. See [Authentication](https://docs.devzity.com/v1/authentication.md).

## Concepts in one minute

- **Payment** — one request to collect an amount. It starts `PENDING` and ends `PAID`, `CANCELLED` or `REVERSED`.
- **Checkout** — the hosted page your customer pays on. You never handle their payment details.
- **Webhook** — a signed message Devzity sends your server when something happens. It is how you learn a payment was paid.
- **Test vs Live** — two isolated environments with different secret keys (`dz_test_sk_…`, `dz_live_sk_…`).

See [Versioning and stability](https://docs.devzity.com/v1/versioning.md). The API version is **v1** (`/v1/...`). It is separate from SDK package versions (`@devzity/sdk` 0.x): the docs at `/v1` describe the v1 API, whichever SDK version you use.
