Was du empfangen kannst
Natives DASH nutzt eine neue Adresse pro Rechnung. Lass den Scanner deine Bestätigungsregel prüfen. Eine InstantSend-Anzeige allein bedeutet nicht, dass die Wholly-Crypto-Rechnung abgeschlossen ist.
Richte deinen Store ein
- Installiere Wholly Crypto, erstelle Projekt und Store und sichere deine Wallet privat.
- Prüfe scannerfähige Verbindungen und aktiviere Chain und gewünschte Assets unter Store → Payment methods.
- Lege Bestätigungen und Ablaufzeit fest. Teste eine kleine Rechnung und prüfe den Abschluss, bevor du Bestellungen erfüllst.
Wo deine Zahlungen ankommen
Rechnungen nutzen getrennte Empfangsadressen. Sichere vollständiges Backup, Adressliste und Ableitungsdetails. Eine importierte Wallet findet eventuell nicht sofort jede Adresse.
Wallet-AnleitungLeite Guthaben weiter, wenn es passt
Manuelles Senden und Sweeps bündeln ausgebbare Outputs. Viele kleine Eingänge können Größe und Gebühren erhöhen. Prüfe die Vorschau und nutze ein Ziel im selben Netzwerk.
Tutorial für automatische SweepsProbleme bei Zahlungen
Zuerst das Netzwerk prüfen
Prüfe transparente DASH-Adresse und Bestätigungsregel. Ein InstantSend-Label allein bedeutet nicht, dass die Händlerrechnung beglichen ist.
Eine Zahlung fehlt oder verzögert sich
Gleiche Netzwerk, Adresse, Asset und Referenz mit der Rechnung ab. Prüfe Scanner und Bestätigungen. Bitte erst nach Prüfung der ersten Transaktion um eine weitere Zahlung.
Empfangs-GuideWallets wiederherstellen oder bündeln
Bewahre dein privates Backup und Ableitungsdetails auf. Andere Wallet-Apps zeigen eventuell nicht alle Adressen. Senden und Wiederherstellen hängen von Chain und Wallet-Format ab; die Wörter allein garantieren beides nicht.
Backup & WiederherstellungGebühren und Prüfung
Standardmäßig kostet die Verarbeitung 1 % des Fiat-Rechnungswerts, bezahlt aus separatem Guthaben. Dein zugewiesener Satz gilt. Netzwerk- und Serverkosten kommen dazu.
Öffentliche Anbieter können ausfallen oder Anfragen begrenzen. Eine eingereichte Transaktion oder Rückleitung beweist keine Zahlung. Nutze den verifizierten Rechnungsstatus und signierte Benachrichtigungen.
Verarbeitungsguthaben API, IPN & WebhooksWährungsrechner
Betrag umrechnen
Eine Schätzung, kein Zahlungsangebot. Netzwerkgebühren, Handelsgebühren und Händleraufschläge sind nicht enthalten.
Woher kommen die Kurse?
Krypto-Schätzungen nutzen zwischengespeicherte öffentliche Kraken-Kurse, ergänzt durch Binance. Manche Binance-Kurse nutzen USDT als USD-Referenz. Fiatkurse stammen von Frankfurter und sind tägliche Referenzkurse, keine Live-Handelskurse.
Der Datensatz wird automatisch aktualisiert. Unter deinem Ergebnis siehst du die Datenquellen und Zeitpunkte. Dein eingegebener Betrag bleibt in deinem Browser. Gelistete Assets sind nicht automatisch als Zahlungsmittel verfügbar.
Kraken · Binance · Frankfurter · Asset-Namen & Icons: CoinGecko
Rechnung per API erstellen
Führe die Beispiele auf deinem Server aus. Ersetze API-Host, Projekt-ID und Store-ID. Halte den Schlüssel geheim. Beträge sind Dezimal-Strings.
Aktiviere die Methode zuerst im Store. Die Auswahl grenzt aktive Methoden ein, fügt aber keine Assets hinzu. Ohne Treffer gelten die Store-Standards. Prüfe die zurückgegebenen Methoden vor dem 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": "dash",
"asset_tickers": [
"DASH"
]
}
]
}'// 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": "dash",
"asset_tickers": [
"DASH"
]
}
]
}`;
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": "dash",
"asset_tickers": [
"DASH"
]
}
]
}
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": "dash",
"asset_tickers": [
"DASH"
]
}
]
}""".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))