Lumipat sa pangunahing nilalaman

Giving Endpoints

Pinamamahalaan ng Giving module ang mga donasyon, fund, pagproseso ng pagbabayad, subscription, at mga kaugnay na operasyong pinansyal. Sinusuportahan nito ang maraming payment gateway (Stripe, PayPal), hinahawakan ang mga one-time at recurring na donasyon, sinusubaybayan ang mga donation batch, at nagbibigay ng webhook processing para sa mga asynchronous na payment event.

Base path: /giving

Donations​

Base path: /giving/donations

MethodPathAuthPermissionDescription
GET/JWTDonations.View o sariling personIdIlista ang lahat ng donasyon. I-filter sa pamamagitan ng ?batchId= o ?personId=
GET/:idJWTDonations.ViewKunin ang isang donasyon ayon sa ID
GET/myJWT—Kunin ang mga donasyon ng kasalukuyang user
GET/summaryJWTDonations.ViewSummaryKunin ang buod ng donasyon. I-filter sa pamamagitan ng ?startDate=&endDate=&type=. Gamitin ang type=person para sa breakdown kada tao
GET/testEmailPublic—Magpadala ng test email (development/debugging)
POST/JWTDonations.EditLumikha o mag-update ng mga donasyon (batch)
DELETE/:idJWTDonations.EditTanggalin 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
}
]

Donation Batches​

Base path: /giving/donationbatches

Nag-e-extend ng GenericCrudController na may mga CRUD route: getById, getAll, post, delete. Inaalis din ng delete operation ang lahat ng donasyon sa loob ng batch.

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

Base path: /giving/donate

Hinahawakan ang public-facing na daloy ng donasyon kabilang ang mga charge, subscription, webhook, at pagkalkula ng fee. Walang naka-enable na base CRUD route; custom ang lahat ng endpoint.

MethodPathAuthPermissionDescription
GET/gateways/:churchIdPublic—Kunin ang mga available na payment gateway para sa isang simbahan (public key lamang)
POST/client-tokenJWT—Bumuo ng client token para sa pag-initialize ng gateway
POST/create-orderJWT—Lumikha ng payment order (PayPal-style na checkout)
POST/chargeJWT—Iproseso ang isang one-time na donation charge
POST/subscribeJWT—Lumikha ng recurring donation subscription
POST/logPublic—I-log ang isang donasyon. Body: { donation, fundData }
POST/webhook/:providerPublic—Tumanggap ng mga payment webhook event (Stripe, PayPal). Kailangan ang ?churchId=
POST/replay-stripe-eventsJWTDonations.EditI-replay ang mga Stripe event para sa isang saklaw ng petsa. Body: { startDate, endDate, dryRun }
POST/feePublic—Kalkulahin ang mga transaction fee. Body: { type, provider, gatewayId, amount, currency }. Kailangan ang ?churchId=
POST/captcha-verifyPublic—I-verify ang reCAPTCHA token. Body: { token }

Halimbawa: Iproseso ang isang Donation Charge​

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

Funds​

Base path: /giving/funds

Nag-e-extend ng GenericCrudController na may mga CRUD route: getById, getAll, post, delete. null ang view permission (walang kailangang permission para tingnan ang mga fund).

MethodPathAuthPermissionDescription
GET/JWT—Ilista ang lahat ng fund
GET/:idJWT—Kunin ang isang fund ayon sa ID
GET/churchId/:churchIdPublic—Kunin ang lahat ng fund para sa isang partikular na simbahan (public)
GET/public/:churchId/:fundId/total?startDate=&endDate=Public—Kunin ang kabuuang donasyon ng isang fund: { fundId, totalAmount, donationCount }. Nagpapatakbo sa campaignProgress element ng website builder
POST/JWTDonations.EditLumikha o mag-update ng mga fund
DELETE/:idJWTDonations.EditTanggalin ang isang fund

Fund Donations​

Base path: /giving/funddonations

Sinusubaybayan kung paano naaalokado ang mga indibidwal na donasyon sa mga fund. Walang naka-enable na base CRUD route; custom ang lahat ng endpoint.

MethodPathAuthPermissionDescription
GET/JWTDonations.ViewIlista ang mga fund donation. I-filter sa pamamagitan ng ?donationId=, ?personId=, ?fundId=, o ?fundName=. Opsyonal na idagdag ang ?startDate=&endDate= para sa pag-filter ayon sa petsa
GET/:idJWTDonations.ViewKunin ang isang fund donation ayon sa ID
GET/myJWT—Kunin ang mga fund donation ng kasalukuyang user
POST/JWTDonations.EditLumikha o mag-update ng mga fund donation (batch)
DELETE/:idJWTDonations.EditTanggalin ang isang fund donation

Gateways​

Base path: /giving/gateways

Pinamamahalaan ang mga konpigurasyon ng payment gateway (Stripe, PayPal, atbp.). Walang naka-enable na base CRUD route; custom ang lahat ng endpoint. Naka-encrypt at nakaimbak nang secure ang mga gateway secret.

MethodPathAuthPermissionDescription
GET/JWT—Ilista ang lahat ng gateway para sa simbahan
GET/:idJWTSettings.EditKunin ang isang gateway ayon sa ID
GET/churchId/:churchIdPublic—Kunin ang mga gateway para sa isang simbahan (public key lamang)
GET/configured/:churchIdPublic—Suriin kung may naka-configure nang payment gateway ang isang simbahan
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.EditTanggalin ang isang gateway (inaalis din ang mga webhook nito)

Halimbawa: Suriin ang Konpigurasyon ng Gateway​

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

Customers​

Base path: /giving/customers

Nag-e-extend ng GenericCrudController na may mga CRUD route: getAll, delete. Nag-uugnay ng mga tao sa kanilang mga customer record sa payment gateway.

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

Subscriptions​

Base path: /giving/subscriptions

Pinamamahalaan ang mga recurring donation subscription. Walang naka-enable na base CRUD route; custom ang lahat ng endpoint.

MethodPathAuthPermissionDescription
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 ito sa database. Body: { provider, reason }

Subscription Funds​

Base path: /giving/subscriptionfunds

Sinusubaybayan ang mga alokasyon ng fund para sa mga recurring subscription. Walang naka-enable na base CRUD route; custom ang lahat ng endpoint.

MethodPathAuthPermissionDescription
GET/JWTDonations.View o sariling subscriptionIlista ang mga subscription fund. I-filter sa pamamagitan ng ?subscriptionId=
GET/:idJWTDonations.ViewSummaryKunin ang isang subscription fund ayon sa ID
DELETE/:idJWTDonations.EditTanggalin ang isang subscription fund
DELETE/subscription/:idJWTDonations.Edit o sariling subscriptionTanggalin ang lahat ng fund para sa isang subscription

Payment Methods​

Base path: /giving/paymentmethods

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

MethodPathAuthPermissionDescription
GET/personid/:idJWTDonations.View o sariling personIdKunin ang lahat ng naka-store na paraan ng pagbabayad para sa isang tao (mga card, bank account)
POST/addcardJWT—I-attach ang isang card na paraan ng pagbabayad. 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-anonPublic—Lumikha ng anonymous na ACH SetupIntent para sa mga donasyon ng bisita. Body: { email, name, churchId, gatewayId }
POST/addbankaccountJWTDonations.Edit o sariling personIdMagdagdag ng bank account sa pamamagitan ng token (deprecated na; 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 customerTanggalin ang isang paraan ng pagbabayad (card o bank account)

Event Log​

Base path: /giving/eventLog

Nag-e-extend ng GenericCrudController na may mga CRUD route: getById, getAll, post, delete. Sinusubaybayan ang mga webhook event ng payment gateway para sa auditing at deduplication.

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

Mga Kaugnay na Pahina​