Skip to main content
Webhooks let Jupico push events to your backend as they happen. Register an HTTPS endpoint that returns a 2xx response, and Jupico will POST a JSON payload for each subscribed event.

Payload structure

Every event uses the same envelope:
Your endpoint should respond quickly (a 2xx within a few seconds) and process the event asynchronously.

Endpoint requirements

  • Use HTTPS with a valid TLS certificate.
  • Accept POST requests with a JSON body.
  • Return a 2xx status code once you accept the event.
  • Be idempotent — the same event may be delivered more than once.
Confirm the authentication mechanism for your webhook endpoint with your Jupico account team before going live. Reject unauthenticated requests.

Event catalog

Jupico emits webhooks across onboarding, disputes, payouts, subscriptions, and hosted sessions.
  • onApplicationInitiated — an application has been initiated.
  • onMerchantSubmit — a merchant has submitted their application.
  • onMerchantActivation — a merchant has been activated.
  • onDisputeInitiated — a new dispute has been created.
  • onDisputeUpdated — a dispute has been updated.
  • onPayoutInitiated — a new payout has been created.
  • onMerchantBankAccountActivation — a merchant’s bank account has been activated.
  • onSubscriptionCreated — a subscription has been created.
  • onSubscriptionActivated — a subscription has become active.
  • onSubscriptionDeactivated — a subscription has become inactive.
  • onSubscriptionCanceled — a subscription has been canceled.
  • onSubscriptionPaused — a subscription has been paused.
  • onSubscriptionExecutionSucceeded — a subscription payment succeeded.
  • onSubscriptionExecutionFailed — a subscription payment failed.
  • onHostedSessionSale — a sale has been completed via a hosted session page.

Onboarding payloads

The invite object is included only when the application originated from an invite.

Dispute payloads

Payout and bank account payloads

Subscription payloads

Subscription execution payloads

Hosted page payload

onHostedSessionSale
1

Receive the request

Accept POST requests at your registered webhook URL.
2

Authenticate the sender

Verify the request came from Jupico using the mechanism agreed with your account team.
3

Persist and acknowledge

Store the raw payload and return 2xx before doing any heavy work.
4

Process asynchronously

Handle the event in a background job so slow processing does not block delivery.
5

Deduplicate

Guard against duplicate deliveries using a unique identifier from data (for example, transactionId or submerchantId) combined with event and datetime.
6

Reconcile on drift

If an event references a resource in an unexpected state, use the Query API or Backoffice to fetch the authoritative record.

Retry behavior

Jupico retries failed deliveries. Confirm the exact retry schedule and ceiling with your Jupico account team before go-live.

Testing

  • Use a tunneling tool (for example, ngrok) or a webhook inspection service (for example, webhook.site) to receive sandbox events during development.
  • Trigger events by performing the relevant action in sandbox (activating a submerchant, completing a hosted session, or executing a subscription cycle).

Best practices

Return 2xx quickly

Acknowledge as soon as possible and process asynchronously.

Store the raw payload

Keep the full JSON body for auditing and reprocessing.

Deduplicate deliveries

Assume at-least-once delivery.

Reconcile via the API

Use the Query API when webhook state and your local state diverge.
Last modified on July 15, 2026