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_codethat references an existing order (setsexecutor_idtoorder_transactionautomatically), or - The payment’s
executor_idis alreadyorder_transaction
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_typeis not purecrypto(e.g.pixcrypto,cardcrypto,cardfiat), and- You provide
payer_emailand/orpayer_wallet
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
- Crypto: sign the unsigned transaction and submit via
POST /payment/execute/on-chain. - PIX / card: monitor with
GET /payment/:id/statusor your webhook.
Split payments
Usesplit_payment_config to route received funds to multiple wallets:
Webhooks
Settenant_data.webhook_url when registering the payment. StarkFi forwards status changes so you do not need to poll for every update.
.png?fit=max&auto=format&n=I_v6ul4JDafNKFQP&q=85&s=f0ad25536f8a3ca42331fcff88ab2b26)