School platforms/PAC io
This is school-side infrastructure, not part of your integration. PAC io is one of the systems participating schools run. Wishbone delivers completed donations into it on the school's behalf. Banks always call the same Wishbone endpoints with the same payload regardless of which platform a school uses — this page just shows where the money lands and what school_confirmation_id refers to.
IntegrationPOST https://api.pac.io/v2/donors/{donor_id}/gifts

Wishbone → PAC io

Wishbone pushes completed donation records to PAC io (formerly Paciolan), triggering automatic priority point allocation and seat priority queue updates — the core mechanic that moves fans up the queue.

View Docs ↗
Bank App
Donation request
Wishbone
Validate & record
PAC io
POST gift record
School CRM
Step 1
Bank submits POST /v1/donations/request with dollar_amount and bank_transaction_ref.
Step 2
Wishbone validates school_id, fund_designation, minimum amount. Creates internal donation record.
Step 3
Wishbone POSTs gift record with donor_id, fund_code, amount, priority_points_earned.
Step 4
PAC io returns gift_id and updated priority_tier. Wishbone fires donation.completed webhook to bank.
Request Body
{
  "donor_id": "PAC-884421",
  "fund_code": "ANNUAL_FUND",
  "gift_amount": 50,
  "gift_date": "2026-05-11",
  "gift_type": "LOYALTY_REDEMPTION",
  "payment_method": "POINTS",
  "priority_points_earned": 50,
  "campaign_code": "WB2026",
  "source_system": "WISHBONE",
  "wishbone_donation_id": "don_01HX9ZTKABC",
  "bank_transaction_ref": "TXN-12345",
  "notify_donor": true,
  "donor_email": "j.doe@example.com"
}
Response
◎
Fire a request to see the response
What Wishbone does with the response

Store the returned gift_id and priority_tier, update the internal donation to 'completed', and fire the donation.completed webhook to the bank. The cardholder sees updated seat priority in the bank app — no manual reconciliation.

Evenue →