Skip to main content
The bridge runs in your Cloudflare account. SellAuth delivers an invoice only after Skinloop confirms payment.

Before you start

You’ll need a Cloudflare account, a GitHub account, and a SellAuth shop on a plan that supports custom payment methods.

1. Deploy the bridge

Click the button below, connect GitHub to Cloudflare, and enter these settings when prompted: Keep API keys in Cloudflare secrets, not GitHub or normal variables. Deploy to Cloudflare

2. Copy the Worker URL and approve it

In Cloudflare → Workers & Pages → your Worker → Domains & Routes, turn on the Production workers.dev URL and copy it. Example:
Turn on the production Worker URL in Cloudflare Domains & Routes In Skinloop → Settings → Checkout Settings → Checkout Redirect Origins, add your Worker URL without any path. Use your own URL, not the example above. Approve the Worker URL in Skinloop Checkout Redirect Origins

3. Connect Skinloop’s webhook

  1. Open your Worker URL and copy its webhookEndpoint.
  2. In Skinloop → API Keys & Webhooks → Webhooks, add that endpoint.
  3. Copy the signing secret Skinloop shows once. In Cloudflare → Workers & Pages → your Worker → Settings → Variables and Secrets, add it as a Production Secret named SKINLOOP_WEBHOOK_SECRET_CURRENT, then deploy.
Add the Skinloop webhook signing secret in Cloudflare

4. Add the SellAuth payment method

In SellAuth → Payment Methods, create a Custom Payment Method with Redirect to URL. Use your Worker URL followed by /pay?invoice={id}. Example (replace the domain with yours):
Keep {id} exactly as written; SellAuth fills in the numeric invoice ID. Do not use {unique_id}. This integration accepts USD invoices only. Choose Redirect to URL and enter the SellAuth Worker payment URL Download the Skinloop payment-method icon

5. Test before enabling it for buyers

Use a SellAuth invoice with a valid buyer email to create a low-value unpaid Rust order. The bridge sends that invoice email to Skinloop when creating the checkout. Check that Skinloop shows the correct amount, a cancelled checkout does not deliver the invoice, and a completed payment marks it paid once. Enable the method for buyers only after this test succeeds.

If checkout does not open

In Cloudflare → Workers & Pages → your Worker → Observability → Logs, find the failed /pay request by its time and open it. Send Skinloop support the time (including time zone), HTTP status, and error message shown to the buyer. If Cloudflare shows a Ray ID in the request details, include it as the support reference. You can also send the relevant log entry or a screenshot, but hide the invoice ID, buyer details, and any secrets first. Never send API keys or signing secrets. If no logs appear, turn on Workers Logs in Cloudflare’s Observability settings. Do not retry a checkout if a payment may already be in progress; contact support instead.
Rust only. A return page does not prove payment. The invoice and amount must match a payment confirmed by Skinloop.