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

# Register payment intent

> Register a StarkPay payment intent — either from a checkout order or as a standalone financial transaction.

<Info>
  This endpoint supports two modes:

  * **Checkout:** send `order_code` referencing a pre-created [order](/create-orders). No KYC/KYB required.
  * **Financial transaction:** send full payment parameters with `executor_id: api_transaction`. KYC/KYB applies to fiat methods (not pure crypto).
</Info>

<Steps>
  <Step title="Create a payment intent">
    Registering a Payment Intention

    ```shellscript theme={null}
    POST /payment/register/intents-create-order
    ```

    ## Request Body

    | Parameter                                 | Type    | Required | Description                                                                                                                                |
    | ----------------------------------------- | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
    | `executor_id`                             | string  | ✅        | Use `api_transaction` for standalone financial transactions. When `order_code` is sent, the server sets `order_transaction` automatically. |
    | `order_code`                              | string  |          | ID of a pre-created order. Switches the payment to **checkout** mode (no KYC/KYB).                                                         |
    | `tenant_data`                             | object  | ✅        | Tenant configuration object                                                                                                                |
    | `tenant_data.public_client_id`            | string  | ✅        | Integration ID (`stkf_` + 32 hex characters)                                                                                               |
    | `tenant_data.webhook_url`                 | string  | ✅        | Webhook URL to receive transaction status updates                                                                                          |
    | `payment_method_allowed`                  | object  | ✅        | Object defining which payment methods are enabled                                                                                          |
    | `payment_method_allowed.pixcrypto`        | boolean |          | Enable PIX → Crypto payments                                                                                                               |
    | `payment_method_allowed.cardcrypto`       | boolean |          | Enable Card → Crypto payments                                                                                                              |
    | `payment_method_allowed.cardfiat`         | boolean |          | Enable Card → Fiat payments                                                                                                                |
    | `payment_method_allowed.cryptopix`        | boolean |          | Enable Crypto → PIX payments                                                                                                               |
    | `payment_method_allowed.crypto`           | boolean |          | Enable Crypto → Crypto payments                                                                                                            |
    | `split_payment_config`                    | array   | ✅        | List of receivers for payment splitting                                                                                                    |
    | `split_payment_config[].receiver_wallet`  | string  | ✅        | Wallet address to receive the funds                                                                                                        |
    | `split_payment_config[].receiver_percent` | number  | ✅        | Percentage of the payment this wallet receives (0–100)                                                                                     |
    | `gateway_method`                          | string  | ✅        | Gateway processing method. Use `direct` for direct processing or `subs `for subscription payments                                          |
    | `from_currency_symbol`                    | string  | ✅        | Source currency code (e.g. `BRLUSD` )                                                                                                      |
    | `amount_from`                             | string  | ✅        | Amount to be converted from source currency                                                                                                |
    | `to_currency_symbol`                      | string  | ✅        | Target currency code (e.g. `USDT`)                                                                                                         |
    | `to_chain`                                | string  | ✅        | The destination blockchain network where you wish to receive the selected currency. (e.g. `solana`)                                        |
    | `on_ramp`                                 | boolean | ✅        | Set `true` for on-ramp flow, `false` for off-ramp                                                                                          |

    <Note>
      The **on-ramp** feature is not available for receiving payments via PIX. It can only be used for user-initiated payments. Incoming payment requests must set `on_ramp = false`.
    </Note>

    <Note>
      Each enabled entry in `payment_method_allowed` requires the matching product flag on your deployment (`crypto`, `pix`, `credit_card`). Check [`GET /config/products`](/products) with your API key.
    </Note>
  </Step>

  <Step title="Example Request">
    ```shellscript expandable theme={null}
    curl --request POST \
      --url https://api.starkfi.io/payment/register/intents-create-order \
      --header 'Content-Type: application/json' \
      --header 'x-api-key: <api_key>' \
      --data '{
      "executor_id": "api_transaction",
      "tenant_data": {
        "public_client_id": "stkf_a1b2c3d4e5f6789012345678abcdef01",
        "webhook_url": "https://webhook.site/97b5142a-1cb7-4142-8306-3d98a93e9a79"
      },
      "payment_method_allowed": {
        "pixcrypto": true,
        "cardcrypto": true,
        "cardfiat": true,
        "cryptopix": true,
        "crypto": true
      },
      "split_payment_config": [
        {
          "receiver_wallet": "0x9b57847b69D0354837F7b723133B9dBCbefb4F9F",
          "receiver_percent": 100
        }
      ],
      "gateway_method": "direct",
      "from_currency_symbol": "BRL",
      "amount_from": "30",
      "to_currency_symbol": "USDT",
      "to_chain": "arbitrum",
      "on_ramp": false
    }'
    ```
  </Step>

  <Step title="Expected Response">
    ```json theme={null}
    {
        "statusCode": 201,
        "success": true,
        "status": "payment_registered",
        "message": "Payment has been registered",
        "data": {
            "payment_id": "cmodpory6000001nyoe3d12m1"
        }
    }
    ```
  </Step>
</Steps>

<ParamField type="string">
  `Enter a description`
</ParamField>
