SDKs

Umbra ERP provides a REST API that can be consumed from any programming language using standard HTTP clients.

LanguageLibraryInstall
JavaScript/Node.jsBuilt-in fetch or axiospnpm install axios
Pythonrequestspip install requests
PHPcURL or Guzzlecomposer require guzzlehttp/guzzle
RubyNet::HTTP or httpartygem install httparty
Gonet/http (built-in)N/A

Base URLs

All API requests should be made to the following base URLs:

  • Production: https://api.umbraerp.com
  • Staging: https://staging-api.umbraerp.com

Common headers

Every request to the Umbra ERP API should include these headers:

  • Name
    Authorization
    Type
    string
    Description

    Your JWT access token as a Bearer token: Bearer <your_access_token>.

  • Name
    Content-Type
    Type
    string
    Description

    Must be application/json for all POST/PUT requests.

Example: Complete sales flow

Here is a complete example showing how to create a quote and then convert it to an invoice:

Create a quote and convert to invoice

// Step 1: Create a quote
const quoteResponse = await fetch(
  'https://api.umbraerp.com/v1/sales/quotes',
  {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer <your_access_token>',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      customer_id: 'cust_123',
      items: [
        { description: 'Consulting Services', quantity: 10, unit_price: 15000 }
      ],
      currency: 'USD',
    }),
  }
)

const { quote_id } = await quoteResponse.json()

// Step 2: Convert quote to invoice
const invoiceResponse = await fetch(
  `https://api.umbraerp.com/v1/sales/quotes/${quote_id}/convert`,
  {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer <your_access_token>',
    },
  }
)

const invoice = await invoiceResponse.json()
console.log(invoice.invoice_id)

Was this page helpful?