The merchant schedule is an array of shifts. A shift is an object:

{
    "day"	: 1,
    "startTime"	: "08:30",
    "endTime"	: "21:00",
}
Property Name Value Description
id integer The id of the shift
day integer Required if weekly shift – The day of the week as such: Sunday = 0, Monday = 1, …, Saturday = 6
date string Required if holiday shift – The date of the year in YYYY-mm-dd format
startTime string Required – The time the shift begins in HH:mm format
endTime string Required – The time the shift ends in HH:mm format. The endTime must come after startTime. In the case of a shift going past midnight, set the end time to 24:00, then create a new shift for the second day starting at 00:00.

A post to create a schedule for a merchant would look like this:
POST /merchant/admin/schedule

{
  "merchantId": 1234,
  "schedule": {
    "business": [
      {
        "day": 1,
        "startTime": "08:30",
        "endTime": "21:00"
      },
      {
        "day": 2,
        "startTime": "08:30",
        "endTime": "21:00"
      },
      {
        "day": 3,
        "startTime": "08:30",
        "endTime": "21:00"
      }
    ],
    "delivery": [
      {
        "day": 1,
        "startTime": "10:00",
        "endTime": "19:00"
      },
      {
        "day": 2,
        "startTime": "10:00",
        "endTime": "19:00"
      },
      {
        "day": 3,
        "startTime": "10:00",
        "endTime": "19:00"
      }
    ],
    "holidayDelivery": [
      {
        "date": "2014-05-31",
        "startTime": "10:00",
        "endTime": "14:00"
      }
    ],
    "holidayBusiness": [
      {
        "date": "2014-05-31",
        "startTime": "10:00",
        "endTime": "14:00"
      }
    ]
  }
}

The ‘holidayDelivery’ and ‘holidayBusiness’ arrays are used to override the weekly schedule for a given date. To close a merchant for a given date, set the ‘startTime’ and ‘endTime’ to the same time for both business and delivery.

Business hours define a merchant’s operating hours, if the merchant offers pickup, these are the hours available for pickup. Delivery hours must be entirely within business hours. If the merchant only offers delivery, the business hours still must encompass or match the delivery hours.

To make updates to hours, simply include the id:
PUT /merchant/admin/schedule

{   
	"merchantId"  : "1234",
	"schedule"	: [
		{
			"business"	: [
				{
					"id"		: 4597,
					"day"		: 1,
					"startTime"	: "08:30",
					"endTime"	: "21:00",
				},
			],
			"delivery"	: [
				{
					"id"		: 4599,
					"day"		: 1,
					"startTime"	: "10:00",
					"endTime"	: "19:00",
				},
			],
			"holidayDelivery"	: [
			],
			"holidayBusiness"	: [
			],
		}
	]
}

Fetching the merchant schedule requires the merchantId:

GET /merchant/admin/schedule?merchantId=1234

Response:

{
    	"schedule"	: [
		{
			"business"	: [
				{
					"id"		: 5678,
					"day"		: 1,
					"date"		: "2017-11-27",
					"startTime"	: "08:30",
					"endTime"	: "21:00",
				},
				{
					"id"		: 5679,
					"day"		: 2,
					"date"		: "2017-11-28",
					"startTime"	: "08:30",
					"endTime"	: "21:00",
				},
				{
					"id"		: 5680,
					"day"		: 3,
					"date"		: "2017-11-29",
					"startTime"	: "08:30",
					"endTime"	: "21:00",
				},
			],
			"delivery"	: [
				{
					"id"		: 5681,
					"day"		: 1,
					"date"		: "2017-11-27",
					"startTime"	: "10:00",
					"endTime"	: "19:00",
				},
				{
					"id"		: 5682,
					"day"		: 2,
					"date"		: "2017-11-28",
					"startTime"	: "10:00",
					"endTime"	: "19:00",
				},
				{
					"id"		: 5683,
					"day"		: 3,
					"date"		: "2017-11-29",
					"startTime"	: "10:00",
					"endTime"	: "19:00",
				},
			],
			"holidayDelivery"	: [
				{
					"id"		: 5684,
					"day"		: 0,
					"date"		: "2017-12-31",
					"startTime"	: "10:00",
					"endTime"	: "14:00",
				},
			],
			"holidayBusiness"	: [
				{
					"id"		: 5685,
					"day"		: 0,
					"date"		: "2017-12-31",
					"startTime"	: "10:00",
					"endTime"	: "14:00",
				},
			],
		}
	]
}

Deletion requires a comma separated list of ids along with the merchant id:

DELETE /merchant/admin/schedule?merchantId=1234&scheduleIds=7894,15967

If you prefer to delete all schedules, you may use the truncate call:

DELETE /merchant/admin/schedule/truncate?merchantId=1234