> ## Documentation Index
> Fetch the complete documentation index at: https://sequence-0fb8d9e6-codex-update-discord-invite.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Checkout

> Documentation for Unreal SDK overview for the Sequence infrastructure stack for web3 gaming.

## Creating Transactions

### Generate Listing Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/FTpX4UAFpHQ_Qb4p/images/unreal/checkout/generate_listing_transaction.png?fit=max&auto=format&n=FTpX4UAFpHQ_Qb4p&q=85&s=8936d6fc80433dca6e4cd21136f1bc87" width="2018" height="1064" data-path="images/unreal/checkout/generate_listing_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateListingTransaction(SequenceSdk::GetChainId(), WalletAddress, CollectionAddress, TokenId, Amount, ContractType, CurrencyTokenAddress, PricePerToken, Expiry, OrderbookKind, WalletKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Generate Offer Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/FTpX4UAFpHQ_Qb4p/images/unreal/checkout/generate_offer_transaction.png?fit=max&auto=format&n=FTpX4UAFpHQ_Qb4p&q=85&s=c8256ba88e532fa84b0b2da927324423" width="2018" height="1064" data-path="images/unreal/checkout/generate_offer_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateOfferTransaction(SequenceSdk::GetChainId(), WalletAddress, CollectionAddress, TokenId, Amount, ContractType, CurrencyTokenAddress, PricePerToken, Expiry, OrderbookKind, WalletKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Generate Buy Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/FTpX4UAFpHQ_Qb4p/images/unreal/checkout/generate_buy_transaction.png?fit=max&auto=format&n=FTpX4UAFpHQ_Qb4p&q=85&s=e50d47a0b88e2678962c7ee8772f7b6c" width="2018" height="1064" data-path="images/unreal/checkout/generate_buy_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateBuyTransaction(SequenceSdk::GetChainId(), WalletAddress, Order, Amount, AdditionalFee, WalletKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Generate Sell Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/FTpX4UAFpHQ_Qb4p/images/unreal/checkout/generate_sell_transaction.png?fit=max&auto=format&n=FTpX4UAFpHQ_Qb4p&q=85&s=6c2b406d01e68b3abfe889e6d05d8144" width="2018" height="1064" data-path="images/unreal/checkout/generate_sell_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateSellTransaction(SequenceSdk::GetChainId(), WalletAddress, Order, Amount, AdditionalFee, WalletKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Generate Cancel Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/FTpX4UAFpHQ_Qb4p/images/unreal/checkout/generate_cancel_transaction.png?fit=max&auto=format&n=FTpX4UAFpHQ_Qb4p&q=85&s=8ff3e23105ca323257ae040aafed6cec" width="2018" height="1064" data-path="images/unreal/checkout/generate_cancel_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateCancelTransaction(SequenceSdk::GetChainId(), WalletAddress, CollectionAddress, OrderId, MarketplaceKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Generate Cancel Transaction by Order

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/FTpX4UAFpHQ_Qb4p/images/unreal/checkout/generate_cancel_transaction_by_order.png?fit=max&auto=format&n=FTpX4UAFpHQ_Qb4p&q=85&s=484f3a668a56905a930127d31286a088" width="2018" height="1064" data-path="images/unreal/checkout/generate_cancel_transaction_by_order.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGenerateTransactionResponse> OnApiSuccess = [this, OnSuccess](const FGenerateTransactionResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GenerateCancelTransactionByOrder(SequenceSdk::GetChainId(), WalletAddress, CollectionAddress, Order, MarketplaceKind, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Steps to Transaction

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/FTpX4UAFpHQ_Qb4p/images/unreal/checkout/steps_to_transaction.png?fit=max&auto=format&n=FTpX4UAFpHQ_Qb4p&q=85&s=c12d3e58e5b81faddeef97bd435b3ce4" width="2018" height="1064" data-path="images/unreal/checkout/steps_to_transaction.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    UTransactions* Transactions = NewObject<UTransactions>();

    for (const FTransactionStep& Step : Steps)
    {
        FRawTransaction RawTransaction = FRawTransaction(Step.To, Step.Data, Step.Value.IsEmpty() ? TEXT("0") : Step.Value);
        Transactions->AddRaw(RawTransaction);
    }
    ```
  </Tab>
</Tabs>

## Checkout Options

### Get Checkout Options

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/FTpX4UAFpHQ_Qb4p/images/unreal/checkout/get_checkout_options.png?fit=max&auto=format&n=FTpX4UAFpHQ_Qb4p&q=85&s=d5e4022e22be3ed11595a3a57663bf80" width="2018" height="1064" data-path="images/unreal/checkout/get_checkout_options.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGetCheckoutOptionsResponse> OnApiSuccess = [this, OnSuccess](const FGetCheckoutOptionsResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GetCheckoutOptions(SequenceSdk::GetChainId(), WalletAddress, Orders, AdditionalFeeBps, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Get Checkout Options by Orders

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/FTpX4UAFpHQ_Qb4p/images/unreal/checkout/get_checkout_options_by_orders.png?fit=max&auto=format&n=FTpX4UAFpHQ_Qb4p&q=85&s=96abadefe9fcb0c7de46710c207509de" width="2018" height="1064" data-path="images/unreal/checkout/get_checkout_options_by_orders.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGetCheckoutOptionsResponse> OnApiSuccess = [this, OnSuccess](const FGetCheckoutOptionsResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GetCheckoutOptionsByOrders(SequenceSdk::GetChainId(), WalletAddress, Orders, AdditionalFeeBps, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Get Checkout Options by ERC1155 Sale

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/FTpX4UAFpHQ_Qb4p/images/unreal/checkout/get_checkout_options_by_erc1155.png?fit=max&auto=format&n=FTpX4UAFpHQ_Qb4p&q=85&s=352f4a72f5a45e9ebb5ae8ed61060c8c" width="2018" height="1064" data-path="images/unreal/checkout/get_checkout_options_by_erc1155.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGetCheckoutOptionsResponse> OnApiSuccess = [this, OnSuccess](const FGetCheckoutOptionsResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GetCheckoutOptionsByERC1155Contract(SequenceSdk::GetChainId(), WalletAddress, SaleContract, CollectionAddress, TokenId, Amount, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Get Checkout Options by ERC721 Sale

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/FTpX4UAFpHQ_Qb4p/images/unreal/checkout/get_checkout_options_by_erc721.png?fit=max&auto=format&n=FTpX4UAFpHQ_Qb4p&q=85&s=8f425672bb7c796d6407684f1d27f919" width="2018" height="1064" data-path="images/unreal/checkout/get_checkout_options_by_erc721.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGetCheckoutOptionsResponse> OnApiSuccess = [this, OnSuccess](const FGetCheckoutOptionsResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GetCheckoutOptionsByERC721Contract(SequenceSdk::GetChainId(), WalletAddress, SaleContract, CollectionAddress, TokenId, Amount, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>

### Get Checkout Options by Token Id Amounts

<Tabs>
  <Tab title="Blueprint">
    <Frame>
      <img src="https://mintcdn.com/sequence-0fb8d9e6-codex-update-discord-invite/FTpX4UAFpHQ_Qb4p/images/unreal/checkout/get_checkout_options_by_token_id_amounts.png?fit=max&auto=format&n=FTpX4UAFpHQ_Qb4p&q=85&s=33578db297f5b94d15097e85878fb678" width="2018" height="1064" data-path="images/unreal/checkout/get_checkout_options_by_token_id_amounts.png" />
    </Frame>
  </Tab>

  <Tab title="C++">
    ```cpp theme={null}
    const TSuccessCallback<FGetCheckoutOptionsResponse> OnApiSuccess = [this, OnSuccess](const FGetCheckoutOptionsResponse& Response) { };
    const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };

    USequenceCheckout* Checkout = NewObject<USequenceCheckout>();
    Checkout->GetCheckoutOptionsByTokenIdAmounts(SequenceSdk::GetChainId(), WalletAddress, SaleContract, CollectionAddress, AmountsByTokenId, OnApiSuccess, OnApiFailure);
    ```
  </Tab>
</Tabs>
