// Info about a merchant that is on the aggregator's platform.// A merchant feed should be a list of this message.messageMerchant{// An opaque string generated by the partner that identifies a merchant.// Must be unique across all merchants.// Strongly recommended to only include URL-safe characters. (required)stringmerchant_id=1;// The name, telephone, url and geo are used to support matching partner// inventory with merchants already present on Google Maps. This information// will not be displayed.//// The name of the merchant. (required)stringname=2;// The contact telephone number of the merchant including its country and area// codes, e.g. +14567891234. Highly recommended. (optional)stringtelephone=3;// The url of the merchant's public website. Highly recommended. (optional)stringurl=4;// The Geo info of the merchant, including latitude, longitude, and address.// (required)GeoCoordinatesgeo=5;// The category of the business in aggregator's platform. (required)// You should categorize this business as you categorize it in your inventory.// We will use your provided category as a parameter in trying to determine// the best location match to the physical business.stringcategory=6;// This field is deprecated, please use tax_rate instead.uint32tax_rate_basis_points=8[deprecated=true];// The merchant's tax rate. If present this field overrides the deprecated// tax_rate_basis_points field. An empty message (i.e. tax_rate { }) will// reset the applied tax rate to zero.//// This field is required for payments integration. (optional)TaxRatetax_rate=9;// Restrictions to the payment methods this merchant accepts. We assume no// restrictions exist if this field is not set. (optional)PaymentRestrictionspayment_restrictions=10;// Payment options available for this merchant. Services under this merchant// will be able to individually limit the payment options they allow.// (optional)repeatedPaymentOptionpayment_option=11;// Configuration for a tokenized payment processor, if the merchant has// support for it.TokenizationConfigtokenization_config=15;// The specific merchant's Terms and Conditions displayed to the user when a// service is being booked through Reserve with Google.// In addition to these the aggregator partner's Terms and Conditions are// always displayed to the user and must not be provided here. (optional)Termsterms=13;// An opaque string that identifies the consumer-facing brand to use when// displaying partner attribution. This field allows partners with multiple// consumer-facing brands to provide merchants for all brands within the same// feed.//// A brand consists of consumer-facing properties like the name, logo, Terms// of Service, and Privacy Policy.//// If there is only one consumer-facing partner brand, this field does not// need to be set and can be ignored.//// If the partner...//// Does not have multiple consumer-facing brands?// --> Ignore this field//// Has Multiple Brands that are configured?//// If this field is set// --> Associated consumer-facing brand attribution is used//// If this field is unset or the empty string// --> Default consumer-facing brand attribution is used//// Careful Note: most partners do not need to set this field. If a partner// wishes to use this field, they must contact us first to configure separate// brands, including the default brand.stringbrand_id=14;// Hints to help Google match a merchant to a place on Google Maps.// Note: Typically, this field does not need to be set, as Google will match// merchants to places on Google Maps using the information provided above.// (optional)MerchantMatchingHintsmatching_hints=16;// Definitions for any service attributes used to describe the Services for// this Merchant. (optional)repeatedServiceAttributeservice_attribute=17;// An action URL with associated language, list of countries restricted to,// type, and optional platform that indicates which platform this action// should be performed on. This action link is specifically for the merchant,// please use the ActionLink in the service feed to link to a specific// service.repeatedActionLinkaction_link=20;// General advisements from a specific merchant for a user joining a waitlist// through Reserve with Google. Individual text fields in the advisement// should be limited to 100 bytes in length.Advisementwaitlist_advisement=22;// Economic Operator information associated to this specific merchant, if// applicable for an end to end payments integration.// For further info, refer to:// https://developers.google.com/actions-center/verticals/reservations/e2e/partner-portal/testing/regulatory-requirements#economic-operator//// (optional)EconomicOperatoreconomic_operator=23;}
Definisi GeoCoordinates
// The Geo data of a location, including latitude, longitude, and address.// At least one of [lat/lng or address] should be provided (or both).messageGeoCoordinates{doublelatitude=1;// In degrees. (optional)doublelongitude=2;// In degrees. (optional)// Address for a location, could either be structured or unstructured.oneofaddresses{// Postal address of the location, preferred.PostalAddressaddress=3;// An unstructured address could also be provided as a fallback.// E.g. "1600 amphitheatre parkway mountain view, ca 94043"
stringunstructured_address=4;}}
Definisi PostalAddress
// The postal address for a merchant.messagePostalAddress{// The country, using ISO 3166-1 alpha-2 country code, e.g. "US" (required)stringcountry=1;// The locality/city, e.g. "Mountain View". (required)stringlocality=2;// The region/state/province, e.g. "CA". This field is only required in// countries where region is commonly a part of the address. (optional)stringregion=3;// The postal code, e.g. "94043". (required)stringpostal_code=4;// The street address, e.g. "1600 Amphitheatre Pkwy". (required)stringstreet_address=5;}
Definisi TaxRate
// A tax rate applied when charging the user for a service, and which can be set// on either a per merchant, or per service basis.messageTaxRate{// A tax rate in millionths of one percent, effectively giving 6 decimals of// precision. For example, if the tax rate is 7.253%, this field should be set// to 7253000.//// If this field is left unset or set to 0, the total price charged to a user// for any service provided by this merchant is the exact price specified by// Service.price. The service price is assumed to be exempt from or already// inclusive of applicable taxes. Taxes will not be shown to the user as a// separate line item.//// If this field is set to any nonzero value, the total price charged to a// user for any service provided by this merchant will include the service// price plus the tax assessed using the tax rate provided here. Fractions of// the smallest currency unit (for example, fractions of one cent) will be// rounded using nearest even rounding. Taxes will be shown to the user as a// separate line item. (required)int32micro_percent=1;}
Definisi PaymentRestrictions
// Restrictions to the payment methods this merchant accepts.messagePaymentRestrictions{// Restrictions to the credit cards this merchant accepts. We assume all// credit cards are accepted if this field is not set.// Note that the list of cards supported by CreditCardType will grow over// time, meaning that leaving this empty subjects a configuration to future// changes. (optional)CreditCardRestrictionscredit_card_restrictions=1;}
message UserPurchaseRestriction {
// A payment option that can only be purchased by users who have never
// purchased from the same merchant before. (required if new_to_payment_option
// is not set)
bool new_to_merchant = 1;
// A payment option that can only be purchased by users who have never
// purchased the same payment option before. (required if new_to_payment is
// not set)
bool new_to_payment_option = 2;
}
Definisi TimeRange
// A closed-open time range, i.e. [begin_sec, end_sec)messageTimeRange{// Seconds of UTC time since Unix epoch (required)int64begin_sec=1;// Seconds of UTC time since Unix epoch (required)int64end_sec=2;}
Definisi TokenizationConfig
// A configuration for payment-processor tokenization, set up on a per-Merchant// basis.messageTokenizationConfig{// A tokenization configuration will typically have one// tokenization_parameter whose key is "gateway" and whose value is the// name of the processor.//// The rest of the parameters are dependent on the processor. See// documentation from Google Pay and your processor for further information.// https://developers.google.com/pay/api/web/object-reference# \// PaymentMethodTokenizationSpecification// https://developers.google.com/pay/api/#participating-google-pay-processors//// Braintree example:// tokenization_parameter { key: "gateway" value: "braintree" }// tokenization_parameter { key: "braintree:apiVersion" value: "v1" }// tokenization_parameter { key: "braintree:sdkVersion" value: "2.30.0" }// tokenization_parameter { key: "braintree:merchantId" value: "abcdef" }// tokenization_parameter { key: "braintree:clientKey"
// value: "production_xxx_yyy" }//// Stripe example:// tokenization_parameter { key: "gateway" value: "stripe" }// tokenization_parameter { key: "stripe:version" value: "2018-02-28" }// tokenization_parameter { key: "stripe:publishableKey" value: "pk_1234" }//// Adyen example:// tokenization_parameter { key: "gateway" value: "adyen" }// tokenization_parameter { key: "gatewayMerchantId" value: "yourId" }map<string,string>tokenization_parameter=1;// The following field controls how much billing information to include in the// payment token. Verification of billing information is the responsibility of// Google Pay upon entry of Form Of Payment (FOP). If the FOP is currently in// Google Pay without the requested level of billing information, the user// will not see their FOP as a choice, and they will have to enter the FOP and// required information according to the current Google Pay UI.//// Some merchants like to keep the requested information minimal because// requesting more information can lead to lower conversion rates.//// Note that they can also go to payments.google.com to enhance an FOP but// most users will not know to do so.// How much of the Billing Address to require of the user and include in the// token. The enum values correspond to parameters in the Google Pay API (see// https://developers.google.com/pay/api/web/reference/object\// #BillingAddressParameters).enumBillingInformationFormat{BILLING_INFORMATION_FORMAT_UNSPECIFIED=0;// name, country code, and postal code (GPay default setting).MIN=1;// name, street address, locality, region, country code, and postal codeFULL=2;}// Include in the payment token the user's billing information as entered into// Google Pay with their FOP (see above).BillingInformationFormatbilling_information_format=2;// Name of the Merchant Of Record (MOR). This user-visible name will be shown// in 3DS2 challenges. In some cases, this is the Merchant, in others this is// the Aggregator.stringmerchant_of_record_name=3;// Country where transaction will be processed, in ISO 3166-1 alpha-2 form.stringpayment_country_code=4;// Per CardNetwork Processing information.messageCardNetworkParameters{// The Card Network that these parameters are aboutCreditCardRestrictions.CreditCardTypecard_network=1;// The Bank Identification Number of the acquiring bank used for processing// of the card.//// If this value is not known to you, you should ask your acquirer or// merchant processor representative.stringacquirer_bin=2;// The merchant identifier assigned by the acquirer to the merchant for use// in transaction authorization (for Visa and American Express// transactions).//// If this value is not known to you, you should ask the acquirer or// merchant processor representative.stringacquirer_merchant_id=3;}// Per-Card Network processing parameters.//// These are currently only required for PSD2// (https://en.wikipedia.org/wiki/Payment_Services_Directive)// processing when payment_country_code is a European country where PSD2 is in// effect. They are also only currently required for VISA and// AMERICAN_EXPRESS.repeatedCardNetworkParameterscard_network_parameters=5;// Fields supported to authorize a card transaction.//// See the GPay documentation at// https://developers.google.com/pay/api/web/reference/object#CardParametersenumAuthMethod{AUTH_METHOD_UNSPECIFIED=0;// This authentication method is associated with payment cards stored on// file with the user's Google Account. Returned payment data includes// personal account number (PAN) with the expiration month and the// expiration year.PAN_ONLY=1;// This authentication method is associated with cards stored as Android// device tokens. Returned payment data includes a 3-D Secure (3DS)// cryptogram generated on the device.CRYPTOGRAM_3DS=2;}// Defines types of cardholder data that are accepted by the gateway.// If not specified, no restrictions are applied.//// Note that partners who use commercial gateways should leave this// empty unless their gateway provider has specified otherwise. Restricting// allowed_auth_methods is most useful in the scenario that a partner// integrates with GPay as a gateway themselves.repeatedAuthMethodallowed_auth_methods=6;}
Definisi Terms
// A set of rules and guidelines that are displayed to the// user in order to make a booking through Reserve with Google.messageTerms{// The URL to the Terms and Conditions. (optional)stringurl=1;// The text to be displayed to the user.// Use localized_text below for new integrations.stringtext=2;// The localized text to be displayed to the user. (required)Textlocalized_text=3;}
// Instance of a string in one locale.messageLocalizedString{// IETF BCP 47 language code, such as "en", "mas", "zh-Hant", "de-CH-1901".// See http://www.w3.org/International/articles/language-tags/.stringlocale=1;// Message in the locale above (UTF-8).stringvalue=2;}
Definisi Advisement
// Advisements that are displayed to the user when booking through Reserve with// Google.messageAdvisement{// Custom message to be displayed to the user when booking through// Reserve with Google.Texttext=1;}
Definisi EconomicOperator
// Economic Operator information for the Merchant.messageEconomicOperator{// Name, address, telephone number and email address of the economic operator,// defined as the manufacturer, authorized representative, importer,// distributor, fulfillment service provider or any other natural or legal// person subject to obligations related to the manufacture of products,// making them available, or putting them into service.// Freeform string representation of the economic_operator. This information// may be formatted using " " and "\n".Texttext=1;}
Definisi MerchantMatchingHints
// Hints used to help Google match a merchant to a place on Google Maps.messageMerchantMatchingHints{// The Place ID for a place in the Google Places database and on Google Maps.// See https://developers.google.com/places/place-id for more about Place IDs.// If this is provided, Google will use it as a hint when matching, and// prioritize the hint over other candidates.stringplace_id=1;}
Definisi ServiceAttribute
// Service attributes are partner-defined categories that describe the Services// for a Merchant. For example, a bank may define an "Account Type"
// service attribute with possible values of "Personal" and "Business", while a// hair salon may define a "Service Type" service attribute with possible// values of "Haircut", "Color", and "Style".messageServiceAttribute{// An identifier that uniquely identifies this service attribute among others// for the same merchant, e.g. "account-type".stringattribute_id=1;// A user-visible name for this attribute, e.g. "Account Type".stringattribute_name=2;// Represents a possible value for a particular service attribute.messageValue{// An identifier that uniquely identifies this value among others for// this service attribute, e.g. "personal".stringvalue_id=1;// A user-visible name for the value, e.g. "Personal".stringvalue_name=2;}// All possible values for this service attribute.repeatedValuevalue=3;}
// Metadata for an order online action link.messageOrderOnlineMetadata{// Available fulfillment options for an order online action link.repeatedFulfillmentOptionfulfillment_option=1;}
// Wrapper for a range of duration that can be bounded or unbounded.// At least one of min_duration and max_duration duration is required.messageDurationRange{// Minimum duration.google.protobuf.Durationmin_duration=1;// Maximum duration.google.protobuf.Durationmax_duration=2;}
Definisi MoneyRange
// Wrapper for a range of monetary amount that could be bounded or unbounded.// At least one of min_amount and max_amount is required.messageMoneyRange{// Minimum amount.google.type.Moneymin_amount=1;// Maximum amount.google.type.Moneymax_amount=2;}