For Developers

Integrate once. Route anywhere.

Stop building separate integrations for each PSP. Oruve's API is clean, consistent, and built for production. One canonical order model. Real-time webhooks. Deterministic routing. Everything just works.

Designed for developers

API built for real production workloads

Canonical model

One order model that works across all production systems. No vendor-specific schema translation needed.

Webhooks & events

Real-time events for every state change. Build reactive workflows that stay in sync with fulfillment.

Idempotent & reliable

Retry safely without duplicating orders. Deterministic request IDs and automatic deduplication.

Sandbox & docs

Full sandbox environment with test data. Comprehensive API reference and integration guides.

For developers

Integrate once. Ship faster.

Our API is clean, consistent, and built for real production workloads.

  • Canonical print job model
  • Real-time webhooks & events
  • Idempotent, reliable API
  • Sandbox & detailed docs
  • SDKs for Python, JS, Go & Java
curl https://api.oruve.com/v1/orders \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "product": "poster",
    "size": "A2",
    "quantity": 250,
    "paper": "matte_200gsm",
    "shipping_address": {
      "city": "Berlin",
      "country": "DE"
    }
  }'
import oruve

client = oruve.Client(api_key="YOUR_KEY")

order = client.orders.create(
    product="poster",
    size="A2",
    quantity=250,
    paper="matte_200gsm",
    shipping_address={
        "city": "Berlin",
        "country": "DE",
    },
)

print(order.id, order.status)
import Oruve from "oruve";

const client = new Oruve({ apiKey: "YOUR_KEY" });

const order = await client.orders.create({
  product: "poster",
  size: "A2",
  quantity: 250,
  paper: "matte_200gsm",
  shipping_address: {
    city: "Berlin",
    country: "DE",
  },
});

console.log(order.id, order.status);
The developer workflow

Ship faster with less code

1

Create an order

Submit a standardized print order via REST API. Specify product, quantity, destination, and metadata.

2

We route it

Oruve evaluates all connected PSPs and routes to the best match based on your rules.

3

Receive webhooks

Real-time events notify you of every state change: created, routed, accepted, in production, shipped, delivered.

4

Query the API

Fetch order status, history, and tracking info at any time. Audit log shows every change.

Built for scale

Everything you need to go to production

Rate limiting

Predictable performance

Standard rate limits with clear, non-aggressive thresholds. Burst capacity for seasonal demand spikes.

Error handling

Clear and actionable

Comprehensive error codes. Structured responses. Retry guidance. Every failure is explainable.

SDKs

Official clients

Python, JavaScript, Go, and Java SDKs with type safety. Community packages for other languages.

Monitoring

Observability

Request logging. Performance metrics. Webhook delivery tracking. Integration insights dashboard.

Ready to build on a better foundation?

Get started with our API in minutes.