Solidgate
For teams in high-risk verticals who already use Solidgate. You'll have a live Solidgate connection processing funnel payments with the correct metadata. You need a Solidgate account and four credentials (an API key pair plus a webhook key pair).
What this integration does#
Zellify connects to Solidgate via four credentials: an API key pair (Public Key + Secret Key) for outbound calls and a webhook key pair (Webhook Public Key + Webhook Secret Key) for inbound signed events. On the paywall Zellify creates a Solidgate Customer and a Solidgate Order, then renders the Solidgate payment form (popup or inline) inside the funnel. Webhooks are registered automatically; no manual webhook configuration is required.
Connect Solidgate#
- Open Dashboard → Settings → Payments at dash.zellify.app/settings?tab=payments.
- Locate Solidgate. Live and Sandbox connect independently.
- Click Connect next to the environment you want to wire up.
- Paste all four credentials into the labeled fields.
- Click Connect.
API keys vs webhook keys#
Solidgate uses two separate key pairs. This is a security property of Solidgate, not something you can change.
| Field | Purpose | Where to find in Solidgate |
|---|---|---|
| Public Key | Identifies your account on outbound API calls | Solidgate Dashboard → Developers → API keys |
| Secret Key | Signs outbound API calls | Solidgate Dashboard → Developers → API keys |
Webhook Public Key (prefix wh_pk_*) | Identifies your webhook configuration | Solidgate Dashboard → Developers → Webhooks |
| Webhook Secret Key | Verifies signatures on incoming webhook events | Solidgate Dashboard → Developers → Webhooks |
Match every credential to the environment you're connecting (sandbox keys won't work on the live connection). If you see "Invalid signature" on save, one of the four values is either from the wrong environment or pasted into the wrong field.
Checkout modes#
Popup or inline. Both supported.
Metadata#
Solidgate uses two fields to identify a payment: customer_email (the visitor's email) and customer_account_id (a stable identifier linking Solidgate and Zellify records). Zellify sets customer_account_id to the funnel app_user_id, then attaches the rest of the contract under metadata:
| Object | Fields |
|---|---|
| Customer | customer_account_id = app_user_id; customer_email = funnel email; metadata.organization_id, metadata.funnel_id, metadata.campaign_id, metadata.experiment_id, metadata.fbp, metadata.fbc |
| Order | metadata.app_user_id, metadata.product_id |
fbp and fbc are the Meta browser and click identifiers, attached when present. See Checkout metadata.
Webhooks#
Solidgate sends events to your endpoint. Zellify does not. For the event matrix see Payment events.
Test and verify#
- Switch Solidgate to test mode.
- Run a test funnel payment.
- Confirm in Solidgate Dashboard → Orders.
- Confirm
customer_account_idmatchesapp_user_idfrom the funnel session.
Going live#
Switch all four keys to production. Re-run a live test. Confirm the first real transaction.
Troubleshooting#
| Symptom | Likely cause | Fix |
|---|---|---|
| "Invalid signature" on save | A credential pasted into the wrong field, or mixed sandbox/live values | Re-paste each value in the labeled field; confirm all four come from the same environment |
| Webhook events fail signature verification | Wrong webhook secret | Copy the Webhook Secret Key (from Developers → Webhooks), not the Secret Key (from Developers → API keys) |
| Webhook public key not accepted | Pasted a value without the wh_pk_ prefix | The Webhook Public Key starts with wh_pk_; the API Public Key does not |
Missing customer_account_id on test | Older Solidgate account without customer_account_id enabled | Contact Solidgate to enable the field |