curl --request POST \
--url https://api.starkfi.io/order/create \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api_key>' \
--data '{
"executor_id": "api_transaction",
"from_currency_symbol": "BRL",
"amount_from": "100.00",
"to_currency_symbol": "USDT",
"on_ramp": false,
"gateway_method": "direct",
"payment_method_allowed": {
"crypto": true,
"pixcrypto": true
}
}'
const response = await fetch("https://api.starkfi.io/order/create", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": "<api_key>",
},
body: JSON.stringify({
executor_id: "api_transaction",
from_currency_symbol: "BRL",
amount_from: "100.00",
to_currency_symbol: "USDT",
on_ramp: false,
gateway_method: "direct",
payment_method_allowed: { crypto: true, pixcrypto: true },
}),
});
const data = await response.json();
import requests
response = requests.post(
"https://api.starkfi.io/order/create",
headers={"Content-Type": "application/json", "x-api-key": "<api_key>"},
json={
"executor_id": "api_transaction",
"from_currency_symbol": "BRL",
"amount_from": "100.00",
"to_currency_symbol": "USDT",
"on_ramp": False,
"gateway_method": "direct",
"payment_method_allowed": {"crypto": True, "pixcrypto": True},
},
)
data = response.json()
{
"statusCode": 200,
"success": true,
"status": "order_created",
"message": "Order created successfully.",
"data": {
"order_id": "clxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
{
"statusCode": 400,
"success": false,
"status": "invalid_parameters",
"message": "payment_method_allowed must enable at least one payment method"
}
{
"statusCode": 401,
"success": false,
"status": "customer_not_logged",
"message": "Customer not logged in."
}
{
"statusCode": 429,
"success": false,
"status": "order_limit_reached",
"message": "Order limit of 20 reached for this account."
}
Orders
Create order
Create a reusable payment order template for the authenticated tenant (maximum 20 orders).
POST
/
order
/
create
curl --request POST \
--url https://api.starkfi.io/order/create \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api_key>' \
--data '{
"executor_id": "api_transaction",
"from_currency_symbol": "BRL",
"amount_from": "100.00",
"to_currency_symbol": "USDT",
"on_ramp": false,
"gateway_method": "direct",
"payment_method_allowed": {
"crypto": true,
"pixcrypto": true
}
}'
const response = await fetch("https://api.starkfi.io/order/create", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": "<api_key>",
},
body: JSON.stringify({
executor_id: "api_transaction",
from_currency_symbol: "BRL",
amount_from: "100.00",
to_currency_symbol: "USDT",
on_ramp: false,
gateway_method: "direct",
payment_method_allowed: { crypto: true, pixcrypto: true },
}),
});
const data = await response.json();
import requests
response = requests.post(
"https://api.starkfi.io/order/create",
headers={"Content-Type": "application/json", "x-api-key": "<api_key>"},
json={
"executor_id": "api_transaction",
"from_currency_symbol": "BRL",
"amount_from": "100.00",
"to_currency_symbol": "USDT",
"on_ramp": False,
"gateway_method": "direct",
"payment_method_allowed": {"crypto": True, "pixcrypto": True},
},
)
data = response.json()
{
"statusCode": 200,
"success": true,
"status": "order_created",
"message": "Order created successfully.",
"data": {
"order_id": "clxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
{
"statusCode": 400,
"success": false,
"status": "invalid_parameters",
"message": "payment_method_allowed must enable at least one payment method"
}
{
"statusCode": 401,
"success": false,
"status": "customer_not_logged",
"message": "Customer not logged in."
}
{
"statusCode": 429,
"success": false,
"status": "order_limit_reached",
"message": "Order limit of 20 reached for this account."
}
string
required
Caller identifier for this template (e.g.
api_transaction).string
required
Source fiat symbol enabled for your account (validated server-side), e.g.
BRL, USD.string
required
Amount in the source currency (decimal string), e.g.
"100.00".string
required
Destination crypto symbol, e.g.
USDT, USDC.boolean
required
Whether this order represents an on-ramp flow.
enum<string>
required
Processing mode:
direct (one-off) or subs (subscription-capable template).object
array
array
object
curl --request POST \
--url https://api.starkfi.io/order/create \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api_key>' \
--data '{
"executor_id": "api_transaction",
"from_currency_symbol": "BRL",
"amount_from": "100.00",
"to_currency_symbol": "USDT",
"on_ramp": false,
"gateway_method": "direct",
"payment_method_allowed": {
"crypto": true,
"pixcrypto": true
}
}'
const response = await fetch("https://api.starkfi.io/order/create", {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": "<api_key>",
},
body: JSON.stringify({
executor_id: "api_transaction",
from_currency_symbol: "BRL",
amount_from: "100.00",
to_currency_symbol: "USDT",
on_ramp: false,
gateway_method: "direct",
payment_method_allowed: { crypto: true, pixcrypto: true },
}),
});
const data = await response.json();
import requests
response = requests.post(
"https://api.starkfi.io/order/create",
headers={"Content-Type": "application/json", "x-api-key": "<api_key>"},
json={
"executor_id": "api_transaction",
"from_currency_symbol": "BRL",
"amount_from": "100.00",
"to_currency_symbol": "USDT",
"on_ramp": False,
"gateway_method": "direct",
"payment_method_allowed": {"crypto": True, "pixcrypto": True},
},
)
data = response.json()
{
"statusCode": 200,
"success": true,
"status": "order_created",
"message": "Order created successfully.",
"data": {
"order_id": "clxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
{
"statusCode": 400,
"success": false,
"status": "invalid_parameters",
"message": "payment_method_allowed must enable at least one payment method"
}
{
"statusCode": 401,
"success": false,
"status": "customer_not_logged",
"message": "Customer not logged in."
}
{
"statusCode": 429,
"success": false,
"status": "order_limit_reached",
"message": "Order limit of 20 reached for this account."
}
Response
number
required
HTTP status mirrored in the body (
200 on success).boolean
required
Whether the request succeeded.
string
required
Machine-readable code, e.g.
order_created.string
required
Human-readable message.
⌘I
.png?fit=max&auto=format&n=I_v6ul4JDafNKFQP&q=85&s=f0ad25536f8a3ca42331fcff88ab2b26)