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
| Processor | Descrizione |
|---|---|
manual | Pagamento manuale (es. bonifico bancario). Nessuna elaborazione automatica. |
stripe | Carta di credito, addebito SEPA o terminale POS tramite Stripe. |
paypal | Wallet PayPal. |
satispay | Gateway Satispay. |
sumup | Terminale POS SumUp. |
Tipi di pagamento per processor
Stripe
| Tipo | Valore | Descrizione |
|---|---|---|
| Carta di credito | card | Pagamento online con carta |
| Addebito SEPA | sepa_debit | Addebito diretto su conto bancario europeo |
| POS fisico | card_present | Terminale fisico (es. WisePOS E) |
PayPal
| Tipo | Valore | Descrizione |
|---|---|---|
| Wallet | wallet | Pagamento tramite account PayPal |
SumUp
| Tipo | Valore | Descrizione |
|---|---|---|
| POS fisico | pos | Terminale fisico SumUp |
Manuale e Satispay
Nessun sotto-tipo: un solo metodo per processor.
Campi principali
| Campo | Tipo | Descrizione |
|---|---|---|
id | Int | Identificatore univoco |
label | String | Nome leggibile del metodo (es. "Carta di credito") |
processor | String | Processor associato (vedi tabella sopra) |
has_oneoff_support | Boolean | Accetta donazioni oneoff |
has_subscription_support | Boolean | Accetta donazioni ricorrenti |
include_in_certificate | Boolean | I pagamenti tramite questo metodo vanno nel certificato fiscale annuale |
channels | [Int] | ID dei canali su cui il metodo è disponibile |
description | String | Testo descrittivo (solo metodi manuali) |
instructions | String | Istruzioni 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
}
}
}