Wat je kunt ontvangen
Alleen de eigen munt TRX. TRC-20-tokens, inclusief USDT op TRON, zijn geen betaalmethoden voor facturen. Een gezonde basisnode bewijst niet dat geïndexeerde of definitief bevestigde transactiegeschiedenis beschikbaar is.
Stel je winkel in
- Installeer Wholly Crypto, maak een project en winkel aan en bewaar een privéwalletback-up.
- Controleer scannercompatibele verbindingen en schakel de blockchain en gewenste activa in via Winkel → Betaalmethoden.
- Stel bevestigingen en verloop in. Test een kleine factuur en controleer of die is voldaan voordat je bestellingen afhandelt.
Waar je betalingen aankomen
Gebruik het TRON-ontvangstadres van de afrekenpagina. Betalingsdetectie vereist een scannercompatibele geschiedenisbron; een node die een gezonde blokhoogte rapporteert, is niet genoeg. Houd onafhankelijke providers ingesteld.
OntvangsthandleidingVerplaats middelen wanneer je er klaar voor bent
De eigen munt TRX ondersteunt handmatig verzenden en automatisch sweepen. Controleer kosten van netwerkresources en eventuele activeringskosten voor de bestemming in het overdrachtsvoorbeeld. Houd genoeg TRX aan voor het bedrag en de kosten.
Handleiding voor automatische sweepsKan ik hier USDT-TRC20 accepteren?
Nee. Deze integratie accepteert de eigen munt TRX, geen TRC-20-factuurbetalingen. Gebruik voor USDT in plaats daarvan een ondersteunde geverifieerde Ethereum- of Solana-methode. Verzend nooit TRC-20-tokens om een TRX-factuur te betalen.
Betalingsproblemen oplossen
Controleer eerst dit netwerk
Een gezonde TRON-node kan de transactiegeschiedenis missen die de scanner nodig heeft. Controleer scannergereedheid. Deze afrekenpagina accepteert TRX, niet USDT-TRC20.
Een betaling ontbreekt of is vertraagd
Vergelijk het netwerk, adres, activum en eventuele vereiste referentie met de factuur. Controleer scannergereedheid en bevestigingsvoortgang. Vraag niet om een tweede betaling voordat je de eerste transactie hebt gecontroleerd.
OntvangsthandleidingWallets herstellen of samenvoegen
Bewaar je privéback-up en afleidingsgegevens. Een andere wallet-app toont mogelijk niet elk ontvangstadres. Verzenden en herstellen hangen af van de blockchain en het walletformaat; alleen herstelwoorden importeren garandeert geen van beide.
Back-up & herstelKosten en verificatie
De standaardverwerkingskosten zijn 1% van de fiatwaarde van de factuur, betaald uit afzonderlijk tegoed. Je toegewezen tarief is van toepassing. Netwerkkosten en serverkosten staan hier los van.
Openbare providers kunnen storingen of snelheidslimieten hebben. Een ingediende transactie of terugkeerdoorverwijzing is geen betalingsbewijs. Gebruik de geverifieerde factuurstatus en ondertekende meldingen.
Verwerkingstegoed API, IPN & webhooksKoerscalculator
Een bedrag omrekenen
Een schatting, geen prijsopgave voor een betaling. Netwerkkosten, beurskosten en handelaarsopslagen zijn niet inbegrepen.
Waar komen de koersen vandaan?
Cryptoschattingen gebruiken gecachte publieke Kraken-prijzen, aangevuld met Binance waar beschikbaar. Sommige Binance-prijzen gebruiken USDT als USD-referentie. Fiatkoersen komen van Frankfurter en zijn dagelijkse referentiekoersen, geen live handelskoersen.
De momentopname wordt automatisch vernieuwd. Controleer de brondatums onder je resultaat. Het ingevoerde bedrag blijft in je browser. Een vermelding van een actief garandeert geen betaalondersteuning.
Kraken · Binance · Frankfurter · Namen & pictogrammen van activa: CoinGecko
Maak een factuur aan met de API
Voer deze voorbeelden op je server uit. Vervang de API-host, het project-ID en winkel-ID en houd de referentie geheim. Bedragen zijn decimale tekenreeksen.
Schakel de methode eerst in de winkel in. Selectie beperkt ingeschakelde methoden; ze voegt geen activa toe. Als niets overeenkomt, gelden de winkelstandaarden. Controleer de geretourneerde methoden voordat je de afrekenpagina toont.
: "${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": "tron",
"asset_tickers": [
"TRX"
]
}
]
}'// 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": "tron",
"asset_tickers": [
"TRX"
]
}
]
}`;
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": "tron",
"asset_tickers": [
"TRX"
]
}
]
}
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": "tron",
"asset_tickers": [
"TRX"
]
}
]
}""".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))