NextSign API
More

White-Label Partner Program

Offer e-signing that looks like your own, on your domain and brand. Refer customers, earn a kickback, and get an API key for every new account.

The partner program lets an existing NextSign company refer new customers. Customers who sign up through your referral link are linked to your company for good. From then on they can get a discount on credits, you earn a kickback on what they spend, and if you integrate NextSign for your customers, you can receive an API key for each new account through a webhook.

With full white-labelling, signing pages, signing links and emails carry your own domain and brand, so the signing flow looks like your own solution. See White-Labelling.

How It Works

NextSign sets you up as a partner

Partner status and the commercial terms are configured by NextSign on your company. There is no self-service signup and no API for it. Contact NextSign to become a partner.

Copy the link from Dashboard → Partners and share it with the companies you refer.

The customer signs up

The signup page shows your company's name and logo. When the account is created, the new company is permanently attributed to yours.

You receive the new account (optional)

If the integration webhook is enabled for you and the customer consents, NextSign creates an API key for the new account and sends it to your webhook.

Credit purchases earn a kickback

Every credit purchase the customer makes is discounted by your agreed discount, and your agreed kickback is recorded to your company.


Partner Configuration

Your terms are stored on your company and are set by NextSign.

FieldTypeDescription
isPartnerbooleanWhether the company is an active partner. Discounts, kickbacks and the webhook only apply while this is true
codestringOptional friendly referral code, such as acme. Without one, your company ID is used in the link
kickbackPercentnumberYour share of what referred customers pay, as a fraction: 0.15 means 15%
discountPercentnumberThe discount referred customers get on credits, as a fraction: 0.10 means 10%
webhookEnabledbooleanWhether you can receive the partner.customer.registered webhook

The percentages are read live at the time of each purchase. They are not locked in when a customer signs up. If your terms change, the new percentages apply to the next purchase of every customer you have referred. Purchases already recorded stay as they are.


https://www.nextsign.dk/user/register?ref=<code>

ref accepts either your referral code or your company ID. The link in Dashboard → Partners uses your code if you have one. For signups in another language, the dashboard adds a locale prefix, for example /en/user/register?ref=acme.

Co-branded signup

The signup page looks up the ref value with a public endpoint and, if it belongs to an active partner, shows your name and logo:

GET https://api.nextsign.dk/v3/public/partner/:ref
200 OK (active partner)
{
  "isPartner": true,
  "name": "Acme ApS",
  "logo": "...",
  "webhookEnabled": true
}

For an unknown ref, or for a company that is not an active partner, the endpoint returns 200 with { "isPartner": false } and the signup page looks like a normal signup.

Attribution

Attribution happens once, when the account is created through the link. It is permanent and is never moved to another company.

  • It is set even if the referring company is not a partner yet, so customers you refer before you become a partner count once you do.
  • An existing NextSign company cannot be attached to you afterwards by opening your link.
  • Every signup through a referral link also gives the referring company 25 free credits. This is the general refer-a-friend perk and applies to partners and non-partners alike.

Discount and Kickback

Only credit purchases count, whether the customer buys credits manually or through auto-refill by card, invoice or EAN.

  • Discount: the customer pays the credit price reduced by discountPercent. At card checkout it shows as a Partner referral discount coupon. Auto-refills are charged at the discounted price directly.
  • Kickback: you earn kickbackPercent of the amount the customer actually paid, excluding VAT and after the discount.

Example: with a 10% discount and a 15% kickback, a customer buys credits listed at 1,000 DKK excl. VAT.

Amount
Customer pays (excl. VAT)900 DKK
Customer's saving100 DKK
Your kickback (15% × 900 DKK)135 DKK

Kickbacks are recorded as a balance owed to your company, once per invoice. Payout is handled manually by NextSign.

Partner dashboard

Dashboard → Partners shows your referral link, your current percentages, and for each referred customer their signup date, spend, the kickback you have earned and the discount they have received.


Integration Webhook

If you integrate NextSign for your customers, you can receive an API key for every new account the moment it signs up through your link. This feature is off by default. Ask NextSign to turn on webhookEnabled for your company.

Set up the webhook

Go to Dashboard → Webhooks and create a webhook with the trigger New referred customer (partner.customer.registered). The trigger only appears in the list for partners with webhookEnabled. The URL, method, active toggle and custom headers work as described in Webhooks.

When webhookEnabled is on, the signup page shows an extra checkbox the customer must tick before continuing:

I accept that NextSign creates and sends integration details to your company name.

The key is only created and sent when all of the following are true:

  • the customer signed up through your referral link and ticked the consent box
  • your company is an active partner with webhookEnabled
  • you have at least one active webhook with the partner.customer.registered trigger

If you have no matching active webhook, no key is created.

Request

NextSign sends one request to each matching webhook, using the method you configured (POST by default) and your custom headers. If you do not set Content-Type yourself, NextSign sends application/json.

Payload
{
  "trigger": "partner.customer.registered",
  "company": {
    "id": "66263484e601d81006d1a132",
    "name": "Sample Customer ApS",
    "cvr": "12345678",
    "apiKey": "key_Wb22OsfMPpEkAHeS6LHqBWoaFkpEuCdyZx3pt5RvICo"
  }
}
FieldTypeDescription
triggerstringAlways partner.customer.registered
company.idstringThe new customer company's ID
company.namestringThe company name entered at signup
company.cvrstringThe company's CVR number
company.apiKeystringA new API key for the customer's account, in full

The payload contains exactly these fields. Nothing else is sent.

Delivery

This webhook is delivered differently from case and flow webhooks:

  • One attempt only. There is no retry, and the key is never sent again. If your endpoint is down or returns an error, the key is lost to you.
  • No signature. NextSign does not sign the request. To verify that it came from NextSign, configure a shared secret as a custom header, such as X-Webhook-Secret, and check it in your handler.
  • Not in delivery runs. Deliveries of this trigger do not appear in the webhook's recent runs in the dashboard.
  • Signup waits for you. The request is sent while the customer's account is being created, so a slow endpoint makes their signup slow.

Respond with a 2xx status as fast as you can. Store the payload first and do any slow work, such as provisioning on your side, in a background job afterwards.

If a delivery is lost, the customer still has the key in their account, but the full key cannot be shown again. Ask the customer to create a new key under Dashboard → Config → API Keys and share it with you, and to revoke the unused one.

Use the key

The key belongs to the customer's company. Use it like any other API key, with Authorization: Bearer against https://api.nextsign.dk/v3/api/*:

cURL
curl https://api.nextsign.dk/v3/api/cases \
  -H "Authorization: Bearer $CUSTOMER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Rental agreement",
    "recipients": [{ "name": "Andreas Lauridsen", "email": "al@example.com" }],
    "documents": [{ "name": "contract.pdf", "content": "JVBERi0xLjQK..." }]
  }'

See Create a Case for the full request reference.

  • Full access. The key is created as the person who signed up, who is an admin of the new company, so it can do everything that person can.
  • Attributed to the person who signed up. Cases created with the key come from that person unless you name another sender. See Who your cases belong to.
  • Visible to the customer. The key appears in the customer's API keys as Partner integration (your company name). It does not expire, but the customer can revoke it at any time, after which requests fail with 401 key-revoked.

Treat the key as a secret. It gives full access to your customer's account. Store it encrypted, keep it out of logs and client-side code, and never pass it on.

Example handler

Node.js / Express
const express = require('express');

const app = express();

app.use(express.json());

app.post('/webhooks/nextsign/partner', async (req, res) => {
  if (req.headers['x-webhook-secret'] !== process.env.NEXTSIGN_WEBHOOK_SECRET) {
    return res.status(401).send('Unauthorized');
  }

  const { trigger, company } = req.body;
  if (trigger !== 'partner.customer.registered') {
    return res.status(200).send('Ignored');
  }

  // Store the key before responding. It is sent once and never again.
  await saveCustomerKey({
    companyId: company.id,
    name: company.name,
    cvr: company.cvr,
    apiKey: encrypt(company.apiKey),
  });

  res.status(200).send('OK');

  // Slow provisioning work belongs in a background job.
  enqueueCustomerProvisioning(company.id);
});

app.listen(3000);

White-Labelling

Combine these to make signing look like part of your own product:

WhatHow it looks to the recipientWhere to set it up
Own signing domainSigning pages open on your domain, such as sign.yourcompany.comDashboard → Config → Integrations → Custom signing domain (paid add-on, set up with a CNAME record)
Own email domainSigning emails are sent from your domain instead of a NextSign senderEmail domain add-on (paid), then Dashboard → Config → Company → DNS
Own logo and designYour logo, colours and styling on the signing pagesDashboard → Config → Design
Neutral document keyThe document key printed on signed PDFs reads Document Key instead of NextSign Document KeyPart of a full white-label agreement. Contact NextSign

The signing links the API returns in signingUrl automatically use the account's own signing domain once it is active, so an integration needs no changes to benefit from it.

Branding is set per NextSign account. Each customer account has its own logo, design, signing domain and email domain.