---
title: "NestJS demo"
description: "Explore a NestJS and Svelte fundraising checkout built with Inttegro."
canonical: "https://studio.inttegro.com/demos/nestjs"
format: inttegro-machine-docs/v1
language: "C#"
sdk_version: "v10.3.0"
reader_profile: optional
reader_manifest: "https://studio.inttegro.com/machine/csharp/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: 377
model_token_report: "https://studio.inttegro.com/machine/token-report.json"
preamble_questions: 5
preamble_source: "general"
recommended_mcp_tools: []
estimated_tokens: 1160
token_estimate_method: "utf8_bytes_divided_by_4"
---

## Machine preamble

**Summary:** Explore a NestJS and Svelte fundraising checkout built with Inttegro. This C# representation uses the selected SDK's native names wherever Studio has a verified mapping.

### Five questions

#### Q1. When should the reader use NestJS 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/csharp/api/orders.md) and [Accept payment with Inttegro Checkout](https://studio.inttegro.com/machine/csharp/guides/accept-payment-with-inttegro-checkout.md) when those concerns enter scope.

## Document content

# NestJS demo

Build a NestJS contribution service with a Svelte checkout. The server resolves
the price and creates one order for all three payment modes.

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

## What you’ll build

- [NestJS](https://docs.nestjs.com/) controllers, dependency injection, and DTO validation
- Typed Product lookup and Order creation with the [Inttegro TypeScript SDK](https://studio.inttegro.com/machine/csharp/sdks/typescript.md)
- A stable idempotency key and readable order number
- A Svelte 5 payment island using [`@inttegro/svelte`](https://studio.inttegro.com/machine/csharp/web/svelte.md)
- Server-owned contribution tiers and safe errors

## See the flow

The gallery shows one server-created order in each Checkout presentation. The
browser cannot choose the price or use the API key.

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

## Run the demo

Add your API key, Product ID, Price ID, and public origin. The
[released README](https://github.com/inttegro/inttegro-demos/blob/nestjs-v1.8.3/nestjs/README.md)
has the local, Docker, build, and test commands.

## Key files

1. [`src/checkout.service.ts`](https://github.com/inttegro/inttegro-demos/blob/nestjs-v1.8.3/nestjs/src/checkout.service.ts)
   validates the tier and creates the order.
2. [`src/campaign.controller.ts`](https://github.com/inttegro/inttegro-demos/blob/nestjs-v1.8.3/nestjs/src/campaign.controller.ts)
   handles validation, safe errors, and the response.
3. [`client/CheckoutFlow.svelte`](https://github.com/inttegro/inttegro-demos/blob/nestjs-v1.8.3/nestjs/client/CheckoutFlow.svelte)
   manages embedded and modal Checkout.
4. [`client/main.ts`](https://github.com/inttegro/inttegro-demos/blob/nestjs-v1.8.3/nestjs/client/main.ts)
   mounts Svelte in the server-rendered page.

## Before you ship

Store the contribution, idempotency key, and Inttegro order ID. Update totals
and send receipts only after server-side payment verification.

## Next

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