{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["openapiLink"]},"type":"markdown"},"seo":{"title":"Tutorial: Transaction using the Checkout UI","description":"Tilia Wallet Developer Documentation","siteUrl":"https://thunes-tilia-docs.redocly.app/","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"tutorial-transaction-using-the-checkout-ui","__idx":0},"children":["Tutorial: Transaction using the Checkout UI"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In this tutorial, you create transactions in USD between:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A user and the publisher"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A user and another user"]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Allow about 15 minutes to complete this tutorial."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This tutorial consists of two separate transactions that are created by"," ","the ",{"$$mdtype":"Tag","name":"OpenapiLink","attributes":{"link":"invoicing/openapi/invoice/authorizeinvoice","text":"AuthorizeInvoice"},"children":[]}," api and"," ","completed in the Tilia-hosted Checkout UI."," ","While the transaction process is the same in both cases, the differences appear"," ","in the structure of the transaction request body."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following diagram shows a successful user-to-publisher transaction that uses the Checkout UI."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/tutorial-user-to-publisher-transaction-flow.4e2bb42930058e570f39446ab4c4c8995e01961d4a66ca3cf28d41b691e090b6.9c1bb791.png","alt":"User to publisher transaction in USD using the Checkout UI"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"api-operations-in-this-tutorial","__idx":1},"children":["API operations in this tutorial"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Tutorial interaction"},"children":["Tutorial interaction"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"API operations used"},"children":["API operations used"]},{"$$mdtype":"Tag","name":"th","attributes":{"align":"left","data-label":"Scope"},"children":["Scope"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#create-user-to-publisher-transaction"},"children":["Create user-to-publisher transaction that uses the Checkout UI"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"OpenapiLink","attributes":{"link":"invoicing/openapi/invoice/authorizeinvoice","text":"AuthorizeInvoice"},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["write_invoices"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["write_user_tokens"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"#create-user-to-user-transaction"},"children":["Create user-to-user transaction that uses the Checkout UI"]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"OpenapiLink","attributes":{"link":"invoicing/openapi/invoice/authorizeinvoice","text":"AuthorizeInvoice"},"children":[]}]},{"$$mdtype":"Tag","name":"td","attributes":{"align":"left"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["write_invoices"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["write_user_tokens"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"to-complete-this-tutorial","__idx":2},"children":["To complete this tutorial"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This tutorial uses the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Explore Tilia transactions"]}," collection from the"," ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://www.postman.com/tilia-docs-testing/workspace/get-started-using-tilia-services/overview"},"children":["shared Postman workspace"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["To complete this tutorial successfully:"]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Make sure the software described in ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/tutorials/tutorial_get_started"},"children":["Get started with the tutorials"]}," ","has been installed on your system and configured."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Make sure that you have initialized the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Tilia Client Info"]}," environment variables by running the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/tutorials/user-accounts"},"children":["User account tutorials"]},"."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In Postman:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Open the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Tilia tutorial workspace"]}," you created in ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/tutorials/tutorial_get_started"},"children":["Get started with the tutorials"]}," for this tutorial."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Make sure you have the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Explore Tilia transactions"]}," collection forked to your ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Tilia tutorial workspace"]},"."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Make sure that you've selected the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Tilia Client Info"]}," environment and confirmed that it has:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Your Tilia developer credentials."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All of the user-related environment variables with ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Current values"]}," defined."]}]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In your ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Tilia tutorial workspace"]},", open the list of ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Collections"]},"."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the list of ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Collections"]},", expand the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Explore Tilia transactions"]}," collection."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If it's been more than an hour since you last got an access token for this collection,"," ","get a new one as described in ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/tutorials/transactions#get-an-access-token"},"children":["Tutorial: Transactions overview"]},","," ","and then return to continue here."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"create-user-to-publisher-transaction","__idx":3},"children":["Create user-to-publisher transaction"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This exercise creates a user-to-publisher invoice in which the user buys some"," ","digital goods from the publisher and pays for them in USD."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creating an invoice starts with collecting all the required information,"," ","and then sending it to Tilia to create the complete invoice."," ","By sending the invoice details to the ",{"$$mdtype":"Tag","name":"OpenapiLink","attributes":{"link":"invoicing/openapi/invoice/authorizeinvoice","text":"AuthorizeInvoice"},"children":[]}," ","API, instead of returning an invoice to the application for subsequent payment,"," ","the API returns a URL to the Tilia-hosted Checkout UI with the invoice details."," ","The user completes the purchase and the invoice in the Tilia-hosted Checkout UI."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"prepare-the-user-to-publisher-invoice","__idx":4},"children":["Prepare the user-to-publisher invoice"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The invoice data is collected in the request body object that is sent to ",{"$$mdtype":"Tag","name":"OpenapiLink","attributes":{"link":"invoicing/openapi/invoice/authorizeinvoice","text":"AuthorizeInvoice"},"children":[]},". The invoice data used in this example is shown here."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Notice that each line item has a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction_type"]}," value of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["user_to_integrator"]},". With this value, the recipient is the publisher and so no recipient value is required."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"account_id\": \"{{payers_account_id}}\",\n  \"is_escrow\": false,\n  \"invoice_mechanism\": \"tilia_hosted\",\n  \"reference_type\": \"authorize_purchase_demo\",\n  \"reference_id\": \"authorize_demo: {{$timestamp}}\",\n  \"line_items\": [\n    {\n      \"description\": \"Product 21 description\",\n      \"product_sku\": \"Product 21 SKU\",\n      \"transaction_type\": \"user_to_integrator\",\n      \"currency\": \"USD\",\n      \"amount\": 1100\n    },\n    {\n      \"description\": \"Product 22 description\",\n      \"product_sku\": \"Product 22 SKU\",\n      \"transaction_type\": \"user_to_integrator\",\n      \"currency\": \"USD\",\n      \"amount\": 300\n    }\n  ]\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["To send this information and create a new user-to-publisher transaction, in Postman:"]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Explore Tilia transactions"]}," collection, in the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transaction with publisher using the checkout UI"]}," folder,"," ","open the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Authorize invoice"]}," request."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the request ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Body"]}," tab, notice that it has the information described previously."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Authorize invoice"]}," request, choose ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Send"]},"."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After the response returns, open the response ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Body"]}," tab below the request to review the response body details."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["From the response body, copy and save the value of the"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["payload.redirect"]}," property to use in the next exercise."]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A typical response body looks like the following."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"status\": \"Success\",\n    \"message\": [],\n    \"codes\": [],\n    \"payload\": {\n        \"nonce_auth_id\": \"c72f809a-9e38-4540-908f-8fbfdb598d9b\",\n        \"authorized_invoice_id\": \"193f3f8d-6e9f-4e4d-84c1-1951171378a5\",\n        \"redirect\": \"https://pub.staging.tilia-inc.com/tilia-test/checkout/c72f809a-9e38-4540-908f-8fbfdb598d9b?authorized_invoice_id=193f3f8d-6e9f-4e4d-84c1-1951171378a5&is_escrow=false&is_virtual=false\"\n    }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"pay-the-user-to-publisher-invoice","__idx":5},"children":["Pay the user-to-publisher invoice"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["payload.redirect"]}," value from the previous exercise is the URL to the Tilia-hosted"," ","Checkout UI with the details of the invoice already loaded and ready for payment."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["To pay the invoice using the Checkout UI:"]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Open another browser window."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the address bar of the new browser window, paste the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["payload.redirect"]}," value"," ","from the previous exercise and navigate to that page."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Checkout UI for that invoice should open."," ","In the Checkout UI, select the payment method and complete the purchase."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After the transaction finishes processing, choose ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Done"]}," to exit."]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["At this point, the transaction has completed."," ","In an application context, the user would return to the application."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Visit ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#next-steps"},"children":["Next steps"]}," for information about how to view the transaction"," ","details of this, and other transactions, or continue to the next exercise."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"create-user-to-user-transaction","__idx":6},"children":["Create user-to-user transaction"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This exercise creates a user-to-user invoice in which the user buys some digital goods"," ","from another user and pays for them in USD."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The process for this type of transaction, shown in the following image,"," ","is very similar to that of the user-to-publisher example described earlier."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/tutorial-user-to-user-usd-transaction-flow.0beeaf4d318ce98c839559e469e6ca7b2d289af367a15a0f0c40f217c11822b5.9c1bb791.png","alt":"User to user transaction in USD using the Checkout UI"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In a user-to-user transaction, the recipient must be specified in the invoice line items."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Creating a user-to-user invoice starts with collecting all the required information,"," ","and then sending it to Tilia to create the complete invoice."," ","By sending the invoice details to the ",{"$$mdtype":"Tag","name":"OpenapiLink","attributes":{"link":"invoicing/openapi/invoice/authorizeinvoice","text":"AuthorizeInvoice"},"children":[]}," ","API, instead of returning an invoice to the application for subsequent payment,"," ","the API returns a URL to the Tilia-hosted Checkout UI with the invoice details."," ","The user completes the purchase and the invoice in the Tilia-hosted Checkout UI."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"prepare-the-user-to-user-invoice","__idx":7},"children":["Prepare the user-to-user invoice"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The invoice data is collected in the request body object that is sent to"," ",{"$$mdtype":"Tag","name":"OpenapiLink","attributes":{"link":"invoicing/openapi/invoice/authorizeinvoice","text":"AuthorizeInvoice"},"children":[]},"."," ","The invoice data used in this example is shown here."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Notice that each line item has a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transaction_type"]}," value of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["user_to_user"]},"."," ","With this value, the recipients must be specified in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recipients"]}," property."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Also, notice that in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["recipients"]}," objects:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["source_wallet_id"]}," is not used so the payer's default wallet is used."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination_wallet_id"]}," is not used so the default wallet in the account"," ","identified by ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["destination_account_id"]}," is used."]}]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n\"account_id\": \"{{payers_account_id}}\",\n\"is_escrow\": false,\n\"invoice_mechanism\": \"tilia_hosted\",\n\"reference_type\": \"authorize_purchase_demo\",\n\"reference_id\": \"authorize_demo: {{$timestamp}}\",\n\"line_items\": [\n        {\n        \"description\": \"Product 21 description\",\n        \"product_sku\": \"Product 21 SKU\",\n        \"transaction_type\": \"user_to_user\",\n        \"currency\": \"USD\",\n        \"amount\": 1100,\n        \"recipients\": [\n            {\n                \"amount\": 1100,\n                \"description\": \"digital good\",\n                \"destination_account_id\": \"{{recipients_account_id}}\"\n            }\n        ]\n        },\n        {\n        \"description\": \"Product 22 description\",\n        \"product_sku\": \"Product 22 SKU\",\n        \"transaction_type\": \"user_to_user\",\n        \"currency\": \"USD\",\n        \"amount\": 300,\n        \"recipients\": [\n            {\n                \"amount\": 300,\n                \"description\": \"digital good\",\n                \"destination_account_id\": \"{{recipients_account_id}}\"\n            }\n        ]\n        }\n    ]\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["To send this information and create a new user-to-user transaction, in Postman:"]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Explore Tilia transactions"]}," collection, in the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transaction between users using the checkout UI"]}," folder,"," ","open the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Authorize invoice"]}," request."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the request ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Body"]}," tab, notice that it has the information described previously."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Authorize invoice"]}," request, choose ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Send"]},"."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After the response returns, open the response ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Body"]}," tab below the request to review the response body details."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["From the response body, copy and save the value of the"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["payload.redirect"]}," property to use in the next exercise."]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A typical response body looks like the following."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n    \"status\": \"Success\",\n    \"message\": [],\n    \"codes\": [],\n    \"payload\": {\n        \"nonce_auth_id\": \"c72f809a-9e38-4540-908f-8fbfdb598d9b\",\n        \"authorized_invoice_id\": \"193f3f8d-6e9f-4e4d-84c1-1951171378a5\",\n        \"redirect\": \"https://pub.staging.tilia-inc.com/tilia-test/checkout/c72f809a-9e38-4540-908f-8fbfdb598d9b?authorized_invoice_id=193f3f8d-6e9f-4e4d-84c1-1951171378a5&is_escrow=false&is_virtual=false\"\n    }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"pay-the-user-to-user-invoice","__idx":8},"children":["Pay the user-to-user invoice"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["payload.redirect"]}," value from the previous exercise is the URL to the Tilia-hosted"," ","Checkout UI with the details of the invoice already loaded and ready for payment."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["To pay the invoice using the Checkout UI:"]}]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Open another browser window."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the address bar of the new browser window, paste the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["payload.redirect"]}," value"," ","from the previous exercise and navigate to that page."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Checkout UI for that invoice should open."," ","In the Checkout UI, select the payment method and complete the purchase."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After the transaction finishes processing, choose ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Done"]}," to exit."]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["At this point, the transaction has completed."," ","In an application context, the user would return to the application."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Visit ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"#next-steps"},"children":["Next steps"]}," for information about how to view the transaction"," ","details of this, and other transactions, or continue to the next exercise."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"next-steps","__idx":9},"children":["Next steps"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The exercises in this tutorial used Postman to call the Tilia APIs."," ","For an example of how to integrate the payment flow demonstrated in this tutorial into a web page,"," ","see ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/guides/user-to-integrator"},"children":["User-to-Integrator Purchase"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you're curious, you can review the wallet balances of the users involved in this transaction by using the exercises in the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/tutorials/transactions/tutorial_txn_info"},"children":["Get info about transactions"]}," tutorial."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can also return to the ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/tutorials/transactions"},"children":["Transaction tutorials overview"]}," and find another transaction tutorial, or just go to the next transaction tutorial."]}]},"headings":[{"value":"Tutorial: Transaction using the Checkout UI","id":"tutorial-transaction-using-the-checkout-ui","depth":1},{"value":"API operations in this tutorial","id":"api-operations-in-this-tutorial","depth":3},{"value":"To complete this tutorial","id":"to-complete-this-tutorial","depth":2},{"value":"Create user-to-publisher transaction","id":"create-user-to-publisher-transaction","depth":2},{"value":"Prepare the user-to-publisher invoice","id":"prepare-the-user-to-publisher-invoice","depth":3},{"value":"Pay the user-to-publisher invoice","id":"pay-the-user-to-publisher-invoice","depth":3},{"value":"Create user-to-user transaction","id":"create-user-to-user-transaction","depth":2},{"value":"Prepare the user-to-user invoice","id":"prepare-the-user-to-user-invoice","depth":3},{"value":"Pay the user-to-user invoice","id":"pay-the-user-to-user-invoice","depth":3},{"value":"Next steps","id":"next-steps","depth":2}],"frontmatter":{"seo":{"title":"Tutorial: Transaction using the Checkout UI"}},"lastModified":"2026-02-05T18:12:30.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/tutorials/transactions/tutorial_txn_checkout","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}