---
title: "Spring Boot demo"
description: "Explore a Spring Boot invoice portal built with the Inttegro Java SDK."
canonical: "https://studio.inttegro.com/demos/spring-boot"
format: inttegro-machine-docs/v1
language: "Python"
sdk_version: "v12.0.0"
reader_profile: optional
reader_manifest: "https://studio.inttegro.com/machine/python/readers/index.json"
reader_identification: "Optional: declare your client only if known and your current-session capabilities; use reader_manifest for supplemental recommendations."
preamble_estimated_tokens: 379
model_token_report: "https://studio.inttegro.com/machine/token-report.json"
preamble_questions: 5
preamble_source: "general"
recommended_mcp_tools: []
estimated_tokens: 1169
token_estimate_method: "utf8_bytes_divided_by_4"
---

## Machine preamble

**Summary:** Explore a Spring Boot invoice portal built with the Inttegro Java SDK. This Python representation uses the selected SDK's native names wherever Studio has a verified mapping.

### Five questions

#### Q1. When should the reader use Spring Boot demo?

Use this demo guide to inspect a complete working integration and compare it with the application being built.

#### Q2. What is authoritative on this page?

The demo proves one working composition, not the only supported architecture. Follow its linked SDK and API pages for current contracts.

#### Q3. What page-specific constraint matters most?

Do not copy demo credentials, identifiers, or deployment assumptions. Recreate configuration through supported public setup paths.

#### Q4. Can Inttegro MCP materially help with this task?

No catalog ability is sufficiently specific to recommend for this page. Use the documentation directly; consult the MCP catalog only if the task later requires governed live account context or a supported operation.

#### Q5. How should the reader verify the answer and continue?

Open the hosted experience, trace the corresponding source, and verify that its SDK and API usage still matches the current linked documentation. Continue with [Read the Orders API](https://studio.inttegro.com/machine/python/api/orders.md) and [Accept payment with Inttegro Checkout](https://studio.inttegro.com/machine/python/guides/accept-payment-with-inttegro-checkout.md) when those concerns enter scope.

## Document content

# Spring Boot demo

Build a Spring MVC invoice portal with embedded, modal, and hosted Checkout.
The Java SDK creates the order on the server.

> Demo Release is interactive content. Use the canonical page to view it.

## What you’ll build

- [Spring Boot 4](https://docs.spring.io/spring-boot/system-requirements.html)
  with Spring MVC, validation, and Thymeleaf
- Builder-based order creation with the [Inttegro Java SDK](https://studio.inttegro.com/machine/python/sdks/java.md)
- Server-held credentials, idempotency, and safe errors
- Thymeleaf views progressively enhanced with [`@inttegro/js`](https://studio.inttegro.com/machine/python/web/javascript.md)

## See the flow

The gallery shows one server-created order in each Checkout presentation. The
Java SDK, API key, invoice, and amount remain on the server.

> Demo Presentation Gallery is interactive content. Use the canonical page to view it.

## Run the demo

Install Java 17 and [Maven](https://maven.apache.org/guides/getting-started/).
Until Java SDK 5.0.0 reaches Maven Central, install it from this Commerce
checkout first. The
[released README](https://github.com/inttegro/inttegro-demos/blob/spring-boot-v1.8.3/spring-boot/README.md)
has the exact commands.

## Key files

1. [`CheckoutService.java`](https://github.com/inttegro/inttegro-demos/blob/spring-boot-v1.8.3/spring-boot/src/main/java/com/inttegro/demo/CheckoutService.java)
   creates the order and maps safe errors.
2. [`CheckoutController.java`](https://github.com/inttegro/inttegro-demos/blob/spring-boot-v1.8.3/spring-boot/src/main/java/com/inttegro/demo/CheckoutController.java)
   handles validation and the JSON or `303` response.
3. [`checkout-presentations.js`](https://github.com/inttegro/inttegro-demos/blob/spring-boot-v1.8.3/spring-boot/src/main/resources/static/checkout-presentations.js)
   presents Checkout in all three modes.

## Before you ship

Store the invoice and Inttegro order IDs together. Verify payment before
marking the invoice paid or releasing services.

## Next

- [Browse the released source](https://github.com/inttegro/inttegro-demos/tree/spring-boot-v1.8.3/spring-boot)
- [Accept payment with Inttegro Checkout](https://studio.inttegro.com/machine/python/guides/accept-payment-with-inttegro-checkout.md)
- [Read the Orders API](https://studio.inttegro.com/machine/python/api/orders.md)
