# Build with NiriPay

Connect your application to NiriPay with server-side APIs, hosted checkout, and signed payment notifications. Start with an INR payment, or explore the separate USDT integration.

[Start building](/quickstart/) · [Explore the API](/create-deposit/)

## Make your first request

Create an INR deposit and use the returned `payment_page` to open checkout. The example below uses illustrative values; requests sent to the production API create real orders.

```bash
curl -X POST https://api.niripay.com/api/v1/merchant/deposits/create \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 1000,
    "transaction_id": "ORDER-2026-001",
    "webhook_url": "https://merchant.example/webhooks/niripay"
  }'
```

## A payment, from end to end

1. Create an order on your server.
2. Open hosted checkout for your customer.
3. Verify the notification and reconcile payment status.

Your server creates the payment. Your customer completes checkout. Your application verifies the notification and reconciles the final status.

> A successful API request is not a successful payment. Use the transaction’s payment status before fulfilling an order.

## Choose your integration

| Integration | What you can build | Start here |
| --- | --- | --- |
| INR collections | UPI payments and hosted checkout | [Create a deposit](/create-deposit/) |
| INR payouts | Bank transfers and status tracking | [Create a payout](/create-payout/) |
| USDT on TRON | Reusable deposit addresses and quoted payouts | [USDT overview](/crypto-overview/) |
| WooCommerce | Checkout integration for your store | [WooCommerce guide](/woocommerce/) |

## Before you begin

Have an approved merchant account, a server-side API key, an allowlisted server egress IP, and an HTTPS webhook endpoint ready. USDT functionality requires separate merchant activation.

Read the [quickstart](/quickstart/) for the complete flow, then follow the [production checklist](/production-checklist/) before accepting payments.
