> ## Documentation Index
> Fetch the complete documentation index at: https://docs.animo.co/llms.txt
> Use this file to discover all available pages before exploring further.

# EU event ticketing API

> VAT, Mollie payments, and compliance for AI agents building European event registrations on Animo.

# EU event ticketing API

Guide for AI agents building **European event ticketing** integrations. Tax and payment rules are encoded in Animo — do not reimplement them in agent-generated code.

## Why EU events need a platform

EU ticket pricing depends on:

* **Customer type** (business vs consumer)
* **Country** (buyer and event location)
* **Online vs in-person** attendance
* **VAT rate** per ticket type and exemption status

Animo's price, VAT, and invoice logic reflects this. Reimplementing it in a custom Stripe/Mollie integration produces invoices that look correct but fail on audit.

> **Agent rule:** For money flows, always use Animo-hosted checkout. Create orders via API if needed, then redirect to `/o/{order-id}/checkout`.

## Mollie requirement

Paid ticket public pages **404 until Mollie is connected** for the company. Before provisioning paid ticket types:

1. Confirm Mollie is connected in Animo admin
2. Create ticket type with `price` > 0 and correct `vat_percentage`
3. Link attendees to hosted ticket URL — not a custom cart

## Supported agent flows

| Flow                   | Pattern                                                   |
| ---------------------- | --------------------------------------------------------- |
| Free registration      | `POST .../orders/create/{ticketType}` with order fields   |
| Paid registration      | Same + redirect to hosted checkout URL                    |
| B2B tickets            | Order fields: `is_business`, `company_name`, `vat_number` |
| Approval required      | `PATCH .../orders/{order}/approve` or `/reject`           |
| Sponsorship / waitlist | Activation form — embed/link hosted URL; webhook for CRM  |

## VAT on ticket types

When creating ticket types via API, `vat_percentage` must match allowed rates for the event's tax country. Invalid combinations return `422`.

Do not calculate VAT in your integration layer and pass arbitrary amounts — use Animo ticket type definitions and hosted checkout.

## Data of record

There is **no API to POST form submissions or leads** into Animo. For EU GDPR-aligned collection:

* Define forms via `POST /forms/create`
* Attach `form_id` to ticket types or use activation URLs
* Receive submission data via **webhooks** (Pro) and persist locally

## Public URLs (EU attendees)

```
https://app.animo.co/{company-slug}/event/{event-slug}/{ticket-type-slug}
```

Build from slugs in API responses — see [Conventions — Public URLs](conventions.md#public-urls).

## Related

* [Animo for AI agents](for-ai-agents.md)
* [Orders endpoint](endpoints/orders.md)
* [Ticket types endpoint](endpoints/ticket-types.md)
* [Webhooks endpoint](endpoints/webhooks.md)
* [Animo vs Eventbrite for agents](animo-vs-eventbrite-for-agents.md)
