Questions about Square Appointments API and mobile service operations in Japan

Hello,

We are considering using Square Appointments Plus or Premium as the core booking and payment system for a new mobile massage service in Japan.

Our therapists travel to customers staying at hotels or residences, rather than customers visiting a physical store.

We are also planning to integrate Square Appointments with our external messaging and automation systems.

I have reviewed the Square Developer documentation, but I would like to confirm the following points specifically regarding Square Appointments in Japan.

1. Visibility of Booking Custom Attributes in Square Dashboard

We plan to assign our own booking ID to each booking, for example:

YAD-20260904-0042

using Booking Custom Attributes.

I understand that Booking Custom Attributes can be created and retrieved via the API and can be included in exported booking data.

However, I would like to confirm:

  • Can a Booking Custom Attribute such as our internal booking ID be viewed directly in the Square Appointments Dashboard in Japan?
  • Can staff edit this value manually from the Dashboard, or is it only accessible through the API?

2. CUSTOMER_LOCATION for mobile services in Japan

Our therapists travel to the customer’s hotel or residence.

I understand that the Bookings API supports location_type: CUSTOMER_LOCATION.

For Square Appointments sellers in Japan:

  • Can bookings using CUSTOMER_LOCATION be created and used normally?
  • Will these bookings appear normally in the Square Appointments calendar/dashboard?
  • Can staff see the customer’s destination/address in the Square Appointments interface?
  • Can these bookings be modified or cancelled normally from the Dashboard?

3. Seller-level Bookings API availability in Japan

We are considering Square Appointments Plus or Premium.

We plan to use an external system to search staff availability and then create, update, or cancel bookings through the Bookings API.

Are seller-level Bookings API features fully available to Square Appointments Plus/Premium sellers in Japan, or are there any Japan-specific limitations we should be aware of?

4. Travel/buffer time between appointments

Since this is a mobile service, we need to reserve travel time after each appointment.

For example:

Oil Massage: 90 minutes
Travel/buffer time: 30 minutes

Can Square Appointments automatically block this additional 30 minutes so that another appointment cannot be assigned to the same therapist during that period?

If so, is this buffer time also taken into account when checking staff availability through the Bookings API?

Our planned workflow is approximately:

WhatsApp / LINE → respond.io → automation platform → Square Appointments

Square Appointments would be used for booking management, therapist schedules, sales management, and payments.

Thank you very much for your help. We would especially appreciate information about any Japan-specific limitations or differences.

Hello and welcome to the forum!

  1. Booking custom attributes are fully managed through their own API and are not shown in the dashboard at all. They are visible in the /bookings/XXXXX/custom-attributes/ but not any of the GET/List booking routes
  2. Bookings can be created with either a business location or customer location depending on your exact setting. They can be created/updated/canceled via API or the dashboard
    1. It is an out of the box setting so the appointment operates as normal, just with an address!
  3. As far as I can tell from our internal docs, Japan is supported for the Bookings API with the same features of any other region.
  4. You can create your services with the buffer times you want, but I would recommend using the dashboard and not API to create the services because not all of the timing fields are available via API. The booking will inherit the service timings and be displayed readonly when reading the booking or searching for booking availability.
    1. These timings are automatically respected by SearchAvailability and no custom buffer logic should be needed in your external system.

If you want anything more specific feel free to reach out again!

How it all adds up on the calendar

Segment 1: duration_minutes          ← from service_duration 
          + intermission_minutes      ← from Dashboard "Add processing time"
Segment 2: duration_minutes
          + intermission_minutes
...
Booking:  + transition_time_minutes   ← from Dashboard "Block extra time after appointment"
────────────────────────────────────
= Total blocked time on the calendar