Jodo delivers state changes for students, manual payments, Flex instalment plans, Pay collections and Cred education loans as HTTP POST webhooks to a URL the institute registers per event_code. PROVENANCE: Jodo publishes no AsyncAPI document. This description was assembled from Jodo's own public webhook reference at https://docs.jodo.in/ (one page per event, all HTTP 200 on 2026-08-23). Every event_code, envelope field, delivery rule, retry policy, source IP and signature header below is transcribed from those pages. Nothing has been invented. Delivery: Jodo treats a webhook as delivered on a 2xx response. Non-2xx responses, timeouts and unreachable endpoints are failures and are retried up to 5 times, spaced across 6-hour and 24-hour intervals for up to 3 days. Continuous failure disables the subscription (production: 100 consecutive failures; UAT: 10). Security: Jodo supports three independent validation mechanisms, usable alone or combined — a custom header key/value agreed with the institute, source IP allowlisting, and an HMAC SHA-256 signature over the raw request body sent in the X-Jodo-Signature header using a shared secret_key.
View SpecView on GitHubCompanyPaymentsEducationFintechFee CollectionLendingIndiaWebhooksERP IntegrationFinancial ServicesAsyncAPIWebhooksEvents
Channels
MasterdataStudentRegisteredChannel
Jodo POSTs this event to the URL registered for event_code `masterdata.student.registered` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/student/webhooks/student-registered/
MasterdataStudentActivatedChannel
Jodo POSTs this event to the URL registered for event_code `masterdata.student.activated` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/student/webhooks/student-activated/
MasterdataStudentDroppedChannel
Jodo POSTs this event to the URL registered for event_code `masterdata.student.dropped` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/student/webhooks/student-dropped/
DirectPaymentAddedChannel
Jodo POSTs this event to the URL registered for event_code `direct.payment.added` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/student/webhooks/manual-payment/direct-payment-added/
DirectPaymentUpdatedChannel
Jodo POSTs this event to the URL registered for event_code `direct.payment.updated` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/student/webhooks/manual-payment/direct-payment-updated/
DirectPaymentCancelledChannel
Jodo POSTs this event to the URL registered for event_code `direct.payment.cancelled` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/student/webhooks/manual-payment/direct-payment-cancelled/
FlexSubscriptionSetupChannel
Jodo POSTs this event to the URL registered for event_code `flex.subscription.setup` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/flex/webhooks/subscription-setup/
FlexSubscriptionActiveChannel
Jodo POSTs this event to the URL registered for event_code `flex.subscription.active` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/flex/webhooks/subscription-active/
FlexSubscriptionUpdatedChannel
Jodo POSTs this event to the URL registered for event_code `flex.subscription.updated` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/flex/webhooks/subscription-updated/
FlexSubscriptionCancelledChannel
Jodo POSTs this event to the URL registered for event_code `flex.subscription.cancelled` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/flex/webhooks/subscription-cancelled/
FlexSubscriptionClosedChannel
Jodo POSTs this event to the URL registered for event_code `flex.subscription.closed` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/flex/webhooks/subscription-closed/
FlexMandateCancelledChannel
Jodo POSTs this event to the URL registered for event_code `flex.mandate.cancelled` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/flex/webhooks/mandate-cancelled/
FlexMandateExpiredChannel
Jodo POSTs this event to the URL registered for event_code `flex.mandate.expired` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/flex/webhooks/mandate-expired/
FlexInstalmentDebitedChannel
Jodo POSTs this event to the URL registered for event_code `flex.instalment.debited` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/flex/webhooks/instalment-debited/
FlexInstalmentSettledChannel
Jodo POSTs this event to the URL registered for event_code `flex.instalment.settled` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/flex/webhooks/instalment-settled/
FlexInstalmentBouncedChannel
Jodo POSTs this event to the URL registered for event_code `flex.instalment.bounced` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/flex/webhooks/instalment-bounced/
FlexDownpaymentDebitedChannel
Jodo POSTs this event to the URL registered for event_code `flex.downpayment.debited` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/flex/webhooks/downpayment-debited/
FlexDownpaymentSettledChannel
Jodo POSTs this event to the URL registered for event_code `flex.downpayment.settled` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/flex/webhooks/downpayment-settled/
PayPaymentDebitedChannel
Jodo POSTs this event to the URL registered for event_code `pay.payment.debited` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/pay/webhooks/payment-debited/
PayPaymentSettledChannel
Jodo POSTs this event to the URL registered for event_code `pay.payment.settled` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/pay/webhooks/payment-settled/
OrderPaymentDebitedChannel
Jodo POSTs this event to the URL registered for event_code `order.payment.debited` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/pay/webhooks/order-payment-debited/
OrderPaymentSettledChannel
Jodo POSTs this event to the URL registered for event_code `order.payment.settled` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/pay/webhooks/order-payment-settled/
PagePaymentDebitedChannel
Jodo POSTs this event to the URL registered for event_code `page.payment.debited` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/pay/webhooks/page-payment-debited/
PagePaymentSettledChannel
Jodo POSTs this event to the URL registered for event_code `page.payment.settled` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/pay/webhooks/page-payment-settled/
PaymentLinkPaymentDebitedChannel
Jodo POSTs this event to the URL registered for event_code `payment_link.payment.debited` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/pay/webhooks/payment-link-debited/
PaymentLinkPaymentSettledChannel
Jodo POSTs this event to the URL registered for event_code `payment_link.payment.settled` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/pay/webhooks/payment-link-settled/
PaymentLinkPaymentExpiredChannel
Jodo POSTs this event to the URL registered for event_code `payment_link.payment.expired` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/pay/webhooks/payment-link-expired/
CredLoanApplicationStartedChannel
Jodo POSTs this event to the URL registered for event_code `cred.loan.application_started` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/cred/webhooks/application-started/
CredLoanApplicationFilledChannel
Jodo POSTs this event to the URL registered for event_code `cred.loan.application_filled` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/cred/webhooks/application-filled/
CredLoanAgreementSignedChannel
Jodo POSTs this event to the URL registered for event_code `cred.loan.agreement_signed` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/cred/webhooks/agreement-signed/
CredLoanFinalApprovedChannel
Jodo POSTs this event to the URL registered for event_code `cred.loan.final_approved` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/cred/webhooks/final-approved/
CredLoanRejectedChannel
Jodo POSTs this event to the URL registered for event_code `cred.loan.rejected` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/cred/webhooks/rejected/
CredLoanCanceledChannel
Jodo POSTs this event to the URL registered for event_code `cred.loan.canceled` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/cred/webhooks/canceled/
CredLoanApplicationExpiredChannel
Jodo POSTs this event to the URL registered for event_code `cred.loan.application_expired` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/cred/webhooks/application-expired/
CredLoanDisbursedChannel
Jodo POSTs this event to the URL registered for event_code `cred.loan.disbursed` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/cred/webhooks/disbursed/
CredEmiDebitedChannel
Jodo POSTs this event to the URL registered for event_code `cred.emi.debited` via POST /api/v1/integrations/erp/webhooks. Documented at https://docs.jodo.in/cred/webhooks/emi-debited/
Messages
✉
MasterdataStudentRegistered
masterdata.student.registered
A student record has been registered in Jodo.
✉
MasterdataStudentActivated
masterdata.student.activated
A student record has been activated in Jodo.
✉
MasterdataStudentDropped
masterdata.student.dropped
A student has been marked as dropped out.
✉
DirectPaymentAdded
direct.payment.added
A manual/direct payment has been recorded against a student.
✉
DirectPaymentUpdated
direct.payment.updated
A previously recorded manual/direct payment has been updated.
✉
DirectPaymentCancelled
direct.payment.cancelled
A previously recorded manual/direct payment has been cancelled.
✉
FlexSubscriptionSetup
flex.subscription.setup
The payer has completed Flex setup and a subscription has been created.
✉
FlexSubscriptionActive
flex.subscription.active
The bank has confirmed that debits can happen and the Flex subscription is active.
✉
FlexSubscriptionUpdated
flex.subscription.updated
An existing Flex subscription has been updated.
✉
FlexSubscriptionCancelled
flex.subscription.cancelled
A Flex subscription has been cancelled.
✉
FlexSubscriptionClosed
flex.subscription.closed
A Flex subscription has been closed.
✉
FlexMandateCancelled
flex.mandate.cancelled
The auto-debit mandate backing a Flex subscription has been cancelled.
✉
FlexMandateExpired
flex.mandate.expired
The auto-debit mandate backing a Flex subscription has expired.
✉
FlexInstalmentDebited
flex.instalment.debited
A scheduled Flex instalment has been debited from the payer.
✉
FlexInstalmentSettled
flex.instalment.settled
A debited Flex instalment has been settled to the institute.
✉
FlexInstalmentBounced
flex.instalment.bounced
A scheduled Flex instalment debit has bounced.
✉
FlexDownpaymentDebited
flex.downpayment.debited
The upfront downpayment collected during Flex setup has been debited.
✉
FlexDownpaymentSettled
flex.downpayment.settled
The Flex downpayment has been settled to the institute.
✉
PayPaymentDebited
pay.payment.debited
A student-linked Pay payment has been debited.
✉
PayPaymentSettled
pay.payment.settled
A student-linked Pay payment has been settled to the institute.
✉
OrderPaymentDebited
order.payment.debited
A checkout order payment has been debited.
✉
OrderPaymentSettled
order.payment.settled
A checkout order payment has been settled to the institute.
✉
PagePaymentDebited
page.payment.debited
A payment made through a Jodo hosted payment page has been debited.
✉
PagePaymentSettled
page.payment.settled
A payment made through a Jodo hosted payment page has been settled.
✉
PaymentLinkPaymentDebited
payment_link.payment.debited
A payment made through a shareable payment link has been debited.
✉
PaymentLinkPaymentSettled
payment_link.payment.settled
A payment made through a shareable payment link has been settled.
✉
PaymentLinkPaymentExpired
payment_link.payment.expired
A shareable payment link has expired without being paid.
✉
CredLoanApplicationStarted
cred.loan.application_started
A student or parent has started an education loan application.
✉
CredLoanApplicationFilled
cred.loan.application_filled
An education loan application has been completed by the applicant.
✉
CredLoanAgreementSigned
cred.loan.agreement_signed
The loan agreement has been signed by the applicant.
✉
CredLoanFinalApproved
cred.loan.final_approved
The education loan application has received final approval.
✉
CredLoanRejected
cred.loan.rejected
The education loan application has been rejected.
✉
CredLoanCanceled
cred.loan.canceled
The education loan application has been cancelled.
✉
CredLoanApplicationExpired
cred.loan.application_expired
The education loan application has expired.
✉
CredLoanDisbursed
cred.loan.disbursed
The approved education loan has been disbursed.
✉
CredEmiDebited
cred.emi.debited
An EMI instalment on a disbursed education loan has been debited.
Servers
https
subscriberEndpoint
The institute/ERP HTTPS endpoint registered per event_code. Jodo sends from fixed source IPs — production 3.6.234.242, 3.111.80.40, 13.232.24.175, 43.204.202.190; UAT 3.108.86.33, 13.127.40.177, 65.0.77.215.
# generated: '2026-08-23'
# method: generated
# source: https://docs.jodo.in/ (per-event webhook reference pages, fetched 2026-08-23)
asyncapi: 3.0.0
id: urn:com:jodo:webhooks
info:
title: Jodo Webhooks
version: '1.0'
description: 'Jodo delivers state changes for students, manual payments, Flex instalment plans, Pay collections and Cred
education loans as HTTP POST webhooks to a URL the institute registers per event_code.
PROVENANCE: Jodo publishes no AsyncAPI document. This description was assembled from Jodo''s own public webhook reference
at https://docs.jodo.in/ (one page per event, all HTTP 200 on 2026-08-23). Every event_code, envelope field, delivery
rule, retry policy, source IP and signature header below is transcribed from those pages. Nothing has been invented.
Delivery: Jodo treats a webhook as delivered on a 2xx response. Non-2xx responses, timeouts and unreachable endpoints
are failures and are retried up to 5 times, spaced across 6-hour and 24-hour intervals for up to 3 days. Continuous failure
disables the subscription (production: 100 consecutive failures; UAT: 10).
Security: Jodo supports three independent validation mechanisms, usable alone or combined — a custom header key/value
agreed with the institute, source IP allowlisting, and an HMAC SHA-256 signature over the raw request body sent in the
X-Jodo-Signature header using a shared secret_key.'
contact:
name: Jodo
url: https://docs.jodo.in/webhooks/handling-webhook-events/
externalDocs:
description: Jodo webhook integration guide
url: https://docs.jodo.in/webhooks/handling-webhook-events/
defaultContentType: application/json
servers:
subscriberEndpoint:
host: '{institute-endpoint}'
protocol: https
description: The institute/ERP HTTPS endpoint registered per event_code. Jodo sends from fixed source IPs — production
3.6.234.242, 3.111.80.40, 13.232.24.175, 43.204.202.190; UAT 3.108.86.33, 13.127.40.177, 65.0.77.215.
channels:
MasterdataStudentRegisteredChannel:
address: '{subscriberWebhookUrl}'
title: masterdata.student.registered
summary: A student record has been registered in Jodo.
description: Jodo POSTs this event to the URL registered for event_code `masterdata.student.registered` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/student/webhooks/student-registered/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
MasterdataStudentRegistered:
$ref: '#/components/messages/MasterdataStudentRegistered'
tags:
- name: Student
MasterdataStudentActivatedChannel:
address: '{subscriberWebhookUrl}'
title: masterdata.student.activated
summary: A student record has been activated in Jodo.
description: Jodo POSTs this event to the URL registered for event_code `masterdata.student.activated` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/student/webhooks/student-activated/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
MasterdataStudentActivated:
$ref: '#/components/messages/MasterdataStudentActivated'
tags:
- name: Student
MasterdataStudentDroppedChannel:
address: '{subscriberWebhookUrl}'
title: masterdata.student.dropped
summary: A student has been marked as dropped out.
description: Jodo POSTs this event to the URL registered for event_code `masterdata.student.dropped` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/student/webhooks/student-dropped/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
MasterdataStudentDropped:
$ref: '#/components/messages/MasterdataStudentDropped'
tags:
- name: Student
DirectPaymentAddedChannel:
address: '{subscriberWebhookUrl}'
title: direct.payment.added
summary: A manual/direct payment has been recorded against a student.
description: Jodo POSTs this event to the URL registered for event_code `direct.payment.added` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/student/webhooks/manual-payment/direct-payment-added/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
DirectPaymentAdded:
$ref: '#/components/messages/DirectPaymentAdded'
tags:
- name: Student
DirectPaymentUpdatedChannel:
address: '{subscriberWebhookUrl}'
title: direct.payment.updated
summary: A previously recorded manual/direct payment has been updated.
description: Jodo POSTs this event to the URL registered for event_code `direct.payment.updated` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/student/webhooks/manual-payment/direct-payment-updated/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
DirectPaymentUpdated:
$ref: '#/components/messages/DirectPaymentUpdated'
tags:
- name: Student
DirectPaymentCancelledChannel:
address: '{subscriberWebhookUrl}'
title: direct.payment.cancelled
summary: A previously recorded manual/direct payment has been cancelled.
description: Jodo POSTs this event to the URL registered for event_code `direct.payment.cancelled` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/student/webhooks/manual-payment/direct-payment-cancelled/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
DirectPaymentCancelled:
$ref: '#/components/messages/DirectPaymentCancelled'
tags:
- name: Student
FlexSubscriptionSetupChannel:
address: '{subscriberWebhookUrl}'
title: flex.subscription.setup
summary: The payer has completed Flex setup and a subscription has been created.
description: Jodo POSTs this event to the URL registered for event_code `flex.subscription.setup` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/flex/webhooks/subscription-setup/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
FlexSubscriptionSetup:
$ref: '#/components/messages/FlexSubscriptionSetup'
tags:
- name: Flex
FlexSubscriptionActiveChannel:
address: '{subscriberWebhookUrl}'
title: flex.subscription.active
summary: The bank has confirmed that debits can happen and the Flex subscription is active.
description: Jodo POSTs this event to the URL registered for event_code `flex.subscription.active` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/flex/webhooks/subscription-active/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
FlexSubscriptionActive:
$ref: '#/components/messages/FlexSubscriptionActive'
tags:
- name: Flex
FlexSubscriptionUpdatedChannel:
address: '{subscriberWebhookUrl}'
title: flex.subscription.updated
summary: An existing Flex subscription has been updated.
description: Jodo POSTs this event to the URL registered for event_code `flex.subscription.updated` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/flex/webhooks/subscription-updated/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
FlexSubscriptionUpdated:
$ref: '#/components/messages/FlexSubscriptionUpdated'
tags:
- name: Flex
FlexSubscriptionCancelledChannel:
address: '{subscriberWebhookUrl}'
title: flex.subscription.cancelled
summary: A Flex subscription has been cancelled.
description: Jodo POSTs this event to the URL registered for event_code `flex.subscription.cancelled` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/flex/webhooks/subscription-cancelled/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
FlexSubscriptionCancelled:
$ref: '#/components/messages/FlexSubscriptionCancelled'
tags:
- name: Flex
FlexSubscriptionClosedChannel:
address: '{subscriberWebhookUrl}'
title: flex.subscription.closed
summary: A Flex subscription has been closed.
description: Jodo POSTs this event to the URL registered for event_code `flex.subscription.closed` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/flex/webhooks/subscription-closed/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
FlexSubscriptionClosed:
$ref: '#/components/messages/FlexSubscriptionClosed'
tags:
- name: Flex
FlexMandateCancelledChannel:
address: '{subscriberWebhookUrl}'
title: flex.mandate.cancelled
summary: The auto-debit mandate backing a Flex subscription has been cancelled.
description: Jodo POSTs this event to the URL registered for event_code `flex.mandate.cancelled` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/flex/webhooks/mandate-cancelled/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
FlexMandateCancelled:
$ref: '#/components/messages/FlexMandateCancelled'
tags:
- name: Flex
FlexMandateExpiredChannel:
address: '{subscriberWebhookUrl}'
title: flex.mandate.expired
summary: The auto-debit mandate backing a Flex subscription has expired.
description: Jodo POSTs this event to the URL registered for event_code `flex.mandate.expired` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/flex/webhooks/mandate-expired/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
FlexMandateExpired:
$ref: '#/components/messages/FlexMandateExpired'
tags:
- name: Flex
FlexInstalmentDebitedChannel:
address: '{subscriberWebhookUrl}'
title: flex.instalment.debited
summary: A scheduled Flex instalment has been debited from the payer.
description: Jodo POSTs this event to the URL registered for event_code `flex.instalment.debited` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/flex/webhooks/instalment-debited/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
FlexInstalmentDebited:
$ref: '#/components/messages/FlexInstalmentDebited'
tags:
- name: Flex
FlexInstalmentSettledChannel:
address: '{subscriberWebhookUrl}'
title: flex.instalment.settled
summary: A debited Flex instalment has been settled to the institute.
description: Jodo POSTs this event to the URL registered for event_code `flex.instalment.settled` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/flex/webhooks/instalment-settled/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
FlexInstalmentSettled:
$ref: '#/components/messages/FlexInstalmentSettled'
tags:
- name: Flex
FlexInstalmentBouncedChannel:
address: '{subscriberWebhookUrl}'
title: flex.instalment.bounced
summary: A scheduled Flex instalment debit has bounced.
description: Jodo POSTs this event to the URL registered for event_code `flex.instalment.bounced` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/flex/webhooks/instalment-bounced/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
FlexInstalmentBounced:
$ref: '#/components/messages/FlexInstalmentBounced'
tags:
- name: Flex
FlexDownpaymentDebitedChannel:
address: '{subscriberWebhookUrl}'
title: flex.downpayment.debited
summary: The upfront downpayment collected during Flex setup has been debited.
description: Jodo POSTs this event to the URL registered for event_code `flex.downpayment.debited` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/flex/webhooks/downpayment-debited/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
FlexDownpaymentDebited:
$ref: '#/components/messages/FlexDownpaymentDebited'
tags:
- name: Flex
FlexDownpaymentSettledChannel:
address: '{subscriberWebhookUrl}'
title: flex.downpayment.settled
summary: The Flex downpayment has been settled to the institute.
description: Jodo POSTs this event to the URL registered for event_code `flex.downpayment.settled` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/flex/webhooks/downpayment-settled/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
FlexDownpaymentSettled:
$ref: '#/components/messages/FlexDownpaymentSettled'
tags:
- name: Flex
PayPaymentDebitedChannel:
address: '{subscriberWebhookUrl}'
title: pay.payment.debited
summary: A student-linked Pay payment has been debited.
description: Jodo POSTs this event to the URL registered for event_code `pay.payment.debited` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/pay/webhooks/payment-debited/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
PayPaymentDebited:
$ref: '#/components/messages/PayPaymentDebited'
tags:
- name: Pay
PayPaymentSettledChannel:
address: '{subscriberWebhookUrl}'
title: pay.payment.settled
summary: A student-linked Pay payment has been settled to the institute.
description: Jodo POSTs this event to the URL registered for event_code `pay.payment.settled` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/pay/webhooks/payment-settled/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
PayPaymentSettled:
$ref: '#/components/messages/PayPaymentSettled'
tags:
- name: Pay
OrderPaymentDebitedChannel:
address: '{subscriberWebhookUrl}'
title: order.payment.debited
summary: A checkout order payment has been debited.
description: Jodo POSTs this event to the URL registered for event_code `order.payment.debited` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/pay/webhooks/order-payment-debited/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
OrderPaymentDebited:
$ref: '#/components/messages/OrderPaymentDebited'
tags:
- name: Pay
OrderPaymentSettledChannel:
address: '{subscriberWebhookUrl}'
title: order.payment.settled
summary: A checkout order payment has been settled to the institute.
description: Jodo POSTs this event to the URL registered for event_code `order.payment.settled` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/pay/webhooks/order-payment-settled/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
OrderPaymentSettled:
$ref: '#/components/messages/OrderPaymentSettled'
tags:
- name: Pay
PagePaymentDebitedChannel:
address: '{subscriberWebhookUrl}'
title: page.payment.debited
summary: A payment made through a Jodo hosted payment page has been debited.
description: Jodo POSTs this event to the URL registered for event_code `page.payment.debited` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/pay/webhooks/page-payment-debited/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
PagePaymentDebited:
$ref: '#/components/messages/PagePaymentDebited'
tags:
- name: Pay
PagePaymentSettledChannel:
address: '{subscriberWebhookUrl}'
title: page.payment.settled
summary: A payment made through a Jodo hosted payment page has been settled.
description: Jodo POSTs this event to the URL registered for event_code `page.payment.settled` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/pay/webhooks/page-payment-settled/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
PagePaymentSettled:
$ref: '#/components/messages/PagePaymentSettled'
tags:
- name: Pay
PaymentLinkPaymentDebitedChannel:
address: '{subscriberWebhookUrl}'
title: payment_link.payment.debited
summary: A payment made through a shareable payment link has been debited.
description: Jodo POSTs this event to the URL registered for event_code `payment_link.payment.debited` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/pay/webhooks/payment-link-debited/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
PaymentLinkPaymentDebited:
$ref: '#/components/messages/PaymentLinkPaymentDebited'
tags:
- name: Pay
PaymentLinkPaymentSettledChannel:
address: '{subscriberWebhookUrl}'
title: payment_link.payment.settled
summary: A payment made through a shareable payment link has been settled.
description: Jodo POSTs this event to the URL registered for event_code `payment_link.payment.settled` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/pay/webhooks/payment-link-settled/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
PaymentLinkPaymentSettled:
$ref: '#/components/messages/PaymentLinkPaymentSettled'
tags:
- name: Pay
PaymentLinkPaymentExpiredChannel:
address: '{subscriberWebhookUrl}'
title: payment_link.payment.expired
summary: A shareable payment link has expired without being paid.
description: Jodo POSTs this event to the URL registered for event_code `payment_link.payment.expired` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/pay/webhooks/payment-link-expired/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
PaymentLinkPaymentExpired:
$ref: '#/components/messages/PaymentLinkPaymentExpired'
tags:
- name: Pay
CredLoanApplicationStartedChannel:
address: '{subscriberWebhookUrl}'
title: cred.loan.application_started
summary: A student or parent has started an education loan application.
description: Jodo POSTs this event to the URL registered for event_code `cred.loan.application_started` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/cred/webhooks/application-started/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
CredLoanApplicationStarted:
$ref: '#/components/messages/CredLoanApplicationStarted'
tags:
- name: Cred
CredLoanApplicationFilledChannel:
address: '{subscriberWebhookUrl}'
title: cred.loan.application_filled
summary: An education loan application has been completed by the applicant.
description: Jodo POSTs this event to the URL registered for event_code `cred.loan.application_filled` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/cred/webhooks/application-filled/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
CredLoanApplicationFilled:
$ref: '#/components/messages/CredLoanApplicationFilled'
tags:
- name: Cred
CredLoanAgreementSignedChannel:
address: '{subscriberWebhookUrl}'
title: cred.loan.agreement_signed
summary: The loan agreement has been signed by the applicant.
description: Jodo POSTs this event to the URL registered for event_code `cred.loan.agreement_signed` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/cred/webhooks/agreement-signed/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
CredLoanAgreementSigned:
$ref: '#/components/messages/CredLoanAgreementSigned'
tags:
- name: Cred
CredLoanFinalApprovedChannel:
address: '{subscriberWebhookUrl}'
title: cred.loan.final_approved
summary: The education loan application has received final approval.
description: Jodo POSTs this event to the URL registered for event_code `cred.loan.final_approved` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/cred/webhooks/final-approved/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
CredLoanFinalApproved:
$ref: '#/components/messages/CredLoanFinalApproved'
tags:
- name: Cred
CredLoanRejectedChannel:
address: '{subscriberWebhookUrl}'
title: cred.loan.rejected
summary: The education loan application has been rejected.
description: Jodo POSTs this event to the URL registered for event_code `cred.loan.rejected` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/cred/webhooks/rejected/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
CredLoanRejected:
$ref: '#/components/messages/CredLoanRejected'
tags:
- name: Cred
CredLoanCanceledChannel:
address: '{subscriberWebhookUrl}'
title: cred.loan.canceled
summary: The education loan application has been cancelled.
description: Jodo POSTs this event to the URL registered for event_code `cred.loan.canceled` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/cred/webhooks/canceled/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
CredLoanCanceled:
$ref: '#/components/messages/CredLoanCanceled'
tags:
- name: Cred
CredLoanApplicationExpiredChannel:
address: '{subscriberWebhookUrl}'
title: cred.loan.application_expired
summary: The education loan application has expired.
description: Jodo POSTs this event to the URL registered for event_code `cred.loan.application_expired` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/cred/webhooks/application-expired/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
CredLoanApplicationExpired:
$ref: '#/components/messages/CredLoanApplicationExpired'
tags:
- name: Cred
CredLoanDisbursedChannel:
address: '{subscriberWebhookUrl}'
title: cred.loan.disbursed
summary: The approved education loan has been disbursed.
description: Jodo POSTs this event to the URL registered for event_code `cred.loan.disbursed` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/cred/webhooks/disbursed/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
CredLoanDisbursed:
$ref: '#/components/messages/CredLoanDisbursed'
tags:
- name: Cred
CredEmiDebitedChannel:
address: '{subscriberWebhookUrl}'
title: cred.emi.debited
summary: An EMI instalment on a disbursed education loan has been debited.
description: Jodo POSTs this event to the URL registered for event_code `cred.emi.debited` via POST /api/v1/integrations/erp/webhooks.
Documented at https://docs.jodo.in/cred/webhooks/emi-debited/
parameters:
subscriberWebhookUrl:
description: The HTTPS endpoint the institute/ERP registered for this event_code. One event_code maps to exactly one
URL.
messages:
CredEmiDebited:
$ref: '#/components/messages/CredEmiDebited'
tags:
- name: Cred
operations:
receiveMasterdataStudentRegistered:
action: receive
channel:
$ref: '#/channels/MasterdataStudentRegisteredChannel'
summary: A student record has been registered in Jodo.
description: Return a 2xx response once the event is accepted. Jodo retries up to 5 times across 6-hour and 24-hour intervals
for up to 3 days; handlers must be idempotent on event_id.
messages:
- $ref: '#/channels/MasterdataStudentRegisteredChannel/messages/MasterdataStudentRegistered'
receiveMasterdataStudentActivated:
action: receive
channel:
$ref: '#/channels/MasterdataStudentActivatedChannel'
summary: A student record has been activated in Jodo.
description: Return a 2xx response once the event is accepted. Jodo retries up to 5 times across 6-hour and 24-hour intervals
for up to 3 days; handlers must be idempotent on event_id.
messages:
- $ref: '#/channels/MasterdataStudentActivatedChannel/messages/MasterdataStudentActivated'
receiveMasterdataStudentDropped:
action: receive
channel:
$ref: '#/channels/MasterdataStudentDroppedChannel'
summary: A student has been marked as dropped out.
description: Return a 2xx response once the event is accepted. Jodo retries up to 5 times across 6-hour and 24-hour intervals
for up to 3 days; handlers must be idempotent on event_id.
messages:
- $ref: '#/channels/MasterdataStudentDroppedChannel/messages/MasterdataStudentDropped'
receiveDirectPaymentAdded:
action: receive
channel:
$ref: '#/channels/DirectPaymentAddedChannel'
summary: A manual/direct payment has been recorded against a student.
description: Return a 2xx response once the event is accepted. Jodo retries up to 5 times across 6-hour and 24-hour intervals
for up to 3 days; handlers must be idempotent on event_id.
messages:
- $ref: '#/channels/DirectPaymentAddedChannel/messages/DirectPaymentAdded'
receiveDirectPaymentUpdated:
action: receive
channel:
$ref: '#/channels/DirectPaymentUpdatedChannel'
summary: A previously recorded manual/direct payment has been updated.
description: Return a 2xx response once the event is accepted. Jodo retries up to 5 times across 6-hour and 24-hour intervals
for up to 3 days; handlers must be idempotent on event_id.
messages:
- $ref: '#/channels/DirectPaymentUpdatedChannel/messages/DirectPaymentUpdated'
receiveDirectPaymentCancelled:
action: receive
channel:
$ref: '#/channels/DirectPaymentCancelledChannel'
summary: A previously recorded manual/direct payment has been cancelled.
description: Return a 2xx response once the event is accepted. Jodo retries up to 5 times across 6-hour and 24-hour intervals
for up to 3 days; handlers must be idempotent on event_id.
messages:
- $ref: '#/channels/DirectPaymentCancelledChannel/messages/DirectPaymentCancelled'
receiveFlexSubscriptionSetup:
action: receive
channel:
$ref: '#/channels/FlexSubscriptionSetupChannel'
summary: The payer has completed Flex setup and a subscription has been created.
description: Return a 2xx response once the event is accepted. Jodo retries up to 5 times across 6-hour and 24-hour intervals
for up to 3 days; handlers must be idempotent on event_id.
messages:
- $ref: '#/channels/FlexSubscriptionSetupChannel/messages/FlexSubscriptionSetup'
receiveFlexSubscriptionActive:
action: receive
channel:
$ref: '#/channels/FlexSubscriptionActiveChannel'
summary: The bank has confirmed that debits can happen and the Flex subscription is active.
description: Return a 2xx response once the event is accepted. Jodo retries up to 5 times across 6-hour and 24-hour intervals
for up to 3 days; handlers must be idempotent on event_id.
messages:
- $ref: '#/channels/FlexSubscriptionActiveChannel/messages/FlexSubscriptionActive'
receiveFlexSubscriptionUpdated:
action: receive
channel:
$ref: '#/channels/FlexSubscriptionUpdatedChannel'
summary: An existing Flex subscription has been updated.
description: Return a 2xx response once the event is accepted. Jodo retries up to 5 times across 6-hour and 24-hour intervals
for up to 3 days; handlers must be idempotent on event_id.
messages:
- $ref: '#/channels/FlexSubscriptionUpdatedChannel/messages/FlexSubscriptionUpdated'
receiveFlexSubscriptionCancelled:
action: receive
channel:
$ref: '#/channels/FlexSubscriptionCancelledChannel'
summary: A Flex subscription has been cancelled.
description: Return a 2xx response once the event is accepted. Jodo retries up to 5 times across 6-hour and 24-hour intervals
for up to 3 days; handlers must be idempotent on event_id.
messages:
- $ref: '#/channels/FlexSubscriptionCancelledChannel/messages/FlexSubscriptionCancelled'
receiveFlexSubscriptionClosed:
action: receive
channel:
$ref: '#/channels/FlexSubscriptionClosedChannel'
summary: A Flex subscription has been c
# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/jodo/refs/heads/main/asyncapi/jodo-webhooks-asyncapi.yml