// 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;// The linkout template that specifies how Google should generate the// partner's URL to reserve a table on their platform.//// Note that currently only the first one will be used if multiple are// provided.//// The URI template has support for fields which will be populated based// on the user's reservation selections, all required fields are needed to// build a reservation URL successfully:// * (required) party_size, int: The size of the party for which the user is// requesting a reservation.// * (required) selected_date_time, ISO 8601 datetime// (https://en.wikipedia.org/wiki/ISO_8601): The time the user is requesting a// reservation for.// * (optional) merchant_id, string: The ID of the Merchant the user is// requesting a reservation with, not needed if template already includes a// merchant identifier.// * (optional) room_id, string: The id of the room the user is requesting a// reservation for.repeatedLinkoutTemplatereservation_linkout_template=21;// 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;}
GeoCoordinates – Définition
// 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{// [-90, +90] degrees (inclusive). (optional)doublelatitude=1;// [-180, +180] degrees (inclusive). (optional)doublelongitude=2;// 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;}}
PostalAddress – Définition
// 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;}
TaxRate – Définition
// 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;}
PaymentRestrictions – Définition
// 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;}
//Apaymentoption,whichcanbeusedtopayforservicesprovidedbya//merchant.Paymentoptionscanbesharedamongmultiplemerchants//(e.g.merchantsbelongingtothesamechain).messagePaymentOption{//Anopaquestringfromanaggregatorpartnertoidentifyapaymentoption.////Thisidisglobaltothewholeaggregator,andre-usingavalueacross//multiplemerchantswillallowausertopaywiththecorrespondingpayment//optionacrossthosemerchants.////Whenre-usinganidacrossmultiplemerchants,updatinganyvaluefora//paymentoptionunderonemerchantwillalsoupdateanyotherpaymentoption//withthesameid,underadifferentmerchant.Assuch,it's a best practice//tohaveallpaymentoptionssharingthesameid,alwaysbeupdatedto//identicalvalues,toavoidanypossibilityofnondeterministicbehavior.////DoNOTconfuseitwiththeinternalpaymentoptionid.(required)stringpayment_option_id=1;//Thenameofthepaymentoption.Thiscanbeuservisible.(required)stringname=2;//Adescriptionofthepaymentoption.Thiscanbeuservisible.(optional)stringdescription=3;//Thepriceofthepaymentoption.(required)Priceprice=4;//Thetaxrateforthispaymentoption.Ifpresentthisfieldoverridesthe//tax_ratefieldpresentintheMerchantorService.Anemptymessage//(i.e.tax_rate{})willresettheappliedtaxratetozero.(optional)TaxRatetax_rate=5;//Apaymentoptiontype.enumPaymentOptionType{//Unused.PAYMENT_OPTION_TYPE_UNSPECIFIED=0;//Paymentoptioncanonlybeusedonce.PAYMENT_OPTION_SINGLE_USE=1;//Paymentoptioncanbeusedifitssessioncount > 0.PAYMENT_OPTION_MULTI_USE=2;//Paymentoptioncanbeusedwithinitsvalidtimerange-sessioncount//isinapplicable.PAYMENT_OPTION_UNLIMITED=3;}//Thetypeofthispaymentoption.Single-usefordrop-ins,multi-usefor//packs,andunlimitedformemberships.(required)PaymentOptionTypepayment_option_type=6;//Howmanysessionsthispaymentoptioncanbeusedfor.Validonlyfor//multi-session/packs,wherethevalueshouldbe > 1.//(requiredifpayment_option_typeisPAYMENT_OPTION_MULTI_USE)int64session_count=7;//Thepaymentoptioncanbepurchasedwithinthisinterval.(optional)TimeRangepurchase_interval=8;//Thepaymentoptioncanbeusedwithinthisinterval(e.g.specialprice//forJanuary2017).//Ifpresent,thisoverridesvalid_duration_secandactivation_type.//(optional)TimeRangevalid_interval=9;//Durationofthepaymentoptionvalidity(e.g.30daymembership).//(optional)int64valid_duration_sec=10;//Defineshowthevaliditystartdateisdetermined.enumActivationType{//Unused.ACTIVATION_TYPE_UNSPECIFIED=0;//Validitystartsatthetimeofpurchase.ACTIVATION_ON_PURCHASE=1;//Validitystartswhenthepaymentoptionisusedforthefirsttime.ACTIVATION_ON_FIRST_USE=2;}//Defineshowthevaliditystartdateisdeterminedforthispaymentoption.//(required)ActivationTypeactivation_type=11;//Restrictstheuserseligibletopurchasethispaymentoption.Canbeused//torestrictapromotionalpaymentoptiontoasubsetofusers.Ifnotset,//allusersareeligible.(optional)UserPurchaseRestrictionuser_restriction=12;}
UserPurchaseRestriction – Définition
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;
}
TimeRange – Définition
// 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;}
TokenizationConfig – Définition
// 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;}
Terms – Définition
// 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;}
Définition d'un avis
// 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;}
Définition d'un opérateur économique
// 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;}
MerchantMatchingHints – Définition
// 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;}
ServiceAttribute – Définition
// 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;}
Définition de FulfillmentOption
//Thefulfillmentoptionforanorderonlineactionlink.messageFulfillmentOption{//Thefulfillmenttypeassociatedwithanactionlink.enumFulfillmentType{//Thefulfillmenttypeisunspecified.FULFILLMENT_TYPE_UNSPECIFIED=0;//Thefulfillmenttypeisdelivery.FULFILLMENT_TYPE_DELIVERY=1;//Thefulfillmenttypeispickup.FULFILLMENT_TYPE_PICKUP=2;}//Required.Thefulfillmenttype.FulfillmentTypefulfillment_type=1;//Daylevelavailability.messageAvailableDay{//Required.Anavailabledateforafulfillmentmethod.Assumedtobein//merchant's timezone. google.type.Date fulfillment_date = 1; // Required. Unix timestamp. The last time a user could order, and receive // items by `fulfillment_date`. In other words, after last_ordering_time, // fulfillment_date will no longer be shown as available. // // For example, if the fulfillment_date is 2020-08-10: // - a last_ordering_time value of 2020-08-10 18:00 means that, in order to // receive their order on 2020-08-10, a customer must make that order by 6pm // that same day. // - a last_ordering_time value of 2020-08-08 20:00 means that, in order to // receive their order on 2020-08-10, a customer must make that order by 8pm // two days prior. google.protobuf.Timestamp last_ordering_time = 2; } // Required. A list of days on which there is availability for this // fulfillment method (preferably at least 2). repeated AvailableDay available_day = 2; // No fee required for the fulfillment method associated with the action link. message NoFee {} // The minimum fee required for the fulfillment method associated with the // action link. message MinimumFee { // Required. The base fee amount for the fulfillment method. Price base_fee_amount = 1; } // The fixed fee required for the fulfillment method associated with the // action link. message FixedFee { // Required. The amount of the fixed fee for the fulfillment method. Price amount = 1; } // Fee details for the fulfillment method associated with the action link. message FeeDetails { // Fee model for the fulfillment method. oneof fee_details { // No fee for the fulfillment method. NoFee no_fee = 1; // The base fee associated with the fulfillment method. MinimumFee base_fee = 2; // The fixed fee associated with the fulfillment method. FixedFee fixed_fee = 3; } } // Required. Fee details for the fulfillment method. FeeDetails fee_details = 3; // Required. Minimum order for the fulfillment method associated with the // action link. Price minimum_order = 4;}
// 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;}
MoneyRange – Définition
// 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;}
{"metadata":{"generation_timestamp":"1467993600","processing_instruction":"PROCESS_AS_COMPLETE","total_shards":1},"merchant":[{"merchant_id":"dining-starter-1","name":"Sample Restaurant","telephone":"+1-650-123-4567","url":"www.starterdining1publicsite.com","category":"restaurant","geo":{"latitude":37.422113,"longitude":-122.084041,"address":{"street_address":"1170 Bordeaux Dr Building 3","locality":"Sunnyvale","region":"CA","country":"US","postal_code":"94089"}},"action_link":[{"url":"https://www.rwgpartnerwebsite.com/reserve_table/merch1","action_link_type":"ACTION_LINK_TYPE_MAKE_DINING_RESERVATION","language":"en","platform":"ACTION_PLATFORM_WEB_APPLICATION"}]}]}
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/11/26 (UTC).
[null,null,["Dernière mise à jour le 2024/11/26 (UTC)."],[[["The Merchant Feed is a JSON file containing metadata and a list of merchants displayed on the platform."],["Each Merchant entry includes details like ID, name, location, category, tax rate, payment options, and terms."],["Payment options can have specific restrictions, validity periods, and tokenization configurations for secure processing."],["Location data uses `GeoCoordinates` with latitude, longitude, and address, potentially structured as a `PostalAddress`."],["The feed structure includes optional elements like `terms`, `brand_id`, `matching_hints` for Google Maps integration, and service attributes."]]],[]]