Webhooks (mozzeno -> partner)

Principles

When the loan application process is integrated, the partner application can be notified of any status change through webhooks.

Specifications

Request Method

HTTPS POST

Request URI

The webhook url should be communicated by the partner to the support team:

  • There could be a different webhook url for each event (a unique webhook url is also possible)
  • The webhook url(s) can contain querystring parameters like API keys. Session or customer related context cannot be sent in the querystring parameters as the webhook url is shared for all customers. The context should be retrieved through the order reference in the Body.

Example : https://webapp.mysite.com/order-updates?APIKey=4c2-7b3a-4245-a5ee-acd174gtfv00c1d0bb

Request headers

Header

Example value

Description

Content-Type

application/json


X-Signature

hmacsha256=04c47cc2f008201...349aa16b89a

HMAC signature of the JSON body with a secret (RFC 2104).
The JSON body should be compressed (1 line) for signature. We take the Hex representation of the signature, in lower case. the signature is prefixed with "hmac256=" Online tools can help to validate your implementation of hmac256, f.i https://www.devglan.com/online-tools/hmac-sha256-online The secret should be provided to the support team. (optional)

X-Request-ID

e654b4c2-7b3a-4245-a5ee-acd100c1d0bb

unique ID for idempotency and replay protection (optional)

Body

Example

{
  "event": "loan_application.created",
  "event_date": "2025-04-23T15:45:00Z",
  "version": "1.0",
  "payload": {
    "order_reference": "order_123456",
    "requested_amount": 5980.00,
    "currency": "EUR",  
    "loan_application_id" : "fdbca7eb-4254-49b3-a4b2-27b5a9b248db",
    "loan_application_reference" : "900000589624",
    "loan_id" : "08d4fe96-f046-46c9-bdef-b2ad01639422",
    "loan_reference" : "900000595247"
  }
}

Documentation

Json field

Presence

Description

event

mandatory

Type of event, see table below

event_date

mandatory

The timestamp of the event in UTC.

version

mandatory

Technical field to manage version of the webhook in case of evolution

order_reference

conditional

Present if provided initially

requested_amount

mandatory

Amount requested for the loan, could be lower than the purchase amount if a part is not financed in the loan

currency

mandatory

ISO 3 digits

loan_application_id

mandatory

Technical unique identifier of the loan_application, can be used in API calls

loan_application_reference

mandatory

Loan application unique reference, information shared with the borrower

loan_id

conditional

Technical unique identifier of the loan, can be used in API calls A loan only exists after the loan application is completed

loan_reference

conditional

Loan unique reference, used as contract number and information shared with the borrower A loan only exists after the loan application is completed

List of possible events

Event

Description

loan_application.started

The loan application has been started, waiting for a first user to register on it

loan_application.registered

A first user has been added to the loan application, from there he can resume the order from his borrower account as well

loan_application.cancelled

The loan application has been abandoned before being completed

loan_application.completed

All steps of the loan application have been completed, the analysis will start

loan.manual_review_needed

The loan could not be automatically preapproved or declined, and it is currently being reviewed by an agent. It usually takes up to 4 business hours.

loan.declined

The loan has been declined (automatically or by an agent after manual review)

loan.preapproved

The loan has been preapproved (automatically or by an agent after manual review). The user(s) can now provide any potential evidence still required.

loan.cancelled

The loan has been cancelled by the user, typically during the analysis or after the preapproval

loan.ready_to_sign

All evidences of the preapproved loan have been successfully reviewed, and the user(s) can sign their loan contract online

loan.ready_to_grant

The loan contract has been signed and the loan is ready to grant. This event is specific to the tied credit use case, where a loan is used to finance a specific purchase. This means the delivery can be planned, and that the loan will be granted when we get the confirmation of the effective delivery to the customer.

loan.granted

The loan has been granted :

  • the loan amount will be disbursed to the defined parties, according to the loan contract
  • the instalment payments obligations of the borrower starts

loan.withdrawn

The loan has been withdrawn in one of the following cases:

  • usage of his withdrawal right of 14 days on the loan contract, without consequence on the potential purchase tied to the credit : he just decides to pay upfront eventually
  • usage of his withdrawal right on the purchase, lawfully resulting in the withdrawal of the loan contract. This occurs when 1/ merchant notifies us of the purchase withdrawal, and 2/ the loan amount is paid back on our bank account using the loan reference as communication

Loan application lifecycle