Specifiche di pagamento
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
// Parameters to specify how the partner will process payment for a given
// booking.
//
// A sample request when using the deprecated PaymentProcessorConfig in
// Merchant:
// processor: PROCESSOR_STRIPE
// payment_method_token: "some token"
// version: "2017-06-15"
//
// A sample request when using the TokenizationConfig in Merchant:
// payment_processor: "stripe"
// unparsed_payment_method_token: "some token"
// version: "2017-06-15"
message PaymentProcessingParameters {
enum PaymentProcessor {
PAYMENT_PROCESSOR_UNSPECIFIED = 0;
PROCESSOR_STRIPE = 1;
PROCESSOR_BRAINTREE = 2;
}
// The payment processor to use to process payment for a given booking.
// (required)
PaymentProcessor processor = 1 [deprecated = true];
// The token representing the payment method that will be used to pay
// for this booking. This token can be only used once. This token can be
// only used for the merchant associated with this booking.
//
// Each processor may choose its own format for this field.
// An example of Stripe's token is "tok_1C3orL2eZvKYlo2CxReMgS4K"
//
// Replaced by unparsed_payment_method_token, which contains
// payment_method_token as one of its fields.
// For example, for Stripe, unparsed_payment_method_token is a serialized
// JSON object documented at https://stripe.com/docs/api#token_object.
// payment_method_token is the 'id' field parsed out of that.
string payment_method_token = 2 [deprecated = true];
// The full token received from Google Payments. This is typically a
// serialized JSON object. See documentation from Google Payments and your
// payment processor for the JSON format of the token for your processor.
// https://developers.google.com/pay/api/#participating-google-pay-processors
//
// This token can only be used once, and only for the merchant associated with
// this booking.
string unparsed_payment_method_token = 5
[(datapol.semantic_type) = ST_PAYMENTS_INFO];
// The payment processor API version that the given payment token is valid
// for.
//
// Each processor may choose its own format for this field.
// Stripe uses a date (e.g. "2017-06-15"). (required)
// This is deprecated in favor of tokenization_parameters.
string version = 3;
// The payment processor whose configuration was used to generate this token.
// This is deprecated in favor of tokenization_parameters.
string payment_processor = 4;
// The tokenization_config supplied in the Merchant feed that was used
// to generate unparsed_payment_method_token.
TokenizationConfig tokenization_config = 6;
}
enum PaymentOptionType {
PAYMENT_OPTION_TYPE_UNSPECIFIED = 0;
PAYMENT_OPTION_SINGLE_USE = 1;
PAYMENT_OPTION_MULTI_USE = 2;
PAYMENT_OPTION_UNLIMITED_USE = 3;
}
// This describes a payment option, such as a pack, membership, or
// single-session pass after it has been purchased by a user. It includes an
// identifier for the user payment option, as well as some information about
// the payment option with which it is associated.
message UserPaymentOption {
// A unique identifier for the user payment option. This Id MUST be unique
// for all UserPaymentOptions across all merchants and users. (required)
string user_payment_option_id = 1;
// The user payment option will be valid (usable) between start_time and
// end_time set in UTC. Attempts to use a user payment option to make a
// booking outside of this interval will fail. (both optional)
google.protobuf.Timestamp valid_start_time = 2;
google.protobuf.Timestamp valid_end_time = 3;
// The type of the payment option associated with this user payment option.
// This can be unlimited for a membership or subscription, multi-use for a
// pack, or single-use. (required)
PaymentOptionType type = 4;
// The original number of uses for this user payment option when it was
// purchased. This value is ignored for unlimited payment options. (required)
int32 original_count = 5;
// The number of uses remaining for this user payment option. If this number
// is 0 for a pack, attempts to use this payment option to make a booking will
// fail. (required)
int32 current_count = 6;
// The id of the payment option that has been used to purchase this user
// payment option. (required)
string payment_option_id = 7;
}
// Payment details that are sent when creating a new booking.
message PaymentInformation {
// Prepayment status of the booking.
// If the prepayment_status is PREPAYMENT_PROVIDED, then
// payment_transaction_id contains the associated unique transaction id for
// the purchase.
// If the prepayment status is PREPAYMENT_REFUNDED, then
// payment_transaction_id contains the associated unique transaction id for
// the refund. (required)
PrepaymentStatus prepayment_status = 1;
// Unique identifier for a payment transaction associated with the booking.
// Empty if not applicable. (required)
string payment_transaction_id = 2;
// These fields must match the service price (specified in the Services feed)
// or the PaymentOption corresponding with this service.
// They are included in the booking request and response to verify that
// the price indicated in the feed has not changed since the last feed
// update.
//
// The price of the booking, exclusive of any taxes.
// Existence of price or taxes does not imply that they have been paid,
// prepayment_state should be used for that purpose. (required)
Price price = 3;
// Taxes that are calculated to be paid for this booking.
// If this field is absent the price is assumed to be exempt from or already
// inclusive of applicable taxes. (required)
Price tax_amount = 4;
// Who handles payment processing?
// If payment is processed by the partner, CreateBooking request will
// include additional parameters (PaymentProcessingParameters) indicating
// the payment method to be used to process the payment.
enum PaymentProcessedBy {
PAYMENT_PROCESSED_BY_UNSPECIFIED = 0;
PROCESSED_BY_GOOGLE = 1;
PROCESSED_BY_PARTNER = 2;
}
// Whether the partner or Google processed the payment. (required)
PaymentProcessedBy payment_processed_by = 5;
// The id of the payment option or user payment option associated with the
// booking.
// If a payment option is purchased as part of a booking, payment_option_id
// will be set with the id of that payment option.
// If an already purchased user payment option is being used to pay for a
// booking, user_payment_option_id will be set with the id of that user
// payment option.
// When included as part of a response proto, the user_payment_option_id
// should be set and must match the UserPaymentOption that is returned in the
// RPC response (e.g. the user_payment_option returned in
// CreateBookingResponse). (one of these required)
oneof payment_id {
// The id of the payment option associated with this booking. If this field
// is populated, price (and tax_amount, if applicable) must be populated as
// well.
string payment_option_id = 6;
// The id of the user payment option used to pay for this booking.
string user_payment_option_id = 7;
}
// Defines how a deposit may be charged to the user. If there is a deposit,
// this field should be set. (optional)
Deposit deposit = 8;
// Defines a no show fee that may be charged to the user. If the user can be
// charged a no show fee, this field should be set. (optional)
NoShowFee no_show_fee = 9;
}
// Prepayment status of a booking.
// Updating payment status will trigger an update on the payment status of the
// associated booking (if applicable).
// Currently, the only supported transition is from PREPAYMENT_PROVIDED to
// PREPAYMENT_REFUNDED, which will initiate a non-reversible refund on the
// associated payment transaction.
enum PrepaymentStatus {
// Not specified, defaults to PREPAYMENT_NOT_PROVIDED.
PREPAYMENT_STATUS_UNSPECIFIED = 0;
// The fee for the booking has been paid in advance.
PREPAYMENT_PROVIDED = 1;
// The fee for the booking has not been paid in advance.
PREPAYMENT_NOT_PROVIDED = 2;
// The fee was previously PREPAYMENT_PROVIDED but has now been refunded.
PREPAYMENT_REFUNDED = 3;
// The fee was previously PREPAYMENT_PROVIDED but now has been credited
// (user given a UserPaymentOption as a voucher for the booking).
// If this is set, the response should also include the updated
// UserPaymentOption.
PREPAYMENT_CREDITED = 4;
}
message Price {
// The price in micro-units of the currency.
// Fractions of smallest currency unit will be rounded using nearest even
// rounding. (e.g. For USD 2.5 cents rounded to 2 cents, 3.5 cents rounded to
// 4 cents, 0.5 cents rounded to 0 cents, 2.51 cents rounded to 3 cents).
// (required)
int64 price_micros = 1;
// The currency of the price that is defined in ISO 4217. (required)
string currency_code = 2;
}
// Defines how a total price is determined from an availability.
enum PriceType {
// The price is for a fixed amount. This is the default value if the field is
// not set.
FIXED_RATE_DEFAULT = 0;
// The price specified is per person, and the total price is calculated
// according to the party size specified in Resources as
// price_micros * party_size. A PER_PERSON price must be accompanied by a
// party size in the availability resources. If it is not, a party size of one
// is used.
PER_PERSON = 1;
}
// A fee that a user may be charged if they have made a booking but do not
// show up.
message NoShowFee {
// The amount the user may be charged if they do not show up for their
// reservation.
Price fee = 1;
// Defines how the fee is determined from the availability.
PriceType fee_type = 3;
}
// A deposit that the user may be charged or have a hold on their credit card
// for.
message Deposit {
// Deposit amount.
Price deposit = 1;
// Minimum advance cancellation for the deposit. If the reservation is not
// cancelled at least this amount of time ahead, the user is subject to the
// Deposit.
int64 min_advance_cancellation_sec = 2;
// Defines how the deposit is determined from the availability.
PriceType deposit_type = 3;
}
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-07-26 UTC.
[null,null,["Ultimo aggiornamento 2025-07-26 UTC."],[[["\u003cp\u003e\u003ccode\u003ePaymentProcessingParameters\u003c/code\u003e define how partners process payments, including payment processor, token, and version.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eUserPaymentOption\u003c/code\u003e stores information about purchased payment options like validity, type, and remaining uses.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003ePaymentInformation\u003c/code\u003e details booking payments, including prepayment status, transaction ID, price, taxes, and payment method.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003ePrepaymentStatus\u003c/code\u003e indicates the state of prepayment, such as provided, not provided, refunded, or credited.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003ePrice\u003c/code\u003e represents a monetary value with price in micro-units and currency code.\u003c/p\u003e\n"]]],["Payment processing involves specifying parameters like the `PaymentProcessor` (e.g., Stripe), a `payment_method_token`, and `version`. `UserPaymentOption` details user-purchased payment options, including type (`PaymentOptionType`), valid timeframes, and usage counts. `PaymentInformation` covers booking payment details: `PrepaymentStatus`, `payment_transaction_id`, `Price`, taxes, and whether payment is processed by Google or the partner. Additional attributes are the `NoShowFee` and `Deposit` for fees and holds.\n"],null,[]]