Getting Started
Quickstart
From an API key to your first order in the agents' call queue, in three requests.
-
Get the store's API key
In your Rassmi dashboard, open API Key and generate the store's key. It starts with
rsk_and is shown once: keep it in a secret, never in code that runs in a browser. -
Check the key
Read the store it belongs to.
access.accepts_orderssays whether new orders are taken right now.curl https://rassmi.com/api/v1/store \ -H "Authorization: Bearer $RASSMI_API_KEY" -
Send an order
It joins the call queue as
pending_confirmation: an agent calls the customer.curl -X POST "https://rassmi.com/api/v1/orders" \ -H "Authorization: Bearer $RASSMI_API_KEY" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "customer_name": "Amina Benali", "customer_phone": "0555123456", "customer_address": "Cité 200 Logements, Bt 4", "customer_wilaya": "16", "customer_commune": "Bab Ezzouar", "total_amount": 5000, "shipping_fee": 500, "items": [ { "product_id": "0199a3c2-1b2c-7a10-8e3d-5f6a7b8c9d0e", "quantity": 1, "attributes": { "Taille": "M" } } ] }'use Illuminate\Support\Facades\Http; $response = Http::withToken(env('RASSMI_API_KEY')) ->acceptJson() ->post('https://rassmi.com/api/v1/orders', [ 'customer_name' => 'Amina Benali', 'customer_phone' => '0555123456', 'customer_address' => 'Cité 200 Logements, Bt 4', 'customer_wilaya' => '16', 'customer_commune' => 'Bab Ezzouar', 'total_amount' => 5000, 'shipping_fee' => 500, 'items' => [ [ 'product_id' => '0199a3c2-1b2c-7a10-8e3d-5f6a7b8c9d0e', 'quantity' => 1, 'attributes' => [ 'Taille' => 'M', ], ], ], ]); $data = $response->json();const response = await fetch('https://rassmi.com/api/v1/orders', { method: 'POST', headers: { Authorization: `Bearer ${process.env.RASSMI_API_KEY}`, Accept: 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify({ "customer_name": "Amina Benali", "customer_phone": "0555123456", "customer_address": "Cité 200 Logements, Bt 4", "customer_wilaya": "16", "customer_commune": "Bab Ezzouar", "total_amount": 5000, "shipping_fee": 500, "items": [ { "product_id": "0199a3c2-1b2c-7a10-8e3d-5f6a7b8c9d0e", "quantity": 1, "attributes": { "Taille": "M" } } ] }), }); const data = await response.json();import os import requests response = requests.request( "POST", "https://rassmi.com/api/v1/orders", headers={"Authorization": f"Bearer {os.environ['RASSMI_API_KEY']}"}, json={ "customer_name": "Amina Benali", "customer_phone": "0555123456", "customer_address": "Cité 200 Logements, Bt 4", "customer_wilaya": "16", "customer_commune": "Bab Ezzouar", "total_amount": 5000, "shipping_fee": 500, "items": [ { "product_id": "0199a3c2-1b2c-7a10-8e3d-5f6a7b8c9d0e", "quantity": 1, "attributes": { "Taille": "M", }, }, ], }, ) data = response.json() -
Hear back with a webhook
Register an endpoint for the events you need; Rassmi sends each one, signed, as it happens.
curl -X POST "https://rassmi.com/api/v1/webhooks" \ -H "Authorization: Bearer $RASSMI_API_KEY" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "url": "https://example.com/hooks/rassmi", "events": [ "order.created", "order.confirmed", "order.shipped" ] }'use Illuminate\Support\Facades\Http; $response = Http::withToken(env('RASSMI_API_KEY')) ->acceptJson() ->post('https://rassmi.com/api/v1/webhooks', [ 'url' => 'https://example.com/hooks/rassmi', 'events' => [ 'order.created', 'order.confirmed', 'order.shipped', ], ]); $data = $response->json();const response = await fetch('https://rassmi.com/api/v1/webhooks', { method: 'POST', headers: { Authorization: `Bearer ${process.env.RASSMI_API_KEY}`, Accept: 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify({ "url": "https://example.com/hooks/rassmi", "events": [ "order.created", "order.confirmed", "order.shipped" ] }), }); const data = await response.json();import os import requests response = requests.request( "POST", "https://rassmi.com/api/v1/webhooks", headers={"Authorization": f"Bearer {os.environ['RASSMI_API_KEY']}"}, json={ "url": "https://example.com/hooks/rassmi", "events": [ "order.created", "order.confirmed", "order.shipped", ], }, ) data = response.json()
Next: verify each delivery's signature before trusting it.