> ## Documentation Index
> Fetch the complete documentation index at: https://developer.moneyone.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Initiate Transaction

> Start an orchestration transaction and obtain the transaction_id and launch_url.

Initiating a transaction is the first step. You send the configured instance to run
and the user's identifiers, and you receive a `transaction_id` (used for every
subsequent call) and a `launch_url` (which you hand off to the user).

## Endpoint

```
POST /transaction/init
```

## Headers

| Header          | Description                                                                                             |
| --------------- | ------------------------------------------------------------------------------------------------------- |
| `Content-Type`  | `application/json`                                                                                      |
| `Authorization` | `Basic base64(client_id:client_secret)`. Your `client_id` and `client_secret` are provided by MoneyOne. |

## Sample request

<CodeGroup>
  ```bash cURL theme={null}
  curl --request POST \
    --url 'https://<base_url>/transaction/init' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic <base64(client_id:client_secret)>' \
    --data '{
      "instance_id": "gateway.equal.<instance>",
      "reference_id": "client-order-123",
      "user_profile": { "mobile_number": "9999999999" },
      "redirect_url": "https://client.app/return"
    }'
  ```
</CodeGroup>

## Parameters

<ParamField body="instance_id" type="string" required>
  Identifier provided by MoneyOne that points to the stored configuration for your
  entire journey — the steps and flows to run and how they are stitched together.
  Example: `gateway.equal.<instance>`.
</ParamField>

<ParamField body="reference_id" type="string" required>
  Your correlation ID for the transaction. Must be unique per user from your end.
  Echoed back on status and data responses.
</ParamField>

<ParamField body="user_profile" type="object" required>
  User details for the journey. Can carry any fields the journey requires as its input
  (e.g. `mobile_number`, PAN, and so on) — the required set depends on the configured
  instance.
</ParamField>

<ParamField body="redirect_url" type="string">
  URL the user is redirected back to after completing the journey. If omitted, the
  instance's configured default is used.
</ParamField>

## Response 200

```json theme={null}
{
  "transaction_id": "5498109b-8e8a-419b-8b45-14ee5029ff12",
  "launch_url": "https://orchestration.<env>/?access_token=<jwt>&base_url=<gms>&fiu_id=<instance>"
}
```

### Response fields

| Field            | Description                                                                           |
| ---------------- | ------------------------------------------------------------------------------------- |
| `transaction_id` | Transaction identifier for the journey. Store and reuse it for status and data calls. |
| `launch_url`     | Hosted URL to hand off to the user (redirect or SDK webview).                         |

<Note>
  The client opens `launch_url` (redirect / SDK webview). Do not modify the URL.
</Note>

## Next step

Open the `launch_url` for the user. Once the journey completes, you receive the
terminal [Webhook](./webhooks).
