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 Settings → API 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?