Skip to main content

Available Days

Returns which days and periods are available for pickup, based on the number of orders in the selected plan.
GET /external-partner/subscription/available-days?orders_count={n}
Headers
HeaderValue
API-KEYYour partner API key
Accept-Languagear or en
Query Parameters
ParamRequiredNotes
orders_countUse plan_types[].orders_count from the selected plan type
Response
{
  "success": true,
  "data": [
    {
      "day_name": "Wednesday",
      "week_day": 3,
      "date": "2025-10-29",
      "is_today": false,
      "periods": [
        { "code": "morning", "name": "Morning", "period": "9 AM - 3 PM" },
        { "code": "evening", "name": "Evening", "period": "4 PM - 10 PM" }
      ]
    }
  ],
  "status_code": 200
}
Error — Location not covered (400)
{
  "success": false,
  "message": "Sorry but we don't cover your area yet"
}

Subscribe

Creates a subscription in draft state. The customer’s pickup schedule is set here.
POST /external-partner/subscription/subscribe
Headers
HeaderValue
AuthorizationBearer {customer_token}
Idempotency-KeyUnique UUID
Query Parameters (passed in URL, not body)
ParamRequiredNotes
plan_idFrom List Plans
plan_type_idFrom List Plans → plan_types
preferred_pickup_day✅*Day of week: monday, tuesday, etc.
preferred_pickup_date✅*Specific date: YYYY-MM-DD
preferred_pickup_periodmorning or evening
*Either preferred_pickup_day or preferred_pickup_date is required, not both. Response
{
  "success": true,
  "data": {
    "id": 5355,
    "total": 799,
    "orders_count": 4,
    "start_date": "2025-10-29T00:00:00.000000Z",
    "end_date": "2025-12-11T23:59:59.000000Z",
    "preferred_pickup_day": { "code": "monday", "name": "Monday" },
    "preferred_pickup_period": { "code": "evening", "name": "Evening", "period": "4 PM - 10 PM" },
    "state": { "code": "draft", "name": "Draft" }
  },
  "status_code": 200
}
The subscription is in draft — no pickups are scheduled until payment is confirmed.

Confirm Payment

Marks the subscription as paid and activates it. Call this after your payment flow completes.
POST /external-partner/subscription/confirm-payment
Headers
HeaderValue
AuthorizationBearer {customer_token}
Idempotency-KeyUnique UUID
Body multipart/form-data
FieldTypeRequiredNotes
subscription_idintegerFrom Subscribe response
reference_idstringYour payment gateway’s transaction reference
Response
{
  "success": true,
  "data": {
    "subscription": {
      "id": 5360,
      "total": 799,
      "orders_count": 4,
      "state": { "code": "active", "name": "Active" }
    },
    "invoice_url": "https://..."
  },
  "status_code": 200
}
Error — Already active (400)
{
  "success": false,
  "message": "This subscription is already active"
}