Skip to main content

Partner API Changelog

02-10-2026​

  • Published credit status notification keys are lender_reference and credit_application_status. Do not match on lender_application_id or lender_status.
  • Zopa loan_amount is a two-decimal string when the lender sends a loan field, or purchase price minus deposit when both are present and numeric. Otherwise null.
  • Partners send a test themselves: Send a test notification (POST /v1/notifications/test).

01-10-2026​

  • Removed credit_application.created. It was never sent to partners. The first credit status notification is credit_application.status_changed when the lender first responds. credit_application.test is unchanged. credit_application.snapshot is the pull API current-state envelope (not a webhook), built and off.

29-09-2026​

  • lender_status is the lender's raw code as a string, for example "CONDITIONALLY_APPROVED". It is not { "code", "description" }.
  • loan_amount is a two-decimal string when we have a session amount, otherwise null. Zopa’s webhook does not include an amount; we still send the session amount when we have one.
  • merchant_reference allows letters, digits, space, dots, dashes and underscores, up to 64 characters. Ends are trimmed; an internal space is kept (for example TQ7 3PG).

28-09-2026​

  • outcome removed before general availability; notifications carry the lender's status only.
  • quote_id renamed finmatch_quote_id before general availability, including the finance link parameter (quote_id is still accepted on the link).
  • Per-lender Zopa statuses and Propensio statuses pages. The Partner API menu lists Credit status notifications as a category.
  • Added credit status notifications: signed webhooks for credit_application.status_changed and credit_application.test. See Credit status notifications and Verifying notifications.
  • Quote responses now return data.finmatch_quote_id and echo data.merchant_reference.
  • Added the optional merchant_reference request field (max 64 characters, A–Z a–z 0–9 . _ -).
  • Amounts are documented as strings with two decimal places in requests ("loan_amount": "9000.00"), matching the responses, which have always returned strings ("7500.00"). JSON numbers are still accepted, so no change is needed to existing integrations.
  • Corrected the API reference: amounts in quote responses are strings, not numbers.
  • Rewrote the error reference to match the API exactly: the real error codes (MISSING_FIELD, INVALID_AMOUNT_FORMAT, UNAUTHENTICATED, MERCHANT_NOT_FOUND), the 422 AMOUNT_TOO_LOW / AMOUNT_TOO_HIGH responses, MERCHANT_CONFIGURATION_INCOMPLETE, the RateLimit-* headers and X-Request-Id, and a note that an empty products array is a 200, not an error.
  • A partner_id that doesn't match your API key now returns 400 INVALID_REQUEST instead of a 500.
  • The decimal-places message now reads "at most 2 decimal places", which is what the API has always accepted.

09-03-2026​

  • Added support for 3 lenders (Zopa, Snap Finance, Propensio)
  • Added new test merchants for different lenders
  • Updated schema to avoid confusion with first payments.
    • "first_payment_due_value" and "first_payment_due_unit" have been changed to "initial_payment_due_value" and "initial_payment_due_unit".

Example​

    "first_payment_type": "Upfront Instalment",
"first_payment_amount": "208.33",
"initial_payment_due_value": 0,
"initial_payment_due_unit": "days",

01-12-2025​

  • Launched Partner API with one support lender (3 to follow Q1 2026)