
Depois de configurar o modelo de URL, adicione pagamentos aos seus slots seguindo as etapas abaixo.
- Identificar slots pagos
- Definir preços de slot
- Definir pagamentos antecipados
- Definir taxas de não comparecimento ou de cancelamento
- Depósitos
- Definir "Cartão de crédito obrigatório"
1. Identificar slots pagos
É possível definir seus preços usando o feed de serviços ou o feed de disponibilidade. Ao definir o preço no nível do serviço, você define todos os espaços disponíveis nesse serviço ou sala de jantar com um preço fixo. Já ao definir o preço na disponibilidade, você define o preço de um slot específico. Por exemplo, as seguintes situações podem ser tratadas definindo preços ou taxas no nível de disponibilidade:
- Os preços são reduzidos às terças-feiras e aumentados aos sábados.
- As taxas de não comparecimento se aplicam à disponibilidade entre 17h e 19h.
- Exija depósitos para grupos com mais de 6 pessoas.
- As reservas em um determinado quarto exigem um cartão de crédito.
2. Definir preços de slots
Pré-pagamento
Essa configuração é usada para especificar que o valor do serviço precisa ser
pago integralmente no momento da reserva. O pré-pagamento é especificado no nível de disponibilidade
pelo campo payment do feed Avaibility.
Exemplo de pré-pagamento
{ "availability": [{ "merchant_id": "dining-A", "service_id": "reservation", "start_sec": 1535853600, "duration_sec": 2700, "spots_total": 2, "spots_open": 2, "resources": { "room_id": "A-dining-room", "room_name": "Wine Tasting Room", "party_size": 2, "prepayment": { "price_info": { "price": { "price_micros": 200000000, "currency_code": "USD" }, "price_type": "PER_PERSON" } } } }] }
Feed de disponibilidade
message Availability {
...
// Optional prepayment information for this availability. Prepayment is only
// available through the Payment Redirect Add-on
Prepayment prepayment = 20;
}Definição de pré-pagamento
// A payment the user may be charged as part of their reservation. message Prepayment { PriceInfo price_info = 1; }
Taxas de não comparecimento ou cancelamento
As taxas de não comparecimento ou de cancelamento podem ser cobradas de um usuário se ele não comparecer à reserva ou se cancelar após a janela de cancelamento. Se nenhuma janela de cancelamento for especificada, o padrão será o horário de início do horário.
Para especificar uma taxa de não comparecimento, no feed de serviços, inclua o campo no_show_fee, conforme mostrado no exemplo a seguir:
Exemplo de taxa de não comparecimento / cancelamento
Descrição:
No exemplo, o parceiro ou o comerciante está autorizado a cobrar uma taxa fixa de US $25, conforme especificado no campo "no_show_fee.fee.price_micros" se o titular do horário não comparecer. Essa taxa também pode ser cobrada se o usuário cancelar o agendamento em até quatro horas (14.400 segundos) antes do horário, conforme especificado no campo "scheduling_rules.min_advance_online_canceling".{ "merchant_id": "merchant-1", "service_id": "service-2-b", "name": "Reservation", "description": "A dining reservation", "price": { "price_micros": 200000000, "currency_code": "USD" }, "scheduling_rules": { "min_advance_online_canceling": 14400 }, "no_show_fee": { "fee": { "price_micros": 25000000, "currency_code": "USD" }, "fee_type": "FIXED_RATE_DEFAULT" } }
Feed de serviço
message Service {
...
// Defines a no show fee that may be charged to the user. Can be overridden
// at the availability level. (optional)
NoShowFee no_show_fee = 12;
}Feed de disponibilidade
message Availability {
...
// Defines a no show fee that may be charged to the user. Overrides the
// service no show fee if one was specified. Setting this to an empty
// NoShowFee message removes any service-level no show fee. (optional)
NoShowFee no_show_fee = 13;
}Definição da taxa de não comparecimento
// 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; }
Depósito
Os depósitos são usados para receber uma cobrança inicial como requisito para uma reserva. Os depósitos podem ser cobrados no momento da reserva ou mais tarde. Talvez seja necessário definir em quais condições um depósito é reembolsável e quando uma reserva pode ser cancelada on-line.
Para especificar um depósito, no feed de serviços, inclua o campo deposit, conforme mostrado no exemplo a seguir:
Amostra de depósito
Descrição:
O "min_advance_online_canceling" "deposit.min_advance_cancellation_sec" define quando o depósito é reembolsável. No exemplo, um depósito pode especificar um tempo de cancelamento separado dos termos de reembolso. Nesse caso, o usuário poderá cancelar o serviço on-line com até 24 horas de antecedência (86.400 segundos). Isso garante que o comerciante seja informado diretamente sobre cancelamentos tardios. No entanto, o usuário ainda pode ser reembolsado pelo depósito até quatro horas (14.400 segundos) antes da reserva (contate você ou o comerciante para cancelamento), que será mostrado nos termos no momento do pagamento e no e-mail de confirmação.{ "merchant_id": "merchant-1", "service_id": "service-2-b", "name": "Reservation", "description": "A dining reservation", "price": { "price_micros": 200000000, "currency_code": "USD" }, "scheduling_rules": { "min_advance_online_canceling": 86400, }, "deposit": { "deposit": { "price_micros": 25000000, "currency_code": "USD" }, "min_advance_cancellation_sec": 14400, "deposit_type": "FIXED_RATE_DEFAULT" } }
Feed de serviço
message Service {
...
// Defines how a deposit may be charged to the user. Can be overridden at the
// availability level. (optional)
Deposit deposit = 11;
}Feed de disponibilidade
message Availability {
...
// Defines how a deposit may be charged to the user. Overrides the service
// deposit if one was specified. Setting this to an empty Deposit message
// removes any service-level deposit. (optional)
Deposit deposit = 12;
}Definição de depósito
// 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. int64 min_advance_cancellation_sec = 2; // Defines how the deposit is determined from the availability. PriceType deposit_type = 3; }
Exigir cartão de crédito
Um serviço pode exigir um cartão de crédito como outra forma de verificar a identidade. No entanto, ele não deve ser usado para pré-pagamentos, depósitos ou taxas de não comparecimento. Se esses casos de uso forem necessários, eles precisarão ser configurados explicitamente. Exigir um cartão de crédito geralmente leva a uma queda significativa nas reservas desse serviço.
Para exigir que um cartão de crédito seja fornecido durante a finalização da compra, defina o campo
require_credit_card como REQUIRE_CREDIT_CARD_ALWAYS.
Amostra de cartão de crédito obrigatório
{
"merchant_id": "merchant-1",
"service_id": "reservation",
"name": "reservation",
"description": "Food reservation",
"require_credit_card": "REQUIRE_CREDIT_CARD_ALWAYS"
}Feed de serviço
message Service {
...
// Indicates whether the user must provide a credit card in order to book this
// service.
// This value can be overridden at the availability level. (optional)
RequireCreditCard require_credit_card = 13;
}Feed de disponibilidade
message Availability {
...
// Indicates whether the user must provide a credit card in order to book this
// availability slot.
// If the value is not set, it is inherited from the service level if it's set
// there. (optional)
RequireCreditCard require_credit_card = 14;
}Definição de Require Credit Card
// Defines whether a credit card is required in order to book an appointment. enum RequireCreditCard { // The credit card requirement is not explicitly specified and the // behaviour is identical to the one specified for CONDITIONAL. REQUIRE_CREDIT_CARD_UNSPECIFIED = 0; // Google will require a credit card for the booking if any of the following // conditions are met: // * the availability has a price and the prepayment_type is REQUIRED // * the no_show_fee is set // * the deposit field is set. REQUIRE_CREDIT_CARD_CONDITIONAL = 1; // A credit card is always required in order to book this availability // regardless of other field values. REQUIRE_CREDIT_CARD_ALWAYS = 2; }
Outras definições
Definição de faixa de preço
// Wrapper for a range of monetary amount treated as unbounded unless both // values are set. At least one of min_amount and max_amount is required. message PriceRange { // Minimum amount. Price min_price = 1; // Maximum amount. Should always be > min_price. Price max_price = 2; }
Definição de informações de preço
// Container for price details. message PriceInfo { oneof price_options { Price price = 1; // The upper and/or lower bound PriceRange price_range = 2 ; } // Defines how price or price range is applied (per person or fixed) PriceType price_type = 3; }
Definição do tipo de preço
// 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. // // Examples: // $50 deposit to reserve a table; $20 no show fee for a yoga class 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. // // Examples: // $10 each for tickets to a museum PER_PERSON = 1; }