Skip to content

Payment Integration ​

The admissions system can integrate with Stripe to accept online payments for application fees, tuition deposits, and other admissions-related charges. This article covers the setup process and how payments work within the admissions workflow.

Overview ​

Payment integration allows families to:

  • Pay application or registration fees directly through admissions forms.
  • Make tuition deposits as part of the enrollment process.
  • Complete payments securely using credit/debit cards.

Admissions staff can:

  • Track payment status for each applicant.
  • View payment history and receipts.
  • Configure which fees require online payment.

Setting Up Stripe ​

Prerequisites ​

Before configuring Stripe in the admissions system, you need:

  1. A Stripe account (create one at stripe.com).
  2. Your Stripe API keys (publishable key and secret key).
  3. Webhook endpoints configured in your Stripe dashboard.

Configuration Steps ​

  1. Obtain your Stripe API keys from the Stripe Dashboard:
    • Navigate to Developers > API Keys.
    • Copy the Publishable key (starts with pk_).
    • Copy the Secret key (starts with sk_).
  2. Provide the keys to your system administrator for configuration in the environment variables.
  3. Configure webhook endpoints in Stripe to point to your application's webhook URL.

WARNING

Never share or expose your Stripe Secret Key. It should only be stored in server-side environment variables, never in frontend code or client-accessible locations.

Webhook Configuration ​

Webhooks allow Stripe to notify the admissions system when payment events occur:

  1. In the Stripe Dashboard, go to Developers > Webhooks.
  2. Add an endpoint pointing to your application's webhook URL.
  3. Select the events to listen for:
    • payment_intent.succeeded
    • payment_intent.payment_failed
    • checkout.session.completed
  4. Copy the webhook signing secret and provide it to your system administrator.

Payment Flow ​

For Families ​

  1. A family submits an admissions form that includes a payment step.
  2. They are redirected to a Stripe-hosted checkout page (or inline payment form).
  3. They enter their payment details and complete the transaction.
  4. Upon success, they are redirected back to a confirmation page.
  5. The payment is recorded against the lead/applicant record.

For Admissions Staff ​

  1. Navigate to a lead's detail page.
  2. View the payment status in the lead's financial section.
  3. Payment history shows all transactions with amounts, dates, and statuses.

Payment Statuses ​

StatusMeaning
PendingPayment initiated but not yet completed
SucceededPayment successfully processed
FailedPayment attempt failed
RefundedPayment was refunded

Linking Fees to Forms ​

To require payment on an admissions form:

  1. Create the fee items in the Fees configuration.
  2. In the form builder, add a payment step that references the relevant fee.
  3. When families submit the form, the payment step triggers the Stripe checkout.

Security ​

  • All payment data is handled by Stripe -- the admissions system never stores credit card numbers.
  • Communication with Stripe uses HTTPS/TLS encryption.
  • Webhook signatures are verified to prevent tampered notifications.
  • PCI compliance is handled by Stripe's hosted payment pages.

Troubleshooting ​

ProblemSolution
Payments not processingVerify Stripe API keys are correct and the account is active.
Webhooks not receivedCheck the webhook endpoint URL and signing secret in Stripe Dashboard.
Payment shows as pendingThe webhook may not have been received yet. Check Stripe Dashboard for the payment status.
Refund neededProcess refunds directly through the Stripe Dashboard. The admissions system updates when the webhook is received.

Kinderpedia Admissions Help Center