Skip to main content

Available Combinations

How It Works

Each combination defines a specific type of transaction. The quote calculates the price and fees, while the ticket executes the operation.

Elements of a Combination

  1. Input (What you provide) - The source of funds
  2. Output (What you receive) - The destination of funds
  3. Quote - Parameters to get the price
  4. Ticket - Specific fields to execute

Modifying for Different Results

To change the amount: Use inputAmount or outputAmount in the quote To change the currency: Modify inputCurrency and outputCurrency To change the network: Adjust inputPaymentMethod and outputPaymentMethod To change the method: Choose between PERMIT or TRANSFER (for blockchain operations only)

PIX to Crypto

BRL → BRLA/USDC/USDT/EURC

Input: R$ via PIX Output: Tokens on blockchain

info

You can register frequently used wallets in Beneficiary Wallets to avoid entering wallet details every time. Simply use the beneficiaryWalletId instead of providing wallet details directly.

Quote Parameters

ParameterValueDescription
inputCurrencyBRLThe currency you are paying with
inputPaymentMethodPIXThe payment method you are using
inputAmount100The amount you want to pay
outputCurrencyBRLAThe currency you want to receive
outputPaymentMethodINTERNALThe blockchain where you want to receive tokens

Ticket Request

{
"quoteToken": "eyJ...",
"ticketBlockchainOutput": {
"beneficiaryWalletId": "uuid-of-registered-wallet"
},
"customDuration": 600
}
Request Parameters
ParameterTypeDescription
beneficiaryWalletIdstring (UUID)Registered wallet ID to receive tokens
customDurationintegerOperation expiration time in seconds. Minimum 300 (5 minutes). For currency conversion operations (inputCurrency ≠ outputCurrency): max 600 (10 minutes). For same currency operations (inputCurrency = outputCurrency): max 259200 (72 hours).

Ticket Response

{
"brCode": "00020126580014br.gov.bcb.pix...",
"expiration": "2025-03-11T16:06:42.638410717Z",
"id": "00000000-0000-0000-0000-000000000000"
}
Response Fields
FieldTypeDescription
brCodestringPIX QR code for payment - user must pay this
expirationtimestampISO 8601 expiration time for the brCode

Result: System returns a brCode for PIX payment. After payment, tokens are credited to the specified wallet.

info

Fiat currencies can have a maximum of 2 decimal places, while blockchain currencies can have up to 6 decimal places.


Crypto to PIX

BRLA/USDC/USDT/EURC → BRL

Input: Tokens from blockchain Output: R$ via PIX

info

You can register frequently used bank accounts in Beneficiary Bank Accounts to avoid entering account details every time. Simply use the beneficiaryBrlBankAccountId instead of providing account details directly.

Option 1: Using Registered Beneficiary Account

Quote Parameters
ParameterValueDescription
inputCurrencyBRLAThe currency you are paying with
inputPaymentMethodINTERNALThe blockchain you are sending from
inputAmount100The amount you want to convert
outputCurrencyBRLThe currency you want to receive
outputPaymentMethodPIXThe payment method for receiving funds
blockchainSendMethodstringDefines the blockchain transaction type. Can be TRANSFER or PERMIT. Required for blockchain inputs.
Ticket Request
{
"quoteToken": "eyJ...",
"ticketBrlPixOutput": {
"beneficiaryBrlBankAccountId": "uuid-of-registered-account",
"pixMessage": "optional PIX message"
}
}
Request Parameters
ParameterTypeDescription
beneficiaryBrlBankAccountIdstring (UUID)Registered BRL bank account ID for receiving PIX
pixMessagestring (optional)Optional message to include in PIX transaction
Ticket Response
{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}

Option 2: Using PIX Key

Quote Parameters
ParameterValueDescription
inputCurrencyBRLAThe currency you are paying with
inputPaymentMethodINTERNALThe blockchain you are sending from
inputAmount100The amount you want to convert
outputCurrencyBRLThe currency you want to receive
outputPaymentMethodPIXThe payment method for receiving funds
blockchainSendMethodPERMITDefines the blockchain transaction type
Ticket Request
{
"quoteToken": "eyJ...",
"ticketBrlPixOutput": {
"pixKey": "50.224.164/0001-70",
"pixMessage": "optional PIX message"
}
}
Request Parameters
ParameterTypeDescription
pixKeystringPIX key for receiving funds (CPF, CNPJ, email, phone, or random key)
pixMessagestring (optional)Optional message to include in PIX transaction
Ticket Response
{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}

Option 3: Using Full Bank Account Details

Quote Parameters
ParameterValueDescription
inputCurrencyBRLAThe currency you are paying with
inputPaymentMethodINTERNALThe blockchain you are sending from
inputAmount100The amount you want to convert
outputCurrencyBRLThe currency you want to receive
outputPaymentMethodPIXThe payment method for receiving funds
blockchainSendMethodPERMITDefines the blockchain transaction type
Ticket Request
{
"quoteToken": "eyJ...",
"pixMessage": "optional PIX message",
"ticketBrlPixOutput": {
"userName": "John Doe",
"bankCode": "260",
"branchCode": "0001",
"accountNumber": "12345678",
"accountType": "checking",
"taxId": "123.456.789-00"
}
}
Request Parameters
ParameterTypeDescription
userNamestringFull name of the account holder
bankCodestringBank code (3 or 8 digits)
branchCodestringBranch code of the bank account
accountNumberstringAccount number
accountTypestringAccount type: checking, payment, savings, or salary
taxIdstringCPF or CNPJ of the account holder
pixMessagestring (optional)Optional message to include in PIX transaction
Ticket Response
{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}
warning

Choose only one option: either beneficiaryBrlBankAccountId, pixKey, full bank account details, or brCode — not multiple options together.

Result: PIX is sent automatically to the specified bank account, PIX key, or brCode is generated for payment.

info

Just like for input, fiat currencies can have a maximum of 2 decimal places, while blockchain currencies can have up to 6 decimal places.

Option 4: Using brCode

Quote Parameters
ParameterValueDescription
inputCurrencyBRLAThe currency you are paying with
inputPaymentMethodINTERNALPayment method (subaccount's internal balance)
inputAmount8.550804The amount you want to convert
outputCurrencyBRLCurrency in which the brCode will be paid
outputPaymentMethodPIX-BRCODEPayment method for the payout (via PIX brCode)
inputThirdPartyfalseIndicates funds come from the subaccount itself
outputThirdPartyfalseSet to true if the brCode is paid to a third party
blockchainSendMethodPERMITSpecifies that the transfer is automatically handled
outputBrCode00020101021226890014br.gov.bcb.pix2567brcode-h.sandbox.starkinfra.com/v2/...The brCode that the user will pay
Ticket Request
{
"quoteToken": "eyJ...",
"externalId": "your-reference-id"
}
Request Parameters
ParameterTypeDescription
externalIdstringYour reference ID for tracking this transaction
Ticket Response
{
"id": "a14d6b53-e573-4e68-b34a-2a1b717eb448"
}
warning

Some BrCodes do not have a specified value. In such cases, provide either the inputAmount or the outputAmount—only one amount is allowed, so do not include both.


USD to Crypto

USD → USDC/USDT

Input: $ via WIRE/ACH Output: Tokens on blockchain

info

You can register frequently used USD bank accounts in Beneficiary Bank Accounts to avoid entering account details every time. Simply use the beneficiaryUsdBankAccountId instead of providing account details directly.

Quote Parameters

ParameterValueDescription
inputCurrencyUSDThe currency you are paying with
inputPaymentMethodWIREThe payment method you are using
inputAmount100The amount you want to convert
outputCurrencyUSDCThe currency you want to receive
outputPaymentMethodINTERNALThe blockchain where you want to receive tokens

Ticket Request

{
"quoteToken": "eyJ...",
"ticketUsdWireOutput": {
"beneficiaryUsdBankAccountId": "uuid-of-usd-account"
}
}
Request Parameters
ParameterTypeDescription
beneficiaryUsdBankAccountIdstring (UUID)Registered USD bank account ID to receive WIRE

Ticket Response

{
"id": "bc4a2582-0204-4827-9ddf-3a77ea59a0d1",
"usdDepositInstructions": {
"accountHolderName": "BRLA Digital LTDA",
"bankAccountNumber": "218939188578",
"bankRoutingNumber": "101019644",
"accountType": "CHECKING",
"bankName": "Lead Bank",
"bankAddress": "1801 Main St., Kansas City, MO 64108",
"depositMessage": "BRGWSSY9E6WEKTS4RTJ6",
"paymentRail": "WIRE"
}
}
Response Fields
FieldTypeDescription
usdDepositInstructions.accountHolderNamestringAccount holder name to send USD to
usdDepositInstructions.bankAccountNumberstringBank account number for deposit
usdDepositInstructions.bankRoutingNumberstringABA routing number
usdDepositInstructions.accountTypestringType of account (e.g., CHECKING)
usdDepositInstructions.bankNamestringName of the receiving bank
usdDepositInstructions.bankAddressstringPhysical address of the bank
usdDepositInstructions.depositMessagestringReference message for the deposit
usdDepositInstructions.paymentRailstringPayment method used (WIRE or ACH)

Result: System returns WIRE deposit instructions. After bank confirmation, tokens are credited.

tip

For USD input transactions, you benefit from direct 1:1 conversion to stablecoins without exchange rate fluctuations, making it ideal for preserving value when moving from fiat to crypto.

USD Payment Methods Characteristics

When working with USD transactions, it's important to understand the differences between the available payment methods and how currency conversion works.

Payment Method Differences

WIRE Transfers:

  • Faster processing - Typically settled within hours
  • Higher fees - More expensive due to the expedited nature
  • Best for: Urgent transfers or large amounts where speed is prioritized

ACH Transfers:

  • Lower fees - More cost-effective option
  • Slower settlement - Can take 1-3 business days to process
  • Best for: Regular transfers where cost efficiency is more important than speed

Currency Conversion Rules

For Input Transactions (Deposits):

  • No currency exchange - USD deposits maintain their value
  • 1:1 conversion to crypto - USD converts directly to stablecoins at a 1:1 ratio
  • Example: Depositing $100 USD will give you $100 worth of USDC/USDT

For Output Transactions (Withdrawals):

  • Normal exchange rates apply - Standard market rates and fees
  • Currency conversion - When converting from other currencies to USD

Crypto to USD

USDC/USDT → USD

Input: Tokens from blockchain Output: $ via WIRE/ACH

info

You can register frequently used USD bank accounts in Beneficiary Bank Accounts to avoid entering account details every time. Simply use the beneficiaryUsdBankAccountId instead of providing account details directly.

Quote Parameters

ParameterValueDescription
inputCurrencyUSDCThe currency you are paying with
inputPaymentMethodINTERNALThe blockchain you are sending from
inputAmount100The amount you want to convert
outputCurrencyUSDThe currency you want to receive
outputPaymentMethodWIREThe payment method for receiving funds
blockchainSendMethodPERMITDefines the blockchain transaction type

Ticket Request

{
"quoteToken": "eyJ...",
"ticketUsdOutput": {
"beneficiaryUsdBankAccountId": "uuid-of-usd-account",
"wireMessage": "Payment reference"
}
}
Request Parameters
ParameterTypeDescription
beneficiaryUsdBankAccountIdstring (UUID)Registered USD bank account ID to receive WIRE
wireMessagestring (optional)Reference message for the WIRE transfer

Ticket Response

{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}

Result: WIRE is sent automatically to the bank account.

tip

For USD input transactions, you benefit from direct 1:1 conversion to stablecoins without exchange rate fluctuations, making it ideal for preserving value when moving from fiat to crypto.


USD Output Operations

Crypto → USD (WIRE Transfer)

Input: Tokens from blockchain Output: $ via WIRE

info

You can register frequently used USD bank accounts in Beneficiary Bank Accounts to avoid entering account details every time. Simply use the beneficiaryUsdBankAccountId instead of providing account details directly.

Ticket Request

{
"quoteToken": "eyJ...",
"ticketUsdOutput": {
"beneficiaryUsdBankAccountId": "00000000-0000-0000-0000-000000000000",
"wireMessage": "Payment for services"
}
}
Request Parameters
ParameterTypeDescription
beneficiaryUsdBankAccountIdstring (UUID)Registered USD bank account ID to receive WIRE
wireMessagestring (optional)Reference message for the WIRE transfer

Ticket Response

{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}

Result: WIRE is sent automatically to the specified bank account.

Crypto → USD (ACH Transfer)

Input: Tokens from blockchain Output: $ via ACH

info

You can register frequently used USD bank accounts in Beneficiary Bank Accounts to avoid entering account details every time. Simply use the beneficiaryUsdBankAccountId instead of providing account details directly.

Ticket Request

{
"quoteToken": "eyJ...",
"ticketUsdOutput": {
"beneficiaryUsdBankAccountId": "00000000-0000-0000-0000-000000000000",
"achReference": "REF123456"
}
}
Request Parameters
ParameterTypeDescription
beneficiaryUsdBankAccountIdstring (UUID)Registered USD bank account ID to receive ACH
achReferencestring (optional)Reference code for the ACH transfer

Ticket Response

{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}

Result: ACH transfer is sent automatically to the specified bank account.


EUR Output Operations

Crypto → EUR (SEPA Transfer)

Input: EURC tokens from blockchain Output: € via SEPA

info

You can register frequently used EUR bank accounts in Beneficiary Bank Accounts to avoid entering account details every time. Simply use the beneficiaryEurBankAccountId instead of providing account details directly.

Ticket Request

{
"quoteToken": "eyJ...",
"ticketEurSepaOutput": {
"beneficiaryEurBankAccountId": "00000000-0000-0000-0000-000000000000",
"sepaReference": "Payment reference"
}
}
Request Parameters
ParameterTypeDescription
beneficiaryEurBankAccountIdstring (UUID)Registered EUR bank account ID to receive SEPA transfer
sepaReferencestring (optional)Reference code for the SEPA transfer

Ticket Response

{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}

Result: SEPA transfer is sent automatically to the bank account.


EUR to Crypto

EUR → EURC

Input: € via SEPA Output: Tokens on blockchain

info

You can register frequently used EUR bank accounts in Beneficiary Bank Accounts to avoid entering account details every time. Simply use the beneficiaryEurBankAccountId instead of providing account details directly.

Quote Parameters

ParameterValueDescription
inputCurrencyEURThe currency you are paying with
inputPaymentMethodSEPAThe payment method you are using
inputAmount100The amount you want to convert
outputCurrencyEURCThe currency you want to receive
outputPaymentMethodINTERNALThe blockchain where you want to receive tokens

Ticket Request

{
"quoteToken": "eyJ...",
"ticketEurSepaOutput": {
"beneficiaryEurBankAccountId": "uuid-of-eur-account"
}
}
Request Parameters
ParameterTypeDescription
beneficiaryEurBankAccountIdstring (UUID)Registered EUR bank account ID to receive SEPA deposit instructions

Ticket Response

{
"id": "cedc708c-3430-49c7-b100-451910e85967",
"eurDepositInstructions": {
"bankBeneficiaryName": "JANE",
"iban": "IE33MODR99035504937309",
"bic": "MODRIE22XXX",
"bankName": "Modulr Finance, Ireland Branch",
"depositMessage": "BRGGM5DASSH96PRPYKZJ",
"paymentRail": "SEPA",
"currency": "EUR"
}
}
Response Fields
FieldTypeDescription
eurDepositInstructions.bankBeneficiaryNamestringAccount holder name to send EUR to
eurDepositInstructions.ibanstringIBAN for the receiving bank account
eurDepositInstructions.bicstringBIC (SWIFT) code for SEPA transfer
eurDepositInstructions.bankNamestringName of the receiving bank
eurDepositInstructions.depositMessagestringReference message for the deposit
eurDepositInstructions.paymentRailstringPayment method used (SEPA)
eurDepositInstructions.currencystringCurrency code (EUR)

Result: System returns SEPA deposit instructions. After bank confirmation, EURC tokens are credited.

tip

For EUR input transactions, you benefit from direct 1:1 conversion to EURC without exchange rate fluctuations, making it ideal for preserving value when moving from fiat to crypto.

EUR Payment Methods Characteristics

Currency Conversion Rules

For Input Transactions (Deposits):

  • No currency exchange - EUR deposits maintain their value
  • 1:1 conversion to crypto - EUR converts directly to stablecoins at a 1:1 ratio
  • Example: Depositing €100 EUR will give you €100 worth of EURC

For Output Transactions (Withdrawals):

  • Normal exchange rates apply - Standard market rates and fees
  • Currency conversion - When converting from other currencies to EURC

Crypto to EUR

EURC → EUR

Input: EURC tokens from blockchain Output: € via SEPA

info

You can register frequently used EUR bank accounts in Beneficiary Bank Accounts to avoid entering account details every time. Simply use the beneficiaryEurBankAccountId instead of providing account details directly.

Quote Parameters

ParameterValueDescription
inputCurrencyEURCThe currency you are paying with
inputPaymentMethodINTERNALThe blockchain you are sending from
inputAmount100The amount you want to convert
outputCurrencyEURThe currency you want to receive
outputPaymentMethodSEPAThe payment method for receiving funds
blockchainSendMethodPERMITDefines the blockchain transaction type

Ticket Request

{
"quoteToken": "eyJ...",
"ticketEurSepaOutput": {
"beneficiaryEurBankAccountId": "uuid-of-eur-account",
"sepaReference": "Payment reference"
}
}
Request Parameters
ParameterTypeDescription
beneficiaryEurBankAccountIdstring (UUID)Registered EUR bank account ID to receive SEPA transfer
sepaReferencestring (optional)Reference code for the SEPA transfer

Ticket Response

{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}

Result: SEPA transfer is sent automatically to the bank account.

tip

For EUR output transactions, you benefit from standard market rates and fees when converting from crypto to EUR.


ARS to Crypto

ARS → ARSA

Input: ARS via Bank Transfer Output: ARSA tokens on blockchain

info

You can register frequently used ARS bank accounts in Beneficiary Bank Accounts to avoid entering account details every time. Simply use the beneficiaryArsBankAccountId instead of providing account details directly.

Quote Parameters

ParameterValueDescription
inputCurrencyARSArgentine Peso
inputPaymentMethodBANK-TRANSFERBank transfer method
inputAmount500Amount in ARS
outputCurrencyARSAARSA token
outputPaymentMethodINTERNALBlockchain (internal network)
blockchainSendMethodPERMITTransaction type (PERMIT or TRANSFER)

Ticket Request

{
"quoteToken": "eyJ...",
"ticketArsInput": {
"senderCuit": "20123456781"
},
"ticketBlockchainOutput": {
"beneficiaryWalletId": "uuid-of-registered-wallet"
}
}
Request Parameters
ParameterTypeDescription
senderCuitstringCUIT of the ARS account sender (11 digits)
beneficiaryWalletIdstring (UUID)Registered wallet ID to receive tokens

Ticket Response

{
"id": "00000000-0000-0000-0000-000000000000",
"argentineFiatSenderInfo": {
"cuit": "20123456781"
},
"blockchainReceiverInfo": {
"walletAddress": "0x1234567890123456789012345678901234567890"
}
}
Response Fields
FieldTypeDescription
argentineFiatSenderInfo.cuitstringCUIT confirmed from the ARS transaction
blockchainReceiverInfo.walletAddressstringWallet address where tokens will be received

Result: System processes ARS bank transfer. After bank confirmation, ARSA tokens are credited to your wallet.

ARS → BRLA/USDC/USDT/EURC

Input: ARS via Bank Transfer Output: Tokens on blockchain

Quote Parameters

ParameterValueDescription
inputCurrencyARSArgentine Peso
inputPaymentMethodBANK-TRANSFERBank transfer method
inputAmount1000Amount in ARS
outputCurrencyBRLAToken currency (BRLA, USDC, USDT, or EURC)
outputPaymentMethodINTERNALBlockchain (internal network)
blockchainSendMethodTRANSFERTransaction type

Ticket Request

{
"quoteToken": "eyJ...",
"ticketArsInput": {
"senderCuit": "20123456781"
},
"ticketBlockchainOutput": {
"walletChain": "POLYGON",
"walletAddress": "0xabcdefabcdefabcdefabcdefabcdefabcdefabcd"
}
}
Request Parameters
ParameterTypeDescription
senderCuitstringCUIT of the ARS account sender (11 digits)
walletChainstringBlockchain to receive tokens on (e.g., POLYGON, ETHEREUM, CELO)
walletAddressstringWallet address on the specified chain

Ticket Response

{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}

Result: ARS transferred via bank. After confirmation, tokens are credited to your blockchain wallet.


Crypto to ARS

ARSA/BRLA/USDC/USDT/EURC → ARS

Input: Tokens from blockchain Output: ARS via Bank Transfer

info

You can register frequently used ARS bank accounts in Beneficiary Bank Accounts to avoid entering account details every time. Simply use the beneficiaryArsBankAccountId instead of providing account details directly.

Quote Parameters

ParameterValueDescription
inputCurrencyBRLAToken currency (ARSA, BRLA, USDC, USDT, or EURC)
inputPaymentMethodINTERNALBlockchain you are sending from
outputAmount1000Output in ARS (note: use outputAmount for ARS output)
outputCurrencyARSArgentine Peso
outputPaymentMethodBANK-TRANSFERBank transfer method
blockchainSendMethodPERMITDefines the blockchain transaction type

Ticket Request

{
"quoteToken": "eyJ...",
"blockchainSenderInfo": {
"walletAddress": "0x1234567890123456789012345678901234567890",
"r": "0x...",
"s": "0x...",
"v": 28,
"nonce": 1,
"deadline": 1700000000
},
"ticketArsOutput": {
"beneficiaryArsBankAccountId": "550e8400-e29b-41d4-a716-446655440000"
}
}
Request Parameters
ParameterTypeDescription
beneficiaryArsBankAccountIdstring (UUID)Registered ARS bank account ID to receive funds

Ticket Response

{
"id": "ticket_crypto_to_ars_001",
"blockchainSenderInfo": {
"walletAddress": "0x1234567890123456789012345678901234567890"
},
"argentineFiatReceiverInfo": {
"cvu": "0000003100002800000000",
"cuit": "27987654321",
"accountHolder": "Juan Pérez"
}
}
Response Fields
FieldTypeDescription
blockchainSenderInfo.walletAddressstringWallet address from which tokens were sent
argentineFiatReceiverInfo.cvustringCVU of the receiving ARS account
argentineFiatReceiverInfo.cuitstringCUIT of the account holder
argentineFiatReceiverInfo.accountHolderstringName of the account holder

Result: Tokens sent from wallet. After blockchain confirmation, ARS is transferred to your bank account.


ARS Output Operations

Crypto → ARS (Bank Transfer)

Input: Tokens from blockchain Output: ARS via Bank Transfer

info

You can register frequently used ARS bank accounts in Beneficiary Bank Accounts to avoid entering account details every time. Simply use the beneficiaryArsBankAccountId instead of providing account details directly.

Ticket Request

{
"quoteToken": "eyJ...",
"blockchainSenderInfo": {
"walletAddress": "0xabcdefabcdefabcdefabcdefabcdefabcdefabcd",
"r": "0x...",
"s": "0x...",
"v": 27,
"nonce": 5,
"deadline": 1700100000
},
"ticketArsOutput": {
"beneficiaryArsBankAccountId": "00000000-0000-0000-0000-000000000000"
}
}
Request Parameters
ParameterTypeDescription
beneficiaryArsBankAccountIdstring (UUID)Registered ARS bank account ID to receive transferred funds

Ticket Response

{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}

Result: Crypto is converted and ARS is sent automatically to the bank account.


Blockchain Input Operations

Crypto Deposit (PERMIT Method)

Input: Tokens from wallet via blockchain Output: Tokens credited to Avenia account

info

If the wallet you specify is an Avenia Wallet, you do not need to include the PERMIT or TRANSFER fields.

Option 1: Using PERMIT Signature

Ticket Request
{
"quoteToken": "eyJ...",
"ticketBlockchainInput": {
"walletAddress": "0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"permit": {
"r": "0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"s": "0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"v": 1,
"nonce": 1,
"deadline": 1234567890
}
}
}
Ticket Response
{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}

Option 2: Using Personal Signature

Ticket Request
{
"quoteToken": "eyJ...",
"ticketBlockchainInput": {
"walletAddress": "0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"personal": {
"signature": "0xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"deadline": 1234567890
}
}
}
Ticket Response
{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}

Crypto Deposit (TRANSFER Method)

Input: Tokens transferred manually to Avenia wallet Output: Tokens credited to Avenia account

Ticket Request

{
"quoteToken": "eyJ...",
"externalId": "your-reference-id"
}

Ticket Response

{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}

Result: You must manually send tokens to your Avenia wallet. After confirmation, tokens are credited to your account.


Blockchain Output Operations

Crypto Withdrawal

Input: Tokens from Avenia account Output: Tokens sent to external wallet

Ticket Request

{
"quoteToken": "eyJ...",
"ticketBlockchainOutput": {
"walletChain": "CELO",
"walletAddress": "0x0000000000000000000000000000000000000000",
"walletMemo": "optional memo"
}
}

Ticket Response

{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}

Result: Tokens are sent automatically to the specified wallet address.


Cross-chain Swaps

Crypto ↔ Crypto (Different Blockchains)

Input: Tokens on one blockchain Output: Tokens on another blockchain

info

You can register frequently used wallets in Beneficiary Wallets to avoid entering wallet details every time. Simply use the beneficiaryWalletId instead of providing wallet details directly.

Quote Parameters

ParameterValueDescription
inputCurrencyBRLAThe currency you are paying with
inputPaymentMethodINTERNALThe blockchain you are sending from
inputAmount100The amount you want to convert
outputCurrencyUSDTThe currency you want to receive
outputPaymentMethodCELOThe blockchain where you want to receive tokens
blockchainSendMethodPERMITDefines the blockchain transaction type
{
"quoteToken": "eyJ...",
"ticketBlockchainInput": {
"walletAddress": "0x...",
"permit": {
"r": "0x...", "s": "0x...", "v": 1,
"nonce": 1, "deadline": 1234567890
}
},
"ticketBlockchainOutput": {
"walletChain": "CELO",
"walletAddress": "0x..."
}
}

Ticket Response - PERMIT

{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}

Ticket Request - TRANSFER (Alternative)

{
"quoteToken": "eyJ...",
"ticketBlockchainOutput": {
"walletChain": "CELO",
"walletAddress": "0x..."
}
}

Ticket Response - TRANSFER

{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}

PERMIT: Avenia automatically pulls tokens after your signature TRANSFER: You must manually send tokens to Avenia wallet

info

Send Method is only applied to quotes where the input is blockchain


Refund Deposit Operations

REFUND DEPOSIT

Input: BRLA tokens from internal balance Output: BRL via PIX (return to original depositor)

The REFUND DEPOSIT allows you to return a deposit that the user made but for some reason no longer wants the funds. This operation uses the ticket generated from the original deposit.

info

This functionality is available only for BRL via PIX deposits that were converted to BRLA INTERNAL. To perform the refund, you must use the Ticket ID of the original deposit.

Quote Parameters

ParameterValueDescription
inputCurrencyBRLAThe currency being refunded
inputPaymentMethodINTERNALThe internal payment method
outputCurrencyBRLThe currency that will be received back
outputPaymentMethodREFUNDThe refund payment method
inputThirdPartyfalseIndicates that funds come from internal balance
outputThirdPartyfalseIndicates that refund goes to original depositor
blockchainSendMethodPERMITDefines the blockchain transaction type
ticketRefundIduuidRequired - Original deposit ticket ID (BRL PIX → BRLA INTERNAL)

Ticket Request

info

The structure ticketBrlPixOutput passing the pixMessage is optional!

{
"quoteToken": "eyJ...",
"ticketBlockchainOutput": {
"beneficiaryWalletId": "00000000-0000-0000-0000-000000000000"
},
"ticketBrlPixOutput": {
"pixMessage": "optional PIX message"
}
}
warning

The beneficiaryWalletId with value 00000000-0000-0000-0000-000000000000 (zeroed UUID) indicates that funds will be debited from whoever executed the operation. If a sub-account operated, funds will come out of the sub-account balance. If there is no sub-account field, funds will come out of the main account balance.

Ticket Response

{
"id": "65feb710-029f-4469-87a4-295f0d7a3855"
}

Result: The system automatically processes the refund via PIX to the original depositor, reversing the deposit operation.

info

ticketRefundId is the ID of the original deposit ticket that needs to be refunded. You can find this ID by querying the BRL PIX → BRLA INTERNAL deposit transaction.


Avenia Internal Account Transactions

Internal Currency Transfer (BRLA/USDC/USDT/EURC/ARSA → Same Currency)

Input: Tokens from internal balance (any currency with INTERNAL payment method) Output: Same currency tokens to another Avenia account (main or sub-account)

Internal transfers allow you to move tokens between Avenia accounts for any currency that supports the INTERNAL payment method (BRLA, USDC, USDT, EURC, ARSA). This works for transfers from main account to sub-account, sub-account to main account, and between sub-accounts. The operation follows the same process regardless of the account types involved or the currency used.

warning

If the subAccountId={uuid} query parameter is included in the request, the operation will be executed on behalf of the specified sub-account. If omitted, the operation will be executed on behalf of the main account.

Quote Parameters

ParameterValueDescription
inputCurrencyBRLA / USDC / USDT / EURC / ARSAThe currency you are paying with (must support INTERNAL payment method)
inputPaymentMethodINTERNALThe internal payment method
inputAmount100The amount you want to transfer
outputCurrencySame as inputCurrencyThe currency you want to receive (must match input currency)
outputPaymentMethodINTERNALThe internal payment method for receiving funds

Base URL: https://api.sandbox.avenia.io:10952/v2/account/quote/fixed-rate

Ticket Request

{
"quoteToken": "eyJ...",
"ticketBlockchainOutput": {
"beneficiaryWalletId": "28b5ccec-0286-47af-ac16-12395b40f066"
}
}
Request Parameters
ParameterTypeDescription
quoteTokenstringToken obtained from the quote response
beneficiaryWalletIdstring (UUID)Required - The account ID of the recipient. This must be the account ID of the destination account, whether it's another sub-account ID or the main account ID

Base URL: https://api.sandbox.avenia.io:10952/v2/account/tickets/

warning

If you included the subAccountId query parameter in the quote request, you must include the same subAccountId parameter in the ticket request as well.

Ticket Response

{
"id": "55ea4ebf-60fb-4c47-8a97-00f7659f4762"
}
Response Fields
FieldTypeDescription
idstring (UUID)Unique identifier for the ticket

Result: Tokens are transferred automatically between the specified Avenia accounts in the same currency.


Supported Assets Table

Permitted Currencies and Payment Methods

CurrencyValid Payment Methods
BRLPIX, REFUND
USDWIRE, ACH
EURSEPA
ARSBANK-TRANSFER
ARSAINTERNAL
BRLAINTERNAL, BASE, CELO, ETHEREUM, GNOSIS, MOONBEAM, POLYGON
USDCINTERNAL, BASE, CELO, ETHEREUM, GNOSIS, MOONBEAM, POLYGON
USDCePOLYGON (input only — see note below)
USDTINTERNAL, CELO, ETHEREUM, MOONBEAM, POLYGON, TRON
EURCINTERNAL
warning

USDCe (Bridged USDC on Polygon): We only accept USDCe as an input. Sending USDCe as output is not supported.

Valid Blockchain Send Methods

CurrencyBlockchainValid Send Methods
ARSAINTERNALPERMIT, TRANSFER
BRLAPOLYGONPERMIT, TRANSFER
BRLAMOONBEAMPERMIT, TRANSFER
BRLACELOPERMIT, TRANSFER
BRLAGNOSISPERMIT, TRANSFER
USDCPOLYGONPERMIT, TRANSFER
USDCePOLYGONPERMIT, TRANSFER
USDTPOLYGONPERMIT, TRANSFER
USDCMOONBEAMTRANSFER
USDCCELOPERMIT, TRANSFER
USDTTRONTRANSFER

Valid Markup Currencies

CurrencyCan be used for Markup?
BRLAYes
USDCYes
USDTYes
EURCNo
ARSANo

Practical Usage

1. Choose Your Combination

Consult the table above and identify the desired conversion.

2. Adjust Parameters

  • Amount: Use inputAmount to define how much to convert
  • Direction: Swap inputCurrency and outputCurrency to reverse
  • Network: Change inputPaymentMethod/outputPaymentMethod to switch blockchain
  • Method: Select PERMIT or TRANSFER for blockchain operations

3. Consider Fees

  • Conversion: Fee applied when changing currencies
  • Network: Fee from the destination blockchain
  • Markup: Additional fee (if applicable)
  • Gas: Blockchain transaction fee

4. Execute in Sequence

  1. Create quote first (valid for 15 seconds)
  2. Create ticket immediately after (uses the quoteToken)
  3. Monitor via webhooks or API

Understanding Quote Response

pairName

FieldTypeDescription
pairNamestringRepresents the currency pair used in the quote. Example: "BRLAUSDT" for a BRLA to USDT conversion.

basePrice

FieldTypeDescription
basePricedecimalThe raw exchange rate before any fees are applied. Example: "1.002" means 1 BRLA is worth 1.002 USDT.

appliedFees

A list of fees that were applied to the transaction. Each item in the list contains:

FieldTypeDescription
typestringThe fee category. Example: "Markup Fee", "Gas Fee", "In Fee"...
descriptionstringA brief explanation of what the fee represents.
amountdecimalThe amount charged for this specific fee.
currencystringThe currency in which the fee is charged.

Conclusion

By now, you should have a solid understanding of how the quote system works and how to interact with the API efficiently.

We covered:

  • The structure of a quote, including input, output, markup, and blockchain-specific parameters.
  • How to make requests to the quote endpoint, whether it's PIX to Token, Token to PIX, or Blockchain to Blockchain.
  • How to interpret the response, including fees, exchange rates, and key transaction details.
  • Common validation rules and error handling, ensuring smooth and predictable API usage.
  • How to retrieve all tickets, allowing you to fetch your transaction history and track status changes.

With this knowledge, you're ready to integrate Avenia's quoting system into your own workflows, allowing you to seamlessly handle token conversions, fiat transactions, and blockchain swaps.

Now that you've mastered quotes, it's time to start creating tickets and executing transactions!