Skip to content

Choose Your Path

Every integration starts with the same Quickstart: sign up, create one entity, generate a sandbox key, and issue one sandbox invoice. This page helps you choose what to build on top of that.

Compare The Four Paths

JavaScript SDKEmbed SDKReact UIDirect REST API
Best forBackend workflows you controlWorking invoicing screens in an existing appReact teams that want to own the UI codeAny language, or teams writing their own client
What you buildYour own UI, or noneA container element on your pageScreens, from components you copy into your appHTTP requests and client code
KeyAccount or entity key, on your serverEntity key (ek_*)Account or entity key, on your serverAccount or entity key, on your server
Backend neededYesUsuallyYesYes
Typical time to first invoiceHalf a day to 2 daysA few hours1 to 3 days1 to 3 days
Start hereJavaScript SDK quickstartEmbed SDK quickstartReact UI getting startedAuthentication, then the Create Invoice API

Pick The JavaScript SDK If

  • you want typed backend workflows for invoices, customers, items, payments, or exports
  • you need your own UI, or no UI at all
  • you want the shortest route from a sandbox proof of concept to production

Initialize once on the server, then create an invoice in your entity:

Initialize SDKtypescript
import SpaceInvoices from "@spaceinvoices/js-sdk/sdk";

const sdk = new SpaceInvoices("YOUR_API_KEY");
Create invoicetypescript
const invoice = await sdk.invoices.create({
  customer: {
    name: "Acme Corporation",
    email: "billing@acme.com",
  },
  items: [
    {
      name: "Consulting",
      quantity: 10,
      price: 150,
    },
  ],
}, { entity_id: "YOUR_ENTITY_ID" });

Not ideal if you want a ready-made invoicing interface this week.

Next: JavaScript SDK quickstart and the Quickstart.

Pick The Embed SDK If

  • you want invoicing screens in your app without owning frontend component code
  • you need the shortest path to a working embedded UI
  • an iframe-based integration boundary is acceptable

Add a container, then open the invoice list inside it:

Quick Starttypescript
import { SpaceInvoices } from "@spaceinvoices/embed-sdk";

const si = new SpaceInvoices({
  apiKey: "ek_live_your_entity_api_key",
  entityId: "ent_123",
  onAction: (_action) => {},
});

// Open invoice list in the container
si.open("invoices", { container: "#space-invoices-embed" });

Not ideal if you need deep DOM-level customization or want the components to follow your own design system. Choose the React UI for that.

Next: Embed SDK quickstart and User Access.

Pick The React UI If

  • you already ship React
  • you want copy-paste components you own and can change
  • you need more flexibility than an embed, without building every screen from scratch

Add the kit with its installer, then pick the screens you need:

Terminal window
npx @spaceinvoices/react-ui@latest init
npx @spaceinvoices/react-ui@latest add invoices/create-invoice-screen

Not ideal if your team is not on React or you want a UI that needs no maintenance.

Next: React UI getting started and Providers.

Pick The Direct REST API If

  • your backend is not JavaScript
  • you want raw HTTP without SDK abstractions
  • you need full control over transport, auth, and client generation

Create an invoice in one entity. The x-entity-id header selects the entity:

Terminal window
curl -X POST "https://eu.spaceinvoices.com/invoices" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "x-entity-id: YOUR_ENTITY_ID" \
-H "Content-Type: application/json" \
-d '{
"items": [
{ "name": "Consulting", "quantity": 10, "price": 150 }
]
}'

Next: Authentication to choose your key type, then the API reference.

Zapier, If You Do Not Write Code

Zapier creates invoices or estimates from CRM, forms, or spreadsheets with no backend work. It does not offer embedded UI or custom backend logic. See Zapier.

Choose By Product Shape

If your product looks like thisStart here
One business, one issuing entityQuickstart
One platform, many customer businessesMulti-Tenancy
You need end-user dashboard accessUser Access
You want the docs mapped to your marketUse Cases

Sandbox And Production

Sandbox and production are separate environments with separate keys and data. Sandbox is free for building and testing. Production is billed.

SandboxProduction
CostFree, with no time limit€49/month platform fee
EntitiesSandbox entitiesThe first entity has no per-entity charge; each additional entity is €3/month
DocumentsTest data only100 documents per entity per month are included, then billed per document
Keyssk_sandbox_*, ek_sandbox_*sk_live_*, ek_live_*
EmailSandbox send limits apply, see EmailLive delivery to your customers

Current rates are on spaceinvoices.com/pricing.

What The First Week Usually Looks Like

  1. Sign up and create a sandbox entity.
  2. Generate the key type that matches your path.
  3. Issue one sandbox invoice.
  4. Confirm rendering, tax behavior, and the delivery flow.
  5. Decide how your end users will access invoicing, if applicable.

Next Steps