Skip to main content

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.

The transaction type defines the required and optional request parameters. Always validate the specified type before building the request.
POST /payment/register/intents-create-transaction
1

Create a crypto transaction

Create a crypto transaction to any token on any chain (ANY-TO-ANY)
ParameterTypeRequiredDescription
payment_idstringPayment id returned by register order endpoint
payer_walletstringUser public address
payer_emailstringUser email address
chain_namestringThe chain name chosen by the user, referring to the chain for which they wish to pay (for example: Solana).
payer_token_symbolstringUser’s choice of token to pay for this transaction (e.g., USDC, SOL, ETH)
transaction_typestringEvery transaction have a specific type. This is crypto

Response Expected 

{
    "statusCode": 201,
    "success": true,
    "status": "payment_registered",
    "message": "Payment has been registered",
    "data": {
        "session_payment": "https://app.starknode.io/sessions/payment?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNtb2RpNzhiMjAwMDEwMXBqZXpzdDFpY3MiLCJleGVjdXRvcl9pZCI6ImFwaV90cmFuc2FjdGlvbiIsIm9yZGVyX2NvZGUiOm51bGwsInRlbmFudF9kYXRhIjp7ImNvdW50cnkiOiJicmF6aWwiLCJwaXhfZW5hYmxlZCI6dHJ1ZSwid2ViaG9va191cmwiOiJodHRwczovL3dlYmhvb2suc2l0ZS85YWJkYzZhZC00OTU2LTRkOGMtYjRkNS0wNmVhZmZhMzBiY2UiLCJwdWJsaWNfY2xpZW50X2lkIjoiY21uZ3k2Nm13MDAwMGU2eTB1b3djYnhnZiIsImJhbmtfYWNjb3VudF9lbmFibGVkIjp0cnVlLCJwYXltZW50X21ldGhvZF9hbGxvd2VkIjp7ImNyeXB0byI6dHJ1ZSwiY2FyZGZpYXQiOnRydWUsInBpeGNyeXB0byI6dHJ1ZSwiY2FyZGNyeXB0byI6dHJ1ZX19LCJzdGF0dXMiOiJjcmVhdGluZ190cmFuc2FjdGlvbiIsInBheWVyX2VtYWlsIjoiZGV2LmNhaXF1ZWJlcmluZ3VpQGdtYWlsLmNvbSIsInBheWVyX3dhbGxldCI6IjB4OWI1Nzg0N2I2OUQwMzU0ODM3RjdiNzIzMTMzQjlkQkNiZWZiNEY5RiIsInBheWVyX3Rva2VuX3N5bWJvbCI6IlVTRFQiLCJ0cmFuc2FjdGlvbl90eXBlIjoiY3J5cHRvIiwicGF5ZXJfY3BmIjoiIiwidGlkX2hhc2giOm51bGwsIm1ldGFkYXRhIjpudWxsLCJzcGxpdF9wYXltZW50X2NvbmZpZyI6W3sicmVjZWl2ZXJfd2FsbGV0IjoiMHg5YjU3ODQ3YjY5RDAzNTQ4MzdGN2I3MjMxMzNCOWRCQ2JlZmI0RjlGIiwicmVjZWl2ZXJfcGVyY2VudCI6MTAwfV0sInN1YnNjcmlwdGlvbl9wYXltZW50X2NvbmZpZyI6bnVsbCwiZnJvbV9jdXJyZW5jeV9zeW1ib2wiOiJCUkwiLCJhbW91bnRfZnJvbSI6IjMwIiwiYW1vdW50X3RvIjoiMC4wNTk5NDQ4NTA3MzczMjE2NiIsIm5ldF9hbW91bnQiOnsibmV0X2Ftb3VudCI6MC4wNTg3NDU5NTM3MjI1NzUyMywiY29uc3VtZWRfZmVlIjoyfSwidG9fY3VycmVuY3lfc3ltYm9sIjoiVVNEVCIsImNoYWluX25hbWUiOiJhcmJpdHJ1bSIsImZyb21fY2hhaW4iOiJhcmJpdHJ1bSIsInRvX2NoYWluIjoiYXJiaXRydW0iLCJvbl9yYW1wIjpmYWxzZSwidW5zaWduZWRfdHgiOm51bGwsInNpZ25lZF90eCI6bnVsbCwiZ2xvYmFsX3BheW1lbnRfZGF0YSI6bnVsbCwiZGF0YV9lcnJvciI6eyJjb2RlIjoiaW52YWxpZF90cmFuc2FjdGlvbiIsInN0YXR1cyI6ImVycm9yIiwiZGV0YWlscyI6IkVycm9yOiBHYXMgZXN0aW1hdGlvbiBmYWlsZWQuIFRoZSB0cmFuc2FjdGlvbiB3b3VsZCByZXZlcnQgb24tY2hhaW4uIENhdXNlOiBleGVjdXRpb24gcmV2ZXJ0ZWQgUmV2ZXJ0IGRhdGE6IDB4OTRlNjgwOGEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBmZDA4NmJjN2NkNWM0ODFkY2M5Yzg1ZWJlNDc4YTFjMGI2OWZjYmI5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYzk3NGE3NThjZTdjNGRkNTdhOWJlMWYwZTA0ZDA5ZjljODViZWI3YjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDliNTc4NDdiNjlkMDM1NDgzN2Y3YjcyMzEzM2I5ZGJjYmVmYjRmOWYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBlMzIyIENvbnRyYWN0IGVycm9yOiBFUkMyMFRyYW5zZmVyRmFpbGVkLiBMaWtlbHkgY2F1c2VzOiBpbnN1ZmZpY2llbnQgdG9rZW4gYmFsYW5jZSBvciBpbnN1ZmZpY2llbnQgYWxsb3dhbmNlIGZvciB0aGUgZ2F0ZXdheSBjb250cmFjdC5cbiAgICBhdCBFVk1JbnRlcm5hbE1ldGhvZHMuR2VuZXJhdGVUeCAoL1VzZXJzL2NhaXF1ZS9kZXZlbG9wL1N0YXJrTm9kZS1TZXJ2ZXIvc3JjL2NsYXNzL0VWTUludGVybmFsTWV0aG9kcy5qczo4MDk6MjkpXG4gICAgYXQgcHJvY2Vzcy5wcm9jZXNzVGlja3NBbmRSZWplY3Rpb25zIChub2RlOmludGVybmFsL3Byb2Nlc3MvdGFza19xdWV1ZXM6MTA1OjUpXG4gICAgYXQgYXN5bmMgUGF5bWVudE1ldGhvZHMuX2J1aWxkVHJhbnNmZXJUeCAoL1VzZXJzL2NhaXF1ZS9kZXZlbG9wL1N0YXJrTm9kZS1TZXJ2ZXIvc3JjL2NsYXNzL1BheW1lbnRNZXRob2RzLmpzOjExNzQ6MjQpXG4gICAgYXQgYXN5bmMgYnVpbGRUcmFuc2FjdGlvbnNCeVR5cGUgKC9Vc2Vycy9jYWlxdWUvZGV2ZWxvcC9TdGFya05vZGUtU2VydmVyL3NyYy9jbGFzcy9QYXltZW50TWV0aG9kcy5qczoxMzEyOjIzKVxuICAgIGF0IGFzeW5jIFJlZ2lzdGVyUGF5bWVudFRyYW5zYWN0aW9uICgvVXNlcnMvY2FpcXVlL2RldmVsb3AvU3RhcmtOb2RlLVNlcnZlci9zcmMvY29udHJvbGxlci9QYXltZW50VjFDb250cm9sbGVyLmpzOjU0NTo0NCkiLCJtZXNzYWdlIjoiR2FzIGVzdGltYXRpb24gZmFpbGVkLiBUaGUgdHJhbnNhY3Rpb24gd291bGQgcmV2ZXJ0IG9uLWNoYWluLiBDYXVzZTogZXhlY3V0aW9uIHJldmVydGVkIFJldmVydCBkYXRhOiAweDk0ZTY4MDhhMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZmQwODZiYzdjZDVjNDgxZGNjOWM4NWViZTQ3OGExYzBiNjlmY2JiOTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGM5NzRhNzU4Y2U3YzRkZDU3YTliZTFmMGUwNGQwOWY5Yzg1YmViN2IwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5YjU3ODQ3YjY5ZDAzNTQ4MzdmN2I3MjMxMzNiOWRiY2JlZmI0ZjlmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZTMyMiBDb250cmFjdCBlcnJvcjogRVJDMjBUcmFuc2ZlckZhaWxlZC4gTGlrZWx5IGNhdXNlczogaW5zdWZmaWNpZW50IHRva2VuIGJhbGFuY2Ugb3IgaW5zdWZmaWNpZW50IGFsbG93YW5jZSBmb3IgdGhlIGdhdGV3YXkgY29udHJhY3QuIn0sInNlc3Npb25fcGF5bWVudCI6bnVsbCwid2ViaG9va19mb3J3YXJkZWQiOmZhbHNlLCJwYWdhcm1lX2NvbmZpZyI6bnVsbCwiY3JlYXRlZF9hdCI6IjIwMjYtMDQtMjRUMjI6NTA6MTYuOTEwWiIsInVwZGF0ZWRfYXQiOiIyMDI2LTA0LTI0VDIyOjUxOjM5LjI2NloiLCJpYXQiOjE3NzcwNzExMDB9.21mL8u2M2cpki6umaFHlU2aCc8fhVrMEu2L711KtznU",
        "payment_id": "cmodi78b2000101pjezst1ics",
        "crypto_tx": {
            "schema_version": 1,
            "family": "evm",
            "chain_name": "arbitrum",
            "transactionRequest": {
                "from": "0x9b57847b69D0354837F7b723133B9dBCbefb4F9F",
                "to": "0x23183C87c9c6668edf5974893905AF475c3664c9",
                "data": "0x40180def000000000000000000000000fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb90000000000000000000000009b57847b69d0354837f7b723133b9dbcbefb4f9f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000020000000000000000000000009b57847b69d0354837f7b723133b9dbcbefb4f9f0000000000000000000000001e659faad0181ab1a30891d99f69df115db77eef0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000e3220000000000000000000000000000000000000000000000000000000000000706",
                "value": 0,
                "chainId": 42161,
                "gasLimit": "82499",
                "maxPriorityFeePerGas": "0",
                "maxFeePerGas": "52514800",
                "nonce": 36
            },
            "meta": {
                "source": "evm_split"
            }
        },
        "fiat_tx": {
            "message": "This details is available only for fiat payments"
        }
    }
}

How can you sign a transaction?

This example illustrates the mandatory transaction submission flow. Direct submission is not allowed and may result in failure or rejection. All transactions must be submitted exclusively through the API’s broadcast service, which is responsible for validating, propagating, and processing requests.
import { Wallet } from "ethers";

const privateKey = "SUA_PRIVATE_KEY_AQUI";
const wallet = new Wallet(privateKey);

const tx = {
  from:                 "0x9b57847b69D0354837F7b723133B9dBCbefb4F9F",
  to:                   "0x23183C87c9c6668edf5974893905AF475c3664c9",
  data:                 "0x40180def000000000000000000000000fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb90000000000000000000000009b57847b69d0354837f7b723133b9dbcbefb4f9f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000020000000000000000000000009b57847b69d0354837f7b723133b9dbcbefb4f9f0000000000000000000000001e659faad0181ab1a30891d99f69df115db77eef0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000e3220000000000000000000000000000000000000000000000000000000000000706",
  value:                0n,
  chainId:              42161,
  gasLimit:             82499n,
  maxPriorityFeePerGas: 0n,
  maxFeePerGas:         52514800n,
  nonce:                36,
  type:                 2,
};

const signedTx = await wallet.signTransaction(tx);
console.log("Transação assinada:", signedTx);
You may use an external wallet connection provider, such as Privy.io, to interact with the user’s wallet and sign the transaction. However, never send the transaction directly using methods like sendTransaction. The transaction must only be signed and then submitted to the API’s broadcast endpoint.
2

Create an on-ramp transaction

Create an on-ramp transaction for fiat payment
ParameterTypeRequiredDescription
payment_idstringPayment id returned by register order endpoint
payer_cpfstringUser cpf/cnpj
payer_emailstringUser email address
transaction_typestringpixcrypto or fiatcrypto

Response Expected

{
    "statusCode": 201,
    "success": true,
    "status": "payment_registered",
    "message": "Payment has been registered",
    "data": {
        "session_payment": "https://app.starknode.io/sessions/payment?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNtb2RocWYzODAwMDAwMXBqanU5a3hsbWIiLCJleGVjdXRvcl9pZCI6ImFwaV90cmFuc2FjdGlvbiIsIm9yZGVyX2NvZGUiOm51bGwsInRlbmFudF9kYXRhIjp7ImNvdW50cnkiOiJicmF6aWwiLCJwaXhfZW5hYmxlZCI6dHJ1ZSwid2ViaG9va191cmwiOiJodHRwczovL3dlYmhvb2suc2l0ZS85YWJkYzZhZC00OTU2LTRkOGMtYjRkNS0wNmVhZmZhMzBiY2UiLCJwdWJsaWNfY2xpZW50X2lkIjoiY21uZ3k2Nm13MDAwMGU2eTB1b3djYnhnZiIsImJhbmtfYWNjb3VudF9lbmFibGVkIjp0cnVlLCJwYXltZW50X21ldGhvZF9hbGxvd2VkIjp7ImNyeXB0byI6dHJ1ZSwiY2FyZGZpYXQiOnRydWUsInBpeGNyeXB0byI6dHJ1ZSwiY2FyZGNyeXB0byI6dHJ1ZX19LCJzdGF0dXMiOiJjcmVhdGluZ190cmFuc2FjdGlvbiIsInBheWVyX2VtYWlsIjoiZGV2LmNhaXF1ZWJlcmluZ3VpQGdtYWlsLmNvbSIsInBheWVyX3dhbGxldCI6IiIsInBheWVyX3Rva2VuX3N5bWJvbCI6bnVsbCwidHJhbnNhY3Rpb25fdHlwZSI6InBpeGNyeXB0byIsInBheWVyX2NwZiI6IjIzMTU5NDE0ODI1IiwidGlkX2hhc2giOm51bGwsIm1ldGFkYXRhIjpudWxsLCJzcGxpdF9wYXltZW50X2NvbmZpZyI6W3sicmVjZWl2ZXJfd2FsbGV0IjoiMHg5YjU3ODQ3YjY5RDAzNTQ4MzdGN2I3MjMxMzNCOWRCQ2JlZmI0RjlGIiwicmVjZWl2ZXJfcGVyY2VudCI6MTAwfV0sInN1YnNjcmlwdGlvbl9wYXltZW50X2NvbmZpZyI6bnVsbCwiZnJvbV9jdXJyZW5jeV9zeW1ib2wiOiJCUkwiLCJhbW91bnRfZnJvbSI6IjMwIiwiYW1vdW50X3RvIjoiMC4wNTk5MjkyODM0NDU1MzQyNyIsIm5ldF9hbW91bnQiOnsibmV0X2Ftb3VudCI6MC4wNTg3MzA2OTc3NzY2MjM1OCwiY29uc3VtZWRfZmVlIjoyfSwidG9fY3VycmVuY3lfc3ltYm9sIjoiVVNEVCIsImNoYWluX25hbWUiOiJhcmJpdHJ1bSIsImZyb21fY2hhaW4iOiJhcmJpdHJ1bSIsInRvX2NoYWluIjoiYXJiaXRydW0iLCJvbl9yYW1wIjpmYWxzZSwidW5zaWduZWRfdHgiOm51bGwsInNpZ25lZF90eCI6bnVsbCwiZ2xvYmFsX3BheW1lbnRfZGF0YSI6bnVsbCwiZGF0YV9lcnJvciI6bnVsbCwic2Vzc2lvbl9wYXltZW50IjpudWxsLCJ3ZWJob29rX2ZvcndhcmRlZCI6ZmFsc2UsInBhZ2FybWVfY29uZmlnIjpudWxsLCJjcmVhdGVkX2F0IjoiMjAyNi0wNC0yNFQyMjozNzoxMi41NDhaIiwidXBkYXRlZF9hdCI6IjIwMjYtMDQtMjRUMjI6Mzc6MjguMTE4WiIsImlhdCI6MTc3NzA3MDI1MH0.xg4kUiPaACT-CKXhkQOAWqOjakb3t7vaSuNt7cD6JdM",
        "payment_id": "cmodhqf38000001pjju9kxlmb",
        "crypto_tx": "This details is available only for crypto payments",
        "fiat_tx": {
            "calendar": {
                "criacao": "2026-04-24T19:37:30.608Z",
                "expiracao": 3600
            },
            "pix_key": "3254cbd2-75e5-4034-abdb-ba8eebcee742",
            "txid": "282910f46cb6420388c9887a",
            "status": "ATIVA",
            "pixCopiaECola": "00020101021226790014br.gov.bcb.p03***63047A85",
            "pix_qr_code_data_url": "data:image/png;base64,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",
            "code": 201
        }
    }
}
With the required data in hand, simply display the payment QR code so the user can scan it using their banking app and complete the payment.  From that point on, our backend automatically monitors the transaction status and, once confirmed, delivers the crypto assets directly to the registered wallet.
3

Create a credit card transaction

Create a credit card transaction
ParameterTypeRequiredDescription
payment_idstringPayment id returned by register order endpoint
transaction_typestringcardcrypto or cardfiat
payer_emailstringUser email address
payer_namestringUser full name
payer_documentstringUser document number
payer_document_typestringPASSPORT, CPF or CNPJ
payer_phoneobjectPayer phone is a structure as user provide phone data
payer_phone.country_codestringCountry code (e.g. 55) Brazil code number
payer_phone.area_codestringDDD (e.g. 11) São Paulo code number
payer_phone.numberstringUser phone number
card_dataobjectCard payment configuration object
card_data.installmentsnumberNumber of installments (e.g., 1 for a one-time payment ).
Currently, only one-time payment are available.
card_data.statement_descriptorstringLabel that appears on the user’s card statement
card_data.addressobjectBilling address for the card
card_data.address.countrystringCountry code (e.g. USA, BRA)
card_data.address.statestringState or province (e.g. CA, SP)
card_data.address.citystringCity name
card_data.address.neighborhoodstringNeighborhood or district
card_data.address.streetstringStreet name
card_data.address.street_numberstringStreet number
card_data.address.zipcodestringZip or postal code (numbers only)
card_data.address.complementstringAdditional address info (e.g. Apt 4B)
card_data.cardobjectCard details object
card_data.card.numberstringCard number (e.g. 4111111111111111)
card_data.card.holder_namestringName printed on the card
card_data.card.holder_documentstringCard holder document number
card_data.card.exp_monthnumberCard expiration month (e.g. 12)
card_data.card.exp_yearnumberCard expiration year (e.g. 2030)
card_data.card.cvvstringCard security code
card_data.card.brandstringCard brand (e.g. Visa, Mastercard)
Card payment support is currently limited to the CardCrypto method.  This method has specific operational rules and limits that must be aligned in advance with the sales team.Only one-time transactions are currently supported. The enablement process has a minimum lead time of 7 days and may vary depending on regulatory requirements and jurisdiction.
Use the tokenization endpoint to process card data, avoiding the direct handling and storage of sensitive card information.  Tokenization provides a higher level of security and helps ensure compliance with regulatory requirements.
POST https://api.starkfi.io/payment/card/tokenize
ParameterTypeRequiredDescription
typestringPayment type. Use card for card payments
cardobjectCard details object
card.numberstringCard number
card.holder_namestringName of the card holder
card.holder_documentstringCard holder document number (CPF)
card.exp_monthnumberCard expiration month (1–12)
card.exp_yearnumberCard expiration year (e.g. 30 for 2030)
card.cvvstringCard security code

Response expected

{
    "id": "token_wxDE5l3uGofL5KzR",
    "type": "card",
    "created_at": "2026-04-25T17:32:22Z",
    "expires_at": "2026-04-25T17:33:22Z",
    "card": {
        "first_six_digits": "400000",
        "last_four_digits": "0010",
        "holder_name": "Tony Stark",
        "holder_document": "93095135270",
        "exp_month": 1,
        "exp_year": 30,
        "brand": "Visa"
    }
}
When using tokenized card data, the payment request payload must follow the structure below:
ParameterTypeRequiredDescription
payment_idstringUnique payment identifier generated in the previous step
transaction_typestringTransaction type (e.g. cardcrypto, cardfiat, pixcrypto)
payer_namestringFull name of the payer
payer_emailstringPayer’s email address
payer_documentstringPayer’s document number
payer_document_typestringDocument type (e.g. cpf)
payer_phoneobjectPayer’s phone details
payer_phone.country_codestringCountry code (e.g. 55 for Brazil)
payer_phone.area_codestringArea code (e.g. 11)
payer_phone.numberstringPhone number
payer_ipstringPayer’s IP address
session_idstringSession identifier for fraud prevention
card_dataobjectCard payment details
card_data.installmentsnumberNumber of installments (e.g. 1 for single payment)
card_data.statement_descriptorstringText that appears on the payer’s card statement
card_data.card_tokenstringTokenized card identifier from the previous step
card_data.addressobjectBilling address
card_data.address.countrystringCountry code (e.g. BR)
card_data.address.statestringState code (e.g. SP)
card_data.address.citystringCity name
card_data.address.neighborhoodstringNeighborhood name
card_data.address.streetstringStreet name
card_data.address.street_numberstringStreet number
card_data.address.zipcodestringZIP/postal code
card_data.address.complementstringAddress complement (e.g. apartment number)
To use any payment method involving the traditional financial system (off-chain), such as PIX, fiat currency, or card payments, you must contact the sales and account management team to complete KYC and/or KYB procedures –– This process ensures proper operational alignment, customer profiling, and compliance with applicable regulations.