A source is data, never code — this is the whole of it.
raisin.json
{
"id": "raisin",
"name": "Raisin",
"service": "raisin",
"trust": "first-party",
"credit": {
"author": {
"name": "David Marín",
"url": "https://davefx.com"
},
"capture": {
"name": "David Marín",
"url": "https://davefx.com"
}
},
"domain": "raisin.com",
"country": "global",
"categories": [
"banking",
"investment"
],
"version": "2026-08-26.1",
"minVersion": "0.5.0.32",
"keepRaw": true,
"contributors": [
"David Marín Carreño"
],
"match": [
"https://www.raisin.com/*"
],
"crossDomainHosts": [
"api2.weltsparen.de"
],
"auth": {
"mode": "bearer",
"replayHeaders": [
"authorization"
],
"capturePaths": [
"/tams/",
"/dbff/",
"/dds/",
"/cas/"
],
"context": [
{
"name": "customer_id",
"from": "url",
"match": "customer_id=(BAC_[0-9_]+)"
}
],
"tokenFromStorage": {
"key": "auth_token",
"field": "access_token",
"scheme": "Bearer"
},
"cookies": false
},
"api": {
"host": "https://api2.weltsparen.de"
},
"streams": [
{
"id": "movimientos",
"name": "Movimientos (cuenta Raisin)",
"schema": "transaction@1",
"categories": [
"banking"
],
"keepRaw": true,
"api": {
"groups": {
"path": "/tams/v1/accounts",
"itemsPath": "$",
"params": {
"filter": "customerId eq {ctx.customer_id} & type eq TA_INTERNAL"
},
"fields": {
"id": "id",
"name": "accountNumber",
"iban": "iban",
"currency": "currencyCode",
"type": "type"
},
"mask": [
"iban"
],
"headers": {
"accept": "application/json, text/plain, */*"
}
},
"list": {
"path": "/tams/v1/accounts/{group.id}/transactions",
"paging": "offset",
"offsetParam": "offset",
"offsetStep": 10,
"itemsPath": "$",
"params": {
"limit": 10,
"date_from": "{daysAgo:90}"
},
"headers": {
"accept": "application/json, text/plain, */*"
}
}
},
"fields": {
"internalId": "id",
"date": "bookingDate",
"amount": "amount",
"currency": "currencyCode",
"counterparty": "counterpartyName",
"description": "referenceText"
}
},
{
"id": "depositos",
"name": "Depósitos a plazo",
"schema": "investment@2",
"categories": [
"investment"
],
"keepRaw": true,
"api": {
"list": {
"paging": "none",
"itemsPath": "entries",
"params": {
"customer_id": "{ctx.customer_id}",
"locale": "{locale}",
"sort_by": "availability",
"order_by": "asc"
},
"keep": {
"field": "accounting.deposit_id",
"prefix": "FDA_"
},
"headers": {
"accept": "application/json, text/plain, */*"
},
"paths": [
"/dbff/v1/public/deposits/dashboard/active",
"/dbff/v1/public/deposits/dashboard/inactive"
]
}
},
"fields": {
"internalId": "accounting.deposit_id",
"date": "deposit.opening_date",
"amount": "accounting.balance.amount.denomination",
"currency": "accounting.balance.amount.currency",
"description": "{i18n:deposit} {product.deposit_taking_bank.name} {accounting.effective_interest_rate:num}% {accounting.term:duration} - {deposit.opening_date:date}",
"counterparty": "{product.deposit_taking_bank.name}",
"group": "{i18n:deposit} {product.deposit_taking_bank.name} {accounting.effective_interest_rate:num}% {accounting.term:duration} - {deposit.opening_date:date}"
}
},
{
"id": "ahorro",
"name": "Movimientos (cuentas de ahorro)",
"schema": "transaction@1",
"categories": [
"banking"
],
"keepRaw": true,
"api": {
"groups": {
"itemsPath": "entries",
"params": {
"customer_id": "{ctx.customer_id}",
"locale": "{locale}",
"sort_by": "availability",
"order_by": "asc"
},
"keep": {
"field": "accounting.deposit_id",
"prefix": "OMA_"
},
"fields": {
"id": "accounting.deposit_id",
"currency": "accounting.balance.amount.currency",
"name": "{i18n:account} {product.deposit_taking_bank.name}"
},
"headers": {
"accept": "application/json, text/plain, */*"
},
"paths": [
"/dbff/v1/public/deposits/dashboard/active",
"/dbff/v1/public/deposits/dashboard/inactive"
]
},
"list": {
"path": "/dbff/v1/public/deposits/{group.id}",
"paging": "none",
"itemsPath": "accounting.transactions",
"params": {
"customer_id": "{ctx.customer_id}",
"locale": "{locale:lower}"
},
"headers": {
"accept": "application/json, text/plain, */*"
}
}
},
"fields": {
"internalId": "transaction_id",
"date": "value_date",
"amount": "amount.denomination",
"currency": "amount.currency",
"description": "type"
}
},
{
"id": "documentos",
"name": "Documentos de depósitos",
"schema": "invoice@1",
"categories": [
"banking"
],
"keepRaw": true,
"api": {
"groups": {
"itemsPath": "entries",
"params": {
"customer_id": "{ctx.customer_id}",
"locale": "{locale}",
"sort_by": "availability",
"order_by": "asc"
},
"keep": {
"field": "accounting.deposit_id",
"prefix": "FDA_"
},
"fields": {
"id": "accounting.deposit_id",
"name": "{i18n:deposit} {product.deposit_taking_bank.name} {accounting.effective_interest_rate:num}% {accounting.term:duration} - {deposit.opening_date:date}"
},
"headers": {
"accept": "application/json, text/plain, */*"
},
"paths": [
"/dbff/v1/public/deposits/dashboard/active",
"/dbff/v1/public/deposits/dashboard/inactive"
]
},
"list": {
"path": "/dds/api/v2/public/documents",
"paging": "none",
"itemsPath": "documents",
"params": {
"customer_id": "{ctx.customer_id}",
"deposit_id": "{group.id}"
},
"headers": {
"accept": "application/json, text/plain, */*"
}
},
"pdf": {
"path": "/dds/api/v2/public/documents/{internalId}",
"params": {
"preview": "true"
}
}
},
"fields": {
"internalId": "id",
"date": "created",
"description": "title",
"type": "document_type"
}
},
{
"id": "documentos-ahorro",
"name": "Documentos de cuentas de ahorro",
"schema": "invoice@1",
"categories": [
"banking"
],
"keepRaw": true,
"api": {
"groups": {
"itemsPath": "entries",
"params": {
"customer_id": "{ctx.customer_id}",
"locale": "{locale}",
"sort_by": "availability",
"order_by": "asc"
},
"keep": {
"field": "accounting.deposit_id",
"prefix": "OMA_"
},
"fields": {
"id": "accounting.deposit_id",
"name": "{i18n:account} {product.deposit_taking_bank.name}"
},
"headers": {
"accept": "application/json, text/plain, */*"
},
"paths": [
"/dbff/v1/public/deposits/dashboard/active",
"/dbff/v1/public/deposits/dashboard/inactive"
]
},
"list": {
"path": "/dds/api/v2/public/documents",
"paging": "none",
"itemsPath": "documents",
"params": {
"customer_id": "{ctx.customer_id}",
"deposit_id": "{group.id}"
},
"headers": {
"accept": "application/json, text/plain, */*"
}
},
"pdf": {
"path": "/dds/api/v2/public/documents/{internalId}",
"params": {
"preview": "true"
}
}
},
"fields": {
"internalId": "id",
"date": "created",
"description": "title",
"type": "document_type"
}
}
],
"changelog": [
{
"version": "2026-08-26.1",
"changes": {
"en": "Trust level raised to first-party: written and verified against the real service by the project, not contributed unreviewed. The label describes provenance, not permission — the same-domain guard, the consent screen and every other rule apply identically whatever it says.",
"es": "Confianza elevada a first-party: escrita y verificada contra el servicio real por el proyecto, no una aportación sin revisar. La etiqueta describe procedencia, no permisos — la guardia de mismo dominio, la pantalla de consentimiento y las demás reglas se aplican igual diga lo que diga."
}
},
{
"version": "2026-08-26",
"changes": {
"en": "Records authorship: the session was recorded and the definition written by the maintainer. No change to extraction.",
"es": "Registra la autoría: la sesión la grabó y la definición la escribió el mantenedor. No cambia la extracción."
}
},
{
"version": "2026-08-08",
"changes": {
"en": "No change to what this source extracts. This version gave it its guide page on habeas.dev.",
"es": "Sin cambios en lo que extrae esta fuente. Esta versión le dio su página de guía en habeas.dev."
}
},
{
"version": "2026-07-21",
"changes": {
"en": "Declared country: \"global\" — the field was missing since the multi-market rename (raisin-es -> raisin), so the catalog showed no 🌐 badge and country filters didn't treat it as worldwide.",
"es": "Declara country: \"global\" — el campo faltaba desde el renombrado multimercado (raisin-es -> raisin), así que el catálogo no mostraba el distintivo 🌐 y los filtros por país no la trataban como mundial."
}
},
{
"version": "2026-07-20.18",
"changes": {
"en": "Product names now appear in your language, in any Raisin country. Needs Habeas 0.5.0.32 or newer.",
"es": "Los nombres de producto aparecen ahora en tu idioma, en cualquier país de Raisin. Requiere Habeas 0.5.0.32 o posterior."
}
},
{
"version": "2026-07-20.17",
"changes": {
"en": "Now works for every Raisin country, not only Spain, and follows your browser's language. Needs Habeas 0.5.0.30 or newer.",
"es": "Ahora funciona en todos los países de Raisin, no solo España, y sigue el idioma de tu navegador. Requiere Habeas 0.5.0.30 o posterior."
}
},
{
"version": "2026-07-20.16",
"changes": {
"en": "A deposit now shows the same full name everywhere: in its records, in its documents and in the account picker.",
"es": "Un depósito muestra ahora el mismo nombre completo en todas partes: en sus registros, en sus documentos y en el selector de cuentas."
}
},
{
"version": "2026-07-20.15",
"changes": {
"en": "Deposits and savings accounts now carry names that match what each one actually is, and each deposit's documents are filed under it. Needs Habeas 0.5.0.29 or newer.",
"es": "Los depósitos y las cuentas de ahorro llevan ahora nombres acordes a lo que es cada uno, y los documentos de cada depósito quedan archivados bajo él. Requiere Habeas 0.5.0.29 o posterior."
}
},
{
"version": "2026-07-20.14",
"changes": {
"en": "Requires 0.5.0.28: group-field templates now resolve (the account picker AND the Account column show the readable name instead of a raw id).",
"es": "Requiere 0.5.0.28: las plantillas de campo de grupo ya se resuelven (tanto el selector de cuentas como la columna Cuenta muestran el nombre legible en vez de un id crudo)."
}
},
{
"version": "2026-07-20.13",
"changes": {
"en": "Deposit names now read in your language, with the rate and the term written out. Needs Habeas 0.5.0.27 or newer.",
"es": "Los nombres de los depósitos se leen ahora en tu idioma, con el tipo y el plazo escritos. Requiere Habeas 0.5.0.27 o posterior."
}
},
{
"version": "2026-07-20.12",
"changes": {
"en": "Accounts and deposits now have readable names, with the real bank, the rate and the opening date, instead of an internal code.",
"es": "Las cuentas y los depósitos tienen ya nombres legibles, con el banco real, el tipo y la fecha de apertura, en vez de un código interno."
}
},
{
"version": "2026-07-20.11",
"changes": {
"en": "Cancelled and finished deposits are included now, with all their documents. Needs Habeas 0.5.0.26 or newer.",
"es": "Se incluyen ahora los depósitos cancelados y finalizados, con todos sus documentos. Requiere Habeas 0.5.0.26 o posterior."
}
},
{
"version": "2026-07-20.10",
"changes": {
"en": "Savings and deposit accounts show the bank's name instead of an internal identifier. Needs Habeas 0.5.0.25 or newer.",
"es": "Las cuentas de ahorro y los depósitos muestran el nombre del banco en lugar de un identificador interno. Requiere Habeas 0.5.0.25 o posterior."
}
},
{
"version": "2026-07-20.9",
"changes": {
"en": "Fixes deposits, savings and documents coming back empty. Needs Habeas 0.5.0.24 or newer.",
"es": "Corrige los depósitos, el ahorro y los documentos, que llegaban vacíos. Requiere Habeas 0.5.0.24 o posterior."
}
},
{
"version": "2026-07-20.8",
"changes": {
"en": "Fixes the account list failing to load. Needs Habeas 0.5.0.19 or newer.",
"es": "Corrige la lista de cuentas, que no cargaba. Requiere Habeas 0.5.0.19 o posterior."
}
},
{
"version": "2026-07-20.7",
"changes": {
"en": "Fixes an 'unauthorised' error that was blocking every listing.",
"es": "Corrige un error de 'no autorizado' que bloqueaba todos los listados."
}
},
{
"version": "2026-07-20.6",
"changes": {
"en": "Fixes sign-in errors on the request that reads your Raisin data.",
"es": "Corrige los errores de acceso en la petición que lee tus datos de Raisin."
}
},
{
"version": "2026-07-20.5",
"changes": {
"en": "Restores the session fix, this time correctly: a long sync no longer stops partway.",
"es": "Restaura el arreglo de la sesión, esta vez bien: una sincronización larga ya no se detiene a medias."
}
},
{
"version": "2026-07-20.4",
"changes": {
"en": "Undoes the previous change, which caused sign-in errors. Nothing new for you.",
"es": "Deshace el cambio anterior, que provocaba errores de acceso. Nada nuevo para ti."
}
},
{
"version": "2026-07-20.3",
"changes": {
"en": "Another step in the same sign-in fix, superseded two versions later. Nothing new for you.",
"es": "Otro paso del mismo arreglo de acceso, sustituido dos versiones después. Nada nuevo para ti."
}
},
{
"version": "2026-07-20.2",
"changes": {
"en": "Keeps your session valid through a long sync. It used to expire after a few minutes and the sync stopped.",
"es": "Mantiene tu sesión válida durante una sincronización larga. Antes caducaba a los pocos minutos y la sincronización se detenía."
}
},
{
"version": "2026-07-20.1",
"changes": {
"en": "Fixes an 'unauthorised' error when listing your accounts.",
"es": "Corrige un error de 'no autorizado' al listar tus cuentas."
}
},
{
"version": "2026-07-20",
"changes": {
"en": "Raisin (WeltSparen): your account movements, fixed-term deposits, flexible savings movements and your deposit documents. Last 90 days, without asking you for a one-time code.",
"es": "Raisin (WeltSparen): los movimientos de tu cuenta, los depósitos a plazo, los movimientos del ahorro flexible y los documentos de tus depósitos. Últimos 90 días, sin pedirte código de un solo uso."
}
}
],
"i18n": {
"deposit": {
"en": "Deposit",
"es": "Depósito",
"de": "Festgeld",
"fr": "Dépôt",
"nl": "Deposito"
},
"account": {
"en": "Account",
"es": "Cuenta",
"de": "Konto",
"fr": "Compte",
"nl": "Rekening"
}
},
"content": {
"en": {
"slug": "raisin-statements",
"docs": "transactions, deposits and documents",
"h1": "Download all your Raisin transactions, deposits and documents at once",
"intro": "Raisin spreads what matters across several products: the account movements, the fixed-term deposits, the savings balance and the documents for each. Each lives on its own screen, so the full picture is never in one place.",
"title": "How to download your Raisin transactions, deposits and documents"
},
"es": {
"slug": "extractos-raisin",
"docs": "movimientos, depósitos y documentos",
"h1": "Descarga todos tus movimientos, depósitos y documentos de Raisin de una vez",
"intro": "Raisin reparte lo importante entre varios productos: los movimientos de la cuenta, los depósitos a plazo, el saldo de ahorro y los documentos de cada uno. Cada cosa vive en su pantalla, así que la foto completa nunca está en un solo sitio.",
"title": "Cómo descargar tus movimientos, depósitos y documentos de Raisin"
}
},
"brand": "Raisin"
}