Rassmi Developers

Webhooks

Payload Structure

Every delivery has the same envelope; data depends on the event.

The envelope

FieldMeaning
idThe delivery's ID (also X-Rassmi-Delivery).
eventThe event's name.
timestampWhen this attempt was sent (ISO 8601).
dataThe resource, as saved when the delivery was built.
order.confirmed
{
    "id": "0199a3d4-2e6f-7c10-b3a5-8d9e0f1a2b3c",
    "event": "order.confirmed",
    "timestamp": "2026-10-30T09:31:05+00:00",
    "data": {
        "id": "0199a3c2-6f1e-7d55-9c1a-2b8f6e4d1a07",
        "status": "confirmed",
        "source": "api",
        "customer_name": "Amina Benali",
        "customer_phone": "0555123456",
        "customer": {
            "name": "Amina Benali",
            "phone": "0555123456",
            "address": "Cité 200 Logements, Bt 4",
            "wilaya": "16",
            "commune": "Bab Ezzouar"
        },
        "items": [
            {
                "product_id": "0199a3c2-1b2c-7a10-8e3d-5f6a7b8c9d0e",
                "product_name": "Robe kabyle",
                "attributes": {
                    "Taille": "M"
                },
                "quantity": 1,
                "unit_price": 4500,
                "subtotal": 4500
            }
        ],
        "total_amount": 5000,
        "shipping_fee": 500,
        "payment_method": "COD",
        "notes": null,
        "tracking_number": null,
        "shipping_company": null,
        "shipping_status": null,
        "created_at": "2026-10-30T09:12:44+00:00",
        "updated_at": "2026-10-30T09:31:02+00:00"
    }
}

The data of each event

Orders send the whole order (with customer and items; customer_name and customer_phone are kept at the top for endpoints written for the first version). order.updated adds changed, the fields that changed; order.status_changed adds previous_status.

data
{
    "id": "0199a3c2-6f1e-7d55-9c1a-2b8f6e4d1a07",
    "status": "pending_confirmation",
    "source": "api",
    "customer_name": "Amina Benali",
    "customer_phone": "0555123456",
    "customer": {
        "name": "Amina Benali",
        "phone": "0555123456",
        "address": "Cité 200 Logements, Bt 4",
        "wilaya": "16",
        "commune": "Bab Ezzouar"
    },
    "items": [
        {
            "product_id": "0199a3c2-1b2c-7a10-8e3d-5f6a7b8c9d0e",
            "product_name": "Robe kabyle",
            "attributes": {
                "Taille": "M"
            },
            "quantity": 1,
            "unit_price": 4500,
            "subtotal": 4500
        }
    ],
    "total_amount": 5000,
    "shipping_fee": 500,
    "payment_method": "COD",
    "notes": null,
    "tracking_number": null,
    "shipping_company": null,
    "shipping_status": null,
    "created_at": "2026-10-30T09:12:44+00:00",
    "updated_at": "2026-10-30T09:31:02+00:00"
}
{
    "id": "0199a3c2-6f1e-7d55-9c1a-2b8f6e4d1a07",
    "status": "confirmed",
    "source": "api",
    "customer_name": "Amina Benali",
    "customer_phone": "0555123456",
    "customer": {
        "name": "Amina Benali",
        "phone": "0555123456",
        "address": "Cité 200 Logements, Bt 4",
        "wilaya": "16",
        "commune": "Bab Ezzouar"
    },
    "items": [
        {
            "product_id": "0199a3c2-1b2c-7a10-8e3d-5f6a7b8c9d0e",
            "product_name": "Robe kabyle",
            "attributes": {
                "Taille": "M"
            },
            "quantity": 1,
            "unit_price": 4500,
            "subtotal": 4500
        }
    ],
    "total_amount": 5000,
    "shipping_fee": 500,
    "payment_method": "COD",
    "notes": null,
    "tracking_number": null,
    "shipping_company": null,
    "shipping_status": null,
    "created_at": "2026-10-30T09:12:44+00:00",
    "updated_at": "2026-10-30T09:31:02+00:00",
    "changed": [
        "customer_address",
        "total_amount"
    ]
}
{
    "id": "0199a3c2-6f1e-7d55-9c1a-2b8f6e4d1a07",
    "status": "confirmed",
    "source": "api",
    "customer_name": "Amina Benali",
    "customer_phone": "0555123456",
    "customer": {
        "name": "Amina Benali",
        "phone": "0555123456",
        "address": "Cité 200 Logements, Bt 4",
        "wilaya": "16",
        "commune": "Bab Ezzouar"
    },
    "items": [
        {
            "product_id": "0199a3c2-1b2c-7a10-8e3d-5f6a7b8c9d0e",
            "product_name": "Robe kabyle",
            "attributes": {
                "Taille": "M"
            },
            "quantity": 1,
            "unit_price": 4500,
            "subtotal": 4500
        }
    ],
    "total_amount": 5000,
    "shipping_fee": 500,
    "payment_method": "COD",
    "notes": null,
    "tracking_number": null,
    "shipping_company": null,
    "shipping_status": null,
    "created_at": "2026-10-30T09:12:44+00:00",
    "updated_at": "2026-10-30T09:31:02+00:00",
    "previous_status": "pending_confirmation"
}
{
    "id": "0199a3c2-6f1e-7d55-9c1a-2b8f6e4d1a07",
    "status": "confirmed",
    "source": "api",
    "customer_name": "Amina Benali",
    "customer_phone": "0555123456",
    "customer": {
        "name": "Amina Benali",
        "phone": "0555123456",
        "address": "Cité 200 Logements, Bt 4",
        "wilaya": "16",
        "commune": "Bab Ezzouar"
    },
    "items": [
        {
            "product_id": "0199a3c2-1b2c-7a10-8e3d-5f6a7b8c9d0e",
            "product_name": "Robe kabyle",
            "attributes": {
                "Taille": "M"
            },
            "quantity": 1,
            "unit_price": 4500,
            "subtotal": 4500
        }
    ],
    "total_amount": 5000,
    "shipping_fee": 500,
    "payment_method": "COD",
    "notes": null,
    "tracking_number": null,
    "shipping_company": null,
    "shipping_status": null,
    "created_at": "2026-10-30T09:12:44+00:00",
    "updated_at": "2026-10-30T09:31:02+00:00"
}
{
    "id": 81423,
    "order_id": "0199a3c2-6f1e-7d55-9c1a-2b8f6e4d1a07",
    "call_status": "answered",
    "duration_in_seconds": 74,
    "called_at": "2026-10-30T09:30:12+00:00"
}
{
    "id": "0199a3c2-1b2c-7a10-8e3d-5f6a7b8c9d0e",
    "name": "Robe kabyle",
    "sku": "ROBE-KAB-M",
    "price": 4500,
    "stock_quantity": 12,
    "is_active": true,
    "attributes": {
        "Taille": [
            "S",
            "M",
            "L"
        ]
    },
    "updated_at": "2026-10-30T09:31:02+00:00"
}
{
    "product_id": "0199a3c2-1b2c-7a10-8e3d-5f6a7b8c9d0e",
    "sku": "ROBE-KAB-M",
    "old_quantity": 13,
    "new_quantity": 12
}
{
    "product_id": "0199a3c2-1b2c-7a10-8e3d-5f6a7b8c9d0e",
    "sku": "ROBE-KAB-M",
    "old_quantity": 1,
    "new_quantity": 0
}
{
    "id": 5521,
    "name": "Karim Haddad",
    "phone": "0661234567",
    "email": null,
    "wilaya": "31",
    "commune": "Oran",
    "source": "api",
    "created_at": "2026-10-30T08:02:19+00:00"
}
{
    "message": "This is a test delivery from Rassmi."
}

The other order status events send the same data as order.confirmed, with their status; product.updated and product.deleted send the product like product.created.