PER INIZIARE

Documentazione

Installa, accetta pagamenti e prenditi cura del tuo server.

Sei nuovo? Segui i tutorial passo passo →

Requisiti VPS

Usa un VPS Linux nuovo con accesso root, non un server che ospita già siti o database. Non servono Docker, compilatori o nodi blockchain.

VPSMinimo
Uso leggero
Consigliato
CPU1 vCPU2 vCPU
RAM2 GB4 GB
SSD20 GB60 GB

Il minimo è un punto di partenza per un uso leggero con immagini Ubuntu/Debian minimali, non una garanzia di prestazioni. Le dimensioni del disco includono Linux; lascia almeno 3 GiB liberi prima della configurazione, più spazio per aggiornamenti, cronologia e backup.

L'installer nativo richiede x86-64, systemd 247+ e Python 3.9+. ARM64 e Alpine/OpenRC non sono inclusi.

Versioni Linux e note sulle risorse
  • Ubuntu 22.04+ o Debian 12+; Mint 21+ e Pop!_OS 22+.
  • Fedora 42+; Rocky, AlmaLinux, RHEL, Oracle Linux o CentOS Stream 9–10.
  • openSUSE Leap 16+ o Tumbleweed; Arch, Manjaro o EndeavourOS.

Scegli una versione ancora mantenuta dal fornitore. I requisiti più elevati del sistema operativo hanno la precedenza: openSUSE Leap 16 richiede più di 40 GB di disco.

Più blockchain e fatture simultanee possono richiedere più CPU e RAM. Un VPS più grande non elimina i limiti RPC. I flussi di configurazione hanno test automatizzati; i test completi su VPS nuovi non sono ancora terminati per tutte le distribuzioni.

Installa

Punta questi nomi host predefiniti al tuo VPS, oppure scegline altri:

  • merchant.example.com: console
  • pay.example.com: checkout
  • api.example.com: API

Usa record solo DNS durante la configurazione. Apri le porte TCP 80/443 in entrambi i firewall e mantieni accessibile SSH. Non esporre mai PostgreSQL o l'app sulle porte 5432/8080.

bash <(curl -fsSL https://releases.whollycrypto.com/setup_wholly.sh)

La configurazione verifica i download e configura PostgreSQL, Nginx, HTTPS e i servizi. Preferisci i container? Vedi l' installazione Docker facoltativa.

Controlla prima o riprendi la configurazione

Esamina l'installer. Aggiungi --check al comando per verificare la compatibilità senza installare, oppure --help per le opzioni.

Riprendi i progressi salvati senza sostituire chiavi o impostazioni:

bash <(curl -fsSL https://releases.whollycrypto.com/setup_wholly.sh) --resume

Altri domini di base possono usare gli stessi nomi dei servizi. Anche gli eventuali record IPv6 devono puntare a questo VPS. Attiva il proxy Cloudflare solo dopo la convalida del dominio.

Configurazione iniziale

  1. Inserisci le credenziali HTTP Basic. Crea il tuo account amministratore, scegli lingua e fuso orario e leggi la licenza e informativa sulla privacy.
  2. Controlla Impostazioni → Connessioni blockchain. Usa provider di riserva funzionanti e indipendenti che supportino la scansione dei pagamenti.
  3. Crea un progetto, poi il suo primo negozio.
  4. Esegui il backup dei wallet del progetto. Nel negozio, seleziona le blockchain accettate e i token verificati.
  5. Imposta valuta, conferme, scadenza, spread e tolleranza. Controlla il saldo dei crediti prima di creare fatture.

I QR richiedono l'intero importo ancora dovuto. La tolleranza accetta solo piccoli ammanchi; le conferme restano necessarie.

Importi delle stablecoin

Le nuove quotazioni delle stablecoin riconosciute vengono arrotondate per eccesso: 1.321 USDC → 1.33 USDC, anche con tolleranza zero. Minimo: 0.01 token.

Le fatture esistenti, i saldi e gli importi residui dei pagamenti parziali restano esatti. Gli altri token, inclusi quelli personalizzati, mantengono la normale precisione.

Attivazione automatica

La registrazione dell'amministratore crea automaticamente il tuo account crediti con la tua email e un credito di benvenuto una tantum equivalente a 10 USD . Non serve alcun codice di attivazione.

Crea una fattura. L'attivazione in attesa viene ritentata automaticamente; le riconnessioni non assegnano mai di nuovo il credito.

Credenziali e impostazioni predefinite

Le tue credenziali Basic Auth sono salvate in /root/whollycrypto/config/setup-credentials.txt. Sono separate dall'email e dalla password della console.

I nuovi progetti ereditano le impostazioni predefinite di valuta e fuso orario del sistema; i negozi usano la valuta del progetto. I fusi orari degli account esistenti si gestiscono separatamente in Impostazioni → Account.

whollycrypto welcome mostra l'URL della tua console.

Modalità commerciante o operatore

Le nuove installazioni dalla versione 7.0.0 richiedono di scegliere una modalità durante la configurazione del primo amministratore. La scelta è irreversibile; per cambiare modalità serve una nuova installazione. Le installazioni precedenti alla versione 7 restano in modalità commerciante, anche senza un amministratore.

Commerciante: gestisci i tuoi progetti e negozi. Operatore: ospita attività commerciali separate su un'unica installazione e applica una tua commissione prepagata di elaborazione. La tua attività è inclusa senza commissione interna dell'operatore.

Configura i commercianti ospitati
  1. Nodi, tassi, domini, crediti dell'installazione e aggiornamenti condivisi si gestiscono nel Pannello operatore.
  2. Apri Wallet → Crea wallet di ricezione per BTC, ETH e USDC/USDT su Ethereum. Esegui il backup di entrambe le frasi di recupero indipendenti. Questo progetto dedicato non può emettere fatture di vendita; un negozio di ricezione esistente viene conservato.
  3. Aggiungi un commerciante con valuta dei crediti, commissione ed email dell'amministratore. Condividi privatamente l'invito e le credenziali Basic Auth del commerciante. Sarà lui a scegliere la password. Non condividere mai le credenziali Basic Auth dell'operatore.
  4. I commercianti ricaricano tramite il tuo checkout, oppure puoi registrare un adeguamento del credito con una motivazione. Il credito è necessario prima di creare progetti o negozi. Gestisci utenti e cronologia dei crediti in Commercianti → Gestisci.

La configurazione operatore richiede un quarto indirizzo, ad esempio operator.example.com, e un nome utente e una password Basic Auth dedicati. Scegli l'etichetta, punta il DNS al VPS, verifica il DNS e attiva HTTPS. Il pannello si apre direttamente a quell'indirizzo. Gli indirizzi di console commerciante, checkout e API restano separati.

Usa le nuove credenziali Basic Auth dell'operatore, poi l'email e la password dell'amministratore. Le credenziali Basic Auth del commerciante non cambiano. Puoi riprendere la configurazione dopo errori DNS o del certificato. Anche gli operatori che aggiornano dalla 7.0.0 completano questo passaggio; gli indirizzi già attivi restano disponibili.

Commissioni, isolamento e responsabilità

Con il 3%, una fattura da 100 EUR costa 3 EUR di credito del commerciante. Se la valuta dei crediti è diversa, il tasso fiat al momento della creazione viene salvato con la commissione.

L'operatore paga separatamente la normale commissione dell'installazione Wholly Crypto. I fondi dei clienti non vengono suddivisi on-chain. Gli acquisti di crediti non subiscono un secondo addebito.

Solo un pagamento verificato automaticamente accredita una ricarica. Aprire un checkout o accettare manualmente una fattura non basta. Gli storni creano movimenti nel registro; una ricarica stornata che ricompare richiede una verifica dell'operatore.

Un credito insufficiente del commerciante ospitato sospende IPN, webhook, sweep e creazione di nuovi progetti o negozi. Le fatture esistenti dei clienti e la ricezione continuano a funzionare. Un credito insufficiente dell'installazione può sospendere le automazioni di tutte le attività ospitate. Disabilitare un commerciante blocca anche l'accesso e le nuove fatture, mentre i pagamenti precedenti restano monitorati.

È un isolamento a livello di applicazione, non un VPS separato per ogni commerciante. I commercianti non possono accedere a progetti, wallet, credenziali API, exchange o crediti degli altri. L'amministratore del server può accedere alle chiavi dei wallet online ospitati. Informane i commercianti prima dell'attivazione; usa hosting affidabile, backup indipendenti e risorse adeguate ai carichi condivisi.

Finanze e inviti dell'operatore

Disponibile in modalità Operatore dalla 7.1.0.

Wallet e finanze

Dalla 7.2.0, Wallet gestisce saldi di ricezione, indirizzi e backup; Sweep gestisce invii e regole automatiche. Conserva ETH per le commissioni dei token. Ricariche dei commercianti tiene traccia dei loro acquisti. I crediti nell'intestazione pagano separatamente le commissioni dell'installazione. La mia attività apre la tua console in una nuova scheda.

Apri Finanze per commissioni guadagnate, addebiti verificati dell'installazione, margine stimato e crediti attuali dei commercianti. Filtra per data, commerciante o valuta del report; esporta in CSV.

I report raggruppano le fatture in base al primo pagamento completato e riflettono gli ultimi storni delle commissioni. I saldi prepagati non sono ricavi. Gli addebiti della tua attività restano separati. Addebiti in attesa o tassi mancanti rendono indisponibili i margini interessati. Gli importi convertiti usano i tassi fiat attuali in cache; gas e costi operativi non sono inclusi.

Invita utenti o reimposta password

Aggiungi commerciante crea un invito. Dalla 7.3.0, scegli un credito iniziale gratuito nella valuta dei crediti del commerciante; è ammesso zero. Questo non ricarica il tuo saldo operatore. Invia invito via email è selezionato per impostazione predefinita.

Configura il tuo provider SMTP in Impostazioni → Email di invito prima, usando TLS o STARTTLS. Il test della connessione non invia email. In alternativa, deseleziona l'email e condividi il link privatamente. Un invio fallito conserva l'account e il credito; non creare di nuovo il commerciante.

Per un altro link o per reimpostare la password, apri Commercianti → Gestisci → Account utente. L'accettazione SMTP non garantisce la consegna in posta in arrivo. Condividi separatamente le credenziali Basic Auth del commerciante, mai quelle dell'operatore.

Gli inviti durano 48 ore; i link di reimpostazione un'ora. Ognuno funziona una sola volta. Puoi sostituire o revocare un link dalla stessa schermata. La reimpostazione chiude le sessioni esistenti ma lascia attiva la 2FA. Le credenziali Basic Auth del commerciante restano necessarie.

API operatore

Automatizza la gestione dei commercianti ospitati con SDK 2.6.0 e Wholly Crypto 7.4.0+. Attiva Operatore → Impostazioni → API operatore, poi crea una chiave con ambito limitato da usare sul server.

Attivazione, permessi e tentativi sicuri

Crea account direttamente con una password o invia inviti. Gestisci utenti, progetti, negozi, commissioni e crediti prepagati locali; leggi i report e iscriviti agli eventi firmati del ciclo di vita. Il consenso alla custodia al primo accesso, la 2FA e l'isolamento dei clienti restano attivi.

Ogni scrittura richiede una chiave di idempotenza salvata. L'assegnazione di crediti è un adeguamento locale dell'account, non una ricarica dell'installazione. Segreti dei wallet, invio di fondi e configurazione del server restano esclusi da questa API.

Usa api.your-domain.com/v1/operator. Conserva le chiavi operatore nel backend, mai nel browser o presso un commerciante ospitato.

Riferimento e permessi dell'API operatore → · SDK PHP, Python e Node con esempi →

Wallet e token

Impostazioni → Token carica prima 250 token, poi il resto del catalogo.

Progetto → Wallet → Backup di tutti esporta TXT o HTML offline con ricerca e codici QR. Entrambi espongono chiavi e frasi di recupero. Conserva una copia privata fuori dal server; non condividerla e non caricarla mai online.

Root può accedere alle chiavi. Guide al recupero dei wallet spiegano gli indirizzi delle fatture, il gas nativo e i backup esterni di Monero/Lightning.

Indirizzi salvati e saldi aggiornati

Impostazioni → Rubrica: salva una blockchain e un indirizzo. Le monete native e i token riconosciuti da CoinGecko compaiono automaticamente. È in sola lettura e gestita dall'amministratore; i metodi accettati al checkout non cambiano.

La lettura dei token copre 22 blockchain. I saldi privati e i livelli aggiuntivi Bitcoin/CashTokens/Kaspa richiedono accessi o indicizzatori separati. Le letture fallite mostrano errori, non zeri.

Raccogli i saldi delle fatture in un altro wallet con invii manuali o sweep automatici. I trasferimenti di token richiedono anche la moneta nativa della blockchain per le commissioni.

Prezzo non disponibile riguarda i tassi, non i saldi.

Aggiungi un token personalizzato
  1. Negozio → Metodi di pagamento → EVM o Solana → Token personalizzato.
  2. Inserisci contratto/mint, nome e ticker. Scegli un prezzo fisso in USD o un prezzo automatico da DEX.

Rete e decimali vengono verificati. I prezzi a livello di progetto non modificano le quotazioni esistenti. Una corrispondenza nel catalogo non abilita da sola il checkout.

Prezzi automatici

DEX Screener richiede un pool con il contratto esatto, $10,000 di liquidità e uno scambio nell'ultima ora. I tassi si aggiornano ogni minuto; tassi non recuperabili o vecchi di cinque minuti bloccano le nuove quotazioni.

I prezzi DEX possono essere manipolati; i controlli non sono audit. Usa token ERC-20 standard o SPL classici affidabili. Token-2022 ed estensioni non sono supportati. Senza un pool adatto, usa un prezzo fisso.

Valuta e fuso orario

Impostazioni → Sistema → Impostazioni regionali predefinite imposta valuta e fuso orario dei nuovi progetti e fuso orario dei nuovi account. Impostazioni e crediti esistenti non cambiano; la valuta della dashboard resta modificabile.

Fuso orario personale: Impostazioni → Account → Modifica utente.

Crea una fattura

Usa Metodi di pagamento → Scegli per questa fattura per limitare le blockchain e i token accettati. Tutti i metodi di pagamento del negozio mantiene le impostazioni predefinite.

  1. Apri Progetto → Fatture → Crea fattura.
  2. Scegli il negozio, la valuta fiat e l'importo.
  3. Condividi il link del checkout. Il cliente sceglie una blockchain o un token disponibile e vede QR, importo residuo, scadenza e conferme.

Prova un piccolo pagamento con ogni metodo prima di andare online. Controlla la fattura prima di evadere un ordine: un URL di ritorno non è una prova di pagamento.

Per le integrazioni, verifica IPN e webhook firmati e conferma lo stato tramite l' API delle fatture. Tratta gli eventi duplicati come lo stesso evento.

API: filtra payment_methods per chain_slug e asset_tickers. Le scelte inattive vengono ignorate; senza corrispondenze si usano i valori predefiniti del negozio. La sola blockchain include tutti gli asset attivi. I ticker condivisi richiedono gli ID degli asset. Wallet e tassi restano necessari.

Importi e conferme

Scanner offline? Le fatture mantengono i metodi configurati mentre il rilevamento attende. Controlla le API supportate in Connessioni blockchain; un provider funzionante non è necessariamente compatibile con lo scanner. Predefinito: due provider indipendenti.

Wallet e tassi restano necessari. I servizi Monero/Lightning devono emettere le richieste di pagamento.

Gli errori API/MCP includono error.details.payment_methods. SDK 2.4.0 aggiunge spiegazioni sicure: PHP getPaymentMethodIssues(), Python payment_method_issues, Node paymentMethodIssues. Riferimento degli errori →

Le quotazioni crypto si arrotondano per eccesso e includono lo spread del negozio. Una fattura con prezzo in fiat non converte la crypto ricevuta in un saldo bancario.

Con zero conferme il pagamento si completa al rilevamento, senza la protezione delle conferme di rete. I pagamenti EVM nativi vengono rilevati come trasferimenti diretti. Esamina i pagamenti insoliti o incerti in Richiede attenzione.

API degli scanner

Controlla Connessioni blockchain per API compatibili, cronologia completa e provider indipendenti. Il recupero dello storico da un nodo diretto richiede tempo. Tutte le API di ricezione →

Pagamenti, saldi e manutenzione condividono i limiti dei provider. I controlli inattivi rallentano. Le fatture più vecchie mantengono il monitoraggio dei pagamenti tardivi e delle riorganizzazioni, fino a una volta all'ora dopo il recupero dello storico. Gli indizi WSS disponibili integrano la scansione HTTP. Chiudere il checkout non interrompe mai il rilevamento. I nodi pubblici hanno comunque dei limiti; Wholly Crypto non gestisce nodi.

Fatture a importo zero

Bloccate per impostazione predefinita. Attiva Negozi → Fattura → Consenti fatture a importo zero per consentire totali pari a zero manualmente o via API. Si completano subito, senza pagamento, indirizzo di ricezione, transazione o commissione di elaborazione.

Checkout

Negozio → Checkout: colori, loghi, metodi, link, dimensioni dei caratteri Intro/Outro e visibilità dei nomi di progetto e negozio. I nuovi negozi ereditano il design del negozio predefinito. Le modifiche si salvano automaticamente.

Le anteprime non possono accettare pagamenti. Niente HTML/CSS/JavaScript personalizzato.

Prova la demo.

IPN e webhook

IPN invia ogni evento della fattura all'URL del negozio o al campo della fattura ipn_url. I webhook inviano gli eventi selezionati. Entrambi inviano con POST la stessa istantanea JSON.

Quando devo evadere l'ordine? Per la gestione basata sugli eventi, usa event_type = invoice.settled con status = settled. Verifica la fattura attuale e il tuo ordine, poi evadilo una sola volta. payment.received da solo non basta.

Stato ed eventi: esempi Ethereum e Solana

status è lo stato della fattura alla creazione dell'evento; event_type indica che cosa è successo.

  • Esempio Ethereum: payment.received + processing, poi invoice.settled + settled.
  • Esempio Solana: già definitivo al rilevamento, quindi payment.received e invoice.settled riportano entrambi settled.

Entrambi i flussi possono verificarsi su altre blockchain. Sono eventi distinti, non necessariamente due pagamenti. Possono condividere sequence ma avere valori diversi di event_id . L'ordine di consegna non è garantito; non richiedere che processing arrivi per primo.

Stati e dati dei callback
Stato della fatturaSignificato
newIn attesa del pagamento
processingPagamento parziale o in attesa di finalità
settledAccettato secondo le regole della fattura o manualmente
expiredScadenza superata; il monitoraggio dei pagamenti tardivi può continuare
invalidIl pagamento richiede una verifica o è stato rifiutato
cancelledAnnullato, non rimborsato

Eventi: invoice.created, payment.received, invoice.processing, invoice.settled, invoice.expired, invoice.invalid, invoice.cancelled. Tabella completa degli eventi e regole per le eccezioni →

amount_status: none, partial, paid, overpaid. paid include la tolleranza, non la finalità. timing_status: on_time oppure late. resolution: automatic, manually_settled oppure manually_invalidated. Applica la tua politica per le eccezioni quando requires_review è true.

invoice_id corrisponde alla risposta API. amount, currency e order_id descrivono il tuo ordine originale. payment_info aggiunge trasferimenti, importi crypto esatti, quotazione/spread/tolleranza bloccati e tassi indicativi. Dati dei clienti e metadati sono privati.

paid_chain, paid_asset, paid_payment_method_id, paid_asset_amount, paid_asset_amount_received e settlement_exchange_rate riassumono il regolamento. Restano congelati; prove o cronologia mancanti restano null. Per le ricevute successive usa payment_info oppure l' API dei pagamenti.

Usa stringhe decimali. Non sommare mai asset diversi e non considerare mancanti i fondi non confermati. Gestisci le eccezioni in modo esplicito; un avviso da solo non autorizza mai l'evasione o il rimborso. Le ricariche interne di gas verificate non sono pagamenti dei clienti e non attivano payment.received.

Segreti di firma, tentativi e cronologia delle consegne

Segreti di firma separati: Negozio → IPN firma le consegne IPN, incluso il campo personalizzato della fattura ipn_url. Ogni endpoint in Negozio → Webhook ha un proprio segreto, mostrato quando viene creato o ruotato.

Entrambi usano Wholly-Signature e lo stesso verificatore SDK, ma richiedono il segreto corrispondente, non una chiave API. Ruotare il segreto IPN non modifica i segreti dei webhook.

Verifica il corpo grezzo, il timestamp e l'ambito progetto/negozio. Salva in modo durevole, poi restituisci HTTP 2xx. Un worker controlla la fattura attuale tramite l'host API configurato ed evade l'ordine una sola volta in una transazione del database. Gli header non sono firmati; usa l'identità nel corpo firmato della versione 2.

Basato sugli eventi: deduplica il valore firmato event_id, poi filtra invoice.settled. SDK basato sullo stato: raggruppa per progetto + invoice_id + sequence, poi controlla lo stato indipendentemente dal tipo di evento. Non aggiungere un filtro eventi dopo questo raggruppamento. Entrambi richiedono una protezione separata dai duplicati a livello di ordine.

I nuovi tentativi mantengono corpo e ID evento originali. Le revisioni più vecchie non devono sovrascrivere quelle più recenti. IPN effettua fino a otto tentativi; i nuovi tentativi dei webhook sono facoltativi. Un credito basso sospende le consegne, non i pagamenti.

Negozio → IPN / Webhook → Cronologia → Dettagli mostra il corpo salvato e il risultato. I payload scadono dopo 90 giorni. Un reinvio non è una prova di pagamento completato.

Payload completo, tabella eventi ed esempi di ricevitore →

Conversione tramite exchange

Invia gli asset supportati a Kraken, Binance o Coinbase. Conserva la moneta oppure converti i depositi accreditati. La valuta fiat resta sull'exchange.

I minimi di deposito si applicano a ogni transazione, non a ogni sweep. I depositi sotto il minimo fermano il piano. Consolida prima i piccoli saldi nel tuo wallet; si applicano commissioni di rete aggiuntive.

Connetti e scegli un percorso
  1. Impostazioni → Exchange: collega una chiave dedicata, controlla i saldi e autorizza i progetti. Nessun permesso di prelievo; limita la chiave all'IP del tuo VPS.
  2. Progetto → Sweep: verifica asset, rete, indirizzo e contratto del token. Per ogni blockchain/token, scegli un altro wallet oppure un exchange.

I mercati si aggiornano ogni due minuti. Solo i depositi abbinati e accreditati possono essere convertiti; mercati obsoleti bloccano i nuovi ordini. Una riserva dell'1% dell'asset di origine resta sull'exchange per commissioni e arrotondamenti, separata dai crediti di elaborazione.

Mantieni importo minimo riserva monete/token in tutto il progetto dopo gli sweep automatici. È separato dalla soglia di attivazione; zero non conserva nulla. Le commissioni usano l'eccedenza. Gli invii manuali non cambiano.

Riprendi i trasferimenti incerti; non sostituirli mai. I wallet restano riservati fino alla conferma o alla scadenza di una quotazione inutilizzata. Gli sweep grandi richiedono più lotti.

Si applicano custodia dell'exchange, KYC, limiti regionali e commissioni. Niente pagamenti bancari o leva. Un credito basso sospende le nuove conversioni; gli ordini già inviati continuano a essere riconciliati.

Crediti di elaborazione

Continui a ricevere pagamenti quando i crediti finiscono. I negozi esistenti mantengono fatture, checkout e monitoraggio dei pagamenti. Una connessione di fatturazione verificata mancante o la sospensione dell'account sono casi diversi e possono bloccare le nuove fatture.

Sempre disponibileSospeso senza credito utilizzabile
Fatture, checkout e confermeIPN/webhook, inclusi i nuovi tentativi
Wallet, saldi e backupSweep: invii, gas, rimborsi e nuove conversioni tramite exchange
Report, API di lettura e impostazioni esistentiCreazione di progetti e negozi
Controllo degli aggiornamenti e recupero degli aggiornamenti interrottiInstallazione di nuove versioni

Ricarica tramite l'icona dei crediti. Dopo il ripristino verificato, le automazioni attive riprendono, comprese le regole sweep che inviano fondi. Disattiva le regole che non vuoi far ripartire.

Ricariche automatiche dei crediti

Apri Ricarica automatica dopo Richieste. Scegli un wallet di ricezione di cui hai il backup, soglia, importo d'acquisto, limite giornaliero e tetto alle commissioni di rete. Autorizza e salva. All'inizio è disattivata.

Usa BTC, ETH o USDC/USDT su Ethereum quando disponibili. Gli indirizzi che inviano token hanno bisogno di ETH; questa regola non finanzia il gas mancante. Gli operatori usano wallet di ricezione dedicati; i commercianti ospitati pagano il proprio operatore.

La ricarica approvata può essere eseguita anche quando i crediti bassi sospendono Sweep. Solo il servizio ricevente conferma il credito. Viene eseguito un acquisto automatico alla volta. La disattivazione ferma le operazioni non inviate, non le transazioni già trasmesse.

Recupera un pagamento automatico

In Ricarica automatica, usa Controlla pagamento. Riprendi lo stesso pagamento valido, oppure chiudi un trasferimento Ethereum di cui è stato verificato il fallimento e sospendi la regola. I pagamenti in attesa o incerti restano bloccati per evitare invii duplicati. Una quotazione scaduta non dimostra il fallimento.

Commissioni e ripristino dell'accesso completo

L'1% predefinito usa il valore fiat originale della fattura saldata. I pagamenti crypto dei clienti non vengono suddivisi.

Le commissioni continuano ad accumularsi in un saldo negativo. Salda l'importo negativo e ripristina credito utilizzabile sopra la soglia di tolleranza del tuo account. Le variazioni di saldo compaiono normalmente entro 10–15 secondi con una connessione funzionante.

L'installazione degli aggiornamenti richiede credito verificato superiore a zero, anche con una tolleranza per le automazioni. Le ricariche non installano mai aggiornamenti automaticamente.

Le notifiche sospese non consumano tentativi. Le consegne conservate riprendono; resta valida la normale scadenza. Riconcilia gli eventi mancati tramite l'API delle fatture.

Se l'operatore disattiva le commissioni di elaborazione, non si applicano nuove commissioni né restrizioni legate al credito. Gli addebiti precedenti restano nella cronologia. Un'installazione non associata può configurare progetti e negozi, ma per emettere fatture serve una fatturazione verificata. Le fatture già emesse restano monitorate.

Report

Grafici dei ricavi e filtri restano sopra le schede: Progetti e negozi, Fatture, Wallet e Sweep. Cerca sotto. Progetti e negozi include le esportazioni CSV. Le date personalizzate coprono fino a 366 giorni. I wallet usano i saldi in cache.

Come funzionano i dati dei report
  • I ricavi mostrano i valori delle fatture saldate prima di commissioni e rimborsi, usando le date di regolamento. Non sono il saldo del wallet né il profitto.
  • Le conversioni usano i tassi attuali in cache, non tassi contabili storici. I totali nella valuta originale restano disponibili se mancano i tassi.
  • I grafici degli stati delle fatture usano le date di creazione. I dati di Richiede attenzione mostrano i problemi attualmente irrisolti.

Assistenti IA · MCP

Accesso facoltativo limitato al progetto su api.example.com/mcp. Leggi i pagamenti o approva la creazione di fatture. Configurazione e permessi MCP →

SDKs

Usa i nostri SDK ufficiali per creare fatture, controllare i pagamenti e verificare IPN e webhook.

SDK PHP

PHP 7.4+

Aggiungi pagamenti crypto alla tua app PHP con Composer.

composer require whollycrypto/php-sdk
GitHub ed esempi ↗

SDK Python

Python 3.10+

Collega la tua app o il tuo backend Python senza dipendenze di runtime.

python -m pip install whollycrypto
GitHub ed esempi ↗

SDK Node.js

Node.js 22+

JavaScript o TypeScript, un pacchetto npm con tipi integrati.

npm install whollycrypto
GitHub ed esempi ↗

Usa il dominio API della tua installazione e conserva le chiavi API lato server. Tutti gli SDK hanno licenza MIT.

Sweep

Sposta i fondi ricevuti verso la destinazione scelta. Gestisci regole e cronologia in Progetto → Sweep.

Invia monete native su 29 blockchain; Monero resta in sola visualizzazione. Token: ERC-20 verificati e SPL classici. Invii manuali e sweep automatici usano le stesse protezioni.

Invio manuale: prepara, verifica, approva

A BTC, EVM, SOL e TRX si aggiungono 18 adattatori nativi. Usa un provider in grado di trasmettere transazioni. ZEC supporta solo indirizzi trasparenti; ADA conserva gli output con token; DOT usa Asset Hub; HBAR richiede un relay. Le destinazioni che richiedono memo/tag/commenti in uscita necessitano di un wallet esterno.

  1. Apri Progetto → Wallet → asset → Invia. Scegli una voce della rubrica o inserisci una destinazione. Controlla l'indirizzo completo e la rete.
  2. Scegli un importo esatto o tutto il saldo disponibile, poi un livello di commissione. Per i token supportati, Usa gli ETH del progetto per il gas (o la moneta nativa della blockchain) può finanziare le commissioni mancanti dallo stesso progetto e dalla stessa blockchain.
  3. Clicca Prepara trasferimento. Verifica origini, destinazione, importo, commissioni massime ed eventuale assegnazione di gas. Approva e invia autorizza questo piano; la sola preparazione non invia nulla.

Finanziamento del gas, conferme e invio dei token continuano in background dopo l'approvazione. Segui Attività dei trasferimenti, anche dopo aver chiuso la finestra. La trasmissione non è una conferma.

ETH da mantenere nel wallet del progetto: 0 non aggiunge una riserva; non spende tutti i tuoi ETH. 0.005 conserva almeno 0.005 ETH per dopo, quindi servono fondi aggiuntivi per questa operazione. Le regole automatiche salvate restano invariate.

Configurazione sweep automatico
  1. Apri Configurazione sweep automatico → asset → Configura. Scegli un indirizzo wallet oppure una destinazione exchange supportata, non entrambi.
  2. Imposta il minimo dello sweep e Mantieni importo minimo. Esempio: attiva a 100 USDC, conserva 20 USDC, invia fino a 80 USDC. La riserva vale per l'intero progetto, non per ogni indirizzo.
  3. Per i token, verifica Usa gli ETH del progetto per il gas e inserisci un Limite giornaliero di finanziamento. Attiva Sweep automatico, poi Salva regola e conferma. Aprire Configura da solo non attiva nulla.

Il limite giornaliero pone un tetto al gas nativo assegnato a ogni regola token nelle ultime 24 ore mobili. €1 può essere un limite iniziale per un uso leggero, non un costo garantito né un addebito giornaliero. Anche le transazioni di finanziamento hanno commissioni. Commissione di rete massima % può limitare le commissioni complessive di finanziamento e trasferimento.

I controlli vengono eseguiti automaticamente. Solo gli indirizzi idonei che contengono token ricevono gas; gli indirizzi vuoti no. Un indirizzo con fondi insufficienti sotto il minimo dello sweep attende. Spiegazione dei limiti del gas →

Buone pratiche e trasferimenti sospesi
  • Esegui il backup dei wallet e prova un piccolo trasferimento. Invia i token prima di esaurire le monete native. Gli ETH altrove nel progetto devono prima raggiungere ogni indirizzo con token; il gas inutilizzato resta nei tuoi wallet.
  • Usa saldi aggiornati, provider funzionanti e fondi nativi sufficienti. Le regole automatiche richiedono un wallet attivo con backup e l'asset abilitato in un negozio abilitato. Un saldo basso di crediti di elaborazione può sospendere gli invii.
  • In Attività dei trasferimenti, controlla avanzamento, Finanziamento gas e link agli explorer. Se il risultato è incerto, aggiorna lo stesso trasferimento; non crearne uno sostitutivo. Riprendi solo dopo aver esaminato il motivo e i limiti.

Invio disattivato? Controlla whollycrypto transfers status. Controlla ogni regola attiva prima di whollycrypto transfers enable: vale per tutto il server e può eseguire subito le regole salvate. Fermare i passaggi futuri non può annullare le transazioni trasmesse.

Domini

Impostazioni → Sistema: scegli Gestione oppure Aggiungi dominio. Salva, verifica il DNS, pubblica. Gli host invariati saltano i controlli DNS/SSL.

Domini del negozio

Negozio → Generale: scegli host attivi per console commerciante, pagamenti e API. I link seguono la priorità negozio → negozio predefinito → sistema; i nomi ritirati passano al livello successivo. Configura separatamente gli host degli SDK. I tentativi firmati mantengono i link originali.

HTTPS è automatico. Attiva o disattiva Cloudflare dopo la configurazione; Let's Encrypt resta attivo.

Checklist Cloudflare
  • Usa Full (strict), non Flexible; non serve una chiave API.
  • Disattiva cache e verifiche interattive del browser o antibot per console, checkout e API.
  • Consenti /.well-known/acme-challenge/ sulla porta 80 senza reindirizzamenti o verifiche interattive per i rinnovi.

I controlli interrogano il DNS autoritativo e verificano l'origine: diretta o Cloudflare. I visitatori potrebbero avere vecchi DNS in cache.

Salvataggi ed eliminazioni nella console usano POST dalla 5.6.2; non serve un'eccezione «Not GET or POST». Login e CSRF restano attivi. Su api.*, consenti i metodi documentati dell'API pubblica.

Sicurezza dell'account

Configura la 2FA in Impostazioni → Account. Gli utenti limitati a un progetto usano La mia sicurezza nel piè di pagina. Conferma la password, scansiona il QR o la chiave TOTP e inserisci un codice a sei cifre.

Prova Verifyr Authenticator per iOS oppure Android, oppure un'altra app TOTP standard. Salva i codici di recupero monouso separatamente dalla password. Mantieni attiva la protezione HTTP Basic.

Recupero e aspetto

Sostituire i codici o disattivare la 2FA richiede la password e un codice dell'autenticatore o di recupero inutilizzato. Le altre sessioni vengono disconnesse. Mantieni sincronizzati gli orologi del telefono e del server; la 2FA non protegge un server compromesso.

L'icona del tema passa tra Chiaro → Attenuato → Scuro e ricorda la scelta in questo browser. I temi del checkout dei negozi sono separati.

Sicurezza del server

  • Usa chiavi SSH e limita SSH agli IP fidati. Mantieni una connessione di recupero collaudata.
  • Attiva il proxy Cloudflare dopo la configurazione, usando Full (strict).
  • In Impostazioni → Sistema → Restrizioni IP di origine, consenti IP o intervalli fidati per ogni nome host attivo merchant.* oppure api.* . L'IP attuale della console deve restare consentito.
  • Di norma lascia pay.* aperto: i clienti devono poter pagare da ovunque.
Cloudflare e recupero da un blocco d'accesso

Puoi aggiungere regole di accesso Cloudflare. Escludi le verifiche di rinnovo HTTPS; evita verifiche interattive di accesso su API e checkout. La sola modalità proxy non è una restrizione IP.

Accesso bloccato? Esegui whollycrypto access-reset --domain merchant.example.com via SSH. Solo quel nome host viene riaperto, entro cinque secondi; l'autenticazione dell'account resta attiva.

Ripristina HTTPS

whollycrypto ssl
whollycrypto ssl --fix

Il primo comando controlla i certificati attivi. --fix ripara i file di supporto TLS e rinnova i certificati mancanti o in scadenza. Nginx deve essere in esecuzione; mantieni aperte le porte 80/443.

Riemetti un certificato

Esegui whollycrypto ssl --domain merchant.example.com --reissue per forzare una sostituzione. Si applicano i limiti di emissione. Se Cloudflare blocca la verifica HTTP, usa temporaneamente la modalità solo DNS. Wallet, autenticazione e domini restano invariati.

Controlli quotidiani

  • In Richiede attenzione, seleziona le fatture o la pagina attuale per contrassegnarle come verificate, aggiungere una nota o ripetere la scansione. Le decisioni finanziarie restano individuali.
  • Monitora spazio su disco, ritardi degli scanner e provider di riserva indipendenti. Gli endpoint pubblici non garantiscono capacità.
  • Mantieni Linux aggiornato, limita SSH e assegna utenti e chiavi API solo ai progetti e ai permessi necessari.

Le decisioni richiedono una motivazione. I rimborsi richiedono un trasferimento separato e confermato; cambiare lo stato di una fattura non invia mai denaro.

Aggiornamenti e backup

Leggi le note di rilascio, poi usa Impostazioni → Sistema → Aggiornamenti software o la CLI. Gli aggiornamenti verificano le firme, creano backup e controllano lo stato. Il checkout si sospende durante l'installazione.

whollycrypto update --check
whollycrypto update

Gli aggiornamenti attendono fino a due minuti le attività in background; il checkout resta online. In caso di timeout, i timer vengono ripristinati.

Aggiornamento dalla 0.1.31 o precedenti

Vecchio updater bloccato? Esegui questo comando una volta. La chiave installata verifica lo strumento di supporto.

bash <(curl -fsSL https://releases.whollycrypto.com/update_wholly.sh)

Conserva backup collaudati fuori dal server di PostgreSQL, configurazione, chiavi di cifratura dei wallet ed esportazioni dei wallet. Gli archivi di recupero locali non sono cifrati.

Ripristina insieme i backup corrispondenti di database e configurazione. Non interrompere mai le migrazioni e non eseguire binari più vecchi con database più recenti. Le regole dei crediti restano valide.

Download di riserva da GitHub

Configurazione e aggiornamenti provano automaticamente il mirror GitHub ufficiale. I controlli di firma, checksum e credito restano obbligatori.

CLI del server

Comandi root via SSH.

whollycrypto status
whollycrypto doctor
whollycrypto backup
Tutti i comandi
ComandoScopo
whollycrypto versionVersione installata.
whollycrypto statusStato dell'app e del database.
whollycrypto logsUltime 80 righe del log dell'app.
whollycrypto restartRiavvia e controlla lo stato.
whollycrypto doctorControlli dell'installazione in sola lettura.
whollycrypto doctor --fixRipara i permessi gestiti e un collegamento CLI mancante.
whollycrypto htaccessReimposta le credenziali Basic Auth.
whollycrypto admin-resetReimposta la password di un amministratore.
whollycrypto 2fa-resetReimposta l'autenticatore di un account senza cambiarne la password.
whollycrypto transfers status
whollycrypto transfers enable
whollycrypto transfers disable
Controlla, attiva o sospende gli invii per tutti i progetti. L'attivazione riavvia l'app e può eseguire subito le regole salvate; serve conferma. Gli aggiornamenti conservano le sospensioni.
whollycrypto sslControlla HTTPS; aggiungi --fix per riparare.
whollycrypto access-reset --domain HOSTRimuove la restrizione IP di un nome host.
whollycrypto update --checkCerca aggiornamenti firmati.
whollycrypto updateEsegue il backup, aggiorna e riavvia.
whollycrypto backupArchivio accessibile solo a root in /root/whollycrypto/backups/releases/.
whollycrypto recoverRecupera una manutenzione interrotta o un aggiornamento con schema invariato. Non ripristina mai automaticamente un database.
whollycrypto resetScegli un progetto, tutti i progetti commerciali o solo la riparazione.
whollycrypto uninstall --check
whollycrypto uninstall
Mostra l'anteprima, poi rimuove il runtime nativo. Database, chiavi e backup restano.
whollycrypto welcomeURL della console e link.
whollycrypto --helpComandi; aggiungi --help dopo un comando per le sue opzioni.
Diagnostica i problemi di installazione

I controlli sono in sola lettura e terminano con un codice diverso da zero quando è necessario intervenire. --fix ripara solo i permessi gestiti e un collegamento CLI mancante. Non modifica mai la fatturazione, non elimina dati e non riavvia servizi.

Scegli l'ambito del ripristino
whollycrypto reset
# Preview without changing anything:
whollycrypto reset --scope business --check
whollycrypto reset --scope project --project YOUR_PROJECT_IDENTIFIER --check

Scegli un progetto, tutti i progetti commerciali o solo la riparazione. Il ripristino dei progetti elimina definitivamente progetti selezionati, negozi, record dei wallet e cronologia dei pagamenti. La sola riparazione controlla e corregge i permessi gestiti e il collegamento CLI.

Disattiva prima i progetti selezionati, risolvi i pagamenti e i trasferimenti aperti e sposta i saldi noti dei wallet. Account, domini, nodi, crediti, identità di fatturazione e modalità dell'installazione restano. I wallet di ricezione dell'operatore e i registri dei crediti ospitati sono protetti. Questo non riapre la procedura guidata di configurazione.

Un ripristino distruttivo richiede una conferma digitata e crea un backup di recupero verificato prima dell'eliminazione. Conserva anche un backup dei wallet fuori dal server: i vecchi indirizzi possono ancora ricevere fondi, ma i progetti eliminati smettono di monitorarli. I saldi in cache non dimostrano che i wallet siano vuoti.

Rimuovi un'installazione nativa
whollycrypto uninstall --check
whollycrypto uninstall

Ferma checkout, API e worker; rimuove i file di runtime e l'integrazione gestita del server dopo backup e conferma digitata. Pagamenti o trasferimenti in attesa bloccano la rimozione. I file vengono spostati nel backup di recupero invece di essere cancellati.

Database, configurazione, chiavi e backup restano. I pacchetti condivisi Nginx/PostgreSQL e i certificati TLS non vengono toccati. Il comando mostra un comando di recupero offline; non eseguire una nuova configurazione sui dati conservati.

I comandi di ripristino e rimozione sono per installazioni VPS native, non Docker o Umbrel. Per i container usa i comandi di backup e arresto della tua integrazione; conserva i volumi. Nessuno dei due comandi distruttivi accetta --yes.

Reimposta le credenziali Basic Auth
whollycrypto htaccess

Seleziona un utente, scegli nome e password e conferma. Questo reimposta la prima richiesta di accesso del browser, non il tuo account console. Gli altri utenti e le credenziali API restano invariati.

Reimposta la password di un amministratore
whollycrypto admin-reset

Scegli un amministratore tramite email e conferma la nuova password. Le sessioni e i blocchi di accesso all'account vengono rimossi; le restrizioni IP restano.

I ripristini normali mantengono la 2FA. Se hai perso sia l'autenticatore sia i codici di recupero, esegui esplicitamente whollycrypto admin-reset --email admin@example.com --reset-2fa. Configura di nuovo la 2FA dopo l'accesso.

Richiede il database, non l'app né la vecchia password. Altri account, wallet e permessi restano invariati; gli account disattivati restano disattivati.

Reimposta la 2FA

Hai perso sia l'autenticatore sia i codici di recupero? Scegli un account come root.

whollycrypto 2fa-reset
# Or select the account directly:
whollycrypto 2fa-reset --email user@example.com

Rimuove sessioni, autenticatore e codici di recupero. Accedi con la password esistente e configura di nuovo la 2FA. Permessi, wallet e Basic Auth restano invariati; gli account disattivati restano disattivati.

Richiede il database, non l'app né i crediti. Senza interazione: --email e --yes.

Password generate e automazione

Invio genera una password in /root/whollycrypto/config/credential-resets/: privato, non cifrato, utilizzabile dopo il completamento. Le password inserite manualmente non vengono salvate.

whollycrypto htaccess --user admin --new-user operator
whollycrypto admin-reset --email admin@example.com

Senza terminale, specifica l'account esistente più --generate oppure --password-file /root/private-password.txt, e --yes. I file delle password devono appartenere a root, con permessi 600. Non inserire mai password nei comandi o nelle variabili d'ambiente.

--yes salta solo la conferma. Completa prima il recupero di un aggiornamento interrotto; modifiche simultanee agli account fermano i ripristini.