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/myJWTKunin 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/testEmailPublicMagpadala 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/:churchIdPublicKunin ang mga available na payment gateway para sa isang simbahan (public key lamang)
POST/client-tokenJWTBumuo ng client token para sa pag-initialize ng gateway
POST/create-orderJWTLumikha ng payment order (PayPal-style na checkout)
POST/chargeJWTIproseso ang isang one-time na donation charge
POST/subscribeJWTLumikha ng recurring donation subscription
POST/logPublicI-log ang isang donasyon. Body: { donation, fundData }
POST/webhook/:providerPublicTumanggap 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/feePublicKalkulahin ang mga transaction fee. Body: { type, provider, gatewayId, amount, currency }. Kailangan ang ?churchId=
POST/captcha-verifyPublicI-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/JWTIlista ang lahat ng fund
GET/:idJWTKunin ang isang fund ayon sa ID
GET/churchId/:churchIdPublicKunin ang lahat ng fund para sa isang partikular na simbahan (public)
GET/public/:churchId/:fundId/total?startDate=&endDate=PublicKunin 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/myJWTKunin 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/JWTIlista ang lahat ng gateway para sa simbahan
GET/:idJWTSettings.EditKunin ang isang gateway ayon sa ID
GET/churchId/:churchIdPublicKunin ang mga gateway para sa isang simbahan (public key lamang)
GET/configured/:churchIdPublicSuriin 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/addcardJWTI-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-anonPublicLumikha 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