PayCredit webhook events

Webhook event payloads and status values.

PayCredit webhook events

PayCredit publishes webhook events when account, transaction, instalment, repayment, statement, or delinquency data changes. This guide documents the event catalogue and the JSON payload delivered for each event.

Payload conventions

  • JSON property names use snake_case.
  • Dates use the YYYY-MM-DD format.
  • A null value means that the value is not available for the event. For creation events, previous_status is null.
  • Status values are normalized public values. PayCredit database codes are not sent in webhook payloads.
  • settled_at is currently a date without a time component.
  • IDs are PayCredit identifiers and are represented as JSON numbers.

Event overview

EventDescription
credit.account_status.changeAn account moves between lifecycle states such as active, blocked, closed, deleted, or inactive.
credit.statement_data_status.changeA billing statement reaches the RELEASED state and its billing data becomes available.
credit.delinquency_stage.changeAn account enters, changes, or exits a delinquency stage.
credit.transaction_status.changeA transaction moves between processing states such as authorised, settled, declined, cancelled, reversed, or disputed.
credit.instalment_status.changeAn instalment loan moves between active, inactive, closed, or amended states.
credit.instalment_repayment_status.changeA scheduled instalment repayment changes state, for example from pending to paid or overdue.
credit.repayment_status.changeAn account or statement repayment status changes and its repayment amounts and settlement date are reported.

credit.account_status.change

Use this event to track changes to the lifecycle status of a credit account.

Payload fields

FieldTypeNullableDescription
account_idintegerNoCredit account identifier.
previous_statusstringYesAccount status before the change. null for an account creation event.
current_statusstringNoAccount status after the change.

Status values

ACTIVE, BLOCKED, CLOSED, DELETED, INACTIVE

Example

{
  "account_id": 12345,
  "previous_status": null,
  "current_status": "ACTIVE"
}

credit.statement_data_status.change

Use this event to know when statement data is ready for presentation or reporting. The event is published when the statement reaches RELEASED.

Payload fields

FieldTypeNullableDescription
account_idintegerNoCredit account identifier.
statement_idintegerNoBilling statement identifier.
statement_start_datestring, dateNoStart date of the statement period.
statement_datestring, dateNoStatement date.
statement_statusstringNoStatement status. The event catalogue value is RELEASED.

Example

{
  "account_id": 12345,
  "statement_id": 67890,
  "statement_start_date": "2026-09-01",
  "statement_date": "2026-09-30",
  "statement_status": "RELEASED"
}

credit.delinquency_stage.change

Use this event to track an account entering, progressing through, or leaving a delinquency stage. Stage IDs are configurable values and are not an enum.

Payload fields

FieldTypeNullableDescription
account_idintegerNoCredit account identifier.
previous_stage_idintegerYesPrevious delinquency stage. null when the account enters delinquency.
current_stage_idintegerYesCurrent delinquency stage. null when the account exits delinquency.

Example

{
  "account_id": 12345,
  "previous_stage_id": null,
  "current_stage_id": 102
}

credit.transaction_status.change

Use this event to track the processing lifecycle of a credit transaction. The payload also exposes the transaction amounts, currency, and merchant information available in PayCredit.

Payload fields

FieldTypeNullableDescription
transaction_idintegerNoPayCredit transaction identifier.
account_idintegerNoCredit account identifier.
transaction_type_idintegerNoPayCredit transaction type identifier.
previous_statusstringYesTransaction status before the change. null for a transaction creation event.
current_statusstringNoTransaction status after the change.
transaction_referencestringYesPayCredit transaction reference.
transaction_identifierstringYesExternal transaction identifier.
parent_transaction_idintegerYesParent transaction identifier, when applicable.
merchant_namestringYesMerchant name, location, and country represented as one string.
merchant_category_cdstringYesFour-digit merchant category code.
settled_amountnumberYesAmount settled for the transaction.
local_transaction_amountnumberYesTransaction amount in the local transaction currency.
local_transaction_currency_cdstringYesISO currency code for local_transaction_amount.

Status values

AUTHORISED, CANCELLED, COMPLETED, DECLINED, DISPUTED, REVERSED, SETTLED

Example

{
  "transaction_id": 123456,
  "account_id": 12345,
  "transaction_type_id": 1,
  "previous_status": "AUTHORISED",
  "current_status": "SETTLED",
  "transaction_reference": "transaction-ref-123",
  "transaction_identifier": "external-transaction-456",
  "parent_transaction_id": null,
  "merchant_name": "Example Store, Ljubljana, Slovenia",
  "merchant_category_cd": "5411",
  "settled_amount": 100.00,
  "local_transaction_amount": 110.00,
  "local_transaction_currency_cd": "USD"
}

credit.instalment_status.change

Use this event to track the lifecycle of an instalment loan, including an amendment or restructuring.

Payload fields

FieldTypeNullableDescription
loan_idintegerNoInstalment loan identifier.
account_idintegerNoCredit account identifier.
previous_statusstringYesLoan status before the change. null for a loan creation event.
current_statusstringNoLoan status after the change.
parent_loan_idintegerYesParent loan identifier for a restructured or replacement loan.

Status values

ACTIVE, INACTIVE, CLOSED, AMENDED

Example

{
  "loan_id": 98765,
  "account_id": 12345,
  "previous_status": null,
  "current_status": "ACTIVE",
  "parent_loan_id": null
}

credit.instalment_repayment_status.change

Use this event to track the status and payment dates of an individual scheduled instalment repayment.

Payload fields

FieldTypeNullableDescription
repayment_idintegerNoInstalment repayment identifier.
loan_idintegerNoInstalment loan identifier.
account_idintegerNoCredit account identifier.
previous_statusstringYesRepayment status before the change. null for a repayment creation event.
current_statusstringNoRepayment status after the change.
payment_due_datestring, dateNoScheduled payment due date.
payment_datestring, dateYesDate on which the repayment was paid.

Status values

PENDING, PARTIAL, PAID, OVERDUE, CHARGED, CANCELLED, TRANSFERRED, TERMINATED

Example

{
  "repayment_id": 24680,
  "loan_id": 98765,
  "account_id": 12345,
  "previous_status": "PENDING",
  "current_status": "PAID",
  "payment_due_date": "2026-10-15",
  "payment_date": "2026-10-14"
}

credit.repayment_status.change

Use this event to track an overall account or statement repayment status. The amount fields describe how a received transaction was allocated across repayment buckets.

Payload fields

FieldTypeNullableDescription
repayment_idintegerNoRepayment identifier.
account_idintegerNoCredit account identifier.
statement_idintegerNoBilling statement identifier.
previous_statusstringYesRepayment status before the change. null for a repayment creation event.
current_statusstringNoRepayment status after the change.
principal_paid_amountnumberNoAmount allocated to principal.
fee_paid_amountnumberNoAmount allocated to fees.
interest_paid_amountnumberNoAmount allocated to interest.
repayment_amountnumberNoTotal repayment amount.
repayment_due_datestring, dateYesRepayment due date.
settled_atstring, dateYesSettlement date.
transaction_referencestringYesRelated transaction reference.
transaction_identifierstringYesRelated external transaction identifier.
parent_transaction_idintegerYesRelated parent transaction identifier, when applicable.

Status values

IN_ARREARS, LATE_PAYMENT, MIN_REQUIRED, OVERDUE, OVERPAID, PENDING, REPAID_IN_FULL, REPAYMENT_DUE, STATEMENTED_REPAID

Example

{
  "repayment_id": 24680,
  "account_id": 12345,
  "statement_id": 67890,
  "previous_status": "REPAYMENT_DUE",
  "current_status": "REPAID_IN_FULL",
  "principal_paid_amount": 90.00,
  "fee_paid_amount": 5.00,
  "interest_paid_amount": 5.00,
  "repayment_amount": 100.00,
  "repayment_due_date": "2026-10-15",
  "settled_at": "2026-10-14",
  "transaction_reference": "transaction-ref-123",
  "transaction_identifier": "external-transaction-456",
  "parent_transaction_id": null
}

Did this page help you?