---
title: Quickstart
description: Go from a new project to your first successful payment.
---

This walks through one collection end to end. You need a RazPay organisation (we create it when we onboard you).

1. **Connect your accounts**

    In the dashboard, open **Organization → Provider accounts** and connect your MTN MoMo **Collection** account. Connect **Disbursement** too if you'll send payouts or refunds. See [MTN MoMo](/docs/providers/mtn-momo#connecting-your-accounts).

2. **Create a project**

    In the dashboard, open **Projects** and create a project for the product you're charging for. On the project's page, switch on **MTN Mobile Money** under **Providers**.

3. **Create an API key**

    Under **API keys**, create a key. The `collect` permission is enough to take payments. The key is shown **once**; store it on your server, never in a browser or mobile app.

4. **Set your webhook URL**

    Under **Webhook**, enter the HTTPS URL RazPay should send events to. Saving it shows a **signing secret** once; store it next to your API key. See [Webhooks](/docs/concepts/webhooks).

5. **Collect a payment**

    Send a payment request. The customer gets a prompt on their phone.

    ```bash
    curl -X POST https://api.razpay.razonetix.com/v1/payments/collect \
      -H "Authorization: Bearer $RAZPAY_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "external_reference": "order-1001",
        "provider": "momo",
        "amount": 30.00,
        "currency": "SZL",
        "phone_number": "76123456",
        "description": "Order 1001"
      }'
    ```

    The response is a transaction with `"status": "pending"`. When the customer approves (or declines, or lets it expire), RazPay sends `transaction.successful` or `transaction.failed` to your webhook. You can also check any time with `GET /payments/order-1001`.

:::tip
Use your own order or invoice id as `external_reference`. It's how you find the payment again, and retrying with the same value never charges twice. See [The ledger](/docs/concepts/transactions#references-and-retries).
:::

## Where to go next

- Fulfil orders from [webhooks](/docs/concepts/webhooks) and fall back to polling for anything you miss.
- [Send payouts](/docs/guides/payouts) and [refunds](/docs/guides/refunds) once your disbursement account is connected.
- Try every endpoint against your project in the dashboard's **Playground**.
- Read the [best practices](/docs/guides/best-practices) and work through the go-live checklist before you launch.
