Skip to main content
StarkPay is StarkFi’s payment product. You register a payment intent, create a transaction for the payer’s chosen method, then execute on-chain or wait for fiat settlement — depending on the flow.
Confirm StarkPay-related products are enabled for your deployment with GET /config/products (requires x-api-key). At minimum, enable the payment methods you plan to offer (crypto, pix, credit_card).

Checkout vs financial transaction

StarkPay distinguishes two payment contexts. KYC/KYB rules depend on which one you use.

How checkout is identified

A payment is treated as checkout when any of the following is true:
  • You register the payment intent with an order_code that references an existing order (sets executor_id to order_transaction automatically), or
  • The payment’s executor_id is already order_transaction
In both cases, POST /payment/register/intents-create-transaction skips KYC/KYB validation, regardless of payment method.

When KYC/KYB is required

For financial transactions (not checkout), KYC/KYB is enforced when:
  • transaction_type is not pure crypto (e.g. pixcrypto, cardcrypto, cardfiat), and
  • You provide payer_email and/or payer_wallet
Pure crypto financial transactions never require KYC/KYB, even when payer identity is sent. Route the user through the KYC flow before retrying transaction creation.

Payment methods

Integration flow

1

Choose your path

Checkout: create an order, then register payment with order_code.Financial transaction: register a standalone payment intent with POST /payment/register/intents-create-order (executor_id: api_transaction).
2

Register the payment intent

POST /payment/register/intents-create-orderRequired tenant fields include public_client_id (format stkf_ + 32 hex characters) and webhook_url.
3

Create the payer transaction

With the returned payment_id, call POST /payment/register/intents-create-transaction with the payer’s wallet, email, and transaction_type.KYC/KYB applies only to financial transactions with fiat-related types — not to checkout or pure crypto.
4

Execute or monitor

Split payments

Use split_payment_config to route received funds to multiple wallets:
Percentages must sum to 100 across receivers.

Webhooks

Set tenant_data.webhook_url when registering the payment. StarkFi forwards status changes so you do not need to poll for every update.