Skip to content

Descrição para o Agente de Reservas

Objetivo desse documento é trazer uma visão de como gerar os tipos de reserva que a plataforma iFriend suporta.

Com esse documento a ideia é gerarmos um agent ADK específico para criar reservas na plataforma. O agente deve solicitar informações necessárias para conseguir preencher os campos necessários de customer (nome, email, telefone, data de nascimento), passageiros (pax) (fullname, doc, gender, phone, email, birthday) para cada passageiro que não é o customer principal caso seja uma reserva para mais de 1 adulto, se for apenas para 1 adulto os dados de passageiro (pax) devem replicar as informações solicitadas para o customer.

Obviamente o agente antes tem que tentar identificar um cliente já cadastrado na plataforma solicitando o email antes de iniciar. Ou seja pede o E-mail, o agente consulta o endpoint GET /users?userEmail={email_de_input_informado} se retornar um cliente utilizar ele como customer das reservas.

Para reservas do provider tiqets temos que pegar as informações necessárias também para conseguir preencher a reserva para a Tiqets.

Booking de Guias

Request POST /bookings

{
    "type": "normal ou virtual_guide",
    "ifriend": {
        "id": 3
    },
    "customer": {
        "id": 7
    },
    "dates": [
        {
            "day": "2026-09-10",
            "hours": 4,
            "period": "12:00",
            "numAdult": 1,
            "numChild": 0,
            "isIfriendCar": false
        }
    ],
    "pax": [
        {
            "fullname": "Glauber Portella",
            "doc": "05771095613",
            "gender": "m",
            "birthday": "1982-01-12",
            "email": "glauberportella@gmail.com",
            "phone": "+5531992468610",
            "obs": "Qualquer informação pertinente sobre o passageiro."
        }
    ]
}

Response

{
    "id": 41,
    "city": "São Paulo",
    "state": "SP",
    "country": "Brasil",
    "countryCode": null,
    "latitude": "-46.63330",
    "longitude": "-23.55050",
    "dollarQuotation": null,
    "price": "64.000000",
    "currencyCode": "USD",
    "ifriendPrice": "10.000000",
    "confirmStatus": 0,
    "confirmStatusDate": "2025-12-06T12:40:43+00:00",
    "paymentStatus": 0,
    "paymentStatusDate": null,
    "statusReason": null,
    "paymentMethod": null,
    "payerId": null,
    "paymentId": null,
    "transactionId": null,
    "installments": 1,
    "ifriendEmail": "sabrina20@gmail.com",
    "customerEmail": "glauber.portella@theifriend.com",
    "createdAt": "2025-12-06T12:40:41+00:00",
    "isDone": false,
    "serviceTax": "0.00000",
    "platformTax": "0.00000",
    "userRated": false,
    "ifriendRated": false,
    "customer": {
        "id": 7,
        "userEmail": "Aguardando confirmação do iFriend.",
        "firstname": "Cliente",
        "lastname": "Teste",
        "fullname": "Cliente Teste",
        "nickname": "Cliente",
        "birthday": "1975-03-11T00:00:00+00:00",
        "role": "user",
        "userRoles": [
            {
                "id": 1,
                "name": "ROLE_USER"
            }
        ],
        "phoneCountryCode": "BR",
        "phone": "Aguardando confirmação do iFriend.",
        "phoneFormatted": "Aguardando confirmação do iFriend.",
        "phone2CountryCode": null,
        "phone2": "Aguardando confirmação do iFriend.",
        "phone2Formatted": "Aguardando confirmação do iFriend.",
        "skype": "Aguardando confirmação do iFriend.",
        "messenger": "Aguardando confirmação do iFriend.",
        "whatsappCountryCode": "BR",
        "whatsapp": "Aguardando confirmação do iFriend.",
        "whatsappFormatted": "Aguardando confirmação do iFriend.",
        "gender": {
            "id": 2,
            "type": "Feminino"
        },
        "avatar": null,
        "rating": 0,
        "roles": [
            "ROLE_USER"
        ]
    },
    "ifriend": {
        "id": 3,
        "user": {
            "id": 3,
            "userEmail": "Aguardando confirmação do iFriend.",
            "firstname": "Douglas",
            "lastname": "Willms",
            "fullname": "Kyla Russel",
            "nickname": "bmarks",
            "birthday": "1996-01-16T00:00:00+00:00",
            "role": "ifriend",
            "userRoles": [
                {
                    "id": 1,
                    "name": "ROLE_USER"
                },
                {
                    "id": 2,
                    "name": "ROLE_IFRIEND"
                }
            ],
            "phoneCountryCode": "BR",
            "phone": "Aguardando confirmação do iFriend.",
            "phoneFormatted": "Aguardando confirmação do iFriend.",
            "phone2CountryCode": null,
            "phone2": "Aguardando confirmação do iFriend.",
            "phone2Formatted": "Aguardando confirmação do iFriend.",
            "skype": "Aguardando confirmação do iFriend.",
            "messenger": "Aguardando confirmação do iFriend.",
            "whatsappCountryCode": null,
            "whatsapp": "Aguardando confirmação do iFriend.",
            "whatsappFormatted": "Aguardando confirmação do iFriend.",
            "gender": {
                "id": 2,
                "type": "Feminino"
            },
            "avatar": null,
            "rating": 0,
            "roles": [
                "ROLE_USER",
                "ROLE_IFRIEND"
            ]
        },
        "placeId": "ChIJ0WGkg4FEzpQRrlsz_whLqZs",
        "places": [
            {
                "id": 13,
                "isAlias": null,
                "placeId": "ChIJ0WGkg4FEzpQRrlsz_whLqZs",
                "latitude": -23.5505,
                "longitude": -46.6333,
                "state": "SP",
                "countryCode": "BR",
                "country": null,
                "name": "São Paulo"
            }
        ],
        "city": "São Paulo",
        "state": "SP",
        "country": "Brasil",
        "countryCode": "BR",
        "latitude": "-46.63330",
        "longitude": "-23.55050",
        "pro": true,
        "car": true,
        "isMaster": null,
        "quote": "Esse repudiandae pariatur reprehenderit assumenda error consequatur fugit.",
        "bio": "Minus ullam quidem quo vero soluta nostrum ea dolores doloremque fuga labore qui et molestias hic.",
        "price": "10.00",
        "customPrice": null,
        "occupation": "Et omnis porro.",
        "interests": [
            {
                "id": 1,
                "name": "Esportes ao ar livre",
                "slug": "outdoor-sports",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-outdoor-sports.png",
                "type": "ifriend"
            },
            {
                "id": 2,
                "name": "Contato com a natureza",
                "slug": "contact-with-nature",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-contact-with-nature.png",
                "type": "ifriend"
            },
            {
                "id": 3,
                "name": "Arte e Cultura",
                "slug": "art-and-culture",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-art-and-culture.png",
                "type": "ifriend"
            },
            {
                "id": 4,
                "name": "Locais turísticos",
                "slug": "sights",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-sights.png",
                "type": "ifriend"
            },
            {
                "id": 5,
                "name": "LGBT",
                "slug": "lgbt",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-lgbt.png",
                "type": "ifriend"
            },
            {
                "id": 6,
                "name": "Compras",
                "slug": "shopping",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-shopping.png",
                "type": "ifriend"
            },
            {
                "id": 10,
                "name": "Religioso",
                "slug": "religious",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-religious.png",
                "type": "ifriend"
            },
            {
                "id": 13,
                "name": "By night",
                "slug": "by-night",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-by-night.png",
                "type": "ifriend"
            },
            {
                "id": 14,
                "name": "Esportes e aventura",
                "slug": "sports-and-adventure",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-sports-and-adventure.png",
                "type": "ifriend"
            }
        ],
        "languages": [
            {
                "id": 1,
                "code": "pt",
                "name": "Português",
                "icon": "pt.png"
            },
            {
                "id": 2,
                "code": "en",
                "name": "Inglês",
                "icon": "en.png"
            },
            {
                "id": 7,
                "code": "fr",
                "name": "Francês",
                "icon": "fr.png"
            },
            {
                "id": 11,
                "code": "ja",
                "name": "Japonês",
                "icon": "ja.png"
            },
            {
                "id": 12,
                "code": "ar",
                "name": "Árabe",
                "icon": "ar.png"
            },
            {
                "id": 13,
                "code": "el",
                "name": "Grego",
                "icon": "el.png"
            }
        ],
        "photos": [],
        "rating": 0,
        "recommended": 0,
        "cityPhoto": "https://obj.cdn.theifriend.com/cities/ChIJ0WGkg4FEzpQRrlsz_whLqZs.jpg",
        "plannerRoom": null,
        "fullPrice": null,
        "paymentModulePromo": null,
        "profileUrl": "https://theifriend.com/ifriends/3",
        "thumbnails": {
            "cityPhoto": {
                "small": "https://thumbnail.cdn.theifriend.com/small/cities/ChIJ0WGkg4FEzpQRrlsz_whLqZs.jpg",
                "medium": "https://thumbnail.cdn.theifriend.com/medium/cities/ChIJ0WGkg4FEzpQRrlsz_whLqZs.jpg",
                "large": "https://thumbnail.cdn.theifriend.com/large/cities/ChIJ0WGkg4FEzpQRrlsz_whLqZs.jpg"
            }
        }
    },
    "dates": [
        {
            "id": 41,
            "hours": 4,
            "period": "12:00",
            "numAdult": 1,
            "numChild": 0,
            "numHalfPrice": 0,
            "isIfriendCar": false,
            "price": null,
            "dayPrice": null,
            "description": null,
            "type": null,
            "day": "2026-09-10"
        }
    ],
    "checkin": null,
    "customerDeclineReason": null,
    "ifriendDeclineReason": null,
    "doneAt": null,
    "experience": null,
    "experienceServiceItems": [],
    "type": "normal",
    "callLink": null,
    "affiliateBooking": null,
    "couponUsage": [],
    "providerData": null,
    "pax": [
        {
            "fullname": "Glauber Portella",
            "firstname": "Glauber",
            "lastname": "Portella",
            "doc": "05771095613",
            "gender": "m",
            "birthday": "1982-01-12T00:00:00+00:00",
            "age": null,
            "email": "glauberportella@gmail.com",
            "phone": "+5531992468610",
            "obs": "",
            "ticketPriceType": null,
            "ticketPriceNetAmount": null,
            "ticketPriceAmount": null,
            "ticketPriceCurrency": null,
            "ticketId": null,
            "ticketCategory": null,
            "ticketCategoryName": null,
            "rg": null
        }
    ],
    "integrator": null,
    "ifriendComission": 40,
    "platformComission": 24,
    "ifriendConfirmedAt": null,
    "virtualGuideLeadId": null,
    "customIfriendComission": null,
    "affiliateComission": null,
    "place": null,
    "downPaymentPrice": null,
    "paidTheDownPrice": false,
    "soldByManagerUser": null,
    "experienceNetPrice": null,
    "experienceMetadata": null,
    "transfer": null,
    "isSingle": false,
    "serviceProvider": null,
    "items": [],
    "voucher": null,
    "needsAcceptance": false,
    "hasAccepted": null,
    "discountAmount": null,
    "discountType": null,
    "checkoutDiscountCouponCode": null,
    "payment": null,
    "grossPrice": "64.000000",
    "integratorAgencyName": null,
    "apiClient": null,
    "uuid": null,
    "totalPrice": "64.000000",
    "salesforceRecordId": null,
    "salesforceSynced": false,
    "salesforceSyncedAt": null,
    "salesforceAccountId": null,
    "salesforceRelatedOpportunityId": null,
    "salesforceOpportunityId": null,
    "paymentToken": "3c4d20c1-108b-4be2-8596-86aeef2fa482",
    "cancellationRuleText": "100% de reembolso até 14 dias antes do tour",
    "tickets": [],
    "cancellationRefund": null,
    "providerIsAware": false,
    "providerAwareAt": null,
    "promo": null,
    "withdrawalExpiredAt": null,
    "integratorAgencyKey": null,
    "integratorAgencyContactName": null,
    "integratorAgencyContactEmail": null,
    "integratorAgencyContactPhone": null,
    "receptiveHasAcceptedAt": null,
    "hasAcceptedReceptiveId": null,
    "validatorQRCode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAIAAACx0UUtAAAABnRSTlMA/wD/AP83WBt9AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFT0lEQVR4nO3dzW7cOBCF0fFg3v+VnU1WQqABwx99ap+zjS0p7QuiCxSrvr6/v/+BsH+ffgD4HzJKnYxSJ6PUySh1MkqdjFIno9TJKHUySp2MUiej1MkodTJKnYxSJ6PUySh1MkqdjFL338wvf319rXqOe5dDV0P3vf/dmeNc95ea+XCGnnnhv+4z8zlbR6mTUepklDoZpW6qZrpY2E5i33f5hUXSzH2PlX1D/9/mX9A6Sp2MUiej1MkodStrpouZsmDIfUmxbxtmpliZeeahz2pmX+3YX/CedZQ6GaVORqmTUeo21kzHLKx7hqqEmYpq5pmH7vsBveSto9TJKHUySp2MUvfKmmnh+2YzFdW+vaKFe1RDV26yjlIno9TJKHUySt3Gmmnf1/Oh981mDtbMvNg2cwhp3zuBQyIFlnWUOhmlTkapk1HqVtZMx5qw3TvWZW5fx4SF3e2O1Zf7WEepk1HqZJQ6GaXuK7KXMGOmLNi3GzRk5plnfvgVrKPUySh1MkqdjFI3VTMtbIJw7wOmKA3ZV9jt60xxz3wmPpmMUiej1MkodRvnMy0cI7SvU8Mbq7H7xxi6VKSuvWcdpU5GqZNR6mSUuo3nmWaavx374ZmyYF+tdmwDb8hT7wRaR6mTUepklDoZpe7ceaaFmxbHtp2O9e1+qkjaN+J25kYX1lHqZJQ6GaVORqmb2mfaN0z2qXGxQze6t7Bf+MItnIXvTx5rNmEdpU5GqZNR6mSUupU9IBbWTMe6Dxx7yFfs5x3rBDjEOkqdjFIno9TJKHXRmbbHen4/VTIuLLD2FTqR2U7WUepklDoZpU5GqdtYM828u7Wv3cDM8aaZ9wn3vW04c6kZxwbgWkepk1HqZJQ6GaVuYw+IY63wIjOHml3Mm9XnEOsodTJKnYxSJ6PUVWqmmUsNXblZ2Vw81frPeSb4GzJKnYxSJ6PUVXqNL9xKaQ4oeups0MLtn6eaXFhHqZNR6mSUOhml7lzfvH1d5hYWWK+Yz7TwY39q8O4Q6yh1MkqdjFIno9Q9ts/01IylDyiD7i91/xjHtp0unGfik8kodTJKnYxSd65mut442SFi5sqRamxIs4n7hXWUOhmlTkapk1HqVr6bd+/YmNp9XlFg7Ts49dTHbh2lTkapk1HqZJS6lfOZ9rXEvnjqXbXmfKanmt05zwS/ySh1MkqdjFK38t28p3Y49rWiGHqqSBfzY40bnGeC32SUOhmlTkape6xv3tClhh7jolnZ3Is0CD/2F7xnHaVORqmTUepklLp3zGc6Ns3o3hvnM11E2ocPsY5SJ6PUySh1Mkrdxppp30bLjEinhovmfKahx7j/4RnWUepklDoZpU5GqZvqAbHvTNIHTBWaKSmOzaN6qn/EEOsodTJKnYxSJ6PUPTafacaxRgYfvyk1dCPv5sGfySh1MkqdjFJ3bp9pxn3P74VXHjJTQi3chRq68v0PNysq6yh1MkqdjFIno9RtnM80IzLr6I3zmSK7X84z8YPIKHUySp2MUreyZro4dnJo30DYz+tifmxrcOGnYR2lTkapk1HqZJS6jTXTPkNfwN9Y2ex75lc0yruwjlIno9TJKHUySt0ra6YhCxvHDb2qt28+01Dt8tT8Le/m8YPIKHUySp2MUrexZjo2+Wnh3snQiaWh6mThMNl9B5j2dUCfYR2lTkapk1HqZJS6lTXTsS/RQ/ddOOtoyFPzmWYudezFxSHWUepklDoZpU5GqXvlfCZ+FOsodTJKnYxSJ6PUySh1MkqdjFIno9TJKHUySp2MUiej1MkodTJKnYxSJ6PUySh1MkqdjFL3C9XlDMOyZcB7AAAAAElFTkSuQmCC",
    "priceWithoutCurrencyExchange": "64.000000",
    "confirmedStatusName": "Aguardando iFriend",
    "paymentStatusName": "Pagamento em Aberto",
    "canStart": false,
    "allowedPaymentTypeCodes": [
        "paypal",
        "stone-pix"
    ],
    "allowedPaymentTypeCodeInstallments": {
        "paypal": {
            "installmentsIni": 1,
            "installmentsEnd": 3,
            "withInterest": false,
            "label": {
                "pt": "(1 a 3x)",
                "en": "(1 to 3x)",
                "es": "(1 a 3x)"
            }
        }
    },
    "fromAffiliate": false,
    "exclusiveProductBooking": true,
    "needsExtraDataForBooking": false,
    "currencyQuotation": null,
    "completeToday": false,
    "priceWithDiscount": "64.000000",
    "cancellationRuleDescription": {
        "pt": "<ul><li>Até 14 dias antes da data do tour: reembolso é integral.</li><li>Entre 13 a 7 dias antes da data do tour: reembolso de 60% do valor da reserva.</li><li>6 dias antes da data de início do tour: não há reembolso.</li><li></ul><p><b>Tickets:</b> Conforme política de cancelamento de cada atrativo, descrito na página do produto.</p><p><b>Regras:</b></p><ul><li>Em caso de cancelamento pelos nossos parceiros (guia local e receptivo turístico), o reembolso será integral.</li><li>Reservas canceladas que não estejam confirmadas o reembolso será integral.</li><li>Reservas com menos 24 horas para o início do serviço não haverá reembolso.</li><li>A taxa de serviço (10%) não é reembolsável. O valor é utilizado para custear os custos de cobrança e reembolso aos clientes.</li></ul>",
        "en": "<ul><li>Up to 14 days before the tour date: full refund.</li><li>Between 13 and 7 days before the tour date: 60% refund of the reservation amount.</li><li>6 days before the tour start date: no refund.</li><li></ul><p><b>Tickets:</b> According to the cancellation policy of each attraction, described on the product page.</p><p><b>Rules:</b></p><ul><li>In case of cancellation by our partners (local guide and tour operator), the refund will be full.</li><li>Reservations canceled that are not confirmed will be fully refunded.</li><li>Reservations made less than 24 hours before the start of the service will not be refunded.</li><li>The service fee (10%) is non-refundable. The amount is used to cover the costs of billing and refunding customers.</li></ul>",
        "es": "<ul><li>Hasta 14 días antes de la fecha del tour: reembolso completo.</li><li>Entre 13 a 7 días antes de la fecha del tour: reembolso del 60% del valor de la reserva.</li> <li >6 días antes de la fecha de inicio del tour: no hay reembolsos.</li><li></ul><p><b>Entradas:</b> Según política de cancelación de cada atracción, descrita en la página del producto. </p><p><b>Reglas:</b></p><ul><li>En caso de cancelación por parte de nuestros socios (guía local y recepción turística), el reembolso será completo </li. ><li>Las reservas canceladas que no estén confirmadas se reembolsarán íntegramente.</li><li>Las reservas con menos de 24 horas antes del inicio del servicio no se reembolsarán.</li><li>La tarifa del servicio (10%) no es reembolsable. El importe se utiliza para cubrir los costes de facturación y reembolso a los clientes.</li></ul>"
    },
    "freeCancellationTill": "14",
    "moreThan15Days": true,
    "customerBookingStatus": {
        "en": "Waiting iFriend",
        "pt": "Aguardando iFriend",
        "es": "Esperando iFriend"
    },
    "ifriendBookingStatus": {
        "en": "Waiting for your acceptance",
        "pt": "Aguardando seu aceite",
        "es": "Esperando su Aceptación"
    },
    "gclid": null,
    "lastPayment": null,
    "allowCheckout": true,
    "customerLocale": "pt",
    "ifriendLocale": "pt",
    "confirmationDeadline": "2025-12-07",
    "free": false
}

Booking de Experiências sem Variação Exclusiva (exclusive=true and shelfExperience == false)

Request POST /bookings

{
    "type": "experience ou transfer ou ticket",
    "experience": {
        "id": 6
    },
    "ifriend": {
        "id": 2
    },
    "customer": {
        "id": 3
    },
    "dates": [
        {
            "day": "2026-03-10",
            "hours": 2,
            "period": "10:00",
            "numAdult": 3,
            "numChild": 0,
            "isIfriendCar": false
        }
    ],
    "pax": [
        {
            "fullname": "Glauber Portella",
            "doc": "05771095613",
            "gender": "m",
            "birthday": "1982-01-12",
            "email": "glauberportella@gmail.com",
            "phone": "+5531992468610",
            "obs": "Qualquer informação pertinente sobre o passageiro."
        }
    ]
}

Response

{
    "id": 42,
    "city": "Belo Horizonte",
    "state": "MG",
    "country": "Brasil",
    "countryCode": null,
    "latitude": null,
    "longitude": null,
    "dollarQuotation": null,
    "price": "330.000000",
    "currencyCode": "BRL",
    "ifriendPrice": "10.000000",
    "confirmStatus": 0,
    "confirmStatusDate": "2025-12-06T12:44:55+00:00",
    "paymentStatus": 0,
    "paymentStatusDate": null,
    "statusReason": null,
    "paymentMethod": null,
    "payerId": null,
    "paymentId": null,
    "transactionId": null,
    "installments": 1,
    "ifriendEmail": "affiliate3@teste.com.br",
    "customerEmail": "sabrina20@gmail.com",
    "createdAt": "2025-12-06T12:44:55+00:00",
    "isDone": false,
    "serviceTax": "66.00000",
    "platformTax": "0.00000",
    "userRated": false,
    "ifriendRated": false,
    "customer": {
        "id": 3,
        "userEmail": "Aguardando confirmação do iFriend.",
        "firstname": "Douglas",
        "lastname": "Willms",
        "fullname": "Kyla Russel",
        "nickname": "bmarks",
        "birthday": "1996-01-16T00:00:00+00:00",
        "role": "ifriend",
        "userRoles": [
            {
                "id": 1,
                "name": "ROLE_USER"
            },
            {
                "id": 2,
                "name": "ROLE_IFRIEND"
            }
        ],
        "phoneCountryCode": "BR",
        "phone": "Aguardando confirmação do iFriend.",
        "phoneFormatted": "Aguardando confirmação do iFriend.",
        "phone2CountryCode": null,
        "phone2": "Aguardando confirmação do iFriend.",
        "phone2Formatted": "Aguardando confirmação do iFriend.",
        "skype": "Aguardando confirmação do iFriend.",
        "messenger": "Aguardando confirmação do iFriend.",
        "whatsappCountryCode": null,
        "whatsapp": "Aguardando confirmação do iFriend.",
        "whatsappFormatted": "Aguardando confirmação do iFriend.",
        "gender": {
            "id": 2,
            "type": "Feminino"
        },
        "avatar": null,
        "rating": 0,
        "roles": [
            "ROLE_USER",
            "ROLE_IFRIEND"
        ]
    },
    "ifriend": {
        "id": 11,
        "user": {
            "id": 20,
            "userEmail": "Aguardando confirmação do iFriend.",
            "firstname": "Chesley",
            "lastname": "Thiel",
            "fullname": "Chadd Cruickshank",
            "nickname": "beer.jessica",
            "birthday": "1988-07-08T00:00:00+00:00",
            "role": "ifriend",
            "userRoles": [
                {
                    "id": 1,
                    "name": "ROLE_USER"
                },
                {
                    "id": 3,
                    "name": "ROLE_AFFILIATED"
                },
                {
                    "id": 4,
                    "name": "ROLE_AFFILIATED_PARENT"
                },
                {
                    "id": 5,
                    "name": "ROLE_AGENCY"
                },
                {
                    "id": 6,
                    "name": "ROLE_RECEPTIVE"
                }
            ],
            "phoneCountryCode": "BR",
            "phone": "Aguardando confirmação do iFriend.",
            "phoneFormatted": "Aguardando confirmação do iFriend.",
            "phone2CountryCode": null,
            "phone2": "Aguardando confirmação do iFriend.",
            "phone2Formatted": "Aguardando confirmação do iFriend.",
            "skype": "Aguardando confirmação do iFriend.",
            "messenger": "Aguardando confirmação do iFriend.",
            "whatsappCountryCode": null,
            "whatsapp": "Aguardando confirmação do iFriend.",
            "whatsappFormatted": "Aguardando confirmação do iFriend.",
            "gender": {
                "id": 2,
                "type": "Feminino"
            },
            "avatar": null,
            "rating": 0,
            "roles": [
                "ROLE_USER",
                "ROLE_AFFILIATED",
                "ROLE_AFFILIATED_PARENT",
                "ROLE_AGENCY",
                "ROLE_RECEPTIVE"
            ]
        },
        "placeId": "ChIJW6AIkVXemwARTtIvZ2xC3FA",
        "places": [
            {
                "id": 6,
                "isAlias": null,
                "placeId": "ChIJRfg5kECAmQARjLS837zXdYA",
                "latitude": -22.9513,
                "longitude": -43.1559,
                "state": "RJ",
                "countryCode": "BR",
                "country": null,
                "name": "Pão de Açucar"
            }
        ],
        "city": "Rio de Janeiro",
        "state": "RJ",
        "country": "Brasil",
        "countryCode": "BR",
        "latitude": "-22.90350",
        "longitude": "-43.20960",
        "pro": false,
        "car": false,
        "isMaster": null,
        "quote": null,
        "bio": null,
        "price": "10.00",
        "customPrice": null,
        "occupation": "Reprehenderit a.",
        "interests": [
            {
                "id": 5,
                "name": "LGBT",
                "slug": "lgbt",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-lgbt.png",
                "type": "ifriend"
            },
            {
                "id": 6,
                "name": "Compras",
                "slug": "shopping",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-shopping.png",
                "type": "ifriend"
            },
            {
                "id": 7,
                "name": "Gastronomia",
                "slug": "gastronomy",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-gastronomy.png",
                "type": "ifriend"
            },
            {
                "id": 9,
                "name": "Atividades com Crianças",
                "slug": "activities-with-children",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-activities-with-children.png",
                "type": "ifriend"
            }
        ],
        "languages": [
            {
                "id": 7,
                "code": "fr",
                "name": "Francês",
                "icon": "fr.png"
            },
            {
                "id": 11,
                "code": "ja",
                "name": "Japonês",
                "icon": "ja.png"
            },
            {
                "id": 14,
                "code": "ko",
                "name": "Coreano",
                "icon": "ko.png"
            }
        ],
        "photos": [],
        "rating": 0,
        "recommended": 0,
        "cityPhoto": "https://obj.cdn.theifriend.com/cities/ChIJW6AIkVXemwARTtIvZ2xC3FA.jpg",
        "plannerRoom": null,
        "fullPrice": null,
        "paymentModulePromo": null,
        "profileUrl": "https://theifriend.com/ifriends/11",
        "thumbnails": {
            "cityPhoto": {
                "small": "https://thumbnail.cdn.theifriend.com/small/cities/ChIJW6AIkVXemwARTtIvZ2xC3FA.jpg",
                "medium": "https://thumbnail.cdn.theifriend.com/medium/cities/ChIJW6AIkVXemwARTtIvZ2xC3FA.jpg",
                "large": "https://thumbnail.cdn.theifriend.com/large/cities/ChIJW6AIkVXemwARTtIvZ2xC3FA.jpg"
            }
        }
    },
    "dates": [
        {
            "id": 42,
            "hours": 2,
            "period": "10:00",
            "numAdult": 3,
            "numChild": 0,
            "numHalfPrice": 0,
            "isIfriendCar": false,
            "price": null,
            "dayPrice": null,
            "description": null,
            "type": null,
            "day": "2026-03-10"
        }
    ],
    "checkin": null,
    "customerDeclineReason": null,
    "ifriendDeclineReason": null,
    "doneAt": null,
    "experience": {
        "id": 6,
        "title": "Experiência de Teste 6",
        "price": "100.00",
        "currencyCode": "BRL",
        "shelfExperience": false,
        "fullPrice": null,
        "paymentModulePromo": null,
        "profileUrl": null
    },
    "experienceServiceItems": [],
    "type": "experience",
    "callLink": null,
    "affiliateBooking": null,
    "couponUsage": [],
    "providerData": null,
    "pax": [
        {
            "fullname": "Glauber Portella",
            "firstname": "Glauber",
            "lastname": "Portella",
            "doc": "05771095613",
            "gender": "m",
            "birthday": "1982-01-12T00:00:00+00:00",
            "age": null,
            "email": "glauberportella@gmail.com",
            "phone": "+5531992468610",
            "obs": "Qualquer informação pertinente sobre o passageiro.",
            "ticketPriceType": null,
            "ticketPriceNetAmount": null,
            "ticketPriceAmount": null,
            "ticketPriceCurrency": null,
            "ticketId": null,
            "ticketCategory": null,
            "ticketCategoryName": null,
            "rg": null
        }
    ],
    "integrator": null,
    "ifriendComission": 300,
    "platformComission": 30,
    "ifriendConfirmedAt": null,
    "virtualGuideLeadId": null,
    "customIfriendComission": null,
    "affiliateComission": null,
    "place": null,
    "downPaymentPrice": null,
    "paidTheDownPrice": false,
    "soldByManagerUser": null,
    "experienceNetPrice": "100.00",
    "experienceMetadata": null,
    "transfer": null,
    "isSingle": false,
    "serviceProvider": null,
    "items": [],
    "voucher": null,
    "needsAcceptance": false,
    "hasAccepted": null,
    "discountAmount": null,
    "discountType": null,
    "checkoutDiscountCouponCode": null,
    "payment": null,
    "grossPrice": "330.000000",
    "integratorAgencyName": null,
    "apiClient": null,
    "uuid": null,
    "totalPrice": "396",
    "salesforceRecordId": null,
    "salesforceSynced": false,
    "salesforceSyncedAt": null,
    "salesforceAccountId": null,
    "salesforceRelatedOpportunityId": null,
    "salesforceOpportunityId": null,
    "paymentToken": "6199a193-81ab-4d6e-80bb-fcea2abdb975",
    "cancellationRuleText": "100% de reembolso até 14 dias antes do tour",
    "tickets": [],
    "cancellationRefund": null,
    "providerIsAware": false,
    "providerAwareAt": null,
    "promo": null,
    "withdrawalExpiredAt": null,
    "integratorAgencyKey": null,
    "integratorAgencyContactName": null,
    "integratorAgencyContactEmail": null,
    "integratorAgencyContactPhone": null,
    "receptiveHasAcceptedAt": null,
    "hasAcceptedReceptiveId": null,
    "validatorQRCode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAIAAACx0UUtAAAABnRSTlMA/wD/AP83WBt9AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFX0lEQVR4nO3dy27sthZF0euL/P8vn3TSEgIGBB+a5RqjWy5JthcIbZDc/Pnz58//IOz/bz8A/AcZpU5GqZNR6mSUOhmlTkapk1HqZJQ6GaVORqmTUepklDoZpU5GqZNR6mSUOhmlTkap+2vlyz8/P7ueY+yx6WrqvuPvrmznGl9q5Y8z9cwbPz1n5e9sHKVORqmTUepklLqlmulhYzuJc+/yG4uklfteK/umft/mf9A4Sp2MUiej1MkodTtrpoeVsmDKuKQ4Nw2zUqysPPPG8mvs2n9wzDhKnYxSJ6PUySh1B2umazbWPVNVwkpFdW1d3y9gHKVORqmTUepklLqPrJk2rjdbqag2zhWN7/twbm6syThKnYxSJ6PUySh1B2umc6/nUxt6VuZsVhpGrGxC2ljJrYgUWMZR6mSUOhmlTkap21kzXWvCNnaty9y5jgkbl+pdqy/PMY5SJ6PUySh1MkrdUs301jzEtVJm6r4PU59eK78eIjNJY8ZR6mSUOhmlTkap+znXe3vjlMYvOEVpysrk0MY1gZHOFMZR6mSUOhmlTkapW6qZnte61Ufu2qXG3qrGpn742hG3eo3zvWSUOhmlTkapu3em7cY23lOPsbKCbnzlc3uhzvVHX7FSqq4wjlIno9TJKHUySt3BeaaNr9hvNZ271rd7440iR9yu3OjBOEqdjFIno9TJKHVL80zXGhlMffqwMivz1mavcwvqVma/3mq9YRylTkapk1HqZJS6nfNMz0vf2oUzvu+vn5Q6V0KtsDaPLyKj1MkodTJK3cHzmcbv4yutuMefrpw8O2WldrlWYJ1rJ/FwbluVcZQ6GaVORqmTUep2rs0b2/jyPvVUGye0NlaBD2+1V1hxrfeEcZQ6GaVORqmTUeru9Rp/aLYen/IRXczPVWPXerobR6mTUepklDoZpe61munhXN3zEZXNw7Ujl+xngg1klDoZpU5GqVuqma7N90T22bw1N7ZiY8l4bQ/Wg3GUOhmlTkapk1HqDvbNe97ppU051yZpVlzrMfjWwbsrjKPUySh1MkqdjFK3s2/elHML2x5+3/lMY+eKpCn2M/FFZJQ6GaVORqk7uJ/prRmOh19/PtOKc0sEzTPxRWSUOhmlTkap27mfacq1Umajjyiw3qo+zzGOUiej1MkodTJK3cH9TL+g2d0ndpeYutFHtIQwjlIno9TJKHUySt3O/UzXKpupH14pOD6isBs7t1FszH4mvoiMUiej1MkodUs101vH+UwVOh9R2TxEZoPG9722QtI4Sp2MUiej1MkodffW5j2c62N9birlE89neoi0D59iHKVORqmTUepklLp7vcavbdmZeoyp+07Nu4zv+xA5n2mK/UzwDxmlTkapk1Hq7q3NO7c3qNkprnk+08NbqyunGEepk1HqZJQ6GaXu4Nq8c96aLPmI85nO7YWyNg/+nYxSJ6PUySh1lR4QY1PdB8bfnfp07FpHvqlPVyb/mhWVcZQ6GaVORqmTUep27me6NpWysViZmpWZ2u00vu/DW83Uz/3L7Gfii8godTJKnYxSd7AHxLWdQ1OP8W3nM42vfI7zmfgiMkqdjFIno9Td65u30dQL+CdWNueeeWUW6q1O5MZR6mSUOhmlTkap+8iaaexc47iVQ103Nvebql2uNW6wNo/vJaPUySh1MkrdwZrpreV2Y992PtPUY5zrgL7COEqdjFIno9TJKHU7a6ZrL9FTNp51NOWt85lWLnVt4eIU4yh1MkqdjFIno9R95PlMfBXjKHUySp2MUiej1MkodTJKnYxSJ6PUySh1MkqdjFIno9TJKHUySp2MUiej1MkodTJKnYxS9zfZJwzb0U2CQAAAAABJRU5ErkJggg==",
    "priceWithoutCurrencyExchange": "330.000000",
    "confirmedStatusName": "Aguardando iFriend",
    "paymentStatusName": "Pagamento em Aberto",
    "canStart": false,
    "allowedPaymentTypeCodes": [
        "paypal",
        "stone-pix"
    ],
    "allowedPaymentTypeCodeInstallments": {
        "paypal": {
            "installmentsIni": 1,
            "installmentsEnd": 3,
            "withInterest": false,
            "label": {
                "pt": "(1 a 3x)",
                "en": "(1 to 3x)",
                "es": "(1 a 3x)"
            }
        }
    },
    "fromAffiliate": false,
    "exclusiveProductBooking": false,
    "needsExtraDataForBooking": false,
    "currencyQuotation": null,
    "completeToday": false,
    "priceWithDiscount": "330.000000",
    "cancellationRuleDescription": {
        "pt": "<ul><li>Até 14 dias antes da data do tour: reembolso é integral.</li><li>Entre 13 a 7 dias antes da data do tour: reembolso de 60% do valor da reserva.</li><li>6 dias antes da data de início do tour: não há reembolso.</li><li></ul><p><b>Tickets:</b> Conforme política de cancelamento de cada atrativo, descrito na página do produto.</p><p><b>Regras:</b></p><ul><li>Em caso de cancelamento pelos nossos parceiros (guia local e receptivo turístico), o reembolso será integral.</li><li>Reservas canceladas que não estejam confirmadas o reembolso será integral.</li><li>Reservas com menos 24 horas para o início do serviço não haverá reembolso.</li><li>A taxa de serviço (10%) não é reembolsável. O valor é utilizado para custear os custos de cobrança e reembolso aos clientes.</li></ul>",
        "en": "<ul><li>Up to 14 days before the tour date: full refund.</li><li>Between 13 and 7 days before the tour date: 60% refund of the reservation amount.</li><li>6 days before the tour start date: no refund.</li><li></ul><p><b>Tickets:</b> According to the cancellation policy of each attraction, described on the product page.</p><p><b>Rules:</b></p><ul><li>In case of cancellation by our partners (local guide and tour operator), the refund will be full.</li><li>Reservations canceled that are not confirmed will be fully refunded.</li><li>Reservations made less than 24 hours before the start of the service will not be refunded.</li><li>The service fee (10%) is non-refundable. The amount is used to cover the costs of billing and refunding customers.</li></ul>",
        "es": "<ul><li>Hasta 14 días antes de la fecha del tour: reembolso completo.</li><li>Entre 13 a 7 días antes de la fecha del tour: reembolso del 60% del valor de la reserva.</li> <li >6 días antes de la fecha de inicio del tour: no hay reembolsos.</li><li></ul><p><b>Entradas:</b> Según política de cancelación de cada atracción, descrita en la página del producto. </p><p><b>Reglas:</b></p><ul><li>En caso de cancelación por parte de nuestros socios (guía local y recepción turística), el reembolso será completo </li. ><li>Las reservas canceladas que no estén confirmadas se reembolsarán íntegramente.</li><li>Las reservas con menos de 24 horas antes del inicio del servicio no se reembolsarán.</li><li>La tarifa del servicio (10%) no es reembolsable. El importe se utiliza para cubrir los costes de facturación y reembolso a los clientes.</li></ul>"
    },
    "freeCancellationTill": "14",
    "moreThan15Days": true,
    "customerBookingStatus": {
        "en": "Waiting iFriend",
        "pt": "Aguardando iFriend",
        "es": "Esperando iFriend"
    },
    "ifriendBookingStatus": {
        "en": "Waiting for your acceptance",
        "pt": "Aguardando seu aceite",
        "es": "Esperando su Aceptación"
    },
    "gclid": null,
    "lastPayment": null,
    "allowCheckout": true,
    "customerLocale": "pt",
    "ifriendLocale": "pt",
    "confirmationDeadline": "2025-12-07",
    "free": false
}

Booking de Experiências sem Variação Não Exclusiva (exclusive == false)

Request POST /bookings

{
    "type": "experience",
    "experience": {
        "id": 6
    },
    "customer": {
        "id": 3
    },
    "dates": [
        {
            "day": "2026-03-10",
            "hours": 2,
            "period": "10:00",
            "numAdult": 3,
            "numChild": 0,
            "isIfriendCar": false
        }
    ],
    "pax": [
        {
            "fullname": "Glauber Portella",
            "doc": "05771095613",
            "gender": "m",
            "birthday": "1982-01-12",
            "email": "glauberportella@gmail.com",
            "phone": "+5531992468610",
            "obs": "Qualquer informação pertinente sobre o passageiro."
        }
    ]
}

Response

{
    "id": 43,
    "city": "Belo Horizonte",
    "state": "MG",
    "country": "Brasil",
    "countryCode": null,
    "latitude": null,
    "longitude": null,
    "dollarQuotation": null,
    "price": "330.000000",
    "currencyCode": "BRL",
    "ifriendPrice": "10.000000",
    "confirmStatus": 0,
    "confirmStatusDate": "2025-12-06T12:47:02+00:00",
    "paymentStatus": 0,
    "paymentStatusDate": null,
    "statusReason": null,
    "paymentMethod": null,
    "payerId": null,
    "paymentId": null,
    "transactionId": null,
    "installments": 1,
    "ifriendEmail": "affiliate3@teste.com.br",
    "customerEmail": "sabrina20@gmail.com",
    "createdAt": "2025-12-06T12:47:02+00:00",
    "isDone": false,
    "serviceTax": "66.00000",
    "platformTax": "0.00000",
    "userRated": false,
    "ifriendRated": false,
    "customer": {
        "id": 3,
        "userEmail": "Aguardando confirmação do iFriend.",
        "firstname": "Douglas",
        "lastname": "Willms",
        "fullname": "Kyla Russel",
        "nickname": "bmarks",
        "birthday": "1996-01-16T00:00:00+00:00",
        "role": "ifriend",
        "userRoles": [
            {
                "id": 1,
                "name": "ROLE_USER"
            },
            {
                "id": 2,
                "name": "ROLE_IFRIEND"
            }
        ],
        "phoneCountryCode": "BR",
        "phone": "Aguardando confirmação do iFriend.",
        "phoneFormatted": "Aguardando confirmação do iFriend.",
        "phone2CountryCode": null,
        "phone2": "Aguardando confirmação do iFriend.",
        "phone2Formatted": "Aguardando confirmação do iFriend.",
        "skype": "Aguardando confirmação do iFriend.",
        "messenger": "Aguardando confirmação do iFriend.",
        "whatsappCountryCode": null,
        "whatsapp": "Aguardando confirmação do iFriend.",
        "whatsappFormatted": "Aguardando confirmação do iFriend.",
        "gender": {
            "id": 2,
            "type": "Feminino"
        },
        "avatar": null,
        "rating": 0,
        "roles": [
            "ROLE_USER",
            "ROLE_IFRIEND"
        ]
    },
    "ifriend": {
        "id": 11,
        "user": {
            "id": 20,
            "userEmail": "Aguardando confirmação do iFriend.",
            "firstname": "Chesley",
            "lastname": "Thiel",
            "fullname": "Chadd Cruickshank",
            "nickname": "beer.jessica",
            "birthday": "1988-07-08T00:00:00+00:00",
            "role": "ifriend",
            "userRoles": [
                {
                    "id": 1,
                    "name": "ROLE_USER"
                },
                {
                    "id": 3,
                    "name": "ROLE_AFFILIATED"
                },
                {
                    "id": 4,
                    "name": "ROLE_AFFILIATED_PARENT"
                },
                {
                    "id": 5,
                    "name": "ROLE_AGENCY"
                },
                {
                    "id": 6,
                    "name": "ROLE_RECEPTIVE"
                }
            ],
            "phoneCountryCode": "BR",
            "phone": "Aguardando confirmação do iFriend.",
            "phoneFormatted": "Aguardando confirmação do iFriend.",
            "phone2CountryCode": null,
            "phone2": "Aguardando confirmação do iFriend.",
            "phone2Formatted": "Aguardando confirmação do iFriend.",
            "skype": "Aguardando confirmação do iFriend.",
            "messenger": "Aguardando confirmação do iFriend.",
            "whatsappCountryCode": null,
            "whatsapp": "Aguardando confirmação do iFriend.",
            "whatsappFormatted": "Aguardando confirmação do iFriend.",
            "gender": {
                "id": 2,
                "type": "Feminino"
            },
            "avatar": null,
            "rating": 0,
            "roles": [
                "ROLE_USER",
                "ROLE_AFFILIATED",
                "ROLE_AFFILIATED_PARENT",
                "ROLE_AGENCY",
                "ROLE_RECEPTIVE"
            ]
        },
        "placeId": "ChIJW6AIkVXemwARTtIvZ2xC3FA",
        "places": [
            {
                "id": 6,
                "isAlias": null,
                "placeId": "ChIJRfg5kECAmQARjLS837zXdYA",
                "latitude": -22.9513,
                "longitude": -43.1559,
                "state": "RJ",
                "countryCode": "BR",
                "country": null,
                "name": "Pão de Açucar"
            }
        ],
        "city": "Rio de Janeiro",
        "state": "RJ",
        "country": "Brasil",
        "countryCode": "BR",
        "latitude": "-22.90350",
        "longitude": "-43.20960",
        "pro": false,
        "car": false,
        "isMaster": null,
        "quote": null,
        "bio": null,
        "price": "10.00",
        "customPrice": null,
        "occupation": "Reprehenderit a.",
        "interests": [
            {
                "id": 5,
                "name": "LGBT",
                "slug": "lgbt",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-lgbt.png",
                "type": "ifriend"
            },
            {
                "id": 6,
                "name": "Compras",
                "slug": "shopping",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-shopping.png",
                "type": "ifriend"
            },
            {
                "id": 7,
                "name": "Gastronomia",
                "slug": "gastronomy",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-gastronomy.png",
                "type": "ifriend"
            },
            {
                "id": 9,
                "name": "Atividades com Crianças",
                "slug": "activities-with-children",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-activities-with-children.png",
                "type": "ifriend"
            }
        ],
        "languages": [
            {
                "id": 7,
                "code": "fr",
                "name": "Francês",
                "icon": "fr.png"
            },
            {
                "id": 11,
                "code": "ja",
                "name": "Japonês",
                "icon": "ja.png"
            },
            {
                "id": 14,
                "code": "ko",
                "name": "Coreano",
                "icon": "ko.png"
            }
        ],
        "photos": [],
        "rating": 0,
        "recommended": 0,
        "cityPhoto": "https://obj.cdn.theifriend.com/cities/ChIJW6AIkVXemwARTtIvZ2xC3FA.jpg",
        "plannerRoom": null,
        "fullPrice": null,
        "paymentModulePromo": null,
        "profileUrl": "https://theifriend.com/ifriends/11",
        "thumbnails": {
            "cityPhoto": {
                "small": "https://thumbnail.cdn.theifriend.com/small/cities/ChIJW6AIkVXemwARTtIvZ2xC3FA.jpg",
                "medium": "https://thumbnail.cdn.theifriend.com/medium/cities/ChIJW6AIkVXemwARTtIvZ2xC3FA.jpg",
                "large": "https://thumbnail.cdn.theifriend.com/large/cities/ChIJW6AIkVXemwARTtIvZ2xC3FA.jpg"
            }
        }
    },
    "dates": [
        {
            "id": 43,
            "hours": 2,
            "period": "10:00",
            "numAdult": 3,
            "numChild": 0,
            "numHalfPrice": 0,
            "isIfriendCar": false,
            "price": null,
            "dayPrice": null,
            "description": null,
            "type": null,
            "day": "2026-03-10"
        }
    ],
    "checkin": null,
    "customerDeclineReason": null,
    "ifriendDeclineReason": null,
    "doneAt": null,
    "experience": {
        "id": 6,
        "title": "Experiência de Teste 6",
        "price": "100.00",
        "currencyCode": "BRL",
        "shelfExperience": false,
        "fullPrice": null,
        "paymentModulePromo": null,
        "profileUrl": null
    },
    "experienceServiceItems": [],
    "type": "experience",
    "callLink": null,
    "affiliateBooking": null,
    "couponUsage": [],
    "providerData": null,
    "pax": [
        {
            "fullname": "Glauber Portella",
            "firstname": "Glauber",
            "lastname": "Portella",
            "doc": "05771095613",
            "gender": "m",
            "birthday": "1982-01-12T00:00:00+00:00",
            "age": null,
            "email": "glauberportella@gmail.com",
            "phone": "+5531992468610",
            "obs": "Qualquer informação pertinente sobre o passageiro.",
            "ticketPriceType": null,
            "ticketPriceNetAmount": null,
            "ticketPriceAmount": null,
            "ticketPriceCurrency": null,
            "ticketId": null,
            "ticketCategory": null,
            "ticketCategoryName": null,
            "rg": null
        }
    ],
    "integrator": null,
    "ifriendComission": 300,
    "platformComission": 30,
    "ifriendConfirmedAt": null,
    "virtualGuideLeadId": null,
    "customIfriendComission": null,
    "affiliateComission": null,
    "place": null,
    "downPaymentPrice": null,
    "paidTheDownPrice": false,
    "soldByManagerUser": null,
    "experienceNetPrice": "100.00",
    "experienceMetadata": null,
    "transfer": null,
    "isSingle": false,
    "serviceProvider": null,
    "items": [],
    "voucher": null,
    "needsAcceptance": false,
    "hasAccepted": null,
    "discountAmount": null,
    "discountType": null,
    "checkoutDiscountCouponCode": null,
    "payment": null,
    "grossPrice": "330.000000",
    "integratorAgencyName": null,
    "apiClient": null,
    "uuid": null,
    "totalPrice": "396",
    "salesforceRecordId": null,
    "salesforceSynced": false,
    "salesforceSyncedAt": null,
    "salesforceAccountId": null,
    "salesforceRelatedOpportunityId": null,
    "salesforceOpportunityId": null,
    "paymentToken": "994dbdb4-e138-42f3-b8dc-cd647acde4b2",
    "cancellationRuleText": "100% de reembolso até 14 dias antes do tour",
    "tickets": [],
    "cancellationRefund": null,
    "providerIsAware": false,
    "providerAwareAt": null,
    "promo": null,
    "withdrawalExpiredAt": null,
    "integratorAgencyKey": null,
    "integratorAgencyContactName": null,
    "integratorAgencyContactEmail": null,
    "integratorAgencyContactPhone": null,
    "receptiveHasAcceptedAt": null,
    "hasAcceptedReceptiveId": null,
    "validatorQRCode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAIAAACx0UUtAAAABnRSTlMA/wD/AP83WBt9AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFb0lEQVR4nO3dy47rNhRFwXSQ///lm0lGQsCE4EPL11XTbkuyvUH4gOThz69fv/6AsD/ffgD4DzJKnYxSJ6PUySh1MkqdjFIno9TJKHUySp2MUiej1MkodTJKnYxSJ6PUySh1MkqdjFL318qLf35+dj3H2GPT1dR9x69d2c41vtTKhzP1zBv/es7K52wcpU5GqZNR6mSUuqWa6WFjO4lzv+U3Fkkr971W9k293+Y3aBylTkapk1HqZJS6nTXTw0pZMGVcUpybhlkpVlaeeWP5NXbtGxwzjlIno9TJKHUySt3BmumajXXPVJWwUlFdW9f3GzCOUiej1MkodTJK3UfWTBvXm61UVBvnisb3fTg3N9ZkHKVORqmTUepklLqDNdO5n+dTG3pW5mxWGkasbELaWMmtiBRYxlHqZJQ6GaVORqnbWTNda8I2dq3L3LmOCRuX6l2rL88xjlIno9TJKHUySt1SzfTWPMS1Umbqvg9Tf71Wfj1EZpLGjKPUySh1MkqdjFL3c6739sYpjd/gFKUpK5NDG9cERjpTGEepk1HqZJQ6GaVuqWZ6Xmtfh7pz9dZvcKbt1D9fO+JWr3G+l4xSJ6PUySh19/rmbZzw2HjI0Er5dW4v1Ln+6CtWvrIVxlHqZJQ6GaVORql7bW3e+FLXmm1H+naf+yTHzl155UYPxlHqZJQ6GaVORqnbOc+0cR7i2j+PvVVQnltQtzL79VbrDeModTJKnYxSJ6PU7ZxnurY55tyepPFjNCelzpVQK6zN44vIKHUySp2MUndvP9OUa/XHWyXjW2/w3Gm557ZVGUepk1HqZJQ6GaXu4PlMG5dyPV67sefe1EOO//lckXRtFdyUa70njKPUySh1MkqdjFK3s9f489LHFolFVqN9RBfzc9XYxj6BY8ZR6mSUOhmlTkapu9c379y5Qeca9K1c6lo1dq6L4Ar7mfgiMkqdjFIno9Td6wHxVsPsa3XAtfOZplz7UvTN43vJKHUySp2MUrezB8TUL/1z8x/nZr9WTto9d4jtxrmijdu5zDPxRWSUOhmlTkap27mf6a05jI3l11vH1J5bmvgRc4FjxlHqZJQ6GaVORqk7uJ/p4a2OCVOvffiI85lWnFsiaJ6JLyKj1MkodTJK3c61eW+VX+NLrSyZG3vrfKaNb//aXNEK4yh1MkqdjFIno9S91mv82n039qAb32jFxvV1G688du37NY5SJ6PUySh1Mkrdwb55K5zP9P9vNHata/vUY0wxjlIno9TJKHUySt29mqm56yhS2TxEGoRf+37HjKPUySh1MkqdjFJ3cG3ef9x438K2h7fOaW2u+nvY2IHwGuModTJKnYxSJ6PU3dvPdG7LzpRPbIW3cSJt4/u1nwn+IaPUySh1MkrdUt+8jb/0x1e+VhY8nOsEONUZ79wGpmuTcCuMo9TJKHUySp2MUvfa2rwV1xoZ/PaTUlM3sjYP/p2MUiej1MkodQfnmTZ6/FoflwXOZxr8dfzPzYrKOEqdjFIno9TJKHWVM20fzhUcK+v6pmq18X0frq1UnLrvFH3z+F4ySp2MUiej1O2smR6u7Ryaeoxzs0Ef0cX82tTgxk/DOEqdjFIno9TJKHUHa6ZzNnZ7a1Y25575IxrlPRhHqZNR6mSUOhml7iNrpikbG8dNLdU7dz7TVO1yrXGDtXl8LxmlTkapk1HqDtZMzeV2K4XO1G6n8X0fIu37znVAX2EcpU5GqZNR6mSUup0107Uf0WMb28p94vlMK5e6tnBxinGUOhmlTkapk1HqPvJ8Jr6KcZQ6GaVORqmTUepklDoZpU5GqZNR6mSUOhmlTkapk1HqZJQ6GaVORqmTUepklDoZpU5Gqfsb3+APxjEwPekAAAAASUVORK5CYII=",
    "priceWithoutCurrencyExchange": "330.000000",
    "confirmedStatusName": "Aguardando iFriend",
    "paymentStatusName": "Pagamento em Aberto",
    "canStart": false,
    "allowedPaymentTypeCodes": [
        "paypal",
        "stone-pix"
    ],
    "allowedPaymentTypeCodeInstallments": {
        "paypal": {
            "installmentsIni": 1,
            "installmentsEnd": 3,
            "withInterest": false,
            "label": {
                "pt": "(1 a 3x)",
                "en": "(1 to 3x)",
                "es": "(1 a 3x)"
            }
        }
    },
    "fromAffiliate": false,
    "exclusiveProductBooking": false,
    "needsExtraDataForBooking": false,
    "currencyQuotation": null,
    "completeToday": false,
    "priceWithDiscount": "330.000000",
    "cancellationRuleDescription": {
        "pt": "<ul><li>Até 14 dias antes da data do tour: reembolso é integral.</li><li>Entre 13 a 7 dias antes da data do tour: reembolso de 60% do valor da reserva.</li><li>6 dias antes da data de início do tour: não há reembolso.</li><li></ul><p><b>Tickets:</b> Conforme política de cancelamento de cada atrativo, descrito na página do produto.</p><p><b>Regras:</b></p><ul><li>Em caso de cancelamento pelos nossos parceiros (guia local e receptivo turístico), o reembolso será integral.</li><li>Reservas canceladas que não estejam confirmadas o reembolso será integral.</li><li>Reservas com menos 24 horas para o início do serviço não haverá reembolso.</li><li>A taxa de serviço (10%) não é reembolsável. O valor é utilizado para custear os custos de cobrança e reembolso aos clientes.</li></ul>",
        "en": "<ul><li>Up to 14 days before the tour date: full refund.</li><li>Between 13 and 7 days before the tour date: 60% refund of the reservation amount.</li><li>6 days before the tour start date: no refund.</li><li></ul><p><b>Tickets:</b> According to the cancellation policy of each attraction, described on the product page.</p><p><b>Rules:</b></p><ul><li>In case of cancellation by our partners (local guide and tour operator), the refund will be full.</li><li>Reservations canceled that are not confirmed will be fully refunded.</li><li>Reservations made less than 24 hours before the start of the service will not be refunded.</li><li>The service fee (10%) is non-refundable. The amount is used to cover the costs of billing and refunding customers.</li></ul>",
        "es": "<ul><li>Hasta 14 días antes de la fecha del tour: reembolso completo.</li><li>Entre 13 a 7 días antes de la fecha del tour: reembolso del 60% del valor de la reserva.</li> <li >6 días antes de la fecha de inicio del tour: no hay reembolsos.</li><li></ul><p><b>Entradas:</b> Según política de cancelación de cada atracción, descrita en la página del producto. </p><p><b>Reglas:</b></p><ul><li>En caso de cancelación por parte de nuestros socios (guía local y recepción turística), el reembolso será completo </li. ><li>Las reservas canceladas que no estén confirmadas se reembolsarán íntegramente.</li><li>Las reservas con menos de 24 horas antes del inicio del servicio no se reembolsarán.</li><li>La tarifa del servicio (10%) no es reembolsable. El importe se utiliza para cubrir los costes de facturación y reembolso a los clientes.</li></ul>"
    },
    "freeCancellationTill": "14",
    "moreThan15Days": true,
    "customerBookingStatus": {
        "en": "Waiting iFriend",
        "pt": "Aguardando iFriend",
        "es": "Esperando iFriend"
    },
    "ifriendBookingStatus": {
        "en": "Waiting for your acceptance",
        "pt": "Aguardando seu aceite",
        "es": "Esperando su Aceptación"
    },
    "gclid": null,
    "lastPayment": null,
    "allowCheckout": true,
    "customerLocale": "pt",
    "ifriendLocale": "pt",
    "confirmationDeadline": "2025-12-07",
    "free": false
}

Booking de Experiências com Variação Exclusiva (exclusive=true and shelfExperience == false)

Request POST /bookings

{
    "product": "experience",
    "productId": "38",
    "ifriend": {
        "id": 11
    },
    "customer": {
        "id": 7
    },
    "countryCode": "BR",
    "context": {
        "dates": [
            {
                "day": "2026-03-20",
                "period": "08:00",
                "numAdult": 1,
                "numChild": 0,
                "isIfriendCar": false
            }
        ],
        "variations": [
            {
                "id": 13,
                "quantity": 1,
                "agePolicies": [
                    {
                        "id": 34,
                        "name": "Adulto",
                        "quantity": 1
                    }
                ]
            }
        ]
    }
}

Response

{
    "id": 44,
    "city": "Rio de Janeiro",
    "state": "RJ",
    "country": "Brasil",
    "countryCode": "BR",
    "latitude": "-22.90350",
    "longitude": "-43.20960",
    "dollarQuotation": null,
    "price": "0.000000",
    "currencyCode": "USD",
    "ifriendPrice": "10.000000",
    "confirmStatus": 0,
    "confirmStatusDate": "2025-12-06T13:51:55+00:00",
    "paymentStatus": 0,
    "paymentStatusDate": null,
    "statusReason": null,
    "paymentMethod": null,
    "payerId": null,
    "paymentId": null,
    "transactionId": null,
    "installments": 1,
    "ifriendEmail": "affiliate3@teste.com.br",
    "customerEmail": "glauber.portella@theifriend.com",
    "createdAt": "2025-12-06T13:51:54+00:00",
    "isDone": false,
    "serviceTax": "0.00000",
    "platformTax": "0.00000",
    "userRated": false,
    "ifriendRated": false,
    "customer": {
        "id": 7,
        "userEmail": "Aguardando confirmação do iFriend.",
        "firstname": "Cliente",
        "lastname": "Teste",
        "fullname": "Cliente Teste",
        "nickname": "Cliente",
        "birthday": "1975-03-11T00:00:00+00:00",
        "role": "user",
        "userRoles": [
            {
                "id": 1,
                "name": "ROLE_USER"
            }
        ],
        "phoneCountryCode": "BR",
        "phone": "Aguardando confirmação do iFriend.",
        "phoneFormatted": "Aguardando confirmação do iFriend.",
        "phone2CountryCode": null,
        "phone2": "Aguardando confirmação do iFriend.",
        "phone2Formatted": "Aguardando confirmação do iFriend.",
        "skype": "Aguardando confirmação do iFriend.",
        "messenger": "Aguardando confirmação do iFriend.",
        "whatsappCountryCode": "BR",
        "whatsapp": "Aguardando confirmação do iFriend.",
        "whatsappFormatted": "Aguardando confirmação do iFriend.",
        "gender": {
            "id": 2,
            "type": "Feminino"
        },
        "avatar": null,
        "rating": 0,
        "roles": [
            "ROLE_USER"
        ]
    },
    "ifriend": {
        "id": 11,
        "user": {
            "id": 20,
            "userEmail": "Aguardando confirmação do iFriend.",
            "firstname": "Chesley",
            "lastname": "Thiel",
            "fullname": "Chadd Cruickshank",
            "nickname": "beer.jessica",
            "birthday": "1988-07-08T00:00:00+00:00",
            "role": "ifriend",
            "userRoles": [
                {
                    "id": 1,
                    "name": "ROLE_USER"
                },
                {
                    "id": 3,
                    "name": "ROLE_AFFILIATED"
                },
                {
                    "id": 4,
                    "name": "ROLE_AFFILIATED_PARENT"
                },
                {
                    "id": 5,
                    "name": "ROLE_AGENCY"
                },
                {
                    "id": 6,
                    "name": "ROLE_RECEPTIVE"
                }
            ],
            "phoneCountryCode": "BR",
            "phone": "Aguardando confirmação do iFriend.",
            "phoneFormatted": "Aguardando confirmação do iFriend.",
            "phone2CountryCode": null,
            "phone2": "Aguardando confirmação do iFriend.",
            "phone2Formatted": "Aguardando confirmação do iFriend.",
            "skype": "Aguardando confirmação do iFriend.",
            "messenger": "Aguardando confirmação do iFriend.",
            "whatsappCountryCode": null,
            "whatsapp": "Aguardando confirmação do iFriend.",
            "whatsappFormatted": "Aguardando confirmação do iFriend.",
            "gender": {
                "id": 2,
                "type": "Feminino"
            },
            "avatar": null,
            "rating": 0,
            "roles": [
                "ROLE_USER",
                "ROLE_AFFILIATED",
                "ROLE_AFFILIATED_PARENT",
                "ROLE_AGENCY",
                "ROLE_RECEPTIVE"
            ]
        },
        "placeId": "ChIJW6AIkVXemwARTtIvZ2xC3FA",
        "places": [
            {
                "id": 6,
                "isAlias": null,
                "placeId": "ChIJRfg5kECAmQARjLS837zXdYA",
                "latitude": -22.9513,
                "longitude": -43.1559,
                "state": "RJ",
                "countryCode": "BR",
                "country": null,
                "name": "Pão de Açucar"
            }
        ],
        "city": "Rio de Janeiro",
        "state": "RJ",
        "country": "Brasil",
        "countryCode": "BR",
        "latitude": "-22.90350",
        "longitude": "-43.20960",
        "pro": false,
        "car": false,
        "isMaster": null,
        "quote": null,
        "bio": null,
        "price": "10.00",
        "customPrice": null,
        "occupation": "Reprehenderit a.",
        "interests": [
            {
                "id": 5,
                "name": "LGBT",
                "slug": "lgbt",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-lgbt.png",
                "type": "ifriend"
            },
            {
                "id": 6,
                "name": "Compras",
                "slug": "shopping",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-shopping.png",
                "type": "ifriend"
            },
            {
                "id": 7,
                "name": "Gastronomia",
                "slug": "gastronomy",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-gastronomy.png",
                "type": "ifriend"
            },
            {
                "id": 9,
                "name": "Atividades com Crianças",
                "slug": "activities-with-children",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-activities-with-children.png",
                "type": "ifriend"
            }
        ],
        "languages": [
            {
                "id": 7,
                "code": "fr",
                "name": "Francês",
                "icon": "fr.png"
            },
            {
                "id": 11,
                "code": "ja",
                "name": "Japonês",
                "icon": "ja.png"
            },
            {
                "id": 14,
                "code": "ko",
                "name": "Coreano",
                "icon": "ko.png"
            }
        ],
        "photos": [],
        "rating": 0,
        "recommended": 0,
        "cityPhoto": "https://obj.cdn.theifriend.com/cities/ChIJW6AIkVXemwARTtIvZ2xC3FA.jpg",
        "plannerRoom": null,
        "fullPrice": null,
        "paymentModulePromo": null,
        "profileUrl": "https://theifriend.com/ifriends/11",
        "thumbnails": {
            "cityPhoto": {
                "small": "https://thumbnail.cdn.theifriend.com/small/cities/ChIJW6AIkVXemwARTtIvZ2xC3FA.jpg",
                "medium": "https://thumbnail.cdn.theifriend.com/medium/cities/ChIJW6AIkVXemwARTtIvZ2xC3FA.jpg",
                "large": "https://thumbnail.cdn.theifriend.com/large/cities/ChIJW6AIkVXemwARTtIvZ2xC3FA.jpg"
            }
        }
    },
    "dates": [],
    "checkin": null,
    "customerDeclineReason": null,
    "ifriendDeclineReason": null,
    "doneAt": null,
    "experience": null,
    "experienceServiceItems": [],
    "type": "normal",
    "callLink": null,
    "affiliateBooking": null,
    "couponUsage": [],
    "providerData": null,
    "pax": [],
    "integrator": null,
    "ifriendComission": 0,
    "platformComission": 0,
    "ifriendConfirmedAt": null,
    "virtualGuideLeadId": null,
    "customIfriendComission": null,
    "affiliateComission": null,
    "place": null,
    "downPaymentPrice": null,
    "paidTheDownPrice": false,
    "soldByManagerUser": null,
    "experienceNetPrice": null,
    "experienceMetadata": null,
    "transfer": null,
    "isSingle": false,
    "serviceProvider": null,
    "items": [],
    "voucher": null,
    "needsAcceptance": false,
    "hasAccepted": null,
    "discountAmount": null,
    "discountType": null,
    "checkoutDiscountCouponCode": null,
    "payment": null,
    "grossPrice": "0.000000",
    "integratorAgencyName": null,
    "apiClient": null,
    "uuid": null,
    "totalPrice": "0.000000",
    "salesforceRecordId": null,
    "salesforceSynced": false,
    "salesforceSyncedAt": null,
    "salesforceAccountId": null,
    "salesforceRelatedOpportunityId": null,
    "salesforceOpportunityId": null,
    "paymentToken": "eb62b8a8-3c58-478e-b446-b4e2cd5ca7d1",
    "cancellationRuleText": "dentro da penalidade (sem reembolso)",
    "tickets": [],
    "cancellationRefund": null,
    "providerIsAware": false,
    "providerAwareAt": null,
    "promo": null,
    "withdrawalExpiredAt": null,
    "integratorAgencyKey": null,
    "integratorAgencyContactName": null,
    "integratorAgencyContactEmail": null,
    "integratorAgencyContactPhone": null,
    "receptiveHasAcceptedAt": null,
    "hasAcceptedReceptiveId": null,
    "validatorQRCode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAIAAACx0UUtAAAABnRSTlMA/wD/AP83WBt9AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFWElEQVR4nO3d227jOBRFwclg/v+Xe96FBhtsXrScVL3akWRng/ABycOvX79+/QNh/779APAHMkqdjFIno9TJKHUySp2MUiej1MkodTJKnYxSJ6PUySh1MkqdjFIno9TJKHUySp2MUvffyh9/fX3teo6xx6arqfuO/3ZlO9f4UitfztQzb3z1nJXv2ThKnYxSJ6PUySh1SzXTw8Z2Eud+y28sklbue63sm/q8zf+gcZQ6GaVORqmTUep21kwPK2XBlHFJcW4aZqVYWXnmjeXX2LX/4JhxlDoZpU5GqZNR6g7WTNdsrHumqoSViuraur5vwDhKnYxSJ6PUySh1H1kzbVxvtlJRbZwrGt/34dzcWJNxlDoZpU5GqZNR6g7WTOd+nk9t6FmZs1lpGLGyCWljJbciUmAZR6mTUepklDoZpW5nzXStCdvYtS5z5zombFyqd62+PMc4Sp2MUiej1MkodUs101vzENdKman7Pky9eq38eojMJI0ZR6mTUepklDoZpe7rXO/tjVMa3+AUpSkrk0Mb1wRGOlMYR6mTUepklDoZpe7e+UwbexNE1te9VY1NvfnctqrxY2xkHKVORqmTUepklLqleaY/XPpYSfGWt+Z7xo9xrqIaX+rh3GpD4yh1MkqdjFIno9S9VjNNvXllwuOtM22nnJuEGzt35ZUbPRhHqZNR6mSUOhmlbud+po3zENeKpPGlVjQX1G1cqXit9YZxlDoZpU5GqZNR6nbOM52bh3jryh9RjZ2bk1thbR4/iIxSJ6PUySh19860bf7Sf6sHxFuL8cauNYyYYhylTkapk1HqZJS6pZrp3Oqsc/MfK6vgxm8+VyS91Qpv7FoXD+ModTJKnYxSJ6PUHTyfaay5+WnKR3QxP9fs7lpPd+ModTJKnYxSJ6PUvXam7fhS1wqOSGXz8FbrP/uZ4G/IKHUySp2MUvdaD4hrh/1cqwOaK+jONcob32gj4yh1MkqdjFIno9Tdq5muNTWf+ttmK7zxjTZ+omtNzVcYR6mTUepklDoZpe7gmbZ/uPGxhW0P368MGl9q/BjXpp0e7GfiO5NR6mSUOhml7rX9TBv32Vz7CB8xKTXlrWOxphhHqZNR6mSUOhmlbuf5TCtzGBvnmVbuu/FG51qPR1oOXmMcpU5GqZNR6mSUuoNr895qGRDZ0DNl4/q6qRt9REsI4yh1MkqdjFIno9TdO5/p3CFDY5GO4FPeah9uPxP8DRmlTkapk1HqDq7NezjXv278GM3KZuzcM49v9DC+77WHNI5SJ6PUySh1MkpdZW3eW2+e8onnMz1E2odPMY5SJ6PUySh1MkrdvV7j5xbybXxzsxXeW+czTT3G+M0rjKPUySh1MkqdjFK3tDbvreZvj1cj+3seNn4558rNa5NwK4yj1MkodTJKnYxS99qZtis2znD88EmpqRtZmwe/J6PUySh1MkrdwXmmjaa6DzifafDq+M3Niso4Sp2MUiej1Mkodff65k2ZKjg2/tJf6RR3rki6tkVphb55/FwySp2MUiej1O2smR6u7Ryaeoxzs0Ef0cX82tTgxm/DOEqdjFIno9TJKHUHa6ZzzjXKm/KJ5zN9RKO8B+ModTJKnYxSJ6PUfWTNNHaucdzKoa4bz2eaql3e6iVvbR4/iIxSJ6PUySh1B2um5nK7lUJnarfT+L4PkfZ95zqgrzCOUiej1MkodTJK3c6a6dqP6PF9N7aV+8TzmVYudW3h4hTjKHUySp2MUiej1H3k+Uz8KMZR6mSUOhmlTkapk1HqZJQ6GaVORqmTUepklDoZpU5GqZNR6mSUOhmlTkapk1HqZJQ6GaXuf3mpEsB0mNOMAAAAAElFTkSuQmCC",
    "priceWithoutCurrencyExchange": "0.000000",
    "confirmedStatusName": "Aguardando iFriend",
    "paymentStatusName": "Pagamento em Aberto",
    "canStart": false,
    "allowedPaymentTypeCodes": [
        "stone-creditcard",
        "stone-pix"
    ],
    "allowedPaymentTypeCodeInstallments": {
        "stone-creditcard": {
            "installmentsIni": 0,
            "installmentsEnd": 0,
            "withInterest": false,
            "label": {
                "pt": "",
                "en": "",
                "es": ""
            }
        }
    },
    "fromAffiliate": false,
    "exclusiveProductBooking": true,
    "needsExtraDataForBooking": false,
    "currencyQuotation": null,
    "completeToday": false,
    "priceWithDiscount": "0.000000",
    "cancellationRuleDescription": {
        "pt": "<ul><li>Até 14 dias antes da data do tour: reembolso é integral.</li><li>Entre 13 a 7 dias antes da data do tour: reembolso de 60% do valor da reserva.</li><li>6 dias antes da data de início do tour: não há reembolso.</li><li></ul><p><b>Tickets:</b> Conforme política de cancelamento de cada atrativo, descrito na página do produto.</p><p><b>Regras:</b></p><ul><li>Em caso de cancelamento pelos nossos parceiros (guia local e receptivo turístico), o reembolso será integral.</li><li>Reservas canceladas que não estejam confirmadas o reembolso será integral.</li><li>Reservas com menos 24 horas para o início do serviço não haverá reembolso.</li><li>A taxa de serviço (10%) não é reembolsável. O valor é utilizado para custear os custos de cobrança e reembolso aos clientes.</li></ul>",
        "en": "<ul><li>Up to 14 days before the tour date: full refund.</li><li>Between 13 and 7 days before the tour date: 60% refund of the reservation amount.</li><li>6 days before the tour start date: no refund.</li><li></ul><p><b>Tickets:</b> According to the cancellation policy of each attraction, described on the product page.</p><p><b>Rules:</b></p><ul><li>In case of cancellation by our partners (local guide and tour operator), the refund will be full.</li><li>Reservations canceled that are not confirmed will be fully refunded.</li><li>Reservations made less than 24 hours before the start of the service will not be refunded.</li><li>The service fee (10%) is non-refundable. The amount is used to cover the costs of billing and refunding customers.</li></ul>",
        "es": "<ul><li>Hasta 14 días antes de la fecha del tour: reembolso completo.</li><li>Entre 13 a 7 días antes de la fecha del tour: reembolso del 60% del valor de la reserva.</li> <li >6 días antes de la fecha de inicio del tour: no hay reembolsos.</li><li></ul><p><b>Entradas:</b> Según política de cancelación de cada atracción, descrita en la página del producto. </p><p><b>Reglas:</b></p><ul><li>En caso de cancelación por parte de nuestros socios (guía local y recepción turística), el reembolso será completo </li. ><li>Las reservas canceladas que no estén confirmadas se reembolsarán íntegramente.</li><li>Las reservas con menos de 24 horas antes del inicio del servicio no se reembolsarán.</li><li>La tarifa del servicio (10%) no es reembolsable. El importe se utiliza para cubrir los costes de facturación y reembolso a los clientes.</li></ul>"
    },
    "freeCancellationTill": 0,
    "moreThan15Days": false,
    "customerBookingStatus": {
        "en": "Waiting iFriend",
        "pt": "Aguardando iFriend",
        "es": "Esperando iFriend"
    },
    "ifriendBookingStatus": {
        "en": "Waiting for your acceptance",
        "pt": "Aguardando seu aceite",
        "es": "Esperando su Aceptación"
    },
    "gclid": null,
    "lastPayment": null,
    "allowCheckout": true,
    "customerLocale": "pt",
    "ifriendLocale": "pt",
    "confirmationDeadline": "2025-12-07",
    "free": true
}

Booking de Experiências com Variação Não Exclusiva (exclusive == false)

Request POST /bookings

{
    "type": "experience",
    "experience": {
        "id": 38
    },
    "customer": {
        "id": 7
    },
    "dates": [
        {
            "day": "2026-03-20",
            "period": "08:00",
            "numAdult": 1,
            "numChild": 0,
            "isIfriendCar": false
        }
    ],
    "providerData": {
        "provider": "platform",
        "variations": [
            {
                "id": 13,
                "quantity": 1,
                "agePolicies": [
                    {
                        "id": 34,
                        "name": "Adulto",
                        "quantity": 1
                    }
                ]
            }
        ]
    }
}

Response

{
    "id": 47,
    "city": "Rio de Janeiro",
    "state": "RJ",
    "country": null,
    "countryCode": null,
    "latitude": null,
    "longitude": null,
    "dollarQuotation": null,
    "price": "182.700000",
    "currencyCode": "BRL",
    "ifriendPrice": "10.000000",
    "confirmStatus": 1,
    "confirmStatusDate": "2025-12-06T14:19:44+00:00",
    "paymentStatus": 0,
    "paymentStatusDate": null,
    "statusReason": null,
    "paymentMethod": null,
    "payerId": null,
    "paymentId": null,
    "transactionId": null,
    "installments": 1,
    "ifriendEmail": "affiliate3@teste.com.br",
    "customerEmail": "glauber.portella@theifriend.com",
    "createdAt": "2025-12-06T14:19:43+00:00",
    "isDone": false,
    "serviceTax": "0.00000",
    "platformTax": "0.00000",
    "userRated": false,
    "ifriendRated": false,
    "customer": {
        "id": 7,
        "userEmail": "Aguardando confirmação do iFriend.",
        "firstname": "Cliente",
        "lastname": "Teste",
        "fullname": "Cliente Teste",
        "nickname": "Cliente",
        "birthday": "1975-03-11T00:00:00+00:00",
        "role": "user",
        "userRoles": [
            {
                "id": 1,
                "name": "ROLE_USER"
            }
        ],
        "phoneCountryCode": "BR",
        "phone": "Aguardando confirmação do iFriend.",
        "phoneFormatted": "Aguardando confirmação do iFriend.",
        "phone2CountryCode": null,
        "phone2": "Aguardando confirmação do iFriend.",
        "phone2Formatted": "Aguardando confirmação do iFriend.",
        "skype": "Aguardando confirmação do iFriend.",
        "messenger": "Aguardando confirmação do iFriend.",
        "whatsappCountryCode": "BR",
        "whatsapp": "Aguardando confirmação do iFriend.",
        "whatsappFormatted": "Aguardando confirmação do iFriend.",
        "gender": {
            "id": 2,
            "type": "Feminino"
        },
        "avatar": null,
        "rating": 0,
        "roles": [
            "ROLE_USER"
        ]
    },
    "ifriend": {
        "id": 11,
        "user": {
            "id": 20,
            "userEmail": "Aguardando confirmação do iFriend.",
            "firstname": "Chesley",
            "lastname": "Thiel",
            "fullname": "Chadd Cruickshank",
            "nickname": "beer.jessica",
            "birthday": "1988-07-08T00:00:00+00:00",
            "role": "ifriend",
            "userRoles": [
                {
                    "id": 1,
                    "name": "ROLE_USER"
                },
                {
                    "id": 3,
                    "name": "ROLE_AFFILIATED"
                },
                {
                    "id": 4,
                    "name": "ROLE_AFFILIATED_PARENT"
                },
                {
                    "id": 5,
                    "name": "ROLE_AGENCY"
                },
                {
                    "id": 6,
                    "name": "ROLE_RECEPTIVE"
                }
            ],
            "phoneCountryCode": "BR",
            "phone": "Aguardando confirmação do iFriend.",
            "phoneFormatted": "Aguardando confirmação do iFriend.",
            "phone2CountryCode": null,
            "phone2": "Aguardando confirmação do iFriend.",
            "phone2Formatted": "Aguardando confirmação do iFriend.",
            "skype": "Aguardando confirmação do iFriend.",
            "messenger": "Aguardando confirmação do iFriend.",
            "whatsappCountryCode": null,
            "whatsapp": "Aguardando confirmação do iFriend.",
            "whatsappFormatted": "Aguardando confirmação do iFriend.",
            "gender": {
                "id": 2,
                "type": "Feminino"
            },
            "avatar": null,
            "rating": 0,
            "roles": [
                "ROLE_USER",
                "ROLE_AFFILIATED",
                "ROLE_AFFILIATED_PARENT",
                "ROLE_AGENCY",
                "ROLE_RECEPTIVE"
            ]
        },
        "placeId": "ChIJW6AIkVXemwARTtIvZ2xC3FA",
        "places": [
            {
                "id": 6,
                "isAlias": null,
                "placeId": "ChIJRfg5kECAmQARjLS837zXdYA",
                "latitude": -22.9513,
                "longitude": -43.1559,
                "state": "RJ",
                "countryCode": "BR",
                "country": null,
                "name": "Pão de Açucar"
            }
        ],
        "city": "Rio de Janeiro",
        "state": "RJ",
        "country": "Brasil",
        "countryCode": "BR",
        "latitude": "-22.90350",
        "longitude": "-43.20960",
        "pro": false,
        "car": false,
        "isMaster": null,
        "quote": null,
        "bio": null,
        "price": "10.00",
        "customPrice": null,
        "occupation": "Reprehenderit a.",
        "interests": [
            {
                "id": 5,
                "name": "LGBT",
                "slug": "lgbt",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-lgbt.png",
                "type": "ifriend"
            },
            {
                "id": 6,
                "name": "Compras",
                "slug": "shopping",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-shopping.png",
                "type": "ifriend"
            },
            {
                "id": 7,
                "name": "Gastronomia",
                "slug": "gastronomy",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-gastronomy.png",
                "type": "ifriend"
            },
            {
                "id": 9,
                "name": "Atividades com Crianças",
                "slug": "activities-with-children",
                "icon": "https://obj.cdn.theifriend.com/icons/interests/icon-activities-with-children.png",
                "type": "ifriend"
            }
        ],
        "languages": [
            {
                "id": 7,
                "code": "fr",
                "name": "Francês",
                "icon": "fr.png"
            },
            {
                "id": 11,
                "code": "ja",
                "name": "Japonês",
                "icon": "ja.png"
            },
            {
                "id": 14,
                "code": "ko",
                "name": "Coreano",
                "icon": "ko.png"
            }
        ],
        "photos": [],
        "rating": 0,
        "recommended": 0,
        "cityPhoto": "https://obj.cdn.theifriend.com/cities/ChIJW6AIkVXemwARTtIvZ2xC3FA.jpg",
        "plannerRoom": null,
        "fullPrice": null,
        "paymentModulePromo": null,
        "profileUrl": "https://theifriend.com/ifriends/11",
        "thumbnails": {
            "cityPhoto": {
                "small": "https://thumbnail.cdn.theifriend.com/small/cities/ChIJW6AIkVXemwARTtIvZ2xC3FA.jpg",
                "medium": "https://thumbnail.cdn.theifriend.com/medium/cities/ChIJW6AIkVXemwARTtIvZ2xC3FA.jpg",
                "large": "https://thumbnail.cdn.theifriend.com/large/cities/ChIJW6AIkVXemwARTtIvZ2xC3FA.jpg"
            }
        }
    },
    "dates": [
        {
            "id": 46,
            "hours": 4,
            "period": "08:00",
            "numAdult": 1,
            "numChild": 0,
            "numHalfPrice": 0,
            "isIfriendCar": false,
            "price": null,
            "dayPrice": null,
            "description": null,
            "type": null,
            "day": "2026-03-20"
        }
    ],
    "checkin": null,
    "customerDeclineReason": null,
    "ifriendDeclineReason": null,
    "doneAt": null,
    "experience": {
        "id": 38,
        "title": "Teste Exclusiva com Variação 1",
        "price": "100.00",
        "currencyCode": "BRL",
        "shelfExperience": false,
        "fullPrice": null,
        "paymentModulePromo": null,
        "profileUrl": null
    },
    "experienceServiceItems": [],
    "type": "experience",
    "callLink": null,
    "affiliateBooking": null,
    "couponUsage": [],
    "providerData": {
        "provider": "platform",
        "variations": [
            {
                "id": 13,
                "mode": "person",
                "type": "shared",
                "quantity": 1,
                "tariffItem": {
                    "id": 13,
                    "price": "182.70",
                    "dateEnd": "2026-12-31",
                    "dateIni": "2025-01-01",
                    "priceNet": "100.00",
                    "currencyCode": "BRL"
                },
                "agePolicies": [
                    {
                        "id": 34,
                        "name": "Adulto",
                        "discount": "0.00",
                        "quantity": 1
                    }
                ],
                "provider_sku": null,
                "currency_code": "BRL",
                "name": "Default",
                "description": null
            }
        ]
    },
    "pax": [],
    "integrator": null,
    "ifriendComission": 100,
    "platformComission": 82.7,
    "ifriendConfirmedAt": null,
    "virtualGuideLeadId": null,
    "customIfriendComission": null,
    "affiliateComission": null,
    "place": null,
    "downPaymentPrice": null,
    "paidTheDownPrice": false,
    "soldByManagerUser": null,
    "experienceNetPrice": "100.00",
    "experienceMetadata": null,
    "transfer": null,
    "isSingle": false,
    "serviceProvider": null,
    "items": [],
    "voucher": null,
    "needsAcceptance": false,
    "hasAccepted": null,
    "discountAmount": null,
    "discountType": null,
    "checkoutDiscountCouponCode": null,
    "payment": null,
    "grossPrice": "182.700000",
    "integratorAgencyName": null,
    "apiClient": null,
    "uuid": null,
    "totalPrice": "182.700000",
    "salesforceRecordId": null,
    "salesforceSynced": false,
    "salesforceSyncedAt": null,
    "salesforceAccountId": null,
    "salesforceRelatedOpportunityId": null,
    "salesforceOpportunityId": null,
    "paymentToken": "039aeb5b-aa07-4fa3-9bd0-c30bf7ff3ca3",
    "cancellationRuleText": "100% de reembolso até 14 dias antes do tour",
    "tickets": [],
    "cancellationRefund": null,
    "providerIsAware": false,
    "providerAwareAt": null,
    "promo": null,
    "withdrawalExpiredAt": null,
    "integratorAgencyKey": null,
    "integratorAgencyContactName": null,
    "integratorAgencyContactEmail": null,
    "integratorAgencyContactPhone": null,
    "receptiveHasAcceptedAt": null,
    "hasAcceptedReceptiveId": null,
    "validatorQRCode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAIAAACx0UUtAAAABnRSTlMA/wD/AP83WBt9AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFZUlEQVR4nO3dy24kNxZF0VbD///L5XnAoEHzETtTa01VGYySDoi8IHn58+fPn/9B2P/ffgH4FzJKnYxSJ6PUySh1MkqdjFIno9TJKHUySp2MUiej1MkodTJKnYxSJ6PUySh1MkqdjFL318qHf35+dr3H2OPQ1dS448+uHOcaP2rllzP1zht/es7K79k8Sp2MUiej1MkodUs108PGdhLnvstvLJJWxr1W9k39f5t/QfModTJKnYxSJ6PU7ayZHlbKginjkuLcMsxKsbLyzhvLr7Frf8Ex8yh1MkqdjFIno9QdrJmu2Vj3TFUJKxXVtX19X8A8Sp2MUiej1MkodR9ZM23cb7ZSUW1cKxqP+3BubazJPEqdjFIno9TJKHUHa6ZzX8+nDvSsrNmsNIxYOYS0sZJbESmwzKPUySh1MkqdjFK3s2a61oRt7FqXuXMdEzZu1btWX55jHqVORqmTUepklLqlmumtdYhrpczUuA9TP71Wfj1EVpLGzKPUySh1MkqdjFL3c6739sYljS+4RWnKyuLQxj2Bkc4U5lHqZJQ6GaVORqm71wNiY5EU2V/3VjU29Y/PHasav8ZG5lHqZJQ6GaVORqm7VzNt/Gp/bo/c2NRrvNUD4pyVQnaFeZQ6GaVORqmTUeqW9uYtDXyshpgaKNK3e+NAkStuVwZ6MI9SJ6PUySh1MkpdtG/euZuQ3jpHNfXkc/sJV578VusN8yh1MkqdjFIno9TdW2c6d8xo42cfmotSYytF4caq1948fhEZpU5GqZNR6pbWmTauUoyfPLZx7WTKSgl1brfhimsNI6aYR6mTUepklDoZpe61+5k+otnd1Da/SJF0rbK51nvCPEqdjFIno9TJKHUH72easnGf27Wmc83CbuOFTOdecop5lDoZpU5GqZNR6naeZ4pc5zP2BfcznTtl5TwT/BcySp2MUiej1L3Wa/zhrWbbU841NR8/asW5XhvjgTYyj1Ino9TJKHUySt29vXnXdt+tvMYn3s90rvXfuUuzpphHqZNR6mSUOhml7mAPiEjXg6m3Wnny1EAbewxeW/2a4jwTv4iMUiej1MkodTvXma5t9Dp3Jmn8Gh+xKDXl2nreCvModTJKnYxSJ6PU3esBce1M0rmDNR9RYJ07OPXW0TfzKHUySp2MUiej1B08z/T1HbLfWu8511Wv2RLCPEqdjFIno9TJKHVL55lWTN0AO75bdmqgqfWejUXhlI2POtdNfMx5Jn4RGaVORqmTUerurTNttLFf3xfczzR+q6mBxo+6dsjswTxKnYxSJ6PUySh1B+9nOncT68MX7KAbP2r8Gtd+V84zwT+TUepklDoZpe7e3ry3jt08rIy7smPwrWLl2jLbeNwV5lHqZJQ6GaVORqlbqpnO7ZE7twr1Bfczbbzb6doi3ArzKHUySp2MUiej1B3cm3fOW7vRIvczTTnXY/Aa8yh1MkqdjFIno9TdW2daMd4Ft/LV/q0eEJG7rD6iojKPUiej1MkodTJK3c7zTNeux33rvqKp007jd37Y2JLurdUvffP4vWSUOhmlTkapO9gD4trJofGjvu9+po0LSxtZZ+L3klHqZJQ6GaXutTttV2xcHGpWNpGOGG/dh/tgHqVORqmTUepklLqPrJkeVr7arxQc59qlb2x2d61xg715/F4ySp2MUiej1B2sma7dljvlC+5nOte+b+NJqY3Mo9TJKHUySp2MUrezZnpr79bDSnUy9aixc/czTVk5v3Vu4+IU8yh1MkqdjFIno9R95P1M/CrmUepklDoZpU5GqZNR6mSUOhmlTkapk1HqZJQ6GaVORqmTUepklDoZpU5GqZNR6mSUOhml7m/tLAa6r0g0CQAAAABJRU5ErkJggg==",
    "priceWithoutCurrencyExchange": "182.700000",
    "confirmedStatusName": "Aguardando Pagamento",
    "paymentStatusName": "Pagamento em Aberto",
    "canStart": false,
    "allowedPaymentTypeCodes": [
        "stone-creditcard",
        "stone-pix"
    ],
    "allowedPaymentTypeCodeInstallments": {
        "stone-creditcard": {
            "installmentsIni": 0,
            "installmentsEnd": 0,
            "withInterest": false,
            "label": {
                "pt": "",
                "en": "",
                "es": ""
            }
        }
    },
    "fromAffiliate": false,
    "exclusiveProductBooking": false,
    "needsExtraDataForBooking": false,
    "currencyQuotation": null,
    "completeToday": false,
    "priceWithDiscount": "182.700000",
    "cancellationRuleDescription": {
        "pt": "<ul><li>Até 14 dias antes da data do tour: reembolso é integral.</li><li>Entre 13 a 7 dias antes da data do tour: reembolso de 60% do valor da reserva.</li><li>6 dias antes da data de início do tour: não há reembolso.</li><li></ul><p><b>Tickets:</b> Conforme política de cancelamento de cada atrativo, descrito na página do produto.</p><p><b>Regras:</b></p><ul><li>Em caso de cancelamento pelos nossos parceiros (guia local e receptivo turístico), o reembolso será integral.</li><li>Reservas canceladas que não estejam confirmadas o reembolso será integral.</li><li>Reservas com menos 24 horas para o início do serviço não haverá reembolso.</li><li>A taxa de serviço (10%) não é reembolsável. O valor é utilizado para custear os custos de cobrança e reembolso aos clientes.</li></ul>",
        "en": "<ul><li>Up to 14 days before the tour date: full refund.</li><li>Between 13 and 7 days before the tour date: 60% refund of the reservation amount.</li><li>6 days before the tour start date: no refund.</li><li></ul><p><b>Tickets:</b> According to the cancellation policy of each attraction, described on the product page.</p><p><b>Rules:</b></p><ul><li>In case of cancellation by our partners (local guide and tour operator), the refund will be full.</li><li>Reservations canceled that are not confirmed will be fully refunded.</li><li>Reservations made less than 24 hours before the start of the service will not be refunded.</li><li>The service fee (10%) is non-refundable. The amount is used to cover the costs of billing and refunding customers.</li></ul>",
        "es": "<ul><li>Hasta 14 días antes de la fecha del tour: reembolso completo.</li><li>Entre 13 a 7 días antes de la fecha del tour: reembolso del 60% del valor de la reserva.</li> <li >6 días antes de la fecha de inicio del tour: no hay reembolsos.</li><li></ul><p><b>Entradas:</b> Según política de cancelación de cada atracción, descrita en la página del producto. </p><p><b>Reglas:</b></p><ul><li>En caso de cancelación por parte de nuestros socios (guía local y recepción turística), el reembolso será completo </li. ><li>Las reservas canceladas que no estén confirmadas se reembolsarán íntegramente.</li><li>Las reservas con menos de 24 horas antes del inicio del servicio no se reembolsarán.</li><li>La tarifa del servicio (10%) no es reembolsable. El importe se utiliza para cubrir los costes de facturación y reembolso a los clientes.</li></ul>"
    },
    "freeCancellationTill": "14",
    "moreThan15Days": true,
    "customerBookingStatus": {
        "en": "Waiting Payment",
        "pt": "Aguardando Pagamento",
        "es": "En espera de Pago"
    },
    "ifriendBookingStatus": {
        "en": "Waiting for Payment",
        "pt": "Aguardando Pagamento",
        "es": "Esperando el Pago"
    },
    "gclid": null,
    "lastPayment": null,
    "allowCheckout": true,
    "customerLocale": "pt",
    "ifriendLocale": "pt",
    "confirmationDeadline": "2026-03-20",
    "free": false
}

Booking de Ingressos da Tiqets (product.productProvider.id == 3)

Request POST /bookings

{
    "type": "ticket",
    "experience": {
        "id": 11277
    },
    "customer": {
        "id": 13020
    },
    "dates": [
        {
            "day": "2025-12-12",
            "timeslot": "whole_day",
            "ifriendNumber": "552140404221",
            "numAdult": 1,
            "numChild": 0
        }
    ],
    "pax": [
        {
            "fullname": "Equipe QA iFriend",
            "doc": "057.710.956-13",
            "gender": "",
            "birthday": "1982-01-12T00:00:00+00:00",
            "email": "qa@theifriend.com",
            "phone": "31955555555"
        }
    ],
    "providerData": {
        "provider": "tiqets",
        "product_id": "1006356",
        "customer_details": {
            "firstname": "Equipe QA iFriend",
            "lastname": "QA iFriend",
            "phone": "+55 31 95555-5555",
            "email": "qa@theifriend.com"
        },
        "day": "2025-12-12",
        "timeslot": "whole_day",
        "ifriendNumber": "552140404221",
        "variants": [
            {
                "count": "1",
                "variant_id": "38100",
                "variant_type": "adult",
                "is_addon": "false",
                "valid_with_variant_ids": [
                    "123"
                ],
                "price": "10",
                "required_field": [
                    ""
                ]
            },
            {
                "count": "1",
                "variant_id": "123",
                "variant_type": "adult",
                "is_addon": "false",
                "valid_with_variant_ids": [
                    "full_name",
                    "passport_ids",
                    "date_of_birth",
                    "nationality",
                    "weight_kg",
                    "weight_lb",
                    "address",
                    "email",
                    "phone",
                    "dietary_preference"
                ],
                "price": "10",
                "required_field": [
                    "full_name",
                    "passport_ids",
                    "date_of_birth",
                    "nationality",
                    "weight_kg",
                    "weight_lb",
                    "address",
                    "email",
                    "phone",
                    "dietary_preference"
                ]
            }
        ],
        "visitors_details": [
            {
                "variant_id": 38100,
                "visitors_data": [
                    {
                        "full_name": "Visitor's full name as in the first name and last name in Latin characters without special characters or numbers. Needs to consist of at least two substrings separated by a space character.",
                        "passport_ids": "Visitor's passport ID.",
                        "date_of_birth": "Visitor's date of birth. Date format YYYY-MM-DD.",
                        "nationality": "Visitor's nationality in Latin characters.",
                        "weight_kg": "Visitor's weight in kg. Expects an integer value as a string.",
                        "weight_lb": "Visitor's weight in lb. Expects an integer value as a string.",
                        "address": "Visitor's home address.",
                        "email": "Visitor's email address.",
                        "phone": "Visitor's phone number. Following the regex format '^+[1-9][0-9]{7,14}$'.",
                        "dietary_preference": "Visitor's dietary preferences or restrictions"
                    }
                ]
            }
        ],
        "passport_id": "Passport ID of the (main) visitor. Only if required for the product as advertised in Availability API. (On order level, not per individual visitor.)",
        "zipcode": "The 5-digit US zipcode/postal code if the visitor lives in the United States. Only if required for the product as advertised in Availability API. (On order level, not per individual visitor.)",
        "pickup_location": "The holiday address of visitors. The tour provider may contact the visitor to arrange the nearest pickup location. Only if required for the product as advertised in Availability API. (On order level, not per individual visitor.)",
        "dropoff_location": "The address where the visitors want to be dropped off after the ordered product/activity. Only if required for the product as advertised in Availability API. (On order level, not per individual visitor.)",
        "flight_number": "The number of the flight the visitors arrive with. This allows the supplier to be at the right time and location if a product includes an airport pickup/dropoff. Only if required for the product as advertised in Availability API. (On order level, not per individual visitor.)"
    }
}

Response:

{
    "id": 22715,
    "city": "Centallo",
    "state": null,
    "country": "It\u00e1lia",
    "countryCode": null,
    "latitude": null,
    "longitude": null,
    "dollarQuotation": null,
    "price": 64.15,
    "currencyCode": "EUR",
    "ifriendPrice": null,
    "confirmStatus": 1,
    "confirmStatusDate": "2025-12-06T14:44:56+00:00",
    "paymentStatus": 0,
    "paymentStatusDate": null,
    "statusReason": null,
    "paymentMethod": null,
    "payerId": null,
    "paymentId": null,
    "transactionId": null,
    "installments": 1,
    "ifriendEmail": "tiqets@theifriend.com",
    "customerEmail": "qa@theifriend.com",
    "createdAt": "2025-12-06T14:44:55+00:00",
    "isDone": false,
    "serviceTax": 12.83,
    "platformTax": "0.00000",
    "userRated": false,
    "ifriendRated": false,
    "customer": {
        "id": 13020,
        "userEmail": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "firstname": "Equipe",
        "lastname": "QA iFriend",
        "fullname": "Equipe QA iFriend",
        "nickname": null,
        "birthday": "1982-01-12T00:00:00+00:00",
        "role": "user",
        "userRoles": [
            {
                "id": 3,
                "name": "ROLE_USER"
            }
        ],
        "phoneCountryCode": "BR",
        "phone": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "phoneFormatted": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "phone2CountryCode": null,
        "phone2": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "phone2Formatted": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "skype": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "messenger": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "whatsappCountryCode": null,
        "whatsapp": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "whatsappFormatted": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "gender": null,
        "avatar": null,
        "rating": 0,
        "roles": [
            "ROLE_USER"
        ]
    },
    "ifriend": {
        "id": 17008,
        "user": {
            "id": 21573,
            "userEmail": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "firstname": "iFriend",
            "lastname": "Tickets",
            "fullname": "iFriend Tickets",
            "nickname": null,
            "birthday": null,
            "role": "user",
            "userRoles": [
                {
                    "id": 3,
                    "name": "ROLE_USER"
                },
                {
                    "id": 4,
                    "name": "ROLE_AFFILIATED"
                },
                {
                    "id": 14,
                    "name": "ROLE_AFFILIATED_PARENT"
                }
            ],
            "phoneCountryCode": "BR",
            "phone": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "phoneFormatted": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "phone2CountryCode": null,
            "phone2": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "phone2Formatted": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "skype": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "messenger": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "whatsappCountryCode": null,
            "whatsapp": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "whatsappFormatted": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "gender": null,
            "avatar": null,
            "rating": 0,
            "roles": [
                "ROLE_USER",
                "ROLE_AFFILIATED",
                "ROLE_AFFILIATED_PARENT"
            ]
        },
        "placeId": null,
        "places": [],
        "city": null,
        "state": null,
        "country": null,
        "countryCode": null,
        "latitude": null,
        "longitude": null,
        "pro": false,
        "car": false,
        "isMaster": null,
        "quote": null,
        "bio": null,
        "price": null,
        "customPrice": null,
        "occupation": null,
        "interests": [],
        "languages": [],
        "photos": [],
        "rating": 5,
        "recommended": 0,
        "cityPhoto": "https:\/\/obj.cdn.theifriend.com\/cities\/placeholder.jpg",
        "plannerRoom": null,
        "fullPrice": null,
        "paymentModulePromo": null,
        "profileUrl": "https:\/\/theifriend.com\/ifriends\/17008",
        "thumbnails": {
            "cityPhoto": {
                "small": "https:\/\/thumbnail.cdn.theifriend.com\/small\/cities\/placeholder.jpg",
                "medium": "https:\/\/thumbnail.cdn.theifriend.com\/medium\/cities\/placeholder.jpg",
                "large": "https:\/\/thumbnail.cdn.theifriend.com\/large\/cities\/placeholder.jpg"
            }
        }
    },
    "dates": [
        {
            "id": 30862,
            "hours": 1,
            "period": "whole_day",
            "numAdult": 1,
            "numChild": 0,
            "numHalfPrice": 0,
            "isIfriendCar": false,
            "price": null,
            "dayPrice": null,
            "description": null,
            "type": null,
            "day": "2025-12-07"
        }
    ],
    "checkin": null,
    "customerDeclineReason": null,
    "ifriendDeclineReason": null,
    "doneAt": null,
    "experience": {
        "id": 11277,
        "title": "O Museu da Disson\u00e2ncia Cognitiva",
        "price": "10.00",
        "currencyCode": "EUR",
        "shelfExperience": false,
        "fullPrice": null,
        "paymentModulePromo": null,
        "profileUrl": null
    },
    "experienceServiceItems": [],
    "type": "ticket",
    "callLink": null,
    "affiliateBooking": null,
    "couponUsage": [],
    "providerData": {
        "day": "2025-12-07",
        "order": {
            "day": "2025-12-07",
            "success": true,
            "variants": [
                {
                    "count": 1,
                    "variant_id": 38100
                }
            ],
            "product_id": 1006356,
            "api_version": {
                "major": 2,
                "minor": 5,
                "patch": "c1793fd47cbe7977e9fba963defa823d2b18b3b1"
            },
            "order_status": "new",
            "customer_details": {
                "email": "operacao@theifriend.com",
                "phone": "+5531955555555",
                "lastname": "QA iFriend",
                "firstname": "Equipe QA iFriend"
            },
            "order_reference_id": "1688026917",
            "basket_reference_id": "897126883",
            "promoted_product_id": null,
            "cancellation_deadline": "2025-12-06T20:59:00+01:00",
            "is_currently_cancellable": false
        },
        "provider": "tiqets",
        "timeslot": "whole_day",
        "variants": [
            {
                "count": "1",
                "price": "10",
                "is_addon": "false",
                "variant_id": "38100",
                "variant_type": "adult",
                "required_field": [
                    ""
                ],
                "valid_with_variant_ids": [
                    ""
                ]
            }
        ],
        "product_id": "1006356",
        "ifriendNumber": "552140404221",
        "customer_details": {
            "email": "qa@theifriend.com",
            "phone": "+55 31 95555-5555",
            "lastname": "QA iFriend",
            "firstname": "Equipe QA iFriend"
        },
        "visitors_details": [],
        "create_order_response": {
            "success": true,
            "api_version": {
                "major": 2,
                "minor": 5,
                "patch": "c1793fd47cbe7977e9fba963defa823d2b18b3b1"
            },
            "price_components": null,
            "order_reference_id": "1688026917",
            "price_components_eur": null,
            "estimated_commissions": [
                {
                    "value": 1.71,
                    "currency": "USD",
                    "variant_id": 38100
                }
            ],
            "payment_confirmation_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwYXltZW50X2lkIjogNzQ4NDQxMX0.BpYFR9oQnYBJcizzh9cApKTqaGfWDiI3yjrbKIDelFg"
        }
    },
    "pax": [
        {
            "fullname": "Equipe QA iFriend",
            "firstname": "Equipe",
            "lastname": "QA iFriend",
            "doc": "057.710.956-13",
            "gender": "",
            "birthday": "1982-01-12T00:00:00+00:00",
            "age": null,
            "email": "qa@theifriend.com",
            "phone": "31955555555",
            "obs": null,
            "ticketPriceType": null,
            "ticketPriceNetAmount": null,
            "ticketPriceAmount": null,
            "ticketPriceCurrency": null,
            "ticketId": null,
            "ticketCategory": null,
            "ticketCategoryName": null,
            "rg": null
        }
    ],
    "integrator": null,
    "ifriendComission": 0,
    "platformComission": 64.15,
    "ifriendConfirmedAt": null,
    "virtualGuideLeadId": null,
    "customIfriendComission": null,
    "affiliateComission": null,
    "place": null,
    "downPaymentPrice": null,
    "paidTheDownPrice": false,
    "soldByManagerUser": null,
    "experienceNetPrice": "10.00",
    "experienceMetadata": null,
    "transfer": null,
    "isSingle": false,
    "serviceProvider": null,
    "items": [],
    "voucher": null,
    "needsAcceptance": false,
    "hasAccepted": null,
    "discountAmount": null,
    "discountType": null,
    "checkoutDiscountCouponCode": null,
    "payment": null,
    "grossPrice": "10.000000",
    "integratorAgencyName": null,
    "apiClient": null,
    "uuid": null,
    "totalPrice": "22.83",
    "salesforceRecordId": null,
    "salesforceSynced": false,
    "salesforceSyncedAt": null,
    "salesforceAccountId": null,
    "salesforceRelatedOpportunityId": null,
    "salesforceOpportunityId": null,
    "paymentToken": "31422f21-ef44-4464-826d-5bba58d02f39",
    "cancellationRuleText": "Esse ticket pode ser cancelado at\u00e9 06\/12\/2025 16:59:00",
    "tickets": [],
    "cancellationRefund": null,
    "providerIsAware": false,
    "providerAwareAt": null,
    "promo": null,
    "withdrawalExpiredAt": null,
    "integratorAgencyKey": null,
    "integratorAgencyContactName": null,
    "integratorAgencyContactEmail": null,
    "integratorAgencyContactPhone": null,
    "receptiveHasAcceptedAt": null,
    "hasAcceptedReceptiveId": null,
    "validatorQRCode": "data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAIAAACx0UUtAAAABnRSTlMA\/wD\/AP83WBt9AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFcklEQVR4nO3dy27sNhBF0TjI\/\/+yM8lIA94QfGi3vdbUrUe3DwgVSJa+vr+\/\/4Kwv9++AfgDGaVORqmTUepklDoZpU5GqZNR6mSUOhmlTkapk1HqZJQ6GaVORqmTUepklDoZpU5Gqftn5eCvr69d9zH22HT1uO7KlqzxVxhfd\/zhc7dx7diNVn4c4yh1MkqdjFIno9Qt1UwPG9tJbHyWXznVuDh7\/HXjPU\/9kht\/9uZ\/0DhKnYxSJ6PUySh1O2umh6mn5o2TNI9TTc1RrcxgTU1KrRw7NXV0bvbr4VwDRuModTJKnYxSJ6PUHayZ3rKx7pn68LVlflOlzMYS6i3GUepklDoZpU5GqfvImmllRoePYxylTkapk1HqZJS6gzXTuSmNlSLp2lq1qdtYWTF4biYpMillHKVORqmTUepklLqdNdNb8z1T004b649IZTM2dd3mjJ1xlDoZpU5GqZNR6r4icwkbrewr2rjqb6VTw8av8AMYR6mTUepklDoZpe7g+5k2Tmms1AEb29k9nGuIvrEVxdSp3qogx4yj1MkodTJKnYxStzTPtPERe+Oj\/ZS33mn7ER3BN06GrTCOUiej1MkodTJK3c61ede2zlx7QdH4zGPXFgGu3Ma5M6uZ+EVklDoZpU5GqTu4n+nappxzG5hWyr63ipXxhx+ufV9r8\/jJZJQ6GaVORqm7VzNF9hWd26Nz7TYiC\/mu9Qk0jlIno9TJKHUySt3O\/UxTru2jOvcsf63Qees23vr\/PhhHqZNR6mSUOhml7rV5pvGHx65tBhpf9+Gt7VznlghG2pYbR6mTUepklDoZpe5gD4ixt6Z\/NrZmuLbpauXD42Mf3mqEOGYcpU5GqZNR6mSUunvvZ5p64o70Yri2gPBc07lr+7fsZ+L3klHqZJQ6GaXu4Nq8P1x4oSo61zhufGzkNsaunWrMPBO\/iIxSJ6PUySh10V7jU66VfW8VZxtde6nSRsZR6mSUOhmlTkapW1qb97Bx6ujch1f++tb6uoeVb7RxheTGCa0x4yh1MkqdjFIno9RVekBcO1Vzf8+5emtj3fPWXKBxlDoZpU5GqZNR6irvtN04z7RyVxtPda5IeqvX37X\/0YNxlDoZpU5GqZNR6nb2zds4dXRtCdnKhNbGDhHju5q67pSNG6fOFd\/GUepklDoZpU5GqVuaZ7r2xL2x+cLPez\/TlGaDvjHjKHUySp2MUiej1O2smTbOM41tXOY3PvOKawvbzv0X7GeC\/0VGqZNR6mSUuoPzTJEu5htP9dYWpSnXOnFca2NhHKVORqmTUepklLrPeD9Tc+po6kLnfo23FvJtvNCYcZQ6GaVORqmTUeoO1kznnGtY99ZqwynX2qVv\/PAK4yh1MkqdjFIno9Td6wGx8qT\/VreFsY2nWnHtNq4txnswjlIno9TJKHUySt0PnGc6d+y5U634iF1WK4yj1MkodTJKnYxSt\/P9TOecezHStfczjb21c+gjKirjKHUySp2MUiej1C3VTA\/Xui2sPK2v1FtTr5p9eKvH4Ni1DiB6jfOTySh1MkqdjFK3s2Z6iHRdu7aP6mHqQhurwKkLbXTuzMZR6mSUOhmlTkapO1gznbPyftiVmaSVRYBT9\/xWY\/KpY681FTSOUiej1MkodTJK3UfWTGPnJmkeVmqIqUpu43XHxqe69sM+GEepk1HqZJQ6GaXuYM3U3CuzMpO0Mkc1dRsP577gyl15PxP8R0apk1HqZJS6nTXTWy8oeti4Vu2tZW8rt7Fy3WafcuModTJKnYxSJ6PUfeT7mfhVjKPUySh1MkqdjFIno9TJKHUySp2MUiej1MkodTJKnYxSJ6PUySh1MkqdjFIno9TJKHUySt2\/g6nKt+klGikAAAAASUVORK5CYII=",
    "priceWithoutCurrencyExchange": "10.000000",
    "confirmedStatusName": "Aguardando Pagamento",
    "paymentStatusName": "Pagamento em Aberto",
    "canStart": false,
    "allowedPaymentTypeCodes": [
        "stone-creditcard",
        "stone-pix"
    ],
    "allowedPaymentTypeCodeInstallments": {
        "stone-creditcard": {
            "installmentsIni": 1,
            "installmentsEnd": 10,
            "withInterest": true,
            "label": {
                "pt": "(1 a 10x c\/ juros)",
                "en": "(1 to 10x with interest)",
                "es": "(1 a 10x con intereses)"
            }
        }
    },
    "fromAffiliate": false,
    "exclusiveProductBooking": true,
    "needsExtraDataForBooking": false,
    "currencyQuotation": null,
    "completeToday": false,
    "priceWithDiscount": 64.15,
    "cancellationRuleDescription": {
        "pt": "<ul><li>At\u00e9 14 dias antes da data do tour: reembolso \u00e9 integral.<\/li><li>Entre 13 a 7 dias antes da data do tour: reembolso de 60% do valor da reserva.<\/li><li>6 dias antes da data de in\u00edcio do tour: n\u00e3o h\u00e1 reembolso.<\/li><li><\/ul><p><b>Tickets:<\/b> Conforme pol\u00edtica de cancelamento de cada atrativo, descrito na p\u00e1gina do produto.<\/p><p><b>Regras:<\/b><\/p><ul><li>Em caso de cancelamento pelos nossos parceiros (guia local e receptivo tur\u00edstico), o reembolso ser\u00e1 integral.<\/li><li>Reservas canceladas que n\u00e3o estejam confirmadas o reembolso ser\u00e1 integral.<\/li><li>Reservas com menos 24 horas para o in\u00edcio do servi\u00e7o n\u00e3o haver\u00e1 reembolso.<\/li><li>A taxa de servi\u00e7o (10%) n\u00e3o \u00e9 reembols\u00e1vel. O valor \u00e9 utilizado para custear os custos de cobran\u00e7a e reembolso aos clientes.<\/li><\/ul>",
        "en": "<ul><li>Up to 14 days before the tour date: full refund.<\/li><li>Between 13 and 7 days before the tour date: 60% refund of the reservation amount.<\/li><li>6 days before the tour start date: no refund.<\/li><li><\/ul><p><b>Tickets:<\/b> According to the cancellation policy of each attraction, described on the product page.<\/p><p><b>Rules:<\/b><\/p><ul><li>In case of cancellation by our partners (local guide and tour operator), the refund will be full.<\/li><li>Reservations canceled that are not confirmed will be fully refunded.<\/li><li>Reservations made less than 24 hours before the start of the service will not be refunded.<\/li><li>The service fee (10%) is non-refundable. The amount is used to cover the costs of billing and refunding customers.<\/li><\/ul>",
        "es": "<ul><li>Hasta 14 d\u00edas antes de la fecha del tour: reembolso completo.<\/li><li>Entre 13 a 7 d\u00edas antes de la fecha del tour: reembolso del 60% del valor de la reserva.<\/li> <li >6 d\u00edas antes de la fecha de inicio del tour: no hay reembolsos.<\/li><li><\/ul><p><b>Entradas:<\/b> Seg\u00fan pol\u00edtica de cancelaci\u00f3n de cada atracci\u00f3n, descrita en la p\u00e1gina del producto. <\/p><p><b>Reglas:<\/b><\/p><ul><li>En caso de cancelaci\u00f3n por parte de nuestros socios (gu\u00eda local y recepci\u00f3n tur\u00edstica), el reembolso ser\u00e1 completo <\/li. ><li>Las reservas canceladas que no est\u00e9n confirmadas se reembolsar\u00e1n \u00edntegramente.<\/li><li>Las reservas con menos de 24 horas antes del inicio del servicio no se reembolsar\u00e1n.<\/li><li>La tarifa del servicio (10%) no es reembolsable. El importe se utiliza para cubrir los costes de facturaci\u00f3n y reembolso a los clientes.<\/li><\/ul>"
    },
    "freeCancellationTill": "14",
    "moreThan15Days": false,
    "customerBookingStatus": {
        "en": "Waiting Payment",
        "pt": "Aguardando Pagamento",
        "es": "En espera de Pago"
    },
    "ifriendBookingStatus": {
        "en": "Waiting for Payment",
        "pt": "Aguardando Pagamento",
        "es": "Esperando el Pago"
    },
    "gclid": null,
    "lastPayment": null,
    "allowCheckout": true,
    "customerLocale": "pt",
    "ifriendLocale": "pt",
    "confirmationDeadline": "2025-12-07",
    "free": false
}

Booking de Produtos da TAM (product.productProvider.id == 5)

Request POST /bookings

{
    "type": "experience",
    "experience": {
        "id": 11452
    },
    "customer": {
        "id": 13020
    },
    "dates": [
        {
            "day": "2025-12-20",
            "hours": 10,
            "period": "05:30 am",
            "isIfriendCar": false,
            "participants": {
                "adult": 1,
                "child": 1,
                "infant": 1
            },
            "date": "2025-12-20T00:00:00.000Z"
        }
    ],
    "pax": [
        {
            "fullname": "Equipe QA iFriend",
            "doc": "057.710.956-13",
            "gender": "",
            "birthday": "1982-01-12T00:00:00+00:00",
            "email": "qa@theifriend.com",
            "phone": "31955555555"
        }
    ],
    "providerData": {
        "provider": "greyline",
        "variations": [
            {
                "id": 1194,
                "quantity": 1,
                "agePolicies": [
                    {
                        "id": 2336,
                        "name": "adult",
                        "quantity": 1
                    },
                    {
                        "id": 2337,
                        "name": "child",
                        "quantity": 1
                    },
                    {
                        "id": 2338,
                        "name": "infant",
                        "quantity": 1
                    }
                ],
                "allowPaxQuantity": true
            }
        ],
        "schedule_id": "3479749",
        "pick_id": "13",
        "pick_time_id": "6",
        "pick_time_value": "07:00 - 08:50",
        "pick_hotel_id": "691",
        "pick_hotel_oid": "231377",
        "pick_hotel_name": "Apa Hotel",
        "pick_hotel_address": "Rua República do Peru 305 - Copacabana",
        "pick_hotel_city": "Rio de Janeiro"
    }
}

Response

{
    "id": 22717,
    "city": "Rio de Janeiro",
    "state": "RJ",
    "country": "Brasil",
    "countryCode": null,
    "latitude": null,
    "longitude": null,
    "dollarQuotation": null,
    "price": 759.62,
    "currencyCode": "USD",
    "ifriendPrice": null,
    "confirmStatus": 1,
    "confirmStatusDate": "2025-12-06T15:07:15+00:00",
    "paymentStatus": 0,
    "paymentStatusDate": null,
    "statusReason": null,
    "paymentMethod": null,
    "payerId": null,
    "paymentId": null,
    "transactionId": null,
    "installments": 1,
    "ifriendEmail": "gl-tours@theifriend.com",
    "customerEmail": "qa@theifriend.com",
    "createdAt": "2025-12-06T15:07:14+00:00",
    "isDone": false,
    "serviceTax": 0,
    "platformTax": "0.00000",
    "userRated": false,
    "ifriendRated": false,
    "customer": {
        "id": 13020,
        "userEmail": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "firstname": "Equipe",
        "lastname": "QA iFriend",
        "fullname": "Equipe QA iFriend",
        "nickname": null,
        "birthday": "1982-01-12T00:00:00+00:00",
        "role": "user",
        "userRoles": [
            {
                "id": 3,
                "name": "ROLE_USER"
            }
        ],
        "phoneCountryCode": "BR",
        "phone": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "phoneFormatted": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "phone2CountryCode": null,
        "phone2": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "phone2Formatted": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "skype": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "messenger": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "whatsappCountryCode": null,
        "whatsapp": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "whatsappFormatted": "Aguardando confirma\u00e7\u00e3o do iFriend.",
        "gender": null,
        "avatar": null,
        "rating": 0,
        "roles": [
            "ROLE_USER"
        ]
    },
    "ifriend": {
        "id": 23497,
        "user": {
            "id": 28564,
            "userEmail": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "firstname": "Greyline",
            "lastname": "Tours",
            "fullname": "Greyline Tours",
            "nickname": null,
            "birthday": null,
            "role": "user",
            "userRoles": [
                {
                    "id": 3,
                    "name": "ROLE_USER"
                },
                {
                    "id": 4,
                    "name": "ROLE_AFFILIATED"
                },
                {
                    "id": 14,
                    "name": "ROLE_AFFILIATED_PARENT"
                },
                {
                    "id": 16,
                    "name": "ROLE_AGENCY"
                },
                {
                    "id": 17,
                    "name": "ROLE_RECEPTIVE"
                }
            ],
            "phoneCountryCode": "AR",
            "phone": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "phoneFormatted": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "phone2CountryCode": null,
            "phone2": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "phone2Formatted": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "skype": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "messenger": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "whatsappCountryCode": null,
            "whatsapp": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "whatsappFormatted": "Aguardando confirma\u00e7\u00e3o do iFriend.",
            "gender": null,
            "avatar": null,
            "rating": 0,
            "roles": [
                "ROLE_USER",
                "ROLE_AFFILIATED",
                "ROLE_AFFILIATED_PARENT",
                "ROLE_AGENCY",
                "ROLE_RECEPTIVE"
            ]
        },
        "placeId": null,
        "places": [],
        "city": null,
        "state": null,
        "country": null,
        "countryCode": null,
        "latitude": null,
        "longitude": null,
        "pro": false,
        "car": false,
        "isMaster": null,
        "quote": null,
        "bio": null,
        "price": null,
        "customPrice": null,
        "occupation": null,
        "interests": [],
        "languages": [],
        "photos": [],
        "rating": 4,
        "recommended": 0,
        "cityPhoto": "https:\/\/obj.cdn.theifriend.com\/cities\/placeholder.jpg",
        "plannerRoom": null,
        "fullPrice": null,
        "paymentModulePromo": null,
        "profileUrl": "https:\/\/theifriend.com\/ifriends\/23497",
        "thumbnails": {
            "cityPhoto": {
                "small": "https:\/\/thumbnail.cdn.theifriend.com\/small\/cities\/placeholder.jpg",
                "medium": "https:\/\/thumbnail.cdn.theifriend.com\/medium\/cities\/placeholder.jpg",
                "large": "https:\/\/thumbnail.cdn.theifriend.com\/large\/cities\/placeholder.jpg"
            }
        }
    },
    "dates": [
        {
            "id": 30864,
            "hours": 13,
            "period": "07:00 am",
            "numAdult": 1,
            "numChild": 0,
            "numHalfPrice": 0,
            "isIfriendCar": false,
            "price": 0,
            "dayPrice": null,
            "description": null,
            "type": null,
            "day": "2025-12-19"
        }
    ],
    "checkin": null,
    "customerDeclineReason": null,
    "ifriendDeclineReason": null,
    "doneAt": null,
    "experience": {
        "id": 11275,
        "title": "Angra dos Reis excurs\u00e3o de dia inteiro",
        "price": "29.34",
        "currencyCode": "USD",
        "shelfExperience": false,
        "fullPrice": null,
        "paymentModulePromo": null,
        "profileUrl": null
    },
    "experienceServiceItems": [],
    "type": "experience",
    "callLink": null,
    "affiliateBooking": null,
    "couponUsage": [],
    "providerData": {
        "pick_id": "13",
        "add_cart": {
            "request": {
                "id": "6240",
                "cro": 22717,
                "lang": "pt",
                "pick": "217771",
                "qtyA": 1,
                "qtyC": 1,
                "qtyI": 1,
                "optional": null,
                "schedule": "615798",
                "tourDate": "2025-12-19"
            },
            "response": {
                "user": "user0194396070",
                "cartId": "807863",
                "process": "OK"
            }
        },
        "provider": "greyline",
        "variations": [
            {
                "id": 896,
                "mode": "person",
                "name": "Angra dos Reis excurs\u00e3o de dia inteiro",
                "type": "privative",
                "quantity": 1,
                "tariffItem": {
                    "id": 1288,
                    "price": "68.85",
                    "dateEnd": "2026-12-30",
                    "dateIni": "2025-08-23",
                    "priceNet": "39.12",
                    "currencyCode": "USD"
                },
                "agePolicies": [
                    {
                        "id": 1546,
                        "name": "adult",
                        "discount": "0.00",
                        "quantity": 1
                    },
                    {
                        "id": 1547,
                        "name": "child",
                        "discount": "0.00",
                        "quantity": 1
                    },
                    {
                        "id": 1548,
                        "name": "infant",
                        "discount": "100.00",
                        "quantity": 1
                    }
                ],
                "provider_sku": "0",
                "currency_code": "USD",
                "allowPaxQuantity": true
            }
        ],
        "schedule_id": "615798",
        "pick_time_id": "6",
        "pick_hotel_id": "691",
        "pick_hotel_oid": "231377",
        "pick_hotel_city": "Rio de Janeiro",
        "pick_hotel_name": "Apa Hotel",
        "pick_time_value": "07:00 - 08:50",
        "pick_hotel_address": "Rua Rep\u00fablica do Peru 305 - Copacabana"
    },
    "pax": [
        {
            "fullname": "Equipe QA iFriend",
            "firstname": "Equipe",
            "lastname": "QA iFriend",
            "doc": "057.710.956-13",
            "gender": "",
            "birthday": "1982-01-12T00:00:00+00:00",
            "age": null,
            "email": "qa@theifriend.com",
            "phone": "31955555555",
            "obs": null,
            "ticketPriceType": null,
            "ticketPriceNetAmount": null,
            "ticketPriceAmount": null,
            "ticketPriceCurrency": null,
            "ticketId": null,
            "ticketCategory": null,
            "ticketCategoryName": null,
            "rg": null
        }
    ],
    "integrator": null,
    "ifriendComission": 431.61,
    "platformComission": 328.01,
    "ifriendConfirmedAt": null,
    "virtualGuideLeadId": null,
    "customIfriendComission": null,
    "affiliateComission": null,
    "place": null,
    "downPaymentPrice": null,
    "paidTheDownPrice": false,
    "soldByManagerUser": null,
    "experienceNetPrice": "29.34",
    "experienceMetadata": null,
    "transfer": null,
    "isSingle": false,
    "serviceProvider": null,
    "items": [],
    "voucher": null,
    "needsAcceptance": false,
    "hasAccepted": null,
    "discountAmount": null,
    "discountType": null,
    "checkoutDiscountCouponCode": null,
    "payment": null,
    "grossPrice": "137.700000",
    "integratorAgencyName": null,
    "apiClient": null,
    "uuid": null,
    "totalPrice": "759.62",
    "salesforceRecordId": null,
    "salesforceSynced": false,
    "salesforceSyncedAt": null,
    "salesforceAccountId": null,
    "salesforceRelatedOpportunityId": null,
    "salesforceOpportunityId": null,
    "paymentToken": "96933fbf-92eb-4472-9aa3-d9840d70ada5",
    "cancellationRuleText": "Para cancelamentos at\u00e9 48 horas antes do hor\u00e1rio de in\u00edcio do servi\u00e7o, n\u00e3o h\u00e1 cobran\u00e7a. Para cancelamentos solicitadas com 48 horas ou menos, n\u00e3o h\u00e1 devolu\u00e7\u00e3o. Ser\u00e1 cobrado o valor integral. Se o servi\u00e7o for cancelado pelo operador devido a imprevistos de qualquer ordem, o valor ser\u00e1 reembolsado integralmente.",
    "tickets": [],
    "cancellationRefund": null,
    "providerIsAware": false,
    "providerAwareAt": null,
    "promo": null,
    "withdrawalExpiredAt": null,
    "integratorAgencyKey": null,
    "integratorAgencyContactName": null,
    "integratorAgencyContactEmail": null,
    "integratorAgencyContactPhone": null,
    "receptiveHasAcceptedAt": null,
    "hasAcceptedReceptiveId": null,
    "validatorQRCode": "data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAIAAACx0UUtAAAABnRSTlMA\/wD\/AP83WBt9AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFfUlEQVR4nO3d227sNhBFwTjI\/\/\/yybsQKCDYlNZ4ql49uni8QbhBsvnz58+fvyDs77dfAP6HjFIno9TJKHUySp2MUiej1MkodTJKnYxSJ6PUySh1MkqdjFIno9TJKHUySp2MUiej1P2zc\/HPz8\/Ue9y7bLq6PHdnS9b9r3D\/3PsPn3uNx64dtPPlGEepk1HqZJQ6GaVuq2a6GGwnMfi\/\/M6t7ouzy08H33npmxz82pt\/QeModTJKnYxSJ6PUTdZMF0v\/NQ9O0lxutTRHtTODtTQptXPt0tTRudmvi3MNGI2j1MkodTJKnYxSd7Bmestg3bPz3Ps7P7agbrCEeotxlDoZpU5GqZNR6j6yZtqZ0Tn3GhdvvdXvYxylTkapk1HqZJS6gzXTuSmNnXLk3CLAndfYWTF4biYpMillHKVORqmTUepklLrJmiky33P\/Gufqj7cqm3tLz23OjRlHqZNR6mSUOhml7icylzBoZ1\/R4Kq\/nU4Ng7\/CL2AcpU5GqZNR6mSUuoPnMw1OaZxbBbfz3HMN0Qf79Z2bKlvifCZ+MxmlTkapk1HqtuaZztUfby1duzh3pu1HdAQfnAzbYRylTkapk1HqZJS6ybV5kXVuS9cuGTxy6bHWf+ce9NgSQeModTJKnYxSJ6PUvdZr\/FxruMGNREvH4y4ZrCDPVXIXlw8\/1vPCOEqdjFIno9TJKHUHe0AM7nY6N2XVrF2Wrl3y2HJKNRNfREapk1HqZJS6St+8c50LBh90f6t7kdOqdr7YJdbm8UVklDoZpU5GqXtuP9O5Wz12qtBgNfbY\/NZbE1qDjKPUySh1MkqdjFI32Ws8crjR0oeXfrq02+n+NS7OdWoYrOTeqreMo9TJKHUySp2MUjfZa7w5ZXV\/54tIF8HBFXSPHU9lPxPfS0apk1HqZJS6g+czDXbGi\/QpP1cGvVVC7dzqnnkmvoiMUiej1Mkodc\/1Gn\/syNe3etCdK87ObdjaWW34GOModTJKnYxSJ6PUvXY+07k9STvP3TmfaXA12mB9uVN+Pba88J5xlDoZpU5GqZNR6g7WTINHvp6bDdrpevDY2bKDs0E7Zd9gvbXEOEqdjFIno9TJKHXRXuP3d7731vlM5\/ZvPbat6uKtg68ujKPUySh1MkqdjFI3Oc90rmH20nMvzvXPfqyNxf1rDM7n7Ti3+ck4Sp2MUiej1MkodQfPZ7oYPIl1p631W+cz7Rh8brNB3z3jKHUySp2MUiej1B3sNX5vZ3Jo6VZLd\/4F5zOd+2Lfaj1uHKVORqmTUepklLrnzrQ9V6w8djDS4HTXJ+79ur\/Wfia+l4xSJ6PUySh1kz0gBg2ez\/RYOfJYu\/THen4\/dtLVPeModTJKnYxSJ6PUHayZ3lrKde\/cXNG9c+vcHruV85ngv8kodTJKnYxSd3A\/01s7lu4fFKldIq8x+CDzTHwvGaVORqmTUeqia\/PunTvcaPA1zl27dKvIS+4wjlIno9TJKHUySt1kr\/FzlrprL827PHY+05JIc79z1y4xjlIno9TJKHUySt3BM2137BQ6zfOZIv0UHnvQYEVlHKVORqmTUepklLrJmunisSphpww691bn9lFdDB5PtePcnY2j1MkodTJKnYxSd7BmOudc84XBnVI7rzF47bkHDc6r3TOOUiej1MkodTJK3UfWTIMiR\/pGnru0rHHnVkuMo9TJKHUySp2MUnewZnrr5KfBs2WXmj481uT73s5k2GA1pmbii8godTJKnYxSN1kzPdZGb8lgDXEx2OP8XM+L+w9\/RJ9y4yh1MkqdjFIno9R95PlMfBXjKHUySp2MUiej1MkodTJKnYxSJ6PUySh1MkqdjFIno9TJKHUySp2MUiej1MkodTJKnYxS9y+1s7vPZBU7VgAAAABJRU5ErkJggg==",
    "priceWithoutCurrencyExchange": "137.700000",
    "confirmedStatusName": "Aguardando Pagamento",
    "paymentStatusName": "Pagamento em Aberto",
    "canStart": false,
    "allowedPaymentTypeCodes": [
        "stone-creditcard",
        "paypal",
        "stone-pix"
    ],
    "allowedPaymentTypeCodeInstallments": {
        "stone-creditcard": {
            "installmentsIni": 4,
            "installmentsEnd": 10,
            "withInterest": true,
            "label": {
                "pt": "(4 a 10x c\/ juros)",
                "en": "(4 to 10x with interest)",
                "es": "(4 a 10x con intereses)"
            }
        },
        "paypal": {
            "installmentsIni": 1,
            "installmentsEnd": 3,
            "withInterest": false,
            "label": {
                "pt": "(1 a 3x)",
                "en": "(1 to 3x)",
                "es": "(1 a 3x)"
            }
        }
    },
    "fromAffiliate": false,
    "exclusiveProductBooking": false,
    "needsExtraDataForBooking": false,
    "currencyQuotation": null,
    "completeToday": false,
    "priceWithDiscount": 759.62,
    "cancellationRuleDescription": {
        "pt": "O reembolso pode ser solicitado at\u00e9  dias antes do passeio.",
        "en": "The refund can be requested up to  days before the tour.",
        "es": "El reembolso se puede solicitar hasta  d\u00edas antes del tour."
    },
    "freeCancellationTill": "no_refund",
    "moreThan15Days": false,
    "customerBookingStatus": {
        "en": "Waiting Payment",
        "pt": "Aguardando Pagamento",
        "es": "En espera de Pago"
    },
    "ifriendBookingStatus": {
        "en": "Waiting for Payment",
        "pt": "Aguardando Pagamento",
        "es": "Esperando el Pago"
    },
    "gclid": null,
    "lastPayment": null,
    "allowCheckout": true,
    "customerLocale": "pt",
    "ifriendLocale": "en",
    "confirmationDeadline": "2025-12-07",
    "free": false
}