Jurivas. for SaaS

Getting started

Authenticate every request with a scoped API key from the API keys page. Pass it as a bearer token in the Authorization header.

Install the SDK
npm install @jurivas/sdk
Base URL
https://api.jurivas.com/v1

Create your first invoice

Tax is calculated automatically based on the customer's jurisdiction.

import { Jurivas } from '@jurivas/sdk';

const jurivas = new Jurivas({
  apiKey: process.env.JURIVAS_API_KEY,
  baseUrl: 'https://api.jurivas.com/v1',
});

// Create an invoice — tax is calculated automatically
const invoice = await jurivas.invoices.create({
  customer: {
    email: 'ada@acme.com',
    name: 'Acme Inc.',
    country: 'FR',
  },
  currency: 'eur',
  lineItems: [
    {
      description: 'Pro plan — monthly',
      quantity: 1,
      unitPriceMinorUnits: 4900, // €49.00
    },
  ],
});

console.log(invoice.id, invoice.totalMinorUnits);

API endpoints

A complete, interactive reference is available in the API explorer.

Connect

Onboard your platform to Stripe Connect and manage payouts.

MethodEndpointDescription
POST/connect/accountsCreate a connected account
GET/connect/statusGet onboarding & payout status
POST/connect/account-linkGenerate an onboarding link
POST/connect/login-linkOpen the Stripe Express dashboard
Plans

Define the pricing plans your customers subscribe to.

MethodEndpointDescription
GET/plansList pricing plans
POST/plansCreate a plan
GET/plans/{id}Retrieve a plan
PUT/plans/{id}Update a plan
Subscriptions

Manage your platform subscription and billing cycle.

MethodEndpointDescription
GET/subscriptions/mineGet the current subscription
POST/subscriptionsCreate a subscription
PUT/subscriptions/{id}Change plan
DELETE/subscriptions/{id}Cancel a subscription
Invoices

Create invoices with automatic multi-jurisdiction tax.

MethodEndpointDescription
GET/invoicesList invoices (paginated)
POST/invoicesCreate an invoice
GET/invoices/{id}Retrieve an invoice
POST/invoices/{id}/voidVoid an invoice
Payments

Track collected payments, platform fees and net payouts.

MethodEndpointDescription
GET/paymentsList payments (paginated)
GET/payments/{id}Retrieve a payment
Tax

Calculate tax in real time across jurisdictions.

MethodEndpointDescription
POST/tax/calculateCalculate tax for a transaction
API keys

Issue scoped keys for server-to-server access.

MethodEndpointDescription
GET/api-keysList API keys
POST/api-keysCreate an API key
DELETE/api-keys/{id}Revoke / delete a key
Webhooks

Subscribe to signed real-time billing events.

MethodEndpointDescription
GET/webhooks/endpointsList endpoints
POST/webhooks/endpointsCreate an endpoint
PUT/webhooks/endpoints/{id}Update an endpoint
POST/webhooks/endpoints/{id}/testSend a test event

Verifying webhook signatures

Every delivery is signed so you can trust it came from Jurivas.

Each request carries a Jurivas-Signature header — an HMAC SHA-256 of the raw request body using your endpoint's signing secret. Compare it against your own computation before acting on the event.

import crypto from 'crypto';

function verify(rawBody, signature, secret) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(rawBody)
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected),
  );
}