Skip to content

[Bug Report: API Field Missing] GHL Custom Payment Provider β€” payment_initiate_props Never Fires (Bug Report)Β #308

Description

@micheljacson-0312

πŸ› Describe the Bug

Our custom payment provider iframe never receives the payment_initiate_props event from HighLevel, so checkout can never load.

When a customer opens an invoice or payment link, HighLevel loads our registered paymentsUrl iframe (HTTP 200, confirmed in Network tab). The iframe loads correctly and repeatedly dispatches the documented custom_provider_ready event to window.parent. However, HighLevel never dispatches payment_initiate_props back β€” in fact it sends NO postMessage of any kind.

We verified this with an in-iframe postMessage logger: over 12+ seconds, the iframe records 30+ outbound custom_provider_ready messages and ZERO inbound messages from the parent.

The custom provider is fully configured and verified via HighLevel's own API (GET /payments/custom-provider/connect?locationId=... returns 200 with live + test config), and the sub-account UI shows the provider Connected + Default in both live and test modes. So this is not a "provider not connected" problem.

This is the same behavior as issue #281 (custom provider iframe never receives payment_initiate_props; entity-providers resolves entityId=undefined).

Environment:

πŸ“ API Endpoint

/payments/custom-provider/connect (frontend checkout host β†’ payment_initiate_props postMessage handshake)

βœ… Expected Behavior

After our iframe dispatches { type: 'custom_provider_ready', loaded: true } to window.parent, HighLevel should dispatch the payment_initiate_props event back to the iframe containing the payment context (publishableKey, amount, currency, mode, orderId/transactionId, contact, locationId).

The iframe would then render the payment form and process the payment.

πŸ’» Screenshots or Code Samples

Our outbound handshake (fires correctly, every ~400ms):

window.parent.postMessage(

{ type: 'custom_provider_ready', loaded: true, addCardOnFileSupported: true },

'*'

);


In-iframe postMessage log (from our debug overlay):

β„Ή inIframe=true Β· referrer=https://link.profdrjaved.com/ Β· ancestorOrigins=[https://link.profdrjaved.com/]

⬆ OUT custom_provider_ready β†’ 1 ancestor(s)

⬆ OUT custom_provider_ready β†’ 1 ancestor(s)

... (repeats 30+ times over 12 seconds)

[no messages received from parent] ← ZERO inbound messages


Provider config proof β€” GET /payments/custom-provider/connect?locationId=XATuRqXAuNpHyAST9U1b β†’ 200:

{

"locationId": "XATuRqXAuNpHyAST9U1b",

"marketplaceAppId": "69cf97f0050116492e8bbd4a",

"paymentsUrl": "https://payfast.10xdigitalventures.com/checkout",

"providerConfig": {

"live": { "liveMode": true, "publishableKey": "pk_c18aba88f8001f9d976df4c026488964" },

"test": { "liveMode": false, "publishableKey": "pk_c18aba88f8001f9d976df4c026488964" }

}

}


Sub-account UI confirms: live mode enabled βœ…, test mode enabled βœ…, provider set as Default βœ….
Network: initiate β†’ 201, entity-providers?altId=XATuRqXAuNpHyAST9U1b&altType=location β†’ 200, display β†’ 201, /checkout iframe β†’ 200.

Test payment link (fails on a brand-new link too): https://link.profdrjaved.com/payment-link/6a4c9347c981f3feae6e7d25

Same behavior as issue #281 (entity-providers resolves entityId=undefined; payment_initiate_props never dispatched).

Product Area *(dropdown) β†’ payments select karo (agar list mein payments ho). Agar payments na ho to other / sabse qareeb wala.

Product Area

payments

πŸ“‹ Use Case

We are shipping a custom payment provider (PayFast for Pakistan) so HighLevel sub-accounts can collect payments on invoices, payment links, funnels, and subscriptions through their own gateway.

The integration is completely blocked at the final step: HighLevel loads our checkout iframe but never dispatches payment_initiate_props, so no customer can pay. Everything on our side is verified working (provider registered, connect config saved, live + test modes enabled, provider set as Default, ready handshake firing, TLS + no-store cache headers). We need HighLevel to dispatch the payment context event so checkout can function.

🚨 Why Should This Be Prioritized?

This is a complete, revenue-blocking outage for the integration:

  • It fully blocks our ability to collect ANY payment through the custom provider β€” 0% success rate.
  • Every customer of this sub-account (and every future sub-account installing our app) is affected β€” they cannot pay a single invoice or payment link.
  • We are losing 100% of revenue through this gateway; clients cannot go live.
  • This prevents us from launching our marketplace payment app entirely.
  • Our side is fully verified correct (provider Connected + Default in live & test, ready handshake confirmed via postMessage logging, brand-new payment link still fails), so the blocker is on the HighLevel platform side, matching issue [BUG] payment_initiate_props never dispatched after custom_provider_ready in invoice flow β€” contradicts documented behaviorΒ #281.

🧠 Additional Context

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug-missing-api-fieldSomething isn't working in the Highlevel API or fields are missing in the API Endpoints.paymentsprocessed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions