Skip to main content
POST
string
required
Your StarkFi API key. You can find it in your dashboard.
The transaction type defines the required and optional request parameters. Always validate the specified type before building the request.
Checkout (order) flows do not require KYC/KYB — payments with order_code or executor_id: order_transaction skip verification.For financial transactions, fiat-related types require approved KYC/KYB when payer_email or payer_wallet is sent. Pure crypto never requires KYC/KYB. Errors: kyc_verification_required, kyc_not_approved. See StarkPay overview.
string
required
Payment ID returned by the Register Order Transaction endpoint.
enum<string>
required
Defines the payment method. Available options: crypto, pixcrypto, fiatcrypto, cardcrypto, cardfiat
string
required
Payer’s email address.

Crypto transaction fields

string
Payer’s public wallet address. Required for crypto transactions.
string
The chain the user will pay from (e.g. arbitrum, solana). Required for crypto transactions.
string
Token the user will pay with (e.g. USDC, SOL, ETH). Required for crypto transactions.

On-ramp (Pix / Fiat) transaction fields

string
Payer’s CPF or CNPJ. Required for pixcrypto and fiatcrypto transactions.

Credit card transaction fields

string
Payer’s full name. Required for cardcrypto and cardfiat transactions.
string
Payer’s document number. Required for card transactions.
enum<string>
Document type. Available options: PASSPORT, CPF, CNPJ. Required for card transactions.
string
Payer’s IP address. Required when using tokenized card.
string
Session identifier for fraud prevention. Required when using tokenized card.
object
Payer phone details. Required for card transactions.
object
Card payment configuration. Required for card transactions.

Response

number
required
HTTP status code. Returns 201 on success.
boolean
required
Whether the request succeeded.
string
required
Status label (e.g. payment_registered).
string
required
Human-readable response message.
object
required
Transaction data payload.

Signing a transaction

Direct on-chain submission is not allowed and may result in failure or rejection. All transactions must be signed locally and then submitted exclusively through the Broadcast endpoint.
After receiving crypto_tx, sign it with the user’s wallet before broadcasting.
You can use an external wallet provider like Privy.io to sign transactions without exposing private keys. Never call sendTransaction directly — always go through the broadcast endpoint.

Card tokenization

Use tokenization to avoid handling raw card data. This improves security and helps ensure PCI compliance.
Endpoint: POST https://api.starkfi.io/payment/card/tokenize
string
required
Payment type. Use card.
object
required
Card details to tokenize.
Tokenization response:
Pass the returned id as card_data.card_token in the create transaction request.
Card payment support is currently limited to CardCrypto. Only one-time transactions are supported. Enablement requires a minimum lead time of 7 days and must be aligned in advance with the sales team. To use any payment method involving the traditional financial system (PIX, fiat, card), complete KYC/KYB procedures with the account management team.