---
title: "Enrollment Status Updated"
method: POST
path: "enrollmentStatusUpdated"
tags: ["Enrollments"]
---

# Enrollment Status Updated

`POST enrollmentStatusUpdated` (webhook)

Sent when an enrollment's status changes. Delivered to a configured webhook endpoint (`webhooksUrl`): the merchant's, or the one given on the enrollment request. Subscription/registration of that endpoint is out of scope for this page.

## Payload

- EnrollmentWebhookEnvelope: CloudEvents 1.0.2 context attributes shared by every PPRO webhook envelope; delivery mechanics (retries, signing) are handled elsewhere.
  - `specversion` '1.0.2', required: The CloudEvents specification version.
  - `id` string, required: Unique event id (idempotency key for consumers).
  - `source` string, required
  - `subject` string, required: The resource this event is about, e.g. the merchantId or enrollmentId.
  - `time` string, date-time, required
  - `datacontenttype` 'application/json', required: The event content type.
  - `type` 'ENROLLMENT_STATUS_UPDATED', required: Discriminator selecting the shape of `data`.
  - `data` EnrollmentStatusUpdatedData, required
    - `type` 'ENROLLMENT_STATUS_UPDATED', required: Matches the envelope's `type` - required for discriminator resolution.
    - `enrollmentId` string, required: Unique identifier for the enrollment.
    - `merchantId` string, required: Unique identifier for the merchant
    - `externalMerchantReference` string: Unique reference, assigned by external client.
    - `paymentMethod` string, required: Payment method the enrollment was created for.
    - `currentStatus` EnrollmentStatusSnapshot, required
      - `status` 'PENDING' | 'PROVIDER_PENDING' | 'ACTIVE' | 'FAILED' | 'SUSPENDED' | 'CLOSED', required: Enrollment lifecycle status. - `PENDING`: enrollment submitted and in progress. - `PROVIDER_PENDING`: waiting on the payment provider. - `ACTIVE`: enrolled; the payment method is usable. - `FAILED`: enrollment failed at the provider or scheme after retries; `statusReason` is set. - `SUSPENDED`: the payment method is currently not usable for the merchant and can be reactivated. Also used when a merchant unenrolls from a single payment method. - `CLOSED`: the merchant itself is closed. Reserved and not emitted yet; enrollments of a closed merchant currently arrive as `SUSPENDED`.
      - `updatedAt` string, date-time, required
      - `statusReason` EnrollmentStatusReason
        - `reasonType` 'INTERNAL_ERROR' | 'INTERNAL_DECLINE' | 'PROVIDER_ERROR' | 'PROVIDER_DECLINE', required: The category of failure that caused the enrollment status.
        - `reasonCode` string, required: Reason code for the enrollment status. Free-form, supplied by PPRO or the payment provider - not for programmatic branching, use reasonType instead.
        - `reasonMessage` string: Human-readable message. Free text - not for programmatic branching, use reasonType instead.

## Acknowledgement `200`

Webhook received.

## Other responses

- `default`: Any non-2xx response (or a timeout) is treated as delivery failure and triggers a retry.

---

[API](https://skmtc.dev/ppro/apis/onboarding.md) - [All operations](https://skmtc.dev/ppro/apis/onboarding/llms.txt) - [OpenAPI document](https://skmtc.dev/ppro/apis/onboarding/revisions/32c4db4523ac?raw)
