What the API does
SENTINEL exposes three core compliance capabilities as HTTP endpoints, so you can integrate them into your own back-office, reporting pipeline, or customer-facing compliance portal.
- Transaction classification — Submit raw crypto transactions and get back a MiCA-compliant asset type, applicable regulation, and Modelo field mapping. Supports single transactions or batches up to 5,000 rows.
- Modelo XML generation — Pass a reporting period and classified transaction data; receive a valid Modelo 172/173 XML file ready for AEAT submission. No manual data entry.
- Regulatory alerts — Subscribe your endpoint to webhook notifications when CNMV, AEAT, or EBA publish relevant guidance updates, deadline changes, or threshold adjustments affecting your obligation scope.
All responses follow a consistent envelope format. Errors are structured with machine-readable codes. The API is stateless — you own and store the underlying transaction data.
https://api.micaready.eu/v1
All endpoints are versioned under /v1. The API is served exclusively over HTTPS. HTTP requests are rejected.
API keys
Authenticate every request with a bearer token in the Authorization header. API keys are issued per account after onboarding and can be rotated at any time from your dashboard.
# Include in every request Authorization: Bearer YOUR_API_KEY_HERE # Example with curl curl https://api.micaready.eu/v1/classify \ -H "Authorization: Bearer YOUR_API_KEY_HERE" \ -H "Content-Type: application/json" \ -d '{ ... }'
| Key format | Environment | Notes |
|---|---|---|
| YOUR_LIVE_KEY | Production | Counts against your monthly quota. Rotate immediately if compromised. |
| YOUR_TEST_KEY | Sandbox | Returns fixture data. Free, no quota. Available after onboarding. |
Request limits by plan
Limits apply per calendar month and per-minute for burst control. Exceeded requests return 429 Too Many Requests with a Retry-After header.
Batch endpoints (up to 5,000 transactions per call) count as a single API call against your quota regardless of batch size. Webhook deliveries do not count against request limits.
Classify a transaction
Submit a single crypto transaction and receive a MiCA asset classification, the applicable regulatory framework, and the correct Modelo 172/173 field mapping.
{
"txid": "0xa3f8...c291",
"asset": "USDC",
"asset_address": "0xa0b8...6c08",
"chain": "ethereum",
"amount": 4500.00,
"currency": "EUR",
"direction": "receive",
"timestamp": "2026-03-15T14:22:00Z",
"counterparty": "0x1f9840...0eb8"
}
Batch classification
Classify up to 5,000 transactions per call. Results are returned synchronously for batches under 500 items; larger batches are processed asynchronously and delivered to your webhook.
{
"transactions": [
{
"txid": "0xa3f8...c291",
"asset": "BTC",
"amount": 0.15,
"currency": "EUR",
"direction": "send",
"timestamp": "2026-03-15T10:00:00Z"
},
// ... up to 5,000 items
],
"webhook_url": "https://your-system.com/sentinel-webhook",
"period": "2026-Q1"
}
Generate Modelo XML
Pass a reporting period and your classified transaction data. SENTINEL returns a valid Modelo 172 and/or 173 XML file, ready for submission to AEAT. Schema is validated against the current AEAT XSD before delivery.
{
"period": "2026",
"modelo": "172", // "172" | "173" | "721"
"nif": "A12345678",
"razon_social": "Criptan SL",
"transactions": [
// Array of classified tx from /v1/classify
// or a job_id from a completed batch job
{ "job_id": "job_2026Q1_a9b3c1" }
],
"validate_schema": true // recommended
}
Regulatory alerts webhook
Register a webhook endpoint to receive push notifications when CNMV, AEAT, or EBA publish updates relevant to your compliance scope. No polling required.
{
"url": "https://your-system.com/compliance-alerts",
"secret": "whsec_your_signing_secret",
"events": [
"cnmv.guidance_update",
"aeat.threshold_change",
"eba.mica_opinion",
"deadline.reminder"
]
}
Webhook payloads are signed with HMAC-SHA256 using your whsec_ secret. Verify the X-SENTINEL-Signature header on every delivery.
Compliance status
Retrieve the current compliance posture for an account or reporting period — outstanding obligations, upcoming deadlines, and any open items requiring review.
{
"ok": true,
"account": {
"nif": "A12345678",
"plan": "casp",
"api_calls_used": 4821
},
"compliance": {
"overall": "action_required",
"obligations": [
{
"type": "modelo_172",
"period": "2025",
"due": "2026-03-31",
"status": "pending_submission",
"days_left": 5
},
{
"type": "mica_casp_licence",
"due": "2026-07-01",
"status": "in_progress",
"days_left": 97
}
]
},
"generated_at": "2026-03-26T06:00:00Z"
}
Docs are available after onboarding
This page is an integration teaser — enough for your engineering team to assess feasibility before you commit to a plan. The full API reference (all parameters, error codes, sandbox environment, SDK examples in Python and TypeScript, and Postman collection) is provided during CASP onboarding. Onboarding takes under 48 hours from sign-up to live credentials.
What's included in the CASP onboarding package:
- Full OpenAPI 3.1 spec — import directly into Postman, Insomnia, or your own API gateway
- Sandbox environment — test against realistic fixture data with no quota consumption
- Python & TypeScript SDKs — thin wrappers with types, retries, and error handling built in
- Webhook signature verification examples — copy-paste into your stack
- Dedicated Slack channel — direct access to the engineering team during integration
- AEAT test file validation — verify your generated Modelo XML before the real submission window opens
Ready to integrate?
API access is included on the CASP plan at €1,500/month. Send your details and we'll start onboarding within 24 hours.
Request API Access