Skip to content

Integration with UI (Redirect Flow)

The simplest way to integrate Skinslink. Create a deposit intent, redirect the user, and listen for webhooks.

Flow Overview

Your Platform                     Skinslink
─────────────                     ─────────
     │                                 │
     │  1. POST /merchant/create-intent│
     │ ──────────────────────────────► │
     │                                 │
     │  { id, merchant_tx_id, url }    │
     │ ◄────────────────────────────── │
     │                                 │
     │  2. Redirect user to `url`      │
     │ ──────────────────────────────► │
     │                                 │
     │     User selects items,         │
     │     confirms trade on           │
     │     Skinslink deposit page      │
     │                                 │
     │  3. Webhook: trade status       │
     │ ◄────────────────────────────── │
     │                                 │
     │  4. User redirected back        │
     │ ◄────────────────────────────── │

Step 1: Create a Deposit Intent

Call Create Intent from your backend. You'll get back a url where the user completes the deposit.

TIP

You can pre-fill game, partner, and token if you already have the user's Steam trade URL. Otherwise, the deposit page will ask the user to provide them.

Step 2: Redirect the User

Take the url from the response and redirect the user:

javascript
// Express.js example
app.post('/deposit', async (req, res) => {
  const intent = await createDepositIntent({
    merchant_tx_id: generateOrderId(),
    result_url: 'https://yoursite.com/deposit/complete',
  })

  res.redirect(intent.data.url)
})

The user will see the Skinslink deposit page where they can:

  • Enter their Steam trade URL (if not pre-filled)
  • Browse their inventory with real-time pricing
  • Select items and confirm the deposit

Step 3: Receive Webhook

When the trade status changes, Skinslink sends a webhook to your configured callback URL.

→ See Webhooks for payload format and setup.

Step 4: Check Status (Optional)

You can also poll for status using Deposit Status.