Hopp til hovedinnhold

Gave-endepunkter

Giving-modulen administrerer donasjoner, fond, betalingsbehandling, abonnementer og relaterte finansielle operasjoner. Den støtter flere betalingsgatewayer (Stripe, PayPal), håndterer engangs- og gjentakende donasjoner, sporer donasjonsbatcher, og tilbyr webhook-behandling for asynkrone betalingshendelser.

Basissti: /giving

Donasjoner

Basissti: /giving/donations

MetodeStiAuthTillatelseBeskrivelse
GET/JWTDonations.View eller egen personIdList alle donasjoner. Filtrer med ?batchId= eller ?personId=
GET/:idJWTDonations.ViewHent en donasjon etter ID
GET/myJWTHent gjeldende brukers donasjoner
GET/summaryJWTDonations.ViewSummaryHent donasjonssammendrag. Filtrer med ?startDate=&endDate=&type=. Bruk type=person for oppdeling per person
GET/testEmailPublicSend en test-e-post (utvikling/feilsøking)
POST/JWTDonations.EditOpprett eller oppdater donasjoner (batch)
DELETE/:idJWTDonations.EditSlett en donasjon

Eksempel: List donasjoner etter batch

GET /giving/donations?batchId=abc-123
Authorization: Bearer <token>
[
{
"id": "don-456",
"batchId": "abc-123",
"personId": "per-789",
"donationDate": "2025-03-15T00:00:00.000Z",
"amount": 100.00,
"method": "card"
}
]

Eksempel: Hent donasjonssammendrag

GET /giving/donations/summary?startDate=2025-01-01&endDate=2025-12-31
Authorization: Bearer <token>
[
{
"week": "2025-01-06",
"fund": "General Fund",
"totalAmount": 2500.00,
"count": 15
}
]

Donasjonsbatcher

Basissti: /giving/donationbatches

Utvider GenericCrudController med CRUD-rutene: getById, getAll, post, delete. Slette-operasjonen fjerner også alle donasjoner innenfor batchen.

MetodeStiAuthTillatelseBeskrivelse
GET/JWTDonations.ViewSummaryList alle donasjonsbatcher
GET/:idJWTDonations.ViewSummaryHent en donasjonsbatch etter ID
POST/JWTDonations.EditOpprett eller oppdater donasjonsbatcher
DELETE/:idJWTDonations.EditSlett en batch og alle dens donasjoner

Gi (Donate)

Basissti: /giving/donate

Håndterer den offentlige donasjonsflyten, inkludert belastninger, abonnementer, webhooks og avgiftsberegninger. Ingen grunnleggende CRUD-ruter er aktivert; alle endepunkter er egendefinerte.

MetodeStiAuthTillatelseBeskrivelse
GET/gateways/:churchIdPublicHent tilgjengelige betalingsgatewayer for en kirke (kun offentlige nøkler)
POST/client-tokenJWTGenerer et klienttoken for gateway-initialisering
POST/create-orderJWTOpprett en betalingsordre (PayPal-stil kasse)
POST/chargeJWTBehandle en engangs-donasjonsbelastning
POST/subscribeJWTOpprett et gjentakende donasjonsabonnement
POST/logPublicLogg en donasjon. Body: { donation, fundData }
POST/webhook/:providerPublicMotta betalings-webhook-hendelser (Stripe, PayPal). Krever ?churchId=
POST/replay-stripe-eventsJWTDonations.EditSpill av Stripe-hendelser på nytt for et datointervall. Body: { startDate, endDate, dryRun }
POST/feePublicBeregn transaksjonsavgifter. Body: { type, provider, gatewayId, amount, currency }. Krever ?churchId=
POST/captcha-verifyPublicVerifiser reCAPTCHA-token. Body: { token }

Eksempel: Behandle en donasjonsbelastning

POST /giving/donate/charge
Authorization: Bearer <token>

{
"provider": "stripe",
"amount": 50.00,
"currency": "usd",
"person": { "id": "per-123", "email": "donor@example.com" },
"funds": [{ "id": "fund-001", "name": "General Fund", "amount": 50.00 }],
"church": { "name": "First Church", "subDomain": "firstchurch" }
}
{
"id": "ch_abc123",
"status": "succeeded",
"provider": "stripe"
}

Eksempel: Opprett et gjentakende abonnement

POST /giving/donate/subscribe
Authorization: Bearer <token>

{
"provider": "stripe",
"amount": 100.00,
"customerId": "cus_abc123",
"interval": { "interval_count": 1, "interval": "month" },
"billing_cycle_anchor": 1710460800,
"person": { "id": "per-123", "email": "donor@example.com" },
"funds": [{ "id": "fund-001", "name": "General Fund", "amount": 100.00 }],
"church": { "name": "First Church", "subDomain": "firstchurch" }
}
{
"id": "sub_xyz789",
"status": "active",
"provider": "stripe"
}

Fond

Basissti: /giving/funds

Utvider GenericCrudController med CRUD-rutene: getById, getAll, post, delete. view-tillatelsen er null (ingen tillatelse kreves for å se fond).

MetodeStiAuthTillatelseBeskrivelse
GET/JWTList alle fond
GET/:idJWTHent et fond etter ID
GET/churchId/:churchIdPublicHent alle fond for en bestemt kirke (offentlig)
GET/public/:churchId/:fundId/total?startDate=&endDate=PublicHent et fonds donasjonssum: { fundId, totalAmount, donationCount }. Driver nettstedbyggerens campaignProgress-element
POST/JWTDonations.EditOpprett eller oppdater fond
DELETE/:idJWTDonations.EditSlett et fond

Fond-donasjoner

Basissti: /giving/funddonations

Sporer hvordan individuelle donasjoner fordeles på tvers av fond. Ingen grunnleggende CRUD-ruter er aktivert; alle endepunkter er egendefinerte.

MetodeStiAuthTillatelseBeskrivelse
GET/JWTDonations.ViewList fond-donasjoner. Filtrer med ?donationId=, ?personId=, ?fundId=, eller ?fundName=. Legg eventuelt til ?startDate=&endDate= for datofiltrering
GET/:idJWTDonations.ViewHent en fond-donasjon etter ID
GET/myJWTHent gjeldende brukers fond-donasjoner
POST/JWTDonations.EditOpprett eller oppdater fond-donasjoner (batch)
DELETE/:idJWTDonations.EditSlett en fond-donasjon

Gatewayer

Basissti: /giving/gateways

Administrerer konfigurasjoner for betalingsgatewayer (Stripe, PayPal osv.). Ingen grunnleggende CRUD-ruter er aktivert; alle endepunkter er egendefinerte. Gateway-hemmeligheter er kryptert ved lagring.

MetodeStiAuthTillatelseBeskrivelse
GET/JWTList alle gatewayer for kirken
GET/:idJWTSettings.EditHent en gateway etter ID
GET/churchId/:churchIdPublicHent gatewayer for en kirke (kun offentlige nøkler)
GET/configured/:churchIdPublicSjekk om en kirke har en konfigurert betalingsgateway
POST/JWTSettings.EditOpprett eller oppdater gatewayer (krypterer nøkler, tilrettelegger webhooks og produkter)
PATCH/:idJWTSettings.EditDelvis oppdater en gateway
DELETE/:idJWTSettings.EditSlett en gateway (fjerner også dens webhooks)

Eksempel: Sjekk gateway-konfigurasjon

GET /giving/gateways/configured/church-123
{
"configured": true
}

Kunder

Basissti: /giving/customers

Utvider GenericCrudController med CRUD-rutene: getAll, delete. Kobler personer til deres betalingsgateway-kundeoppføringer.

MetodeStiAuthTillatelseBeskrivelse
GET/JWTDonations.ViewSummaryList alle kunder
GET/:idJWTDonations.ViewSummary eller egen oppføringHent en kunde etter ID
GET/:id/subscriptionsJWTDonations.ViewSummary eller egen oppføringHent gateway-abonnementer for en kunde
DELETE/:idJWTDonations.EditSlett en kunde

Abonnementer

Basissti: /giving/subscriptions

Administrerer gjentakende donasjonsabonnementer. Ingen grunnleggende CRUD-ruter er aktivert; alle endepunkter er egendefinerte.

MetodeStiAuthTillatelseBeskrivelse
GET/JWTDonations.ViewSummaryList alle abonnementer
GET/:idJWTDonations.ViewSummaryHent et abonnement etter ID
POST/JWTDonations.Edit eller eget abonnementOppdater abonnementer med betalingsgatewayen
DELETE/:idJWTDonations.Edit eller eget abonnementKanseller et abonnement og fjern fra databasen. Body: { provider, reason }

Abonnementsfond

Basissti: /giving/subscriptionfunds

Sporer fondsfordelinger for gjentakende abonnementer. Ingen grunnleggende CRUD-ruter er aktivert; alle endepunkter er egendefinerte.

MetodeStiAuthTillatelseBeskrivelse
GET/JWTDonations.View eller eget abonnementList abonnementsfond. Filtrer med ?subscriptionId=
GET/:idJWTDonations.ViewSummaryHent et abonnementsfond etter ID
DELETE/:idJWTDonations.EditSlett et abonnementsfond
DELETE/subscription/:idJWTDonations.Edit eller eget abonnementSlett alle fond for et abonnement

Betalingsmetoder

Basissti: /giving/paymentmethods

Administrerer lagrede betalingsmetoder (kort, bankkontoer) via betalingsgateway-APIer. Ingen grunnleggende CRUD-ruter er aktivert; alle endepunkter er egendefinerte.

MetodeStiAuthTillatelseBeskrivelse
GET/personid/:idJWTDonations.View eller egen personIdHent alle lagrede betalingsmetoder for en person (kort, bankkontoer)
POST/addcardJWTLegg til en kortbetalingsmetode. Body: { id, personId, customerId, email, name, churchId, provider }
POST/updatecardJWTDonations.Edit eller egen personIdOppdater kortdetaljer. Body: { personId, paymentMethodId, cardData, provider }
POST/ach-setup-intentJWTDonations.Edit eller egen personIdOpprett en Stripe ACH SetupIntent for banktilkobling. Body: { personId, customerId, email, name, churchId }
POST/ach-setup-intent-anonPublicOpprett en anonym ACH SetupIntent for gjestedonasjoner. Body: { email, name, churchId, gatewayId }
POST/addbankaccountJWTDonations.Edit eller egen personIdLegg til en bankkonto via token (avviklet; bruk ach-setup-intent). Body: { id, personId, customerId, email, name }
POST/updatebankJWTDonations.Edit eller egen personIdOppdater bankkontodetaljer. Body: { paymentMethodId, personId, bankData, customerId }
POST/verifybankJWTDonations.Edit eller egen kundeVerifiser en bankkonto med mikroinnskudd. Body: { paymentMethodId, customerId, amountData }
DELETE/:id/:customeridJWTDonations.Edit eller egen kundeSlett en betalingsmetode (kort eller bankkonto)

Hendelseslogg

Basissti: /giving/eventLog

Utvider GenericCrudController med CRUD-rutene: getById, getAll, post, delete. Sporer betalingsgateway-webhook-hendelser for revisjon og deduplisering.

MetodeStiAuthTillatelseBeskrivelse
GET/JWTDonations.ViewSummaryList alle hendelseslogger
GET/:idJWTDonations.ViewSummaryHent en hendelseslogg etter ID
GET/type/:typeJWTDonations.ViewSummaryHent hendelseslogger filtrert etter hendelsestype
POST/JWTDonations.EditOpprett eller oppdater hendelseslogger
DELETE/:idJWTDonations.EditSlett en hendelseslogg

Relaterte sider