Appearance
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.
