Skip to main content

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
    }
  }
}

Fonte: https://dev.riseact.org/docs/guides/payment-methods. Copia automatica da dev.riseact.org: non modificare qui, le modifiche vanno fatte sulla documentazione Docusaurus.