Developer Documentation

Build with VLink

Everything you need to integrate stablecoin payments into your application. RESTful APIs, SDKs, and comprehensive guides.

Getting Started

Quick Start Guide

Get VLink integrated in under 5 minutes. Follow these steps to start accepting stablecoin payments.

1

Install the SDK

Terminal
# npm
npm install @vlink/react @vlink/core

# yarn
yarn add @vlink/react @vlink/core

# pnpm
pnpm add @vlink/react @vlink/core
2

Configure the Provider

_app.tsx
import { VLinkProvider } from '@vlink/react';

function MyApp({ Component, pageProps }) {
  return (
    <VLinkProvider
      merchantId="your_merchant_id"
      environment="production" // or "sandbox"
    >
      <Component {...pageProps} />
    </VLinkProvider>
  );
}
3

Add the Payment Button

Checkout.tsx
import { VLinkButton } from '@vlink/react';

function Checkout({ order }) {
  return (
    <VLinkButton
      amount={order.total}
      currency="USD"
      orderId={order.id}
      customerEmail={order.customerEmail}
      onSuccess={(payment) => {
        console.log('Payment successful:', payment.transactionHash);
        // Redirect to success page
        router.push('/order/success');
      }}
      onError={(error) => {
        console.error('Payment failed:', error);
      }}
    />
  );
}

That's it!

Your customers can now pay with stablecoins. VLink handles wallet connection, chain selection, and payment processing automatically.

SDKs

Official SDKs

Drop-in SDKs for popular frameworks and platforms.

Stable

React

@vlink/react
Stable

Next.js

@vlink/nextjs
Beta

Vue

@vlink/vue
Stable

JavaScript

@vlink/core
Stable

Node.js

@vlink/node
Beta

Python

vlink-python
Coming Soon

iOS

VLinkSDK
Coming Soon

Android

com.vlink.sdk
API Reference

RESTful API

Base URL: https://api.vlink.veritwin.com/v1

POST/payments

Create a new payment intent

ParameterTypeDescription
amountnumberAmount in cents
currencystringCurrency code (USD)
orderIdstringYour order reference
GET/payments/:id

Retrieve payment status

ParameterTypeDescription
idstringPayment ID
POST/payments/:id/confirm

Confirm a payment (server-side)

ParameterTypeDescription
idstringPayment ID
transactionHashstringOn-chain tx hash
GET/merchants/balance

Get merchant stablecoin balances

POST/merchants/withdraw

Withdraw funds to wallet

ParameterTypeDescription
amountnumberAmount to withdraw
tokenstringToken symbol
chainstringDestination chain
addressstringDestination wallet
Webhooks

Real-Time Events

Receive instant notifications when payment events occur. All webhooks are signed for security.

payment.created

Payment intent was created

payment.pending

Transaction submitted to blockchain

payment.confirmed

Payment confirmed on-chain

payment.failed

Payment failed or was rejected

Webhook Payload Example
{
  "id": "evt_1234567890",
  "type": "payment.confirmed",
  "data": {
    "paymentId": "pay_abc123",
    "amount": 9999,
    "currency": "USD",
    "orderId": "order_xyz",
    "transactionHash": "0x...",
    "chain": "ethereum",
    "token": "USDC",
    "confirmedAt": "2026-01-16T12:00:00Z"
  },
  "signature": "sha256=..."
}
Security

API Security

API Key Authentication

Use your secret API key in the Authorization header. Keep it secure and never expose it client-side.

Webhook Signatures

All webhooks are signed with HMAC-SHA256. Verify signatures before processing events.

IP Allowlisting

Optionally restrict API access to specific IP addresses in your dashboard settings.

Idempotency Keys

Use idempotency keys to safely retry requests without creating duplicate payments.

Ready to Build?

Create your merchant account and get your API keys to start integrating VLink today.