Skip to main content
POST
/
checkout
/
sessions
C#
using Gr4vy;
using Gr4vy.Models.Components;
using NodaTime;
using System;
using System.Collections.Generic;

var sdk = new Gr4vySDK(
    id: "example",
    server: SDKConfig.Server.Sandbox,
    bearerAuthSource: Auth.WithToken(privateKey),
    merchantAccountId: "default"
);

var res = await sdk.CheckoutSessions.CreateAsync(checkoutSessionCreate: new CheckoutSessionCreate() {
    CartItems = new List<CartItem>() {
        new CartItem() {
            Name = "GoPro HD",
            Quantity = 2,
            UnitAmount = 1299,
            DiscountAmount = 0,
            TaxAmount = 0,
            ExternalIdentifier = "goprohd",
            Sku = "GPHD1078",
            ProductUrl = "https://example.com/catalog/go-pro-hd",
            ImageUrl = "https://example.com/images/go-pro-hd.jpg",
            Categories = new List<string>() {
                "camera",
                "travel",
                "gear",
            },
            ProductType = "physical",
            SellerCountry = "GB",
        },
        new CartItem() {
            Name = "GoPro HD",
            Quantity = 2,
            UnitAmount = 1299,
            DiscountAmount = 0,
            TaxAmount = 0,
            ExternalIdentifier = "goprohd",
            Sku = "GPHD1078",
            ProductUrl = "https://example.com/catalog/go-pro-hd",
            ImageUrl = "https://example.com/images/go-pro-hd.jpg",
            Categories = new List<string>() {
                "camera",
                "travel",
                "gear",
            },
            ProductType = "physical",
            SellerCountry = "GB",
        },
        new CartItem() {
            Name = "GoPro HD",
            Quantity = 2,
            UnitAmount = 1299,
            DiscountAmount = 0,
            TaxAmount = 0,
            ExternalIdentifier = "goprohd",
            Sku = "GPHD1078",
            ProductUrl = "https://example.com/catalog/go-pro-hd",
            ImageUrl = "https://example.com/images/go-pro-hd.jpg",
            Categories = new List<string>() {
                "camera",
                "travel",
                "gear",
            },
            ProductType = "physical",
            SellerCountry = "US",
        },
    },
    Metadata = new Dictionary<string, string>() {
        { "cohort", "cohort-a" },
        { "order_id", "order-12345" },
    },
    Buyer = new GuestBuyer() {
        DisplayName = "John Doe",
        ExternalIdentifier = "buyer-12345",
        BillingDetails = new BillingDetails() {
            FirstName = "John",
            LastName = "Doe",
            EmailAddress = "john@example.com",
            PhoneNumber = "+1234567890",
            Address = new Address() {
                City = "San Jose",
                Country = "US",
                PostalCode = "94560",
                State = "California",
                StateCode = "US-CA",
                HouseNumberOrName = "10",
                Line1 = "Stafford Appartments",
                Line2 = "29th Street",
                Organization = "Gr4vy",
            },
            TaxId = new TaxId() {
                Value = "12345678931",
                Kind = "ar.cuit",
            },
        },
        ShippingDetails = new ShippingDetailsCreate() {
            FirstName = "John",
            LastName = "Doe",
            EmailAddress = "john@example.com",
            PhoneNumber = "+1234567890",
            Address = new Address() {
                City = "San Jose",
                Country = "US",
                PostalCode = "94560",
                State = "California",
                StateCode = "US-CA",
                HouseNumberOrName = "10",
                Line1 = "Stafford Appartments",
                Line2 = "29th Street",
                Organization = "Gr4vy",
            },
        },
    },
    Airline = new Airline() {
        BookingCode = "X36Q9C",
        IsCardholderTraveling = true,
        IssuedAddress = "123 Broadway, New York",
        IssuedAt = System.DateTime.Parse("2013-07-16T19:23:00.000+00:00").ToUniversalTime(),
        IssuingCarrierCode = "649",
        IssuingCarrierName = "Air Transat A.T. Inc",
        IssuingIataDesignator = "TS",
        IssuingIcaoCode = "TSC",
        Legs = new List<AirlineLeg>() {
            new AirlineLeg() {
                ArrivalAirport = "LAX",
                ArrivalAt = System.DateTime.Parse("2013-07-16T19:23:00.000+00:00").ToUniversalTime(),
                ArrivalCity = "Los Angeles",
                ArrivalCountry = "US",
                CarrierCode = "649",
                CarrierName = "Air Transat A.T. Inc",
                IataDesignator = "TS",
                IcaoCode = "TSC",
                CouponNumber = "15885566",
                DepartureAirport = "LHR",
                DepartureAt = System.DateTime.Parse("2013-07-16T19:23:00.000+00:00").ToUniversalTime(),
                DepartureCity = "London",
                DepartureCountry = "GB",
                DepartureTaxAmount = 1200,
                FareAmount = 129900,
                FareBasisCode = "FY",
                FeeAmount = 1200,
                FlightClass = "E",
                FlightNumber = "101",
                RouteType = "round_trip",
                SeatClass = "F",
                StopOver = false,
                TaxAmount = 1200,
            },
            new AirlineLeg() {
                ArrivalAirport = "LAX",
                ArrivalAt = System.DateTime.Parse("2013-07-16T19:23:00.000+00:00").ToUniversalTime(),
                ArrivalCity = "Los Angeles",
                ArrivalCountry = "US",
                CarrierCode = "649",
                CarrierName = "Air Transat A.T. Inc",
                IataDesignator = "TS",
                IcaoCode = "TSC",
                CouponNumber = "15885566",
                DepartureAirport = "LHR",
                DepartureAt = System.DateTime.Parse("2013-07-16T19:23:00.000+00:00").ToUniversalTime(),
                DepartureCity = "London",
                DepartureCountry = "GB",
                DepartureTaxAmount = 1200,
                FareAmount = 129900,
                FareBasisCode = "FY",
                FeeAmount = 1200,
                FlightClass = "E",
                FlightNumber = "101",
                RouteType = "round_trip",
                SeatClass = "F",
                StopOver = false,
                TaxAmount = 1200,
            },
            new AirlineLeg() {
                ArrivalAirport = "LAX",
                ArrivalAt = System.DateTime.Parse("2013-07-16T19:23:00.000+00:00").ToUniversalTime(),
                ArrivalCity = "Los Angeles",
                ArrivalCountry = "US",
                CarrierCode = "649",
                CarrierName = "Air Transat A.T. Inc",
                IataDesignator = "TS",
                IcaoCode = "TSC",
                CouponNumber = "15885566",
                DepartureAirport = "LHR",
                DepartureAt = System.DateTime.Parse("2013-07-16T19:23:00.000+00:00").ToUniversalTime(),
                DepartureCity = "London",
                DepartureCountry = "GB",
                DepartureTaxAmount = 1200,
                FareAmount = 129900,
                FareBasisCode = "FY",
                FeeAmount = 1200,
                FlightClass = "E",
                FlightNumber = "101",
                RouteType = "round_trip",
                SeatClass = "F",
                StopOver = false,
                TaxAmount = 1200,
            },
        },
        PassengerNameRecord = "JOHN L",
        Passengers = new List<AirlinePassenger>() {
            new AirlinePassenger() {
                AgeGroup = "adult",
                DateOfBirth = LocalDate.FromDateTime(System.DateTime.Parse("2013-07-16")),
                EmailAddress = "john@example.com",
                FirstName = "John",
                FrequentFlyerNumber = "15885566",
                LastName = "Luhn",
                PassportNumber = "11117700225",
                PhoneNumber = "+1234567890",
                TicketNumber = "BA1236699999",
                Title = "Mr.",
                CountryCode = "US",
            },
            new AirlinePassenger() {
                AgeGroup = "adult",
                DateOfBirth = LocalDate.FromDateTime(System.DateTime.Parse("2013-07-16")),
                EmailAddress = "john@example.com",
                FirstName = "John",
                FrequentFlyerNumber = "15885566",
                LastName = "Luhn",
                PassportNumber = "11117700225",
                PhoneNumber = "+1234567890",
                TicketNumber = "BA1236699999",
                Title = "Mr.",
                CountryCode = "US",
            },
        },
        ReservationSystem = "Amadeus",
        RestrictedTicket = false,
        TicketDeliveryMethod = "electronic",
        TicketNumber = "123-1234-151555",
        TravelAgencyCode = "12345",
        TravelAgencyInvoiceNumber = "EG15555155",
        TravelAgencyName = "ACME Agency",
        TravelAgencyPlanName = "B733",
    },
});

// handle response
package main

import(
	"context"
	"os"
	gr4vygo "github.com/gr4vy/gr4vy-go"
	"github.com/gr4vy/gr4vy-go/models/components"
	"github.com/gr4vy/gr4vy-go/types"
	"log"
)

func main() {
    ctx := context.Background()

    s := gr4vygo.New(
        gr4vygo.WithMerchantAccountID("default"),
        gr4vygo.WithSecurity(os.Getenv("GR4VY_BEARER_AUTH")),
    )

    res, err := s.CheckoutSessions.Create(ctx, &components.CheckoutSessionCreate{
        CartItems: []components.CartItem{
            components.CartItem{
                Name: "GoPro HD",
                Quantity: 2,
                UnitAmount: 1299,
                DiscountAmount: gr4vygo.Pointer[int64](0),
                TaxAmount: gr4vygo.Pointer[int64](0),
                ExternalIdentifier: gr4vygo.Pointer("goprohd"),
                Sku: gr4vygo.Pointer("GPHD1078"),
                ProductURL: gr4vygo.Pointer("https://example.com/catalog/go-pro-hd"),
                ImageURL: gr4vygo.Pointer("https://example.com/images/go-pro-hd.jpg"),
                Categories: []string{
                    "camera",
                    "travel",
                    "gear",
                },
                ProductType: components.ProductTypePhysical.ToPointer(),
                SellerCountry: gr4vygo.Pointer("US"),
            },
            components.CartItem{
                Name: "GoPro HD",
                Quantity: 2,
                UnitAmount: 1299,
                DiscountAmount: gr4vygo.Pointer[int64](0),
                TaxAmount: gr4vygo.Pointer[int64](0),
                ExternalIdentifier: gr4vygo.Pointer("goprohd"),
                Sku: gr4vygo.Pointer("GPHD1078"),
                ProductURL: gr4vygo.Pointer("https://example.com/catalog/go-pro-hd"),
                ImageURL: gr4vygo.Pointer("https://example.com/images/go-pro-hd.jpg"),
                Categories: []string{
                    "camera",
                    "travel",
                    "gear",
                },
                ProductType: components.ProductTypePhysical.ToPointer(),
                SellerCountry: gr4vygo.Pointer("US"),
            },
        },
        Metadata: map[string]string{
            "cohort": "cohort-a",
            "order_id": "order-12345",
        },
        Buyer: nil,
        Airline: &components.Airline{
            BookingCode: gr4vygo.Pointer("X36Q9C"),
            IsCardholderTraveling: gr4vygo.Pointer(true),
            IssuedAddress: gr4vygo.Pointer("123 Broadway, New York"),
            IssuedAt: types.MustNewTimeFromString("2013-07-16T19:23:00.000+00:00"),
            IssuingCarrierCode: gr4vygo.Pointer("649"),
            IssuingCarrierName: gr4vygo.Pointer("Air Transat A.T. Inc"),
            IssuingIataDesignator: gr4vygo.Pointer("TS"),
            IssuingIcaoCode: gr4vygo.Pointer("TSC"),
            Legs: []components.AirlineLeg{
                components.AirlineLeg{
                    ArrivalAirport: gr4vygo.Pointer("LAX"),
                    ArrivalAt: types.MustNewTimeFromString("2013-07-16T19:23:00.000+00:00"),
                    ArrivalCity: gr4vygo.Pointer("Los Angeles"),
                    ArrivalCountry: gr4vygo.Pointer("US"),
                    CarrierCode: gr4vygo.Pointer("649"),
                    CarrierName: gr4vygo.Pointer("Air Transat A.T. Inc"),
                    IataDesignator: gr4vygo.Pointer("TS"),
                    IcaoCode: gr4vygo.Pointer("TSC"),
                    CouponNumber: gr4vygo.Pointer("15885566"),
                    DepartureAirport: gr4vygo.Pointer("LHR"),
                    DepartureAt: types.MustNewTimeFromString("2013-07-16T19:23:00.000+00:00"),
                    DepartureCity: gr4vygo.Pointer("London"),
                    DepartureCountry: gr4vygo.Pointer("GB"),
                    DepartureTaxAmount: gr4vygo.Pointer[int64](1200),
                    FareAmount: gr4vygo.Pointer[int64](129900),
                    FareBasisCode: gr4vygo.Pointer("FY"),
                    FeeAmount: gr4vygo.Pointer[int64](1200),
                    FlightClass: gr4vygo.Pointer("E"),
                    FlightNumber: gr4vygo.Pointer("101"),
                    RouteType: components.RouteTypeRoundTrip.ToPointer(),
                    SeatClass: gr4vygo.Pointer("F"),
                    StopOver: gr4vygo.Pointer(false),
                    TaxAmount: gr4vygo.Pointer[int64](1200),
                },
            },
            PassengerNameRecord: gr4vygo.Pointer("JOHN L"),
            Passengers: []components.AirlinePassenger{
                components.AirlinePassenger{
                    AgeGroup: components.AgeGroupAdult.ToPointer(),
                    DateOfBirth: types.MustNewDateFromString("2013-07-16"),
                    EmailAddress: gr4vygo.Pointer("john@example.com"),
                    FirstName: gr4vygo.Pointer("John"),
                    FrequentFlyerNumber: gr4vygo.Pointer("15885566"),
                    LastName: gr4vygo.Pointer("Luhn"),
                    PassportNumber: gr4vygo.Pointer("11117700225"),
                    PhoneNumber: gr4vygo.Pointer("+1234567890"),
                    TicketNumber: gr4vygo.Pointer("BA1236699999"),
                    Title: gr4vygo.Pointer("Mr."),
                    CountryCode: gr4vygo.Pointer("US"),
                },
                components.AirlinePassenger{
                    AgeGroup: components.AgeGroupAdult.ToPointer(),
                    DateOfBirth: types.MustNewDateFromString("2013-07-16"),
                    EmailAddress: gr4vygo.Pointer("john@example.com"),
                    FirstName: gr4vygo.Pointer("John"),
                    FrequentFlyerNumber: gr4vygo.Pointer("15885566"),
                    LastName: gr4vygo.Pointer("Luhn"),
                    PassportNumber: gr4vygo.Pointer("11117700225"),
                    PhoneNumber: gr4vygo.Pointer("+1234567890"),
                    TicketNumber: gr4vygo.Pointer("BA1236699999"),
                    Title: gr4vygo.Pointer("Mr."),
                    CountryCode: gr4vygo.Pointer("US"),
                },
            },
            ReservationSystem: gr4vygo.Pointer("Amadeus"),
            RestrictedTicket: gr4vygo.Pointer(false),
            TicketDeliveryMethod: components.TicketDeliveryMethodElectronic.ToPointer(),
            TicketNumber: gr4vygo.Pointer("123-1234-151555"),
            TravelAgencyCode: gr4vygo.Pointer("12345"),
            TravelAgencyInvoiceNumber: gr4vygo.Pointer("EG15555155"),
            TravelAgencyName: gr4vygo.Pointer("ACME Agency"),
            TravelAgencyPlanName: gr4vygo.Pointer("B733"),
        },
    })
    if err != nil {
        log.Fatal(err)
    }
    if res != nil {
        // handle response
    }
}
package hello.world;

import com.gr4vy.sdk.Gr4vy;
import com.gr4vy.sdk.models.components.*;
import com.gr4vy.sdk.models.errors.*;
import com.gr4vy.sdk.models.operations.CreateCheckoutSessionResponse;
import java.lang.Exception;
import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.util.List;
import java.util.Map;
import org.openapitools.jackson.nullable.JsonNullable;

public class Application {

    public static void main(String[] args) throws Exception {

        Gr4vy sdk = Gr4vy.builder()
                .merchantAccountId("default")
                .bearerAuth(System.getenv().getOrDefault("BEARER_AUTH", ""))
            .build();

        CreateCheckoutSessionResponse res = sdk.checkoutSessions().create()
                .checkoutSessionCreate(CheckoutSessionCreate.builder()
                    .cartItems(List.of(
                        CartItem.builder()
                            .name("GoPro HD")
                            .quantity(2L)
                            .unitAmount(1299L)
                            .discountAmount(0L)
                            .taxAmount(0L)
                            .externalIdentifier("goprohd")
                            .sku("GPHD1078")
                            .productUrl("https://example.com/catalog/go-pro-hd")
                            .imageUrl("https://example.com/images/go-pro-hd.jpg")
                            .categories(List.of(
                                "camera",
                                "travel",
                                "gear"))
                            .productType(ProductType.PHYSICAL)
                            .sellerCountry("US")
                            .build(),
                        CartItem.builder()
                            .name("GoPro HD")
                            .quantity(2L)
                            .unitAmount(1299L)
                            .discountAmount(0L)
                            .taxAmount(0L)
                            .externalIdentifier("goprohd")
                            .sku("GPHD1078")
                            .productUrl("https://example.com/catalog/go-pro-hd")
                            .imageUrl("https://example.com/images/go-pro-hd.jpg")
                            .categories(List.of(
                                "camera",
                                "travel",
                                "gear"))
                            .productType(ProductType.PHYSICAL)
                            .sellerCountry("US")
                            .build()))
                    .metadata(Map.ofEntries(
                        Map.entry("cohort", "cohort-a"),
                        Map.entry("order_id", "order-12345")))
                    .buyer(JsonNullable.of(null))
                    .airline(Airline.builder()
                        .bookingCode("X36Q9C")
                        .isCardholderTraveling(true)
                        .issuedAddress("123 Broadway, New York")
                        .issuedAt(OffsetDateTime.parse("2013-07-16T19:23:00.000+00:00"))
                        .issuingCarrierCode("649")
                        .issuingCarrierName("Air Transat A.T. Inc")
                        .issuingIataDesignator("TS")
                        .issuingIcaoCode("TSC")
                        .legs(List.of(
                            AirlineLeg.builder()
                                .arrivalAirport("LAX")
                                .arrivalAt(OffsetDateTime.parse("2013-07-16T19:23:00.000+00:00"))
                                .arrivalCity("Los Angeles")
                                .arrivalCountry("US")
                                .carrierCode("649")
                                .carrierName("Air Transat A.T. Inc")
                                .iataDesignator("TS")
                                .icaoCode("TSC")
                                .couponNumber("15885566")
                                .departureAirport("LHR")
                                .departureAt(OffsetDateTime.parse("2013-07-16T19:23:00.000+00:00"))
                                .departureCity("London")
                                .departureCountry("GB")
                                .departureTaxAmount(1200L)
                                .fareAmount(129900L)
                                .fareBasisCode("FY")
                                .feeAmount(1200L)
                                .flightClass("E")
                                .flightNumber("101")
                                .routeType(RouteType.ROUND_TRIP)
                                .seatClass("F")
                                .stopOver(false)
                                .taxAmount(1200L)
                                .build()))
                        .passengerNameRecord("JOHN L")
                        .passengers(List.of(
                            AirlinePassenger.builder()
                                .ageGroup(AgeGroup.ADULT)
                                .dateOfBirth(LocalDate.parse("2013-07-16"))
                                .emailAddress("john@example.com")
                                .firstName("John")
                                .frequentFlyerNumber("15885566")
                                .lastName("Luhn")
                                .passportNumber("11117700225")
                                .phoneNumber("+1234567890")
                                .ticketNumber("BA1236699999")
                                .title("Mr.")
                                .countryCode("US")
                                .build(),
                            AirlinePassenger.builder()
                                .ageGroup(AgeGroup.ADULT)
                                .dateOfBirth(LocalDate.parse("2013-07-16"))
                                .emailAddress("john@example.com")
                                .firstName("John")
                                .frequentFlyerNumber("15885566")
                                .lastName("Luhn")
                                .passportNumber("11117700225")
                                .phoneNumber("+1234567890")
                                .ticketNumber("BA1236699999")
                                .title("Mr.")
                                .countryCode("US")
                                .build()))
                        .reservationSystem("Amadeus")
                        .restrictedTicket(false)
                        .ticketDeliveryMethod(TicketDeliveryMethod.ELECTRONIC)
                        .ticketNumber("123-1234-151555")
                        .travelAgencyCode("12345")
                        .travelAgencyInvoiceNumber("EG15555155")
                        .travelAgencyName("ACME Agency")
                        .travelAgencyPlanName("B733")
                        .build())
                    .build())
                .call();

        if (res.checkoutSession().isPresent()) {
            System.out.println(res.checkoutSession().get());
        }
    }
}
declare(strict_types=1);

require 'vendor/autoload.php';

use Brick\DateTime\LocalDate;
use Gr4vy;
use Gr4vy\Utils;

$sdk = Gr4vy\SDK::builder()
    ->setId('example')
    ->setServer('sandbox')
    ->setSecuritySource(Auth::withToken($privateKey))
    ->setMerchantAccountId('default')
    ->build();

$checkoutSessionCreate = new Gr4vy\CheckoutSessionCreate(
    cartItems: [
        new Gr4vy\CartItem(
            name: 'GoPro HD',
            quantity: 2,
            unitAmount: 1299,
            discountAmount: 0,
            taxAmount: 0,
            externalIdentifier: 'goprohd',
            sku: 'GPHD1078',
            productUrl: 'https://example.com/catalog/go-pro-hd',
            imageUrl: 'https://example.com/images/go-pro-hd.jpg',
            categories: [
                'camera',
                'travel',
                'gear',
            ],
            productType: 'physical',
            sellerCountry: 'US',
        ),
        new Gr4vy\CartItem(
            name: 'GoPro HD',
            quantity: 2,
            unitAmount: 1299,
            discountAmount: 0,
            taxAmount: 0,
            externalIdentifier: 'goprohd',
            sku: 'GPHD1078',
            productUrl: 'https://example.com/catalog/go-pro-hd',
            imageUrl: 'https://example.com/images/go-pro-hd.jpg',
            categories: [
                'camera',
                'travel',
                'gear',
            ],
            productType: 'physical',
            sellerCountry: 'US',
        ),
    ],
    metadata: [
        'cohort' => 'cohort-a',
        'order_id' => 'order-12345',
    ],
    buyer: new Gr4vy\GuestBuyer(
        displayName: 'John Doe',
        externalIdentifier: 'buyer-12345',
        billingDetails: new Gr4vy\BillingDetails(
            firstName: 'John',
            lastName: 'Doe',
            emailAddress: 'john@example.com',
            phoneNumber: '+1234567890',
            address: new Gr4vy\Address(
                city: 'San Jose',
                country: 'US',
                postalCode: '94560',
                state: 'California',
                stateCode: 'US-CA',
                houseNumberOrName: '10',
                line1: 'Stafford Appartments',
                line2: '29th Street',
                organization: 'Gr4vy',
            ),
            taxId: new Gr4vy\TaxId(
                value: '12345678931',
                kind: 'my.frp',
            ),
        ),
        shippingDetails: new Gr4vy\ShippingDetailsCreate(
            firstName: 'John',
            lastName: 'Doe',
            emailAddress: 'john@example.com',
            phoneNumber: '+1234567890',
            address: null,
        ),
    ),
    airline: new Gr4vy\Airline(
        bookingCode: 'X36Q9C',
        isCardholderTraveling: true,
        issuedAddress: '123 Broadway, New York',
        issuedAt: Utils\Utils::parseDateTime('2013-07-16T19:23:00.000+00:00'),
        issuingCarrierCode: '649',
        issuingCarrierName: 'Air Transat A.T. Inc',
        issuingIataDesignator: 'TS',
        issuingIcaoCode: 'TSC',
        legs: [
            new Gr4vy\AirlineLeg(
                arrivalAirport: 'LAX',
                arrivalAt: Utils\Utils::parseDateTime('2013-07-16T19:23:00.000+00:00'),
                arrivalCity: 'Los Angeles',
                arrivalCountry: 'US',
                carrierCode: '649',
                carrierName: 'Air Transat A.T. Inc',
                iataDesignator: 'TS',
                icaoCode: 'TSC',
                couponNumber: '15885566',
                departureAirport: 'LHR',
                departureAt: Utils\Utils::parseDateTime('2013-07-16T19:23:00.000+00:00'),
                departureCity: 'London',
                departureCountry: 'GB',
                departureTaxAmount: 1200,
                fareAmount: 129900,
                fareBasisCode: 'FY',
                feeAmount: 1200,
                flightClass: 'E',
                flightNumber: '101',
                routeType: 'round_trip',
                seatClass: 'F',
                stopOver: false,
                taxAmount: 1200,
            ),
            new Gr4vy\AirlineLeg(
                arrivalAirport: 'LAX',
                arrivalAt: Utils\Utils::parseDateTime('2013-07-16T19:23:00.000+00:00'),
                arrivalCity: 'Los Angeles',
                arrivalCountry: 'US',
                carrierCode: '649',
                carrierName: 'Air Transat A.T. Inc',
                iataDesignator: 'TS',
                icaoCode: 'TSC',
                couponNumber: '15885566',
                departureAirport: 'LHR',
                departureAt: Utils\Utils::parseDateTime('2013-07-16T19:23:00.000+00:00'),
                departureCity: 'London',
                departureCountry: 'GB',
                departureTaxAmount: 1200,
                fareAmount: 129900,
                fareBasisCode: 'FY',
                feeAmount: 1200,
                flightClass: 'E',
                flightNumber: '101',
                routeType: 'round_trip',
                seatClass: 'F',
                stopOver: false,
                taxAmount: 1200,
            ),
            new Gr4vy\AirlineLeg(
                arrivalAirport: 'LAX',
                arrivalAt: Utils\Utils::parseDateTime('2013-07-16T19:23:00.000+00:00'),
                arrivalCity: 'Los Angeles',
                arrivalCountry: 'US',
                carrierCode: '649',
                carrierName: 'Air Transat A.T. Inc',
                iataDesignator: 'TS',
                icaoCode: 'TSC',
                couponNumber: '15885566',
                departureAirport: 'LHR',
                departureAt: Utils\Utils::parseDateTime('2013-07-16T19:23:00.000+00:00'),
                departureCity: 'London',
                departureCountry: 'GB',
                departureTaxAmount: 1200,
                fareAmount: 129900,
                fareBasisCode: 'FY',
                feeAmount: 1200,
                flightClass: 'E',
                flightNumber: '101',
                routeType: 'round_trip',
                seatClass: 'F',
                stopOver: false,
                taxAmount: 1200,
            ),
        ],
        passengerNameRecord: 'JOHN L',
        passengers: [
            new Gr4vy\AirlinePassenger(
                ageGroup: 'adult',
                dateOfBirth: LocalDate::parse('2013-07-16'),
                emailAddress: 'john@example.com',
                firstName: 'John',
                frequentFlyerNumber: '15885566',
                lastName: 'Luhn',
                passportNumber: '11117700225',
                phoneNumber: '+1234567890',
                ticketNumber: 'BA1236699999',
                title: 'Mr.',
                countryCode: 'US',
            ),
            new Gr4vy\AirlinePassenger(
                ageGroup: 'adult',
                dateOfBirth: LocalDate::parse('2013-07-16'),
                emailAddress: 'john@example.com',
                firstName: 'John',
                frequentFlyerNumber: '15885566',
                lastName: 'Luhn',
                passportNumber: '11117700225',
                phoneNumber: '+1234567890',
                ticketNumber: 'BA1236699999',
                title: 'Mr.',
                countryCode: 'US',
            ),
        ],
        reservationSystem: 'Amadeus',
        restrictedTicket: false,
        ticketDeliveryMethod: 'electronic',
        ticketNumber: '123-1234-151555',
        travelAgencyCode: '12345',
        travelAgencyInvoiceNumber: 'EG15555155',
        travelAgencyName: 'ACME Agency',
        travelAgencyPlanName: 'B733',
    ),
);

$response = $sdk->checkoutSessions->create(
    checkoutSessionCreate: $checkoutSessionCreate
);

if ($response->checkoutSession !== null) {
    // handle response
}
from datetime import date
from gr4vy import Gr4vy, models
from gr4vy.utils import parse_datetime
import os


with Gr4vy(
    id="example",
    server="sandbox",
    merchant_account_id="default",
    bearer_auth=auth.with_token(open("./private_key.pem").read())
) as g_client:

    res = g_client.checkout_sessions.create(checkout_session_create=models.CheckoutSessionCreate(
        cart_items=[
            models.CartItem(
                name="GoPro HD",
                quantity=2,
                unit_amount=1299,
                discount_amount=0,
                tax_amount=0,
                external_identifier="goprohd",
                sku="GPHD1078",
                product_url="https://example.com/catalog/go-pro-hd",
                image_url="https://example.com/images/go-pro-hd.jpg",
                categories=[
                    "camera",
                    "travel",
                    "gear",
                ],
                product_type="physical",
                seller_country="GB",
            ),
            models.CartItem(
                name="GoPro HD",
                quantity=2,
                unit_amount=1299,
                discount_amount=0,
                tax_amount=0,
                external_identifier="goprohd",
                sku="GPHD1078",
                product_url="https://example.com/catalog/go-pro-hd",
                image_url="https://example.com/images/go-pro-hd.jpg",
                categories=[
                    "camera",
                    "travel",
                    "gear",
                ],
                product_type="physical",
                seller_country="GB",
            ),
            models.CartItem(
                name="GoPro HD",
                quantity=2,
                unit_amount=1299,
                discount_amount=0,
                tax_amount=0,
                external_identifier="goprohd",
                sku="GPHD1078",
                product_url="https://example.com/catalog/go-pro-hd",
                image_url="https://example.com/images/go-pro-hd.jpg",
                categories=[
                    "camera",
                    "travel",
                    "gear",
                ],
                product_type="physical",
                seller_country="GB",
            ),
        ],
        metadata={
            "cohort": "cohort-a",
            "order_id": "order-12345",
        },
        buyer=models.GuestBuyer(
            display_name="John Doe",
            external_identifier="buyer-12345",
            billing_details=models.BillingDetails(
                first_name="John",
                last_name="Doe",
                email_address="john@example.com",
                phone_number="+1234567890",
                address=models.Address(
                    city="San Jose",
                    country="US",
                    postal_code="94560",
                    state="California",
                    state_code="US-CA",
                    house_number_or_name="10",
                    line1="Stafford Appartments",
                    line2="29th Street",
                    organization="Gr4vy",
                ),
                tax_id=models.TaxID(
                    value="12345678931",
                    kind="ar.cuit",
                ),
            ),
            shipping_details=models.ShippingDetailsCreate(
                first_name="John",
                last_name="Doe",
                email_address="john@example.com",
                phone_number="+1234567890",
                address=models.Address(
                    city="San Jose",
                    country="US",
                    postal_code="94560",
                    state="California",
                    state_code="US-CA",
                    house_number_or_name="10",
                    line1="Stafford Appartments",
                    line2="29th Street",
                    organization="Gr4vy",
                ),
            ),
        ),
        airline=models.Airline(
            booking_code="X36Q9C",
            is_cardholder_traveling=True,
            issued_address="123 Broadway, New York",
            issued_at=parse_datetime("2013-07-16T19:23:00.000+00:00"),
            issuing_carrier_code="649",
            issuing_carrier_name="Air Transat A.T. Inc",
            issuing_iata_designator="TS",
            issuing_icao_code="TSC",
            legs=[
                models.AirlineLeg(
                    arrival_airport="LAX",
                    arrival_at=parse_datetime("2013-07-16T19:23:00.000+00:00"),
                    arrival_city="Los Angeles",
                    arrival_country="US",
                    carrier_code="649",
                    carrier_name="Air Transat A.T. Inc",
                    iata_designator="TS",
                    icao_code="TSC",
                    coupon_number="15885566",
                    departure_airport="LHR",
                    departure_at=parse_datetime("2013-07-16T19:23:00.000+00:00"),
                    departure_city="London",
                    departure_country="GB",
                    departure_tax_amount=1200,
                    fare_amount=129900,
                    fare_basis_code="FY",
                    fee_amount=1200,
                    flight_class="E",
                    flight_number="101",
                    route_type="round_trip",
                    seat_class="F",
                    stop_over=False,
                    tax_amount=1200,
                ),
                models.AirlineLeg(
                    arrival_airport="LAX",
                    arrival_at=parse_datetime("2013-07-16T19:23:00.000+00:00"),
                    arrival_city="Los Angeles",
                    arrival_country="US",
                    carrier_code="649",
                    carrier_name="Air Transat A.T. Inc",
                    iata_designator="TS",
                    icao_code="TSC",
                    coupon_number="15885566",
                    departure_airport="LHR",
                    departure_at=parse_datetime("2013-07-16T19:23:00.000+00:00"),
                    departure_city="London",
                    departure_country="GB",
                    departure_tax_amount=1200,
                    fare_amount=129900,
                    fare_basis_code="FY",
                    fee_amount=1200,
                    flight_class="E",
                    flight_number="101",
                    route_type="round_trip",
                    seat_class="F",
                    stop_over=False,
                    tax_amount=1200,
                ),
                models.AirlineLeg(
                    arrival_airport="LAX",
                    arrival_at=parse_datetime("2013-07-16T19:23:00.000+00:00"),
                    arrival_city="Los Angeles",
                    arrival_country="US",
                    carrier_code="649",
                    carrier_name="Air Transat A.T. Inc",
                    iata_designator="TS",
                    icao_code="TSC",
                    coupon_number="15885566",
                    departure_airport="LHR",
                    departure_at=parse_datetime("2013-07-16T19:23:00.000+00:00"),
                    departure_city="London",
                    departure_country="GB",
                    departure_tax_amount=1200,
                    fare_amount=129900,
                    fare_basis_code="FY",
                    fee_amount=1200,
                    flight_class="E",
                    flight_number="101",
                    route_type="round_trip",
                    seat_class="F",
                    stop_over=False,
                    tax_amount=1200,
                ),
            ],
            passenger_name_record="JOHN L",
            passengers=[
                models.AirlinePassenger(
                    age_group="adult",
                    date_of_birth=date.fromisoformat("2013-07-16"),
                    email_address="john@example.com",
                    first_name="John",
                    frequent_flyer_number="15885566",
                    last_name="Luhn",
                    passport_number="11117700225",
                    phone_number="+1234567890",
                    ticket_number="BA1236699999",
                    title="Mr.",
                    country_code="US",
                ),
                models.AirlinePassenger(
                    age_group="adult",
                    date_of_birth=date.fromisoformat("2013-07-16"),
                    email_address="john@example.com",
                    first_name="John",
                    frequent_flyer_number="15885566",
                    last_name="Luhn",
                    passport_number="11117700225",
                    phone_number="+1234567890",
                    ticket_number="BA1236699999",
                    title="Mr.",
                    country_code="US",
                ),
            ],
            reservation_system="Amadeus",
            restricted_ticket=False,
            ticket_delivery_method="electronic",
            ticket_number="123-1234-151555",
            travel_agency_code="12345",
            travel_agency_invoice_number="EG15555155",
            travel_agency_name="ACME Agency",
            travel_agency_plan_name="B733",
        ),
    ))

    # Handle response
    print(res)
import { Gr4vy, withToken } from "@gr4vy/sdk";
import fs from "fs";

const gr4vy = new Gr4vy({
    id: "example",
    server: "sandbox",
    merchantAccountId: "default",
    bearerAuth: withToken({
      privateKey: fs.readFileSync("private_key.pem", "utf8"),
    }),
});

async function run() {
  const result = await gr4vy.checkoutSessions.create();

  console.log(result);
}

run();
curl --request POST \
  --url https://api.sandbox.{id}.gr4vy.app/checkout/sessions \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{}'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "expires_at": "2023-11-07T05:31:56Z",
  "cart_items": [
    {
      "name": "<string>",
      "quantity": 123,
      "unit_amount": 49999999,
      "discount_amount": 0,
      "tax_amount": 0,
      "external_identifier": "goprohd",
      "sku": "GPHD1078",
      "upc": "012345678905",
      "product_url": "https://example.com/catalog/go-pro-hd",
      "image_url": "https://example.com/images/go-pro-hd.jpg",
      "categories": [
        "camera",
        "travel",
        "gear"
      ],
      "product_type": "physical",
      "seller_country": "US",
      "tax_exempt": false,
      "unit_of_measure": "feet",
      "commodity_code": "43211503",
      "description": "A brief description of an interesting item.",
      "duty_amount": 1299,
      "shipping_amount": 1299
    }
  ],
  "metadata": {
    "cohort": "cohort-a",
    "order_id": "order-12345"
  },
  "buyer": {
    "display_name": "John Doe",
    "external_identifier": "buyer-12345",
    "billing_details": {
      "first_name": "John",
      "last_name": "Doe",
      "email_address": "john@example.com",
      "phone_number": "+1234567890",
      "address": {
        "city": "San Jose",
        "country": "US",
        "postal_code": "94560",
        "state": "California",
        "state_code": "US-CA",
        "house_number_or_name": "10",
        "line1": "Stafford Appartments",
        "line2": "29th Street",
        "organization": "Gr4vy"
      },
      "tax_id": {
        "value": "<string>"
      }
    },
    "account_number": "<string>",
    "shipping_details": {
      "first_name": "John",
      "last_name": "Doe",
      "email_address": "john@example.com",
      "phone_number": "+1234567890",
      "address": {
        "city": "San Jose",
        "country": "US",
        "postal_code": "94560",
        "state": "California",
        "state_code": "US-CA",
        "house_number_or_name": "10",
        "line1": "Stafford Appartments",
        "line2": "29th Street",
        "organization": "Gr4vy"
      }
    }
  },
  "airline": {
    "booking_code": "X36Q9C",
    "is_cardholder_traveling": true,
    "issued_address": "123 Broadway, New York",
    "issued_at": "2013-07-16T19:23:00.000+00:00",
    "issuing_carrier_code": "649",
    "issuing_carrier_name": "Air Transat A.T. Inc",
    "issuing_iata_designator": "TS",
    "issuing_icao_code": "TSC",
    "legs": [
      {
        "arrival_airport": "LAX",
        "arrival_at": "2013-07-16T19:23:00.000+00:00",
        "arrival_city": "Los Angeles",
        "arrival_country": "US",
        "carrier_code": "649",
        "carrier_name": "Air Transat A.T. Inc",
        "iata_designator": "TS",
        "icao_code": "TSC",
        "coupon_number": "15885566",
        "departure_airport": "LHR",
        "departure_at": "2013-07-16T19:23:00.000+00:00",
        "departure_city": "London",
        "departure_country": "GB",
        "departure_tax_amount": 1200,
        "fare_amount": 129900,
        "fare_basis_code": "FY",
        "fee_amount": 1200,
        "flight_class": "E",
        "flight_number": "101",
        "route_type": "round_trip",
        "seat_class": "F",
        "stop_over": false,
        "tax_amount": 1200
      }
    ],
    "passenger_name_record": "JOHN L",
    "passengers": [
      {
        "age_group": "adult",
        "date_of_birth": "2013-07-16",
        "email_address": "john@example.com",
        "first_name": "John",
        "frequent_flyer_number": "15885566",
        "last_name": "Luhn",
        "passport_number": "11117700225",
        "phone_number": "+1234567890",
        "ticket_number": "BA1236699999",
        "title": "Mr.",
        "country_code": "US"
      }
    ],
    "reservation_system": "Amadeus",
    "restricted_ticket": false,
    "ticket_delivery_method": "electronic",
    "ticket_number": "123-1234-151555",
    "travel_agency_code": "12345",
    "travel_agency_invoice_number": "EG15555155",
    "travel_agency_name": "ACME Agency",
    "travel_agency_plan_name": "B733"
  },
  "type": "checkout-session",
  "payment_method": {
    "type": "payment-method",
    "id": "ef9496d8-53a5-4aad-8ca2-00eb68334389",
    "details": {
      "bin": "411111",
      "card_country": "US",
      "card_type": "credit",
      "card_issuer_name": "Bank of America NA"
    },
    "label": "1234",
    "method": "card",
    "scheme": "visa",
    "fingerprint": "a50b85c200ee0795d6fd33a5c66f37a4564f554355c5b46a756aac485dd168a4"
  }
}
{
  "type": "error",
  "code": "bad_request",
  "status": 400,
  "message": "Generic error",
  "details": []
}
{
  "type": "error",
  "code": "unauthorized",
  "status": 401,
  "message": "No valid API authentication found",
  "details": []
}
{
  "type": "error",
  "code": "forbidden",
  "status": 403,
  "message": "Generic error",
  "details": []
}
{
  "type": "error",
  "code": "not_found",
  "status": 404,
  "message": "The resource could not be found",
  "details": []
}
{
  "type": "error",
  "code": "method_not_allowed",
  "status": 405,
  "message": "Method Not Allowed",
  "details": []
}
{
  "type": "error",
  "code": "duplicate_record",
  "status": 409,
  "message": "Generic error",
  "details": [],
  "resource_id": "cdc70639-cb9c-4222-a73f-b8ce39f7821b"
}
{
  "detail": [
    {
      "loc": [
        "<string>"
      ],
      "msg": "<string>",
      "type": "<string>"
    }
  ]
}
{
  "type": "error",
  "code": "too_early",
  "status": 425,
  "message": "Generic error",
  "details": []
}
{
  "type": "error",
  "code": "too_many_requests",
  "status": 429,
  "message": "Generic error",
  "details": []
}
{
  "type": "error",
  "code": "server_error",
  "status": 500,
  "message": "Request could not be processed",
  "details": []
}
{
  "type": "error",
  "code": "bad_gateway",
  "status": 502,
  "message": "Request could not be processed",
  "details": []
}
{
  "type": "error",
  "code": "gateway_timeout",
  "status": 504,
  "message": "Request could not be processed",
  "details": []
}
This endpoint requires the checkout-sessions.write scope.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

x-gr4vy-merchant-account-id
string

The ID of the merchant account to use for this request.

Example:

"default"

Body

application/json
cart_items
CartItem · object[] | null

An array of cart items that represents the line items of a transaction.

metadata
Metadata · object | null

Any additional information about the transaction that you would like to store as key-value pairs. This data is passed to payment service providers that support it.

Example:
{
  "cohort": "cohort-a",
  "order_id": "order-12345"
}
buyer
GuestBuyer · object | null

Provide buyer details for the transaction. No buyer resource will be created on Gr4vy when used.

airline
Airline · object | null

The airline addendum data which describes the airline booking associated with this transaction.

expires_in
number
default:3600

The time in seconds when this checkout session expires.

Required range: 3600 <= x <= 86400

Response

Successful Response

id
string<uuid>
required

The ID for the checkout session.

Example:

"4137b1cf-39ac-42a8-bad6-1c680d5dab6b"

expires_at
string<date-time>
required

The date and time when this checkout session expires.

Example:

"2013-07-16T19:23:00.000+00:00"

cart_items
CartItem · object[] | null

An array of cart items that represents the line items of a transaction.

metadata
Metadata · object | null

Any additional information about the transaction that you would like to store as key-value pairs. This data is passed to payment service providers that support it.

Example:
{
  "cohort": "cohort-a",
  "order_id": "order-12345"
}
buyer
GuestBuyer · object | null

Provide buyer details for the transaction. No buyer resource will be created on Gr4vy when used.

airline
Airline · object | null

The airline addendum data which describes the airline booking associated with this transaction.

type
string
default:checkout-session

Always checkout-session

Allowed value: "checkout-session"
Example:

"checkout-session"

payment_method
CheckoutSessionPaymentMethod · object | null

Information about the payment method stored on the checkout session.