Passa al contenuto principale

Metodi di pagamento

I metodi di pagamento (PaymentMethod) definiscono come un'organizzazione può ricevere denaro. Ogni metodo è legato a un processor (il gateway di pagamento) e può essere abilitato su specifici canali di pubblicazione.

Processor disponibili

ProcessorDescrizione
manualPagamento manuale (es. bonifico bancario). Nessuna elaborazione automatica.
stripeCarta di credito, addebito SEPA o terminale POS tramite Stripe.
paypalWallet PayPal.
satispayGateway Satispay.
sumupTerminale POS SumUp.

Tipi di pagamento per processor

Stripe

TipoValoreDescrizione
Carta di creditocardPagamento online con carta
Addebito SEPAsepa_debitAddebito diretto su conto bancario europeo
POS fisicocard_presentTerminale fisico (es. WisePOS E)

PayPal

TipoValoreDescrizione
WalletwalletPagamento tramite account PayPal

SumUp

TipoValoreDescrizione
POS fisicoposTerminale fisico SumUp

Manuale e Satispay

Nessun sotto-tipo: un solo metodo per processor.

Campi principali

CampoTipoDescrizione
idIntIdentificatore univoco
labelStringNome leggibile del metodo (es. "Carta di credito")
processorStringProcessor associato (vedi tabella sopra)
has_oneoff_supportBooleanAccetta donazioni oneoff
has_subscription_supportBooleanAccetta donazioni ricorrenti
include_in_certificateBooleanI pagamenti tramite questo metodo vanno nel certificato fiscale annuale
channels[Int]ID dei canali su cui il metodo è disponibile
descriptionStringTesto descrittivo (solo metodi manuali)
instructionsStringIstruzioni per il donatore (solo metodi manuali)

Canali

Il campo channels è un array di ID canale. Un metodo di pagamento viene mostrato nel checkout solo se il canale del checkout è incluso in questo array. Se channels è vuoto, il metodo non è disponibile su nessun canale.

Query GraphQL

Lista tutti i metodi di pagamento:

query {
paymentMethods {
id
label
processor
hasOneoffSupport
hasSubscriptionSupport
includeInCertificate
channels
}
}

Lista solo i metodi manuali (utile per creare pagamenti manualmente):

query {
manualPaymentMethods {
id
label
description
instructions
}
}

Singolo metodo manuale:

query {
manualPaymentMethod(id: 5) {
id
label
description
instructions
}
}

Usare i metodi di pagamento nel checkout

Quando si crea un checkout via API, si può specificare il metodo di pagamento desiderato. È importante verificare che il metodo supporti il tipo di donazione (oneoff o ricorrente) e che sia attivo sul canale corretto.

mutation {
checkoutCreate(data: {
campaignId: 29,
donationAmount: 50,
donationFrequency: 0,
paymentMethodId: 3
}) {
checkout {
id
state
}
userErrors {
field
message
}
}
}

Creare un pagamento manuale

Per registrare manualmente un pagamento (es. dopo aver ricevuto un bonifico), si usa la mutation paymentCreate specificando un metodo di tipo manual:

mutation {
paymentCreate(data: {
donationId: 229,
paymentMethodId: 1,
amount: "50.00",
paymentDate: "2024-01-15"
}) {
payment {
id
state
amount
}
userErrors {
field
message
}
}
}