Quickstart Guide

Get up and running with Orvion in minutes. This guide will walk you through creating your first invoice.

Prerequisites

For API integration:

  • Any HTTP client (curl, Python, Node.js, or your preferred language)
  • Python 3.7+ or Node.js 16+ (only if following the Python/Node.js examples below)
  • curl (only if following the curl examples below)

For SDK integration:

For MCP integration:

Step 1: Sign Up

  1. Navigate to the Orvion dashboard
  2. Sign up for an account
  3. Verify your email address

Step 2: Create an Organization

When you first sign up, an organization is automatically created. You can:

  • Use the default organization
  • Create additional organizations from the dashboard

Step 3: Create an API Key

  1. Go to SettingsAPI Keys
  2. Click Create API Key
  3. Copy the key immediately (it won't be shown again)
  4. Store it securely

Your API key looks like: apikey_01HXYZ123ABC...

Step 4: Make Your First API Call

Let's create your first invoice:

import requests
url = "http://localhost:8000/api/v1/invoices"
headers = {
"Authorization": "Bearer your-api-key-here",
"Content-Type": "application/json"
}
data = {
"customer_name": "Acme Corporation",
"customer_email": "[email protected]",
"amount": 100.00,
"currency": "USD",
"status": "sent",
"due_at": "2025-12-01T10:00:00Z"
}
response = requests.post(url, json=data, headers=headers)
if response.status_code == 201:
invoice = response.json()
print(f"Invoice created: {invoice['number']}")
print(f"Invoice ID: {invoice['id']}")
else:
print(f"Error: {response.status_code}")
print(response.text)

Step 5: Verify in Dashboard

  1. Go to Invoices in the dashboard
  2. You should see your newly created invoice
  3. Click on it to view details

Step 6: Mark Invoice as Paid

When you receive payment, mark the invoice as paid:

import requests
invoice_id = "inv_01HXYZ123ABC" # Replace with your invoice ID
url = f"http://localhost:8000/api/v1/invoices/{invoice_id}/mark-paid"
headers = {
"Authorization": "Bearer your-api-key-here",
"Content-Type": "application/json"
}
response = requests.post(url, json={}, headers=headers)
if response.status_code == 200:
invoice = response.json()
print(f"Invoice marked as paid: {invoice['status']}")
else:
print(f"Error: {response.status_code}")

Next Steps

Common Issues

401 Unauthorized

  • Check that your API key is correct
  • Ensure you're using Bearer prefix in the Authorization header
  • Verify the API key hasn't been revoked

404 Not Found

  • Ensure you're using the correct endpoint URL
  • Check that the invoice ID exists in your organization

422 Validation Error

  • Verify all required fields are provided
  • Check that amount is positive
  • Ensure currency is a valid ISO code

Need Help?