Quickstart

Onboard a venue and take your first payment against the sandbox in five minutes.

PreviewThe Payments API is in a design-partner preview and not yet publicly callable — endpoints and shapes may change. Request access to join the program. Building a venue integration today? Use the live Venue API.

1. Get your API keys

Yusker Payments is currently onboarding partners directly. Request API accessand you'll receive sandbox credentials: an API key (a username:secret pair) and an Application ID. All requests use HTTP Basic auth — see Authentication.

export YUSKER_KEY="USxxxxxxxx:secret"
export YUSKER_BASE="https://api.sandbox.yusker.com/v1"

2. Create a merchant

A venue is a Merchant, provisioned from an Identity that carries its KYB.

curl -u "$YUSKER_KEY" "$YUSKER_BASE/identities" \
  -H "Content-Type: application/json" \
  -d '{
    "entity": {
      "business_name": "Hawg'\''s Breath Saloon",
      "business_type": "INDIVIDUAL_SOLE_PROPRIETORSHIP",
      "email": "owner@hawgsbreath.ca",
      "country": "CAN"
    }
  }'

Then provision the merchant:

curl -u "$YUSKER_KEY" "$YUSKER_BASE/identities/IDxxxx/merchants" \
  -H "Content-Type: application/json" -d '{}'
# -> { "id": "MUxxxx", "onboarding_state": "APPROVED", "processing_enabled": true }

3. Tokenize a card

In production the diner's card is tokenized in the browser by yusker.js — no card data touches your servers. In the sandbox you can create a Payment Instrument from a test card directly.

curl -u "$YUSKER_KEY" "$YUSKER_BASE/payment_instruments" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "PAYMENT_CARD",
    "number": "4895142232120006",
    "expiration_month": 12, "expiration_year": 2029,
    "security_code": "123",
    "identity": "IDbuyer"
  }'
# -> { "id": "PIxxxx", ... }

4. Create a transfer

A Transfer debits the card and settles to the merchant, keeping your platform fee. Amounts are in the smallest currency unit (cents).

curl -u "$YUSKER_KEY" "$YUSKER_BASE/transfers" \
  -H "Content-Type: application/json" \
  -d '{
    "merchant": "MUxxxx",
    "source": "PIxxxx",
    "amount": 5000,
    "fee": 175,
    "currency": "CAD"
  }'
# -> { "id": "TRxxxx", "state": "SUCCEEDED", "amount": 5000, "fee": 175 }
That's a payment.
A SUCCEEDED transfer means the diner was charged $50.00, the venue is owed $48.25, and Yusker earned a $1.75 platform fee — all settled and ready to reconcile. Wire up Webhooks to receive the settlement asynchronously.