Skip to main content
PATCH
/
v1
/
partner
/
branches
/
{id}
Update a branch
curl --request PATCH \
  --url https://api.dev.shadowchef.co/v1/partner/branches/{id} \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "title": "<string>",
  "address": "<string>",
  "phone": "<string>",
  "lat": 123,
  "lon": 123,
  "city_id": 123,
  "day_availability": [
    3
  ],
  "subscription_type": 123,
  "available_times": {
    "0": {
      "disabled": false,
      "slots": [
        {
          "startTime": 900,
          "endTime": 2200
        }
      ]
    },
    "1": {
      "disabled": false,
      "slots": [
        {
          "startTime": 900,
          "endTime": 2200
        }
      ]
    },
    "2": {
      "disabled": false,
      "slots": [
        {
          "startTime": 900,
          "endTime": 2200
        }
      ]
    },
    "3": {
      "disabled": false,
      "slots": [
        {
          "startTime": 900,
          "endTime": 2200
        }
      ]
    },
    "4": {
      "disabled": false,
      "slots": [
        {
          "startTime": 900,
          "endTime": 2200
        }
      ]
    },
    "5": {
      "disabled": false,
      "slots": [
        {
          "startTime": 1000,
          "endTime": 2300
        }
      ]
    },
    "6": {
      "disabled": false,
      "slots": [
        {
          "startTime": 1000,
          "endTime": 2300
        }
      ]
    }
  },
  "custom_vat_config": true,
  "google_map_link": "<string>",
  "secondary_phone": "<string>",
  "brand_ids": [
    123
  ],
  "kitchen_equipment_ids": [
    123
  ],
  "brand_list_changed": false,
  "kitchen_equipment_list_changed": false,
  "populate_menu_for_new_brand": false,
  "vat_enabled": true,
  "vat_inclusive": true,
  "vat_label": "<string>",
  "vat_calculation_pre_discount": true,
  "vat_percentage": 123,
  "prioritize_item_level_vat": true,
  "order_cleanup_time": 123,
  "manual_order_auto_accept_enabled": false,
  "is_shift_enabled": false,
  "is_driver_progress_enabled": false,
  "marketplace_enabled": true,
  "webshop_otp_required": true,
  "bir_config_enabled": true
}
'
{
  "request_id": "req_4d1b7e3f-...",
  "data": "<unknown>",
  "error": {
    "code": "auth_invalid_credential",
    "message": "<string>",
    "details": "<unknown>"
  }
}

Authorizations

Authorization
string
header
required

Authorization: Basic base64(partner_key:secret_key).

Credentials are issued by a klikit operator. The plaintext secret_key is shown once at issuance and cannot be retrieved later — store it securely. If lost, ask your operator to rotate the secret to receive a new one. The old secret stops working immediately on rotation; there is no overlap window.

Path Parameters

id
integer
required

Body

application/json

Mirrors core's BranchCreateUpdateReq. business_id is overwritten by the forwarder. phone must be E.164 (+<country><digits>). available_times follows the same weekday-keyed shape as section availability.

title
string
required
Required string length: 1 - 255
address
string
required
Required string length: 5 - 255
phone
string
required

E.164

lat
number
required
lon
number
required
country_id
enum<integer>
required

Numeric country id used inside BranchCreateRequest.country_id and a few other resolver calls. Only ids with configured = 1 are listed — anything outside this list is rejected upstream.

idisocountry
1AUSAustralia
2PHLPhilippines
3SGPSingapore
4IDNIndonesia
5TWNTaiwan
6MYSMalaysia
7GBRUnited Kingdom
8HKGHong Kong
9THAThailand
10JPNJapan
11VNMVietnam
12KHMCambodia
23ARGArgentina
30BGDBangladesh
38BOLBolivia
43BRABrazil
59COLColombia
64CRICosta Rica
75ECUEcuador
101GTMGuatemala
151MEXMexico
167NZLNew Zealand
168NICNicaragua
182PERPeru
Available options:
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
23,
30,
38,
43,
59,
64,
75,
101,
151,
167,
168,
182
city_id
integer
required

Must belong to the supplied country_id — core validates the pair against the cities table and the gateway returns 502 downstream_unavailable on a join miss. See CityId for the per-country city list.

currency_id
enum<integer>
required

Numeric currency id used inside BranchCreateRequest.currency_id. Each id is paired with the matching ISO 4217 code partners already use inside PriceMap (the string key under each provider entry).

idcode
1AUD
2PHP
3SGD
4IDR
5TWD
6MYR
7GBP
8HKD
9THB
10JPY
11VND
12KHR
13BDT
14ARS
15BOB
16BRL
17COP
18CRC
19USD
20GTQ
21MXN
22NZD
23NIO
24PEN
Available options:
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24
day_availability
integer[]
required
Required array length: 1 - 7 elements
Required range: 0 <= x <= 6
subscription_type
integer
required
available_times
object
required

Weekly schedule keyed by weekday number as a string: "0" = Sunday … "6" = Saturday. Every day must have at least one slot. To make a section dark for a day, set disabled: true and pass any placeholder slot (the disabled flag wins).

Example:
{
"0": {
"disabled": false,
"slots": [{ "startTime": 900, "endTime": 2200 }]
},
"1": {
"disabled": false,
"slots": [{ "startTime": 900, "endTime": 2200 }]
},
"2": {
"disabled": false,
"slots": [{ "startTime": 900, "endTime": 2200 }]
},
"3": {
"disabled": false,
"slots": [{ "startTime": 900, "endTime": 2200 }]
},
"4": {
"disabled": false,
"slots": [{ "startTime": 900, "endTime": 2200 }]
},
"5": {
"disabled": false,
"slots": [{ "startTime": 1000, "endTime": 2300 }]
},
"6": {
"disabled": false,
"slots": [{ "startTime": 1000, "endTime": 2300 }]
}
}
custom_vat_config
boolean
required
secondary_phone
string | null
brand_ids
integer[]
kitchen_equipment_ids
integer[]
brand_list_changed
boolean
default:false
kitchen_equipment_list_changed
boolean
default:false
populate_menu_for_new_brand
boolean
default:false
vat_enabled
boolean | null
vat_inclusive
boolean | null
vat_label
string | null
vat_calculation_pre_discount
boolean | null
vat_percentage
number | null
prioritize_item_level_vat
boolean | null
order_cleanup_time
integer

Cleanup window in minutes.

manual_order_auto_accept_enabled
boolean
default:false
is_shift_enabled
boolean
default:false
is_driver_progress_enabled
boolean
default:false
marketplace_enabled
boolean | null
webshop_otp_required
boolean | null
bir_config_enabled
boolean | null

Response

Branch updated.

Canonical response wrapper. Every response — success or error — carries the request_id so you can quote one id to klikit support to correlate a request end-to-end.

request_id
string
required
Example:

"req_4d1b7e3f-..."

data
any

Endpoint-specific payload on success.

error
object

Machine-readable error code + human message. The code is stable across releases — switch on code in your client code rather than parsing the message text.

Common codes you will encounter as a partner:

CodeHTTPMeaning
auth_missing401Authorization header absent / malformed
auth_invalid_credential401partner_key or secret_key did not verify
auth_revoked403Credential is revoked
auth_forbidden403Credential not authorized for the requested scope
request_invalid400Body / query parameters failed validation
request_missing_idempotency_key400Write endpoint called without Idempotency-Key
request_invalid_range400Date range > 90 days
resource_not_found404Order / store / mapping does not exist
resource_unmapped404Stock / availability call referenced an unknown SKU
state_invalid_transition409Order PATCH not allowed by current state
state_idempotency_conflict409Same Idempotency-Key reused with a different body
rate_limit_exceeded429Per-credential rate cap hit
downstream_unavailable502An internal klikit dependency is unreachable