O que você pode receber
Use Avalanche C-Chain. X-Chain e P-Chain são redes diferentes e não correspondem a este método de checkout. Transferências de tokens C-Chain precisam de AVAX para taxas.
Configure sua loja
- Instale o Wholly Crypto, crie um projeto e uma loja e guarde um backup privado da carteira.
- Confira conexões compatíveis com o scanner e ative a rede e os ativos em Store → Payment methods.
- Defina confirmações e validade. Teste uma fatura pequena e verifique a liquidação antes de atender pedidos.
Onde seus pagamentos chegam
As faturas usam endereços separados. Guarde backup completo, lista de endereços e derivação; uma carteira importada pode não encontrar todos imediatamente.
Guia de configuração de carteirasMova os fundos quando quiser
Envie ou faça sweep da moeda nativa e tokens ERC-20 verificados. Cada origem precisa da moeda desta rede para gas. O projeto pode financiar endereços elegíveis dentro dos seus limites.
Tutorial de sweep automáticoProblemas com pagamentos
Confira primeiro esta rede
Escolha Avalanche C-Chain, não X-Chain ou P-Chain. Tokens precisam de AVAX na C-Chain; staking em outra cadeia não paga esse gas.
Pagamento ausente ou atrasado
Confira rede, endereço, ativo e referência da fatura. Veja o scanner e as confirmações. Não peça outro pagamento antes de verificar a primeira transação.
Guia de recebimentoRestaure carteiras ou reúna fundos
Guarde o backup privado e os dados de derivação. Outro app pode não mostrar todos os endereços. Envio e recuperação dependem da rede e do formato; importar as palavras não garante nenhum dos dois.
Backup e restauraçãoTaxas e verificação
A taxa padrão é 1% do valor fiat da fatura, paga com créditos separados. Vale a tarifa atribuída à sua conta. Taxas de rede e servidor são à parte.
Provedores públicos podem falhar ou limitar requisições. Transação enviada ou redirecionamento não comprovam pagamento. Use o status verificado da fatura e notificações assinadas.
Créditos de processamento API, IPN e webhooksCalculadora de câmbio
Converter um valor
É uma estimativa, não uma cotação de pagamento. Não inclui taxas de rede, da exchange nem margens do lojista.
De onde vêm as cotações?
As estimativas cripto usam preços públicos do Kraken em cache e da Binance quando disponíveis. Alguns preços da Binance usam USDT como referência de USD. As cotações fiduciárias vêm do Frankfurter e são referências diárias, não cotações de negociação em tempo real.
Os dados são atualizados automaticamente. Confira as datas das fontes abaixo do resultado. O valor inserido permanece no seu navegador. A presença de um ativo não garante suporte a pagamentos.
Kraken · Binance · Frankfurter · Nomes e ícones de ativos: CoinGecko
Crie uma fatura pela API
Execute no seu servidor. Troque o host da API e os IDs de projeto e loja. Mantenha a credencial privada. Valores são strings decimais.
Ative o método na loja primeiro. A seleção filtra métodos ativos, não adiciona ativos. Sem correspondências, valem os padrões da loja. Confira os métodos retornados antes de abrir o checkout.
: "${WHOLLY_TOKEN:?Set WHOLLY_TOKEN to your server-side API token}"
# Keep this key and the exact body for retries; use a new key for each new invoice.
curl --fail-with-body --max-time 30 \
--request POST \
--url "https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices" \
--header "Authorization: Bearer $WHOLLY_TOKEN" \
--header 'Idempotency-Key: order-1042-attempt-1' \
--header 'Content-Type: application/json' \
--data-raw '{
"amount": "25.00",
"currency": "EUR",
"order_id": "order-1042",
"payment_methods": [
{
"chain_slug": "avalanche",
"asset_tickers": [
"AVAX"
]
}
]
}'// Node.js 18+ · run on your server, never in browser code.
const token = process.env.WHOLLY_TOKEN;
if (!token) throw new Error("Set WHOLLY_TOKEN");
// Keep this key and the exact body for retries; use a new key for each new invoice.
const body = `{
"amount": "25.00",
"currency": "EUR",
"order_id": "order-1042",
"payment_methods": [
{
"chain_slug": "avalanche",
"asset_tickers": [
"AVAX"
]
}
]
}`;
const response = await fetch("https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices", {
method: "POST",
headers: {
"Authorization": `Bearer ${token}`,
"Idempotency-Key": "order-1042-attempt-1",
"Content-Type": "application/json"
},
body,
redirect: "error",
signal: AbortSignal.timeout(30000)
});
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
console.log(await response.json());<?php
// PHP 8+ with the cURL extension; run on your server.
$token = getenv('WHOLLY_TOKEN');
if (!$token) { throw new RuntimeException('Set WHOLLY_TOKEN'); }
// Keep this key and the exact body for retries; use a new key for each new invoice.
$body = <<<'JSON'
{
"amount": "25.00",
"currency": "EUR",
"order_id": "order-1042",
"payment_methods": [
{
"chain_slug": "avalanche",
"asset_tickers": [
"AVAX"
]
}
]
}
JSON;
$ch = curl_init("https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices");
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $token, "Idempotency-Key: order-1042-attempt-1", "Content-Type: application/json"],
CURLOPT_POSTFIELDS => $body,
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($response === false) { throw new RuntimeException(curl_error($ch)); }
curl_close($ch);
if ($status < 200 || $status >= 300) { throw new RuntimeException("HTTP $status: $response"); }
print_r(json_decode($response, true, 512, JSON_THROW_ON_ERROR));# Python 3 · standard library; run on your server.
import json
import os
from urllib.request import Request, build_opener, HTTPRedirectHandler
class NoRedirect(HTTPRedirectHandler):
def redirect_request(self, req, fp, code, msg, headers, newurl):
return None
# Keep this key and the exact body for retries; use a new key for each new invoice.
headers = {
"Idempotency-Key": "order-1042-attempt-1",
"Content-Type": "application/json"
}
headers["Authorization"] = "Bearer " + os.environ["WHOLLY_TOKEN"]
body = """{
"amount": "25.00",
"currency": "EUR",
"order_id": "order-1042",
"payment_methods": [
{
"chain_slug": "avalanche",
"asset_tickers": [
"AVAX"
]
}
]
}""".encode("utf-8")
request = Request("https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices",
method="POST", headers=headers, data=body)
# Non-2xx responses raise HTTPError. Do not retry writes with a new key.
with build_opener(NoRedirect()).open(request, timeout=30) as response:
print(json.load(response))