Lumipat sa pangunahing nilalaman

Mga Endpoint ng Giving

Pinapamahalaan ng Giving module ang mga donasyon, pondo, pagpoproseso ng bayad, subscription, at mga kaugnay na operasyong pinansyal. Sinusuportahan nito ang maraming payment gateway (Stripe, PayPal), hina-handle ang isang beses at umuulit na mga donasyon, sinusubaybayan ang mga batch ng donasyon, at nagbibigay ng pagpoproseso ng webhook para sa mga asynchronous na kaganapan ng bayad.

Base path: /giving

Mga Donasyon

Base path: /giving/donations

MethodPathAuthPermissionPaglalarawan
GET/JWTDonations.View o sariling personIdIlista ang lahat ng donasyon. I-filter ayon sa ?batchId= o ?personId=
GET/:idJWTDonations.ViewKunin ang isang donasyon ayon sa ID
GET/myJWTKunin ang mga donasyon ng kasalukuyang gumagamit
GET/summaryJWTDonations.ViewSummaryKunin ang buod ng donasyon. I-filter ayon sa ?startDate=&endDate=&type=. Gamitin ang type=person para sa detalye bawat tao
GET/testEmailPampublikoMagpadala ng test email (development/debugging)
POST/JWTDonations.EditLumikha o mag-update ng mga donasyon (batch)
DELETE/:idJWTDonations.EditBurahin ang isang donasyon

Halimbawa: Ilista ang mga Donasyon ayon sa 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"
}
]

Halimbawa: Kunin ang Buod ng Donasyon

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

Mga Batch ng Donasyon

Base path: /giving/donationbatches

Nag-eextend ng GenericCrudController na may mga CRUD ruta: getById, getAll, post, delete. Ang operasyon ng pagbura ay nag-aalis din ng lahat ng donasyon sa loob ng batch.

MethodPathAuthPermissionPaglalarawan
GET/JWTDonations.ViewSummaryIlista ang lahat ng batch ng donasyon
GET/:idJWTDonations.ViewSummaryKunin ang isang batch ng donasyon ayon sa ID
POST/JWTDonations.EditLumikha o mag-update ng mga batch ng donasyon
DELETE/:idJWTDonations.EditBurahin ang isang batch at lahat ng mga donasyon nito

Mag-donate

Base path: /giving/donate

Hina-handle ang pampublikong daloy ng donasyon kasama ang mga singil, subscription, webhook, at kalkulasyon ng bayad. Walang naka-enable na base CRUD ruta; lahat ng endpoint ay custom.

MethodPathAuthPermissionPaglalarawan
GET/gateways/:churchIdPampublikoKunin ang mga magagamit na payment gateway para sa isang simbahan (mga pampublikong key lamang)
POST/client-tokenJWTBumuo ng client token para sa pagsisimula ng gateway
POST/create-orderJWTLumikha ng payment order (PayPal-style na checkout)
POST/chargeJWTIproseso ang isang beses na singil ng donasyon
POST/subscribeJWTLumikha ng umuulit na subscription ng donasyon
POST/logPampublikoMag-log ng donasyon. Body: { donation, fundData }
POST/webhook/:providerPampublikoTumanggap ng mga kaganapan ng payment webhook (Stripe, PayPal). Nangangailangan ng ?churchId=
POST/replay-stripe-eventsJWTDonations.EditMuling i-play ang mga Stripe event para sa isang saklaw ng petsa. Body: { startDate, endDate, dryRun }
POST/feePampublikoKalkulahin ang mga bayad sa transaksyon. Body: { type, provider, gatewayId, amount, currency }. Nangangailangan ng ?churchId=
POST/captcha-verifyPampublikoI-verify ang reCAPTCHA token. Body: { token }

Halimbawa: Iproseso ang isang Singil ng Donasyon

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

Halimbawa: Lumikha ng Umuulit na Subscription

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

Mga Pondo

Base path: /giving/funds

Nag-eextend ng GenericCrudController na may mga CRUD ruta: getById, getAll, post, delete. Ang pahintulot para sa view ay null (walang kinakailangang pahintulot para sa pagtingin ng mga pondo).

MethodPathAuthPermissionPaglalarawan
GET/JWTIlista ang lahat ng pondo
GET/:idJWTKunin ang isang pondo ayon sa ID
GET/churchId/:churchIdPampublikoKunin ang lahat ng pondo para sa isang partikular na simbahan (pampubliko)
POST/JWTDonations.EditLumikha o mag-update ng mga pondo
DELETE/:idJWTDonations.EditBurahin ang isang pondo

Mga Donasyon sa Pondo

Base path: /giving/funddonations

Sinusubaybayan kung paano inilalaan ang mga indibidwal na donasyon sa mga pondo. Walang naka-enable na base CRUD ruta; lahat ng endpoint ay custom.

MethodPathAuthPermissionPaglalarawan
GET/JWTDonations.ViewIlista ang mga donasyon sa pondo. I-filter ayon sa ?donationId=, ?personId=, ?fundId=, o ?fundName=. Opsyonal na magdagdag ng ?startDate=&endDate= para sa pag-filter ng petsa
GET/:idJWTDonations.ViewKunin ang isang donasyon sa pondo ayon sa ID
GET/myJWTKunin ang mga donasyon sa pondo ng kasalukuyang gumagamit
POST/JWTDonations.EditLumikha o mag-update ng mga donasyon sa pondo (batch)
DELETE/:idJWTDonations.EditBurahin ang isang donasyon sa pondo

Mga Gateway

Base path: /giving/gateways

Pinapamahalaan ang mga configuration ng payment gateway (Stripe, PayPal, atbp.). Walang naka-enable na base CRUD ruta; lahat ng endpoint ay custom. Ang mga lihim ng gateway ay naka-encrypt sa pahinga.

MethodPathAuthPermissionPaglalarawan
GET/JWTIlista ang lahat ng gateway para sa simbahan
GET/:idJWTSettings.EditKunin ang isang gateway ayon sa ID
GET/churchId/:churchIdPampublikoKunin ang mga gateway para sa isang simbahan (mga pampublikong key lamang)
GET/configured/:churchIdPampublikoSuriin kung ang isang simbahan ay may naka-configure na payment gateway
POST/JWTSettings.EditLumikha o mag-update ng mga gateway (nag-e-encrypt ng mga key, nagpo-provision ng mga webhook at produkto)
PATCH/:idJWTSettings.EditBahagyang i-update ang isang gateway
DELETE/:idJWTSettings.EditBurahin ang isang gateway (inaalis din ang mga webhook nito)

Halimbawa: Suriin ang Configuration ng Gateway

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

Mga Customer

Base path: /giving/customers

Nag-eextend ng GenericCrudController na may mga CRUD ruta: getAll, delete. Nag-uugnay ng mga tao sa kanilang mga talaan ng customer sa payment gateway.

MethodPathAuthPermissionPaglalarawan
GET/JWTDonations.ViewSummaryIlista ang lahat ng customer
GET/:idJWTDonations.ViewSummary o sariling talaanKunin ang isang customer ayon sa ID
GET/:id/subscriptionsJWTDonations.ViewSummary o sariling talaanKunin ang mga subscription ng gateway para sa isang customer
DELETE/:idJWTDonations.EditBurahin ang isang customer

Mga Subscription

Base path: /giving/subscriptions

Pinapamahalaan ang mga umuulit na subscription ng donasyon. Walang naka-enable na base CRUD ruta; lahat ng endpoint ay custom.

MethodPathAuthPermissionPaglalarawan
GET/JWTDonations.ViewSummaryIlista ang lahat ng subscription
GET/:idJWTDonations.ViewSummaryKunin ang isang subscription ayon sa ID
POST/JWTDonations.Edit o sariling subscriptionI-update ang mga subscription sa payment gateway
DELETE/:idJWTDonations.Edit o sariling subscriptionKanselahin ang isang subscription at alisin mula sa database. Body: { provider, reason }

Mga Pondo ng Subscription

Base path: /giving/subscriptionfunds

Sinusubaybayan ang mga paglalaan ng pondo para sa mga umuulit na subscription. Walang naka-enable na base CRUD ruta; lahat ng endpoint ay custom.

MethodPathAuthPermissionPaglalarawan
GET/JWTDonations.View o sariling subscriptionIlista ang mga pondo ng subscription. I-filter ayon sa ?subscriptionId=
GET/:idJWTDonations.ViewSummaryKunin ang isang pondo ng subscription ayon sa ID
DELETE/:idJWTDonations.EditBurahin ang isang pondo ng subscription
DELETE/subscription/:idJWTDonations.Edit o sariling subscriptionBurahin ang lahat ng pondo para sa isang subscription

Mga Paraan ng Pagbabayad

Base path: /giving/paymentmethods

Pinapamahalaan ang mga naka-imbak na paraan ng pagbabayad (mga card, bank account) sa pamamagitan ng mga API ng payment gateway. Walang naka-enable na base CRUD ruta; lahat ng endpoint ay custom.

MethodPathAuthPermissionPaglalarawan
GET/personid/:idJWTDonations.View o sariling personIdKunin ang lahat ng naka-imbak na paraan ng pagbabayad para sa isang tao (mga card, bank account)
POST/addcardJWTMag-attach ng paraan ng pagbabayad na card. Body: { id, personId, customerId, email, name, churchId, provider }
POST/updatecardJWTDonations.Edit o sariling personIdI-update ang mga detalye ng card. Body: { personId, paymentMethodId, cardData, provider }
POST/ach-setup-intentJWTDonations.Edit o sariling personIdLumikha ng Stripe ACH SetupIntent para sa pag-link ng bank account. Body: { personId, customerId, email, name, churchId }
POST/ach-setup-intent-anonPampublikoLumikha ng anonymous na ACH SetupIntent para sa mga donasyong panauhin. Body: { email, name, churchId, gatewayId }
POST/addbankaccountJWTDonations.Edit o sariling personIdMagdagdag ng bank account sa pamamagitan ng token (deprecated; gamitin ang ach-setup-intent). Body: { id, personId, customerId, email, name }
POST/updatebankJWTDonations.Edit o sariling personIdI-update ang mga detalye ng bank account. Body: { paymentMethodId, personId, bankData, customerId }
POST/verifybankJWTDonations.Edit o sariling customerI-verify ang isang bank account gamit ang mga micro-deposit. Body: { paymentMethodId, customerId, amountData }
DELETE/:id/:customeridJWTDonations.Edit o sariling customerBurahin ang isang paraan ng pagbabayad (card o bank account)

Log ng Kaganapan

Base path: /giving/eventLog

Nag-eextend ng GenericCrudController na may mga CRUD ruta: getById, getAll, post, delete. Sinusubaybayan ang mga kaganapan ng webhook ng payment gateway para sa pag-audit at deduplication.

MethodPathAuthPermissionPaglalarawan
GET/JWTDonations.ViewSummaryIlista ang lahat ng log ng kaganapan
GET/:idJWTDonations.ViewSummaryKunin ang isang log ng kaganapan ayon sa ID
GET/type/:typeJWTDonations.ViewSummaryKunin ang mga log ng kaganapan na na-filter ayon sa uri ng kaganapan
POST/JWTDonations.EditLumikha o mag-update ng mga log ng kaganapan
DELETE/:idJWTDonations.EditBurahin ang isang log ng kaganapan

Mga Kaugnay na Pahina