Skip to main content

Bon Voyage and Zopa Start Flow

Operator home is the merchant record, not a script URL.

  1. Open the merchant → Overview → Features matrix.
  2. On the Finance Assistant row, click the cog (Settings). That opens Finance Assistant Settings.
  3. Scroll to Zopa Settings (or use ↓ Skip to Zopa settings).
  4. Read launched applications on the merchant Enquiries tab (Zopa application status tile), or click Enquiries in the Settings header.

Lender Settings Bon Voyage stage is a preview of the post-submit screen. It does not hold Zopa credentials.

Settings header buttons: Enquiries, Back to Merchant, Back to Merchants. Snap / Humm / Propensio fields: Lender Apply start. Shopper form fields: Enquiry Page.

Shopper path those settings turn on:

  1. Calculator
  2. Enquiry page
  3. Bon Voyage
  4. Zopa Vendigo widget (hosted application)

Direct apply URL is the Apply for finance button when Finance Assistant is off for this lender. When FA is on, a failed widget start does not auto-open that URL.

Do not paste secrets onto this public page. Credential secrets are write-only (Leave blank to keep existing).

Zopa Settings in admin​

On the merchant: Finance Assistant → Zopa Settings. ⓘ How Zopa apply works in Bon Voyage.

The heading used to say “DivideBuy via Zopa”. DivideBuy retired in Aug 2026; the live heading is Zopa Settings. The HTML id #dividebuy-zopa-settings is a leftover anchor only.

Subtitle: Configure Zopa credentials used for the application start flow. Secrets are write-only and never shown once saved.

Configure:

  • Enable Zopa credit application
  • Default environment
  • Vertical ID
  • Accordion Sandbox credentials: Sandbox public key, Sandbox base URL, Sandbox secret key (optional), Sandbox secret status. Placeholders: Zopa sandbox public key, https://app.zopa.demo.vendigo.com, secret Leave blank to keep existing.
  • Accordion Live credentials: Live public key, Live base URL, Live secret key (optional), Live secret status. Placeholders: Zopa live public key, https://app.zopa.vendigo.com, secret Leave blank to keep existing.
  • Webhook token (optional), Webhook token status
  • Webhook URL (paste into Zopa → Webhook URL)

Save Zopa settings writes this section. Generate token mints the webhook token. Secrets are write-only. Leave a secret blank to keep the stored value.

What Zopa gets​

FieldValue
orderIdSame FinMatch reference as Admin Submission ID when mint succeeds (M…-P…-R…)
amountPurchase price from calculator (before deposit)
depositCustomer deposit from calculator
APR / termSelected credit product
product typeIFC or IBC derived from product APR
vertical IDFrom Vertical ID (admin default 8 when unset)
primary applicantEnquiry: name, email, phone, address, postcode
public key + base URLSandbox / Live credentials here

Vertical ID​

Zopa issues a vertical per merchant account. Pick the value from that merchant’s own Zopa integration guide. Sending a vertical the account is not approved for makes Zopa reject the application.

IDLabel in admin
1Solar Panels (Supply & Install)
2Renewables
3Furniture
8Home Improvements (admin default when unset)
9Home Improvements Upper
17Infinity Renewables Home Improvements Upper
19Renewables (legacy)

1 is a live option (added Aug 2026). 17 is a live option (added Sep 2026) and is not the same as 1. Do not assume every merchant should use 8.

Pick the ID from that merchant’s own Zopa integration guide, then Save Zopa settings. The start path sends the saved integer as-is (including 17; it does not collapse to 8). Unset still defaults to 8.

Status webhook​

Zopa posts application status updates (approved / referred / declined, e-sign URL, reference numbers, SAT note) to a per-merchant URL:

POST /api/webhooks/zopa?merchantId=…&token=…

In Zopa Settings: click Generate token, copy the full Webhook URL (paste into Zopa → Webhook URL) before Save Zopa settings, paste it into the merchant’s Zopa integration settings, then save in admin. The token is show-once; admin can regenerate, never reveal. Updates appear on the enquiry as a Zopa application status tile with a status history. Apply / start already minted the FinMatch reference (M{merchant}-P{partner}-R{sequence}) and stored the Applications ledger row under that id. An application already stored under a merchant order id keeps that old row; a later status can create a second row under the FinMatch reference. Old ids cannot be renamed. Credit status notification email is still off. No history backfill has run.

Hint: Per-merchant URL. Generate a token, copy the full URL shown above before saving (the token is never readable again), then paste it into the merchant’s Zopa integration settings and save here.

Hint: Zopa posts loan application status updates to this URL. Without a token the endpoint rejects deliveries. See cloud-run/finance-assistant/docs/ZOPA_WEBHOOK_SETUP.md.

Full runbook: cloud-run/finance-assistant/docs/ZOPA_WEBHOOK_SETUP.md.

Lender Settings Bon Voyage stage​

On Lender Settings → Finance Assistant, the stage nav Finance Assistant stages has Bon Voyage stage. Stage title is Finance Assistant — Bon Voyage.

Builder subtitle: Preview the post-submission “Thank you / Redirecting…” screen. (Config controls coming next.) That preview is not where operators save Zopa credentials.

Accordion subtitle: Core logic: finance-assistant.js, enquiry-page.js, bon-voyage.js (linked above the stack). Advanced adds Script links.

Runtime notes​

These scripts render the shopper Bon Voyage handoff. Operators do not deploy them from Admin. Production source of truth:

https://storage.googleapis.com/finmatch-p/scripts/

  • https://storage.googleapis.com/finmatch-p/scripts/finance-assistant.js
  • https://storage.googleapis.com/finmatch-p/scripts/bon-voyage.js
  • https://storage.googleapis.com/finmatch-p/scripts/start-finance-application-registry.js
  • https://storage.googleapis.com/finmatch-p/scripts/start-finance-application-request-builders.js

After the shopper submits enquiry:

  1. finance-assistant.js builds the start payload and renders Bon Voyage.
  2. bon-voyage.js calls /api/lenders/start/zopa/finance-application (via the merchant Finance Assistant proxy).
  3. Cloud Run returns hash, widgetScriptUrl, environment, and orderId.
  4. The browser loads the Vendigo widget with that hash.
  5. Cloud Run persists a session so Zopa’s status webhook can join back to the enquiry Zopa application status tile.

For FM-1234-5678-9102 (finmatch.io), Zopa launches from Bon Voyage when Finance Assistant includes lender zopa and Zopa Settings has sandbox/live credentials saved. That is a Finance Assistant Bon Voyage launch, not a static Direct apply URL redirect.

Troubleshooting​

  • config_not_found from start route: merchant profile missing, or Enable Zopa credit application is No.
  • public_key_missing or secret_key_missing: save the missing values on Zopa Settings, then Save Zopa settings.
  • Widget constructor missing: returned widgetScriptUrl did not load (blocked script or network).