Stay organized with collections
Save and categorize content based on your preferences.
Support for lease creation is optional. It applies to partners that are
interested in implementing this functionality. Please contact the Actions Center to determine eligibility before you start.
Creating the lease is the first step when creating a booking with Lease support.
The partner backend verifies that the requested appointment slot is valid and
available. Internally, the partner creates a temporary hold for the requested
slot, which is set up to expire automatically at lease_expiration_time. The
backend is allowed to modify lease_expiration_time, e.g. if the requested lease
time is excessively long. The created lease is returned to the client. Then the
client requests to create a booking for the lease.
If creating a lease fails due to any business logic error, the error should be
populated in the response. See Booking
Failure for
detailed information.
Request
CreateLeaseRequest
Return value
CreateLeaseResponse
Requirements:
lease_id must be created by the partner backend and set in the
CreateLeaseResponse.
lease_expiration_time must be set in the CreateLeaseResponse.
If the resources field is specified in the CreateLeaseRequest, then it must
be set in the CreateLeaseResponse, and match the CreateLeaseRequest.
All other fields in the CreateLeaseResponse must be set and match the
CreateLeaseRequest.
Canonical gRPC error codes
INVALID_ARGUMENT (invalid merchant ID, service ID, or slot time
specification)
// Request to create a [ext.maps.booking.partner.v2.Lease] for a slot in the// inventory. The expiration time in the returned Lease may be modified by the// backend, e.g. if the requested lease period is too long.messageCreateLeaseRequest{// The lease to be created with information about the appointment slot// (required)Leaselease=1;}// Response for the [ext.maps.booking.partner.v2.CreateLease] RPC with the// created [ext.maps.booking.partner.v2.Lease]messageCreateLeaseResponse{// The created [ext.maps.booking.partner.v2.Lease] (required)Leaselease=1;// If creating a lease fails, this field should reflect the business logic// error (e.g., slot has become unavailable) and lease field is expected to be// unset. (required if failure occurs)BookingFailurebooking_failure=2;}
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-05-20 UTC."],[[["\u003cp\u003eLease creation is an optional feature for partners to implement booking functionality.\u003c/p\u003e\n"],["\u003cp\u003ePartners must contact Actions Center for eligibility before implementing lease creation.\u003c/p\u003e\n"],["\u003cp\u003eCreating a lease involves a temporary hold on an appointment slot, which is later used for booking creation.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eCreateLeaseRequest\u003c/code\u003e initiates the process, and \u003ccode\u003eCreateLeaseResponse\u003c/code\u003e returns the lease details or error information.\u003c/p\u003e\n"],["\u003cp\u003ePartners must adhere to specific requirements when setting values in the \u003ccode\u003eCreateLeaseResponse\u003c/code\u003e.\u003c/p\u003e\n"]]],["Lease creation is an optional feature for partners. Partners must contact the Actions Center to determine eligibility. The process involves creating a temporary hold on a valid appointment slot, with an automatic expiration time that can be modified by the backend. Partners create a `lease_id` and `lease_expiration_time`, which are returned in the `CreateLeaseResponse`. If a lease fails due to business logic errors, an error response is populated. The response fields must match the request fields, and `INVALID_ARGUMENT` error can occur.\n"],null,["# CreateLease method\n\nSupport for lease creation is **optional**. It applies to partners that are\ninterested in implementing this functionality. Please contact the Actions Center to determine eligibility before you start.\n\nCreating the lease is the first step when creating a booking with Lease support.\nThe partner backend verifies that the requested appointment slot is valid and\navailable. Internally, the partner creates a temporary hold for the requested\nslot, which is set up to expire automatically at lease_expiration_time. The\nbackend is allowed to modify lease_expiration_time, e.g. if the requested lease\ntime is excessively long. The created lease is returned to the client. Then the\nclient requests to create a booking for the lease.\n\nIf creating a lease fails due to any business logic error, the error should be\npopulated in the response. See [Booking\nFailure](/actions-center/reference/grpc-api-v2/booking-failure-specification) for\ndetailed information.\n\n**Request**\n\nCreateLeaseRequest\n\n**Return value**\n\nCreateLeaseResponse\n\nRequirements:\n\n- lease_id must be created by the partner backend and set in the CreateLeaseResponse.\n- lease_expiration_time must be set in the CreateLeaseResponse.\n- If the resources field is specified in the CreateLeaseRequest, then it must be set in the CreateLeaseResponse, and match the CreateLeaseRequest.\n- All other fields in the CreateLeaseResponse must be set and match the CreateLeaseRequest.\n\n**Canonical gRPC error codes**\n\n- `INVALID_ARGUMENT` (invalid merchant ID, service ID, or slot time specification)\n\n```scilab\n// Request to create a [ext.maps.booking.partner.v2.Lease] for a slot in the\n// inventory. The expiration time in the returned Lease may be modified by the\n// backend, e.g. if the requested lease period is too long.\nmessage CreateLeaseRequest {\n // The lease to be created with information about the appointment slot\n // (required)\n Lease lease = 1;\n}\n\n// Response for the [ext.maps.booking.partner.v2.CreateLease] RPC with the\n// created [ext.maps.booking.partner.v2.Lease]\nmessage CreateLeaseResponse {\n // The created [ext.maps.booking.partner.v2.Lease] (required)\n Lease lease = 1;\n\n // If creating a lease fails, this field should reflect the business logic\n // error (e.g., slot has become unavailable) and lease field is expected to be\n // unset. (required if failure occurs)\n BookingFailure booking_failure = 2;\n}\n```"]]