Download OpenAPI specification:
Auf PSD2 basierende regulatorische APIs bieten Zugang zu bestimmten finanziellen Informationen wie Bankkontensalden und Transaktionen. Es gibt jedoch andere Quellen von Vermögensinformationen, die über diese APIs nicht zugänglich sind. Die Wealth Reader API erweitert die von regulatorischen APIs angebotenen Informationen, indem sie Echtzeitzugang zu zusätzlichen Vermögensquellen in jeder Einrichtung weltweit bietet. Es gibt zwei weitere verwandte Dokumente, die Ihnen bei der Integration der Wealth Reader API helfen werden. Eines ist der Javascript-Widget-Integrationsleitfaden: https://docs-en.wealthreader.com/ und das andere ist eine auf dieser Dokumentation basierende Postman-Sammlung. Sehr wichtig: Diese API-Definition ist für Kunden angepasst, die über Widget integrieren, daher wurden einige Parameter weggelassen, die für diesen Integrationstyp nicht notwendig sind, wie z.B. Bankauthentifizierungsparameter, da ein Token verwendet wird.
Ruft Finanzanlagen und Details ihrer Zusammensetzung ab, einschließlich Investmentportfolios bestehend aus Aktien oder Fonds, Kreditkarten, Versicherungen und Darlehen. Enthält Eigentumsinformationen für jedes Asset sowie eindeutige Kennungen, die die Datenverarbeitung erleichtern. Es ist möglich, Mock-Daten zu erhalten. Erkundigen Sie sich beim technischen Team, wie das geht.
| api_key | string Identifiziert den Kunden im Dienst |
| code | string Name der Einrichtung. Die vollständige Liste ist mit GET verfügbar Beispiel: |
| token | string Identifiziert die verwalteten Anmeldedaten. Der Ablauf, durch den das Token erhalten wurde, ist im Dokument 'Widget-Integrationsleitfaden' beschrieben. Die folgenden Mock-Benutzer sind verfügbar: MOCKDATA, OK-Antwort; MOCKOTP, Antwort mit OTP-Herausforderung; MOCKLOGINKO, Antwort mit Login-Fehler Beispiel: |
| product_types | string Enum: "accounts" "portfolios" "cards" "receipts" "loans" "factoring" "confirming" "properties" "invoices" "files" "deposits" "leases" "insurances" Liste der Produkttypen, deren Informationen abgerufen werden sollen. Akzeptiert mehrere durch Kommas getrennte Werte. Beispiel: |
| only_balances | boolean Default: false Gibt an, ob nur die Salden der Produkte anstelle aller verfügbaren Informationen abgerufen werden sollen. Standardwert: false. Beispiel: |
| fetch_transaction_details | boolean Default: false Gibt an, ob erweiterte Transaktionsdetails abgerufen werden sollen, wenn der Connector der Einrichtung dies unterstützt. WICHTIG: Die Aktivierung bedeutet, dass pro Transaktion eine oder mehrere zusätzliche Navigationen durchgeführt werden, um die zurückgegebenen Informationen anzureichern. Dies erhöht unweigerlich und erheblich die Ausführungszeit. Die Anzahl der zusätzlichen Navigationen wächst mit dem Transaktionsvolumen. Es wird empfohlen, dies nur zu aktivieren, wenn Sie sicher sind, dass ein höherer Detaillierungsgrad als der standardmäßig zurückgegebene erforderlich ist. Die abgerufenen Details werden in den Schlüssel Beispiel: |
| date_from | string <date> Datum, ab dem Transaktionen angefordert werden, im Format JJJJ-MM-TT. Muss ein Datum vor heute sein. Beispiel: |
| date_to | string <date> Dies gilt nur für die Einschränkung nach zukünftigen Daten für Produkte Loan und Confirming, im Format JJJJ-MM-TT. Das Datum muss nach heute liegen Beispiel: |
| required_products_schema | string Schema der erforderlichen Produkte. Gibt die Konten oder Karten an, von denen Daten gewünscht werden, mit zusätzlichen Konfigurationen. Beispiel:
|
| add_pdf_from_uuids | string Akzeptiert durch Kommas getrennte Transaktions-UUIDs. Parameter wird nur berücksichtigt, wenn product_types ALL ist oder accounts enthält. Fügt das mit jeder angeforderten Banktransaktion verknüpfte PDF-Dokument hinzu. Beispiel:
|
| otp_method | string Wählt den Zwei-Faktor-Zustellkanal, wenn die API Fehlercode 2017 oder 20171 zurückgab (mehrere OTP-Methoden). Erneut aufrufen mit derselben Sitzungs-ID wie in dieser Antwort und otp_method auf die exakte Zeichenkette im Feld otp_method eines Objekts in statistics.otpMethods setzen — nicht den Array-Index. Bei der ersten Credential-Anfrage weglassen; nach Benutzerwahl senden. Das untenstehende Beispiel ist nur illustrativ; kopieren Sie stets die Zeichenkette aus statistics.otpMethods. Beispiel: |
api_key=a1b2c3d4e5f6g7h8i9j0&code=caixabank&token=1234Asdf&product_types=accounts%2Cportfolios&only_balances=false&date_from=2024-01-01&date_to=2025-12-31&required_products_schema=%7B%22ACCOUNTS%22%3A%7B%220ae4d722b1c82feeafb4b36b2893230444071335%22%3A%7B%22only_balances%22%3Afalse%2C%22add_pdf_from_uuids%22%3A%5B%2290763109952d4f2ebece8dceca8254078c5384a0%22%5D%2C%22date_from%22%3A%222024-04-03%22%7D%7D%2C%22CARDS%22%3A%7B%22957e6f63546f3fecacce80192b6f7436496dc057%22%3A%7B%7D%7D%7D&add_pdf_from_uuids=20966426721d0885ef9d4b95535e1d3198936f16%2C8772d6c978d37d7af83094abf380b8b703e94105
[- {
- "success": true,
- "payload": {
- "user_information": {
- "ID": "12345678Z",
- "name": "LUIS GARCIA BAQUERO",
- "gender": "male",
- "birth_date": "1980-09-26",
- "birth_place": "Ibiza",
- "email": "lgarcia@gmail.com",
- "cell_phone": "+34666123456",
- "address": "CALLE BAILEN 41 1A",
- "city": "MADRID",
- "country": "SPAIN",
- "postal_code": "28005",
- "marital_status": "married",
- "job": "CUENTA PROPIA"
}, - "portfolios": [
- {
- "subtype": "funds",
- "uuid": "05e4563f5bbf2d06efd0a29ebe7edbbb4e1bff63",
- "code": "1465010091400123456789",
- "name": "Fondo Dinámico",
- "currency": "EUR",
- "total_value": 3275.6,
- "weighted_return": 8.49,
- "annualized_volatility": 0,
- "yield": 256.27,
- "contributions": 3019.33,
- "withholdings": 0,
- "contracting_date": "2016-04-27",
- "linked_account": "ES4021005321592566566159",
- "portfolio_statement": "JVBERi0xLjQKJ...",
- "owners": [
- {
- "ID": "12345678Z",
- "name": "LUIS GARCIA BAQUERO",
- "role": "owner"
}
], - "composition": [
- {
- "ISIN": "LU1234567890",
- "ISIN_description": "My Fund Class A",
- "currency": "EUR",
- "weighting": 100,
- "shares": 225.0077,
- "price": 14.5577,
- "total_amount": 3275.6,
- "reference_currency": "EUR",
- "exchange_rate": 1
}
], - "transactions": [
- {
- "uuid": "05e4563f5bbf2d06efd0a29ebe7edbbb4e1bff63",
- "operation_pending": false,
- "operation_date": "2020-01-30",
- "value_date": "2020-01-30",
- "operation_type": "purchase",
- "shares": 1076.8273,
- "price": 11.1438,
- "total_amount": 12000,
- "currency": "EUR",
- "reference_currency": "USD",
- "exchange_rate": 1,
- "additional_info": [
- {
- "key": "string",
- "value": "string"
}
]
}
]
}
], - "accounts": [
- {
- "uuid": "8076932f04f73e27fe608fee4d12fca8708dec8c",
- "subtype": "checking",
- "interest_rate": 0.5,
- "line_of_credit_details": {
- "credit_limit": 50000,
- "interest_rate": 4.5,
- "credit_used": 15000,
- "credit_available": 35000,
- "constitution_date": "2021-05-20",
- "expiration_date": "2031-05-20"
}, - "code": "ES4914651234561234567890",
- "name": "Cuenta NÓMINA",
- "currency": "EUR",
- "owners": [
- {
- "ID": "12345678Z",
- "name": "LUIS GARCIA BAQUERO",
- "role": "owner"
}
], - "balances": {
- "available": 14302.07,
- "current": 14302.07
}, - "additional_info": [
- {
- "key": "string",
- "value": "string"
}
], - "transactions": [
- {
- "uuid": "d0c2ea4c072cf4d7b0fd494d7728260d736e6b25",
- "operation_date": "2022-12-30",
- "value_date": "2022-12-30",
- "amount": -1.1,
- "balance": 14302.07,
- "description": "Pago en TELPARK MADRID ES",
- "pdf_file": "string",
- "pdf_file_settled": true,
- "categorization": {
- "type": 1,
- "portfolio-uuid": "1465010091400123456789",
- "ISIN": "US88160R1014"
}, - "transfer_details": {
- "concept": "Pago de factura 12345",
- "sender_receiver": "Juan Pérez",
- "account_number": "ESXX12341234121234567890"
}, - "additional_info": [
- {
- "key": "string",
- "value": "string"
}
]
}
]
}
], - "cards": [
- {
- "status": "active",
- "subtype": "credit",
- "uuid": "aefd89eade0a6a09d9b8eab4c22da6a6a37632e6",
- "code": "516097********1234",
- "name": "Credit Card",
- "currency": "EUR",
- "next_payment_date": "2023-01-05",
- "anual_interest": 17.48,
- "tae": 18.95,
- "balances": {
- "available": 3980,
- "limit": 4000,
- "disposed": 20
}, - "linked_account": "ES4021005321592566566159",
- "owner": [
- {
- "ID": "12345678Z",
- "name": "LUIS GARCIA BAQUERO",
- "role": "owner"
}
], - "additional_info": [
- {
- "key": "string",
- "value": "string"
}
], - "transactions": [
- {
- "uuid": "78ceedca9cd9d2f2bfbb2439795ab6a1fcefc12b",
- "settled": false,
- "operation_date": "2022-12-28",
- "value_date": "2022-12-28",
- "amount": -20,
- "currency": "EUR",
- "exchange_rate": 1,
- "description": "Pago en AMZN MKTP ES123CM0ZM4",
- "categorization": {
- "type": 0
}, - "additional_info": [
- {
- "key": "string",
- "value": "string"
}
]
}
]
}
], - "receipts": [
- {
- "last_receipt_date": "2023-07-23",
- "issuer": "Canal de Isabel II",
- "description": "RECIBO CONTRATO 328774628 FACTURA DEL 18 07 23",
- "account": "ES0123456789012345678901",
- "status": "paid",
- "amount": 50.75,
- "pdf_file": "string",
- "pdf_file_settled": true
}
], - "loans": [
- {
- "uuid": "0ae4d722b1c82feeafb4b36b2893230444071335",
- "contract_number": "9620.321-205439-70",
- "loan_type": "Variable rate mortgage",
- "constitution_date": "2022-02-23",
- "currency": "EUR",
- "granted_capital": 207000,
- "pending_amount": 166639.77,
- "next_installment": 1040.3,
- "linked_account": "ES0123456789012345678901",
- "holders": [
- {
- "id": "32945945D",
- "name": "Diego Serrano"
}
], - "interest_rate": 3.768,
- "expiration_date": "2042-03-01",
- "pending_receipts": 223,
- "amortization_made": [
- {
- "uuid": "8772d6c978d37d7af83094abf380b8b703e94105",
- "date": "2022-12-01",
- "amortized": 515.43,
- "interest": 524.87,
- "total": 1040.3,
- "pending_capital": 166639.77,
- "operation_type": "receipt_paid"
}
], - "amortization_pending": [
- {
- "uuid": "e59296b79e7f80cec26679d2c65883025fd59295",
- "date": "2030-12-01",
- "amortized": 515.43,
- "interest": 524.87,
- "total": 1040.3,
- "pending_capital": 66639.77,
- "operation_type": "receipt_scheduled"
}
]
}
], - "deposits": [
- {
- "uuid": "0ae4d722b1c82feeafb4b36b2893230444071335",
- "code": "DPZ-1234567890",
- "name": "12-month deposit",
- "currency": "EUR",
- "principal": 10000,
- "pending_principal": 5000,
- "start_date": "2024-09-01",
- "maturity_date": "2025-09-01",
- "payment_frequency": "at_maturity",
- "capitalization": "none",
- "rate_type": "fixed",
- "nominal_interest_rate": 3,
- "apr_tae": 3.04,
- "day_count_convention": "ACT/365",
- "linked_account": "ES4021005321592566566159",
- "accrued_interest": 24.58,
- "expected_interest_total": 300,
- "withholding_tax_rate": 19,
- "status": "active",
- "auto_renewal": {
- "enabled": false,
- "renewed_times": 0,
- "next_renewal_date": "2019-08-24",
- "renewal_term_months": 0
}, - "early_withdrawal": {
- "allowed": true,
- "penalty_type": "interest_loss",
- "penalty_value": 100,
- "notes": "Loss of accrued interest for the current period"
}, - "owners": [
- {
- "ID": "12345678Z",
- "name": "LUIS GARCIA BAQUERO",
- "role": "owner"
}
], - "interest_movements": [
- {
- "uuid": "90763109952d4f2ebece8dceca8254078c5384a0",
- "scheduled": false,
- "date": "2025-09-01",
- "period_start": "2024-09-01",
- "period_end": "2025-09-01",
- "currency": "EUR",
- "gross_interest": 300,
- "withholding_tax": 57,
- "net_interest": 243,
- "payment_type": "maturity"
}
], - "principal_movements": [
- {
- "uuid": "90763109952d4f2ebece8dceca8254078c5384a0",
- "date": "2019-08-24",
- "type": "opening",
- "amount": 12000,
- "currency": "string",
- "target_account": "string"
}
]
}
], - "leases": [
- {
- "subtype": "leasing",
- "uuid": "1f0a0b1c2d3e4f5a6b7c8d9e0f1234567890abcd",
- "contract_number": "L-2024-000123",
- "name": "BMW 3 Series Leasing",
- "provider": {
- "name": "Banco XYZ Renting, S.A.",
- "tax_id": "A12345678"
}, - "currency": "EUR",
- "start_date": "2024-10-01",
- "end_date": "2028-09-30",
- "term_months": 48,
- "payment_frequency": "monthly",
- "status": "active",
- "linked_account": "ES4021005321592566566159",
- "holders": [
- {
- "ID": "12345678Z",
- "name": "LUIS GARCIA BAQUERO",
- "role": "owner"
}
], - "asset": {
- "category": "vehicle",
- "description": "BMW 320d Touring",
- "vin": "WBA8G51040K123456",
- "license_plate": "1234-ABC",
- "brand": "BMW",
- "model": "320d",
- "year": 2024,
- "serial_number": "string",
- "address": "string"
}, - "financials": {
- "capital_financed": 35000,
- "nominal_interest_rate": 4.25,
- "apr_tae": 4.38,
- "discount_rate": 0,
- "initial_fee": 3000,
- "security_deposit": 1000,
- "residual_value": 12000,
- "purchase_option": true,
- "services_included": {
- "maintenance": true,
- "insurance": true,
- "roadside_assistance": true,
- "tires": false
}, - "vat_included": true,
- "mileage_limit_year": 15000,
- "early_termination": {
- "allowed": true,
- "penalty_type": "percentage_of_remaining",
- "penalty_value": 40
}
}, - "totals": {
- "paid_installments": 10,
- "remaining_installments": 38,
- "total_paid": 0,
- "total_pending": 0,
- "principal_outstanding": 0,
- "accrued_interest": 0
}, - "installments": {
- "paid": [
- {
- "uuid": "b07a1a0d3e6f4c2a9e1d0f8b7c6a5e4d3c2b1a0f",
- "date": "2025-01-01",
- "status": "pending",
- "currency": "EUR",
- "total": 625.5,
- "breakdown": {
- "principal": 450,
- "interest": 80,
- "services": 70,
- "taxes": 25.5,
- "fees": 0
}, - "value_date": "2019-08-24",
- "receipt_uuid": "string",
- "additional_info": [
- {
- "key": null,
- "value": null
}
]
}
], - "scheduled": [
- {
- "uuid": "b07a1a0d3e6f4c2a9e1d0f8b7c6a5e4d3c2b1a0f",
- "date": "2025-01-01",
- "status": "pending",
- "currency": "EUR",
- "total": 625.5,
- "breakdown": {
- "principal": 450,
- "interest": 80,
- "services": 70,
- "taxes": 25.5,
- "fees": 0
}, - "value_date": "2019-08-24",
- "receipt_uuid": "string",
- "additional_info": [
- {
- "key": null,
- "value": null
}
]
}
]
}
}
], - "insurances": [
- {
- "uuid": "0ae4d722b1c82feeafb4b36b2893230444071335",
- "code": "969032717626333",
- "coverage_category": "property",
- "name": "MyBox Hogar",
- "currency": "EUR",
- "insured_value": {
- "name": "PISO / Residencia secundaria 46023 VALENCIA",
- "value": 250000
}, - "insured_concepts": [
- {
- "description": "Fire",
- "value": 25000
}
], - "constitution_date": "2020-01-01",
- "expiration_date": "2021-01-01",
- "next_payment_date": "2020-02-01",
- "next_installment": 800,
- "frequency": "monthly",
- "status": "active",
- "linked_account": "ES4914651234561234567890",
- "owner": {
- "ID": "07133834N",
- "name": "LUIS GARCIA BAQUERO"
}, - "claims": [
- {
- "uuid": "8772d6c978d37d7af83094abf380b8b703e94105",
- "claim_code": "0122074354T2",
- "incident_date": "2023-05-13",
- "claimed_date": "2023-05-15",
- "description": "Rotura de lunas por impacto de objetos",
- "status": "in_process"
}
]
}
], - "properties": [
- {
- "uuid": "string",
- "code": "string",
- "description": "string",
- "purpose": "string",
- "currency": "string",
- "trading_price": 0,
- "trading_year": 0,
- "historic_prices": [
- {
- "date": "2019-08-24",
- "price": 0
}
]
}
], - "files": [
- {
- "file_date": "2023-07-21",
- "retrieval_type": "repository",
- "file_type": "Norma 43",
- "description": "Monthly account statement",
- "content": "string"
}
], - "contracts": [
- {
- "signing_date": "2003-09-26",
- "type": "loan",
- "subtype": "mortgage",
- "description": "Variable rate mortgage",
- "pdf_file": "string"
}
], - "factoring": [
- {
- "uuid": "a62ae601a424403d0fbe968d335378421006c277",
- "contract_number": "000117001234567",
- "name": "FACTORING PPAL SIN RECURSO",
- "assignor_id": "B12345678",
- "assignor": "QUICKSILVER DISTRIBUCION Y LOGISTICA SL",
- "assignor_type": "non-recourse-factor",
- "assignee": "Banco Sabadell",
- "currency": "EUR",
- "balances": {
- "available": 11360.26,
- "disposed": 0,
- "limit": 11360.26
}, - "interest_rate": 5.25,
- "linked_account": "ES0700812345678987654321",
- "next_payment_date": "",
- "number_invoices": 8,
- "total_value": 14495.28,
- "total_advanced_value": 6919.29,
- "clients": [
- {
- "uuid": "2ea19f8f8bcda4fa5e54e139852e0a7459d16b49",
- "client_id": "A12345678",
- "client_name": "EMPRESA 1 SA",
- "limit": 50000,
- "disposed": 15000,
- "available": 35000,
- "payment_method": "transfer_payment",
- "payment_deadline": 30
}
], - "invoices": [
- {
- "uuid": "6b556584df0721e5f0b27448247c9682a6470d11",
- "invoice_id": "2023-53",
- "client_id": "A12345678",
- "operation_date": "2023-10-25",
- "due_date": "2024-01-24",
- "payment_date": "2024-01-20",
- "invoice_amount": 918.45,
- "received_amount": 873.53,
- "status": "funded",
- "additional_info": [
- {
- "key": "string",
- "value": "string"
}
]
}
], - "transactions": [
- {
- "uuid": "8a3b5c7d9e1f2a4b6c8d0e2f4a6b8c0d2e4f6a8b",
- "operation_date": "2023-10-25",
- "value_date": "2023-10-26",
- "amount": 1500,
- "currency": "EUR",
- "description": "ANTICIPO FACTURA 2023-53"
}
]
}
], - "confirming": [
- {
- "uuid": "a62ae601a424403d0fbe968d335378421006c277",
- "contract_number": "000117001234567",
- "name": "CONFIRMING PPAL SIN RECURSO",
- "currency": "EUR",
- "balances": {
- "available": 11360.26,
- "disposed": 0,
- "limit": 11360.26
}, - "interest_rate": 5.25,
- "linked_account": "ES0700812345678987654321",
- "next_payment_date": "",
- "number_invoices": 8,
- "total_value": 14495.28,
- "total_advanced_value": 6919.29,
- "deferrals": [
- {
- "status": "paid",
- "overdue": true,
- "start_date": "2019-08-24",
- "due_date": "2019-08-24",
- "total_value": 0,
- "deferred_value": 0,
- "interest_value": 0,
- "interest_rate": 0,
- "late_fees": 0
}
], - "deferrals_summary": {
- "count": 0,
- "total_value": 0,
- "deferred_value": 0,
- "interest_value": 0,
- "late_fees": 0
}, - "providers": [
- {
- "uuid": "2ea19f8f8bcda4fa5e54e139852e0a7459d16b49",
- "company_id": "A12345678",
- "company_name": "EMPRESA 1 SA"
}
], - "invoices": [
- {
- "uuid": "6b556584df0721e5f0b27448247c9682a6470d11",
- "invoice_id": "2023-53",
- "provider_id": "A12345678",
- "operation_date": "2023-10-25",
- "due_date": "2024-01-24",
- "amount": 918.45,
- "status": "advanced",
- "additional_info": [
- {
- "key": "string",
- "value": "string"
}
]
}
], - "additional_info": [
- {
- "key": "string",
- "value": "string"
}
]
}
], - "employment": {
- "summary": {
- "totalDaysRegistered": 8912,
- "daysInMultipleActivity": 130,
- "daysContributedForBenefits": 8782,
- "totalTimeEquivalence": "24 años, 0 meses y 17 días."
}, - "periods": [
- {
- "employer": "TRABAJADOR AUTONOMO",
- "regime": "AUTONOMO",
- "contract": "INDEFINIDO.TIEMPO COMPLETO.ORDINARIO",
- "category": "INGENIEROS LICENCIADOS",
- "actualStartDate": "2022-11-10",
- "startDate": "2022-11-10",
- "endDate": "Actual",
- "contributedDays": 1062
}
], - "pdf_file": "string"
}, - "tax_returns": [
- {
- "uuid": "5f2b9c1e8a7d3046b1c9e2f4a6d8b0c3e5f7a9b1",
- "issuer": "AEAT",
- "model": "100",
- "fiscal_year": 2025,
- "period": "0A",
- "receipt_number": "2025100000123456",
- "secure_verification_code": "A1B2C3D4E5F6G7H8",
- "filing_date": "2026-05-20",
- "filing_type": "individual",
- "holder_id": "99999999R",
- "holder_name": "APELLIDO1 APELLIDO2, NOMBRE",
- "spouse_id": "11111111H",
- "spouse_name": "APELLIDO3 APELLIDO4, NOMBRE",
- "currency": "EUR",
- "general_taxable_base": 32450.18,
- "savings_taxable_base": 1250.4,
- "general_liquid_base": 30120.18,
- "savings_liquid_base": 1250.4,
- "state_gross_tax": 3655.27,
- "regional_gross_tax": 3540.12,
- "state_net_tax": 3480.15,
- "regional_net_tax": 3398.6,
- "resulting_tax": 6878.75,
- "withholdings_and_payments": 7378.45,
- "differential_tax": -499.7,
- "result_amount": -499.7,
- "result_type": "refundable",
- "xml_file": "string",
- "pdf_file": "string"
}
], - "credit_reports": [
- {
- "uuid": "3c1f0e7a9b2d4c6e8f0a1b3c5d7e9f1a2b4c6d8e",
- "issuer": "BDE",
- "report_type": "summary",
- "report_name": "Informe Global",
- "reference": "I2026100100000000",
- "period": "2026-08",
- "request_date": "2026-10-01",
- "issue_date": "2026-10-01",
- "available_until": "2026-10-21",
- "file_name": "Informe Agregado.pdf",
- "pdf_file": "string"
}
]
}, - "statistics": {
- "SESSION": "3463754e3540884",
- "execution_time": 0.958119869232178,
- "warnings": [
- {
- "code": 1000,
- "message": "No contracted funds",
- "product_type": "portfolios"
}
], - "operation_id": "1827C79229",
- "token": "FRJ0mHlaqZwLzu"
}
}
]Verwenden Sie diese Methode, um die mit einem bestimmten api_key verknüpften Tokens abzufragen. Die Ergebnisse sind paginiert: limit legt die Anzahl der Tokens pro Seite fest (maximal 500) und page wählt die zurückzugebende Seite. api_key, method und limit sind Pflichtfelder; fehlt einer davon oder ist er ungültig, antwortet die API mit HTTP 400 und dem Fehlercode 2.
| api_key required | string^[a-z0-9]{8}$ api_key zur Identifizierung des Kunden im Dienst |
| method required | string Value: "get" Auszuführende Operation. Der einzige unterstützte Wert ist Beispiel: |
| limit required | integer [ 1 .. 500 ] Anzahl der Tokens pro Seite. Minimum Beispiel: |
| page | integer >= 1 Default: 1 Geben Sie die Seitennummer an, die Sie abrufen möchten. Jede Seite enthält bis zu Beispiel: |
| code | string Entitätscode zum Filtern der Tokens. Wird er weggelassen, werden die Tokens aller Entitäten zurückgegeben. Beispiel: |
| sort_by | string Default: "created_at" Enum: "created_at" "accesed_at" Feld zum Sortieren der Ergebnisse: Beispiel: |
| sort_order | string Default: "DESC" Enum: "ASC" "DESC" Sortierrichtung: Beispiel: |
api_key=a1b2c3d4&method=get&limit=100&page=1
{- "success": true,
- "payload": {
- "tokens": [
- {
- "created_at": "2026-09-18 10:26:00",
- "accessed_at": "2026-09-20 08:15:42",
- "times_accesed": 12,
- "token": "FRJ0mHlaqZwLzu",
- "code": "bbva",
- "contract_name": "",
- "latest_code": 0,
- "latest_session": "3463754E3540884"
}
]
}, - "pagination": {
- "total_results": 1,
- "total_pages": 1,
- "current_page": 1
}, - "statistics": {
- "SESSION": "3463754e3540884",
- "execution_time": 0.0215
}
}Diese Methode ermöglicht das Widerrufen eines vorhandenen Tokens, um zukünftige API-Zugriffsanfragen zu deautorisieren.
| api_key | string Identifiziert den Kunden im Dienst |
| token | string Token, das widerrufen werden soll. |
{- "success": true,
- "message": "Token successfully revoked."
}Diese Methode ermöglicht die Neuzuweisung eines Tokens von einem api_key zu einem anderen. Beide api_keys müssen aktiv sein und zum selben Unternehmen gehören, und der Token muss zu api_key_source gehören.
| api_key_source | string api_key, von dem der Token neu zugewiesen werden soll. |
| api_key_target | string api_key, zu dem der Token neu zugewiesen werden soll. |
| token | string Token, das neu zugewiesen werden soll. Beispiel: |
api_key_source=a1b2c3d4e5f6g7h8i9j0&api_key_target=b2c3d4e5f6g7h8i9j0k1&token=FRJ0mHlaqZwLzu
{- "success": true,
- "message": "Token successfully reassigned."
}Fügt die Verknüpfung zwischen der Domain, die das Widget hosten wird, und dem Ziel-Webhook hinzu. Zum Bearbeiten oder Testen Ihrer Domains verwenden Sie https://www.wealthreader.com/clients/
| method required | string Method to execute. Beispiel: |
| api_key required | string User's API key. |
| domain required | string Domain to add. Beispiel: |
| url_callback required | string URL for callback. Beispiel: |
| tokenize required | string Enum: "1" "0" Steuert, ob das Widget einen Tokenisierungsfluss startet:
Beispiel: |
method=add&api_key=a1b2c3d4e5f6g7h8i9j0&domain=https%3A%2F%2Fwww.cliente.com&url_callback=https%3A%2F%2Fwww.cliente.com%2Fwebhooks%2Fwealthreader&tokenize=1
{- "success": true,
- "message": "string"
}Liste der Fehlercodes. Achten Sie besonders darauf, dass nicht alle Fehlercodes von Ihrer Anwendung gleich behandelt werden sollten. Bei einem falschen Passwortfehler sollten Sie den Aufruf nicht mit denselben Parametern wiederholen, aber bei einem Fehler, der anzeigt, dass die Entität gewartet wird, können Sie es erneut versuchen. Fordern Sie eine technische Sitzung mit unserem Team an, um Fragen zur Fehlerverwaltung zu klären.
| lang | string Default: "es" Enum: "es" "en" Response language |
[- [
- {
- "code": 2,
- "description": "Incorrect call",
- "possible_reasons": "Some of the required parameters have not been sent or have been sent in an incorrect format",
- "how_to_proceed": "The text received in \"message\" will detail the reason for the error. For example, \"The parameter \"api_key\" is mandatory\"."
}
]
]Liste der Warnungscodes.
| lang | string Default: "es" Enum: "es" "en" Response language |
[- [
- {
- "code": 2,
- "description": "Incorrect call",
- "possible_reasons": "Some of the required parameters have not been sent or have been sent in an incorrect format",
- "how_to_proceed": "The text received in \"message\" will detail the reason for the error. For example, \"The parameter \"api_key\" is mandatory\"."
}
]
]Optionale Endpunkte, die für Standardintegrationen nicht erforderlich sind. Nur verwenden, wenn explizit von Wealth Reader angewiesen.
Ruft die Liste der unterstützten Einrichtungen und die Informationen ab, die zum Zeichnen des Anmeldeformulars der Einrichtung benötigt werden.
| show_only_tested | integer Default: 0 Enum: 0 1 Indicates whether to show only tested entities. Default value is 0. In production environments, always use 1. |
[- {
- "code": "bancamarch",
- "name": "Bancamarch",
- "color": "#e23e4d",
- "inputs": {
- "document_type": {
- "required": false,
- "name": "DNI;Pasaporte"
}, - "user": {
- "required": true,
- "name": "Username"
}, - "password": {
- "required": true,
- "name": "Access key"
}
}, - "statistics": {
- "SESSION": "3463754e3540884",
- "execution_time": 0.958119869232178,
- "warnings": [
- {
- "code": 1000,
- "message": "No contracted funds",
- "product_type": "portfolios"
}
], - "operation_id": "1827C79229",
- "token": "FRJ0mHlaqZwLzu"
}
}
]Dieser Endpoint ist optional und für Standardintegrationen nicht erforderlich. Nur verwenden, wenn explizit von Wealth Reader angewiesen. Dieser Endpoint ermöglicht die Registrierung eines Benutzers entweder auf der Portfolio-Transfer-Plattform Easytransfer oder auf dem Reporting-Tool Acumulas, basierend auf einem eindeutigen Identifikator.
| api_key required | string Authentication key (8 alphanumeric characters) |
| user_id required | string User identification document. Beispiel: |
| service required | string Enum: "integra" "easy-transfer" Service associated with the user. Determines the data flow. Beispiel: |
| email required | string <email> User email, used according to service type. Beispiel: |
{- "success": true,
- "message": "User registered successfully"
}Dieser Endpoint ist optional und für Standardintegrationen nicht erforderlich. Nur verwenden, wenn explizit von Wealth Reader angewiesen. Überprüft, ob ein Benutzer im Easytransfer- oder Acumulas-System registriert ist und gibt den eindeutigen Zugangslink für den Benutzer zurück.
| api_key required | string Authentication key |
| user_id required | string User identification document. Beispiel: |
{- "success": true,
- "registered": true,
- "user_id": "12345",
- "links": {
}
}Dieser Endpoint ist optional und für Standardintegrationen nicht erforderlich. Nur verwenden, wenn explizit von Wealth Reader angewiesen. Dieser Endpoint ermöglicht das Abmelden eines Benutzers vom Easytransfer- oder Acumulas-Plattformdienst.
| api_key required | string Authentication key (8 alphanumeric characters) |
| user_id required | string User identification document. Beispiel: |
| service required | string Enum: "integra" "easy-transfer" "all" Service from which to unregister the user. 'all' for all services. Beispiel: |
{- "success": true,
- "message": "User unregistered successfully"
}Dieser Endpoint ist optional und für Standardintegrationen nicht erforderlich. Nur verwenden, wenn explizit von Wealth Reader angewiesen.
Wichtig: Um die Batch-Prozessverwaltung auf Wealthreader-Seite zu nutzen, ist eine dedizierte Umgebung erforderlich. Dieser Endpoint ist nicht auf api.wealthreader.com verfügbar.
Die unter dem Tag "batch" gruppierten Endpoints ermöglichen die asynchrone Verarbeitung mehrerer Bankverbindungen, im Gegensatz zur synchronen /entities/-Methode. Ideal für die Verarbeitung großer Verbindungsmengen und zur Vermeidung von Timeouts.
| api_key required | string Identifies the client in the service |
| notification_url required | string <uri> Webhook URL. A notification is sent to this URL for each individual credential as soon as it completes processing, not only once all connections in the batch are done. Beispiel: |
required | Array of objects (batch-connection) non-empty List of connections to process |
{- "api_key": "a1b2c3d4e5f6g7h8i9j0",
- "connections": [
- {
- "credential_id": "cred_demo_001",
- "code": "caixabank",
- "token": "token123",
- "product_types": "accounts,portfolios"
}, - {
- "credential_id": "cred_demo_002",
- "code": "BBVA",
- "token": "token456",
- "product_types": "accounts",
- "date_from": "2024-01-01"
}
]
}{- "success": true,
- "batch_id": "batch_20250120_a1b2c3d4",
- "total_connections": 5,
- "estimated_completion_time": "2025-01-20T10:45:00Z"
}{- "batch_id": 10863151,
- "credential_id": "cred_demo_002",
- "status": "completed",
- "timestamp": "2026-05-13T08:02:47+00:00"
}Dieser Endpoint ist optional. Ruft allgemeine Statistiken über das Verarbeitungsergebnis aller Verbindungen in einem Batch ab.
| api_key required | string Identifies the client in the service |
| batch_id required | string Batch ID |
{- "api_key": "string",
- "batch_id": "string"
}{- "success": true,
- "batch_id": "batch_20250120_a1b2c3d4",
- "status": "completed",
- "statistics": {
- "start_time": "2019-08-24T14:15:22Z",
- "end_time": "2019-08-24T14:15:22Z",
- "total_execution_time": 125.5,
- "total_connections": 8,
- "successful_connections": 7,
- "failed_connections": 1
}
}Dieser Endpoint ist optional. Ruft das Ergebnis einer spezifischen Verbindung aus dem Batch ab.
| api_key required | string Identifies the client in the service |
| batch_id required | string Batch ID |
| credential_id required | string Filter by specific credential_id |
{- "api_key": "string",
- "batch_id": "string",
- "credential_id": "string"
}{- "success": true,
- "payload": {
- "user_information": {
- "ID": "12345678Z",
- "name": "LUIS GARCIA BAQUERO",
- "gender": "male",
- "birth_date": "1980-09-26",
- "birth_place": "Ibiza",
- "email": "lgarcia@gmail.com",
- "cell_phone": "+34666123456",
- "address": "CALLE BAILEN 41 1A",
- "city": "MADRID",
- "country": "SPAIN",
- "postal_code": "28005",
- "marital_status": "married",
- "job": "CUENTA PROPIA"
}, - "portfolios": [
- {
- "subtype": "funds",
- "uuid": "05e4563f5bbf2d06efd0a29ebe7edbbb4e1bff63",
- "code": "1465010091400123456789",
- "name": "Fondo Dinámico",
- "currency": "EUR",
- "total_value": 3275.6,
- "weighted_return": 8.49,
- "annualized_volatility": 0,
- "yield": 256.27,
- "contributions": 3019.33,
- "withholdings": 0,
- "contracting_date": "2016-04-27",
- "linked_account": "ES4021005321592566566159",
- "portfolio_statement": "JVBERi0xLjQKJ...",
- "owners": [
- {
- "ID": "12345678Z",
- "name": "LUIS GARCIA BAQUERO",
- "role": "owner"
}
], - "composition": [
- {
- "ISIN": "LU1234567890",
- "ISIN_description": "My Fund Class A",
- "currency": "EUR",
- "weighting": 100,
- "shares": 225.0077,
- "price": 14.5577,
- "total_amount": 3275.6,
- "reference_currency": "EUR",
- "exchange_rate": 1
}
], - "transactions": [
- {
- "uuid": "05e4563f5bbf2d06efd0a29ebe7edbbb4e1bff63",
- "operation_pending": false,
- "operation_date": "2020-01-30",
- "value_date": "2020-01-30",
- "operation_type": "purchase",
- "shares": 1076.8273,
- "price": 11.1438,
- "total_amount": 12000,
- "currency": "EUR",
- "reference_currency": "USD",
- "exchange_rate": 1,
- "additional_info": [
- {
- "key": "string",
- "value": "string"
}
]
}
]
}
], - "accounts": [
- {
- "uuid": "8076932f04f73e27fe608fee4d12fca8708dec8c",
- "subtype": "checking",
- "interest_rate": 0.5,
- "line_of_credit_details": {
- "credit_limit": 50000,
- "interest_rate": 4.5,
- "credit_used": 15000,
- "credit_available": 35000,
- "constitution_date": "2021-05-20",
- "expiration_date": "2031-05-20"
}, - "code": "ES4914651234561234567890",
- "name": "Cuenta NÓMINA",
- "currency": "EUR",
- "owners": [
- {
- "ID": "12345678Z",
- "name": "LUIS GARCIA BAQUERO",
- "role": "owner"
}
], - "balances": {
- "available": 14302.07,
- "current": 14302.07
}, - "additional_info": [
- {
- "key": "string",
- "value": "string"
}
], - "transactions": [
- {
- "uuid": "d0c2ea4c072cf4d7b0fd494d7728260d736e6b25",
- "operation_date": "2022-12-30",
- "value_date": "2022-12-30",
- "amount": -1.1,
- "balance": 14302.07,
- "description": "Pago en TELPARK MADRID ES",
- "pdf_file": "string",
- "pdf_file_settled": true,
- "categorization": {
- "type": 1,
- "portfolio-uuid": "1465010091400123456789",
- "ISIN": "US88160R1014"
}, - "transfer_details": {
- "concept": "Pago de factura 12345",
- "sender_receiver": "Juan Pérez",
- "account_number": "ESXX12341234121234567890"
}, - "additional_info": [
- {
- "key": "string",
- "value": "string"
}
]
}
]
}
], - "cards": [
- {
- "status": "active",
- "subtype": "credit",
- "uuid": "aefd89eade0a6a09d9b8eab4c22da6a6a37632e6",
- "code": "516097********1234",
- "name": "Credit Card",
- "currency": "EUR",
- "next_payment_date": "2023-01-05",
- "anual_interest": 17.48,
- "tae": 18.95,
- "balances": {
- "available": 3980,
- "limit": 4000,
- "disposed": 20
}, - "linked_account": "ES4021005321592566566159",
- "owner": [
- {
- "ID": "12345678Z",
- "name": "LUIS GARCIA BAQUERO",
- "role": "owner"
}
], - "additional_info": [
- {
- "key": "string",
- "value": "string"
}
], - "transactions": [
- {
- "uuid": "78ceedca9cd9d2f2bfbb2439795ab6a1fcefc12b",
- "settled": false,
- "operation_date": "2022-12-28",
- "value_date": "2022-12-28",
- "amount": -20,
- "currency": "EUR",
- "exchange_rate": 1,
- "description": "Pago en AMZN MKTP ES123CM0ZM4",
- "categorization": {
- "type": 0
}, - "additional_info": [
- {
- "key": "string",
- "value": "string"
}
]
}
]
}
], - "receipts": [
- {
- "last_receipt_date": "2023-07-23",
- "issuer": "Canal de Isabel II",
- "description": "RECIBO CONTRATO 328774628 FACTURA DEL 18 07 23",
- "account": "ES0123456789012345678901",
- "status": "paid",
- "amount": 50.75,
- "pdf_file": "string",
- "pdf_file_settled": true
}
], - "loans": [
- {
- "uuid": "0ae4d722b1c82feeafb4b36b2893230444071335",
- "contract_number": "9620.321-205439-70",
- "loan_type": "Variable rate mortgage",
- "constitution_date": "2022-02-23",
- "currency": "EUR",
- "granted_capital": 207000,
- "pending_amount": 166639.77,
- "next_installment": 1040.3,
- "linked_account": "ES0123456789012345678901",
- "holders": [
- {
- "id": "32945945D",
- "name": "Diego Serrano"
}
], - "interest_rate": 3.768,
- "expiration_date": "2042-03-01",
- "pending_receipts": 223,
- "amortization_made": [
- {
- "uuid": "8772d6c978d37d7af83094abf380b8b703e94105",
- "date": "2022-12-01",
- "amortized": 515.43,
- "interest": 524.87,
- "total": 1040.3,
- "pending_capital": 166639.77,
- "operation_type": "receipt_paid"
}
], - "amortization_pending": [
- {
- "uuid": "e59296b79e7f80cec26679d2c65883025fd59295",
- "date": "2030-12-01",
- "amortized": 515.43,
- "interest": 524.87,
- "total": 1040.3,
- "pending_capital": 66639.77,
- "operation_type": "receipt_scheduled"
}
]
}
], - "deposits": [
- {
- "uuid": "0ae4d722b1c82feeafb4b36b2893230444071335",
- "code": "DPZ-1234567890",
- "name": "12-month deposit",
- "currency": "EUR",
- "principal": 10000,
- "pending_principal": 5000,
- "start_date": "2024-09-01",
- "maturity_date": "2025-09-01",
- "payment_frequency": "at_maturity",
- "capitalization": "none",
- "rate_type": "fixed",
- "nominal_interest_rate": 3,
- "apr_tae": 3.04,
- "day_count_convention": "ACT/365",
- "linked_account": "ES4021005321592566566159",
- "accrued_interest": 24.58,
- "expected_interest_total": 300,
- "withholding_tax_rate": 19,
- "status": "active",
- "auto_renewal": {
- "enabled": false,
- "renewed_times": 0,
- "next_renewal_date": "2019-08-24",
- "renewal_term_months": 0
}, - "early_withdrawal": {
- "allowed": true,
- "penalty_type": "interest_loss",
- "penalty_value": 100,
- "notes": "Loss of accrued interest for the current period"
}, - "owners": [
- {
- "ID": "12345678Z",
- "name": "LUIS GARCIA BAQUERO",
- "role": "owner"
}
], - "interest_movements": [
- {
- "uuid": "90763109952d4f2ebece8dceca8254078c5384a0",
- "scheduled": false,
- "date": "2025-09-01",
- "period_start": "2024-09-01",
- "period_end": "2025-09-01",
- "currency": "EUR",
- "gross_interest": 300,
- "withholding_tax": 57,
- "net_interest": 243,
- "payment_type": "maturity"
}
], - "principal_movements": [
- {
- "uuid": "90763109952d4f2ebece8dceca8254078c5384a0",
- "date": "2019-08-24",
- "type": "opening",
- "amount": 12000,
- "currency": "string",
- "target_account": "string"
}
]
}
], - "leases": [
- {
- "subtype": "leasing",
- "uuid": "1f0a0b1c2d3e4f5a6b7c8d9e0f1234567890abcd",
- "contract_number": "L-2024-000123",
- "name": "BMW 3 Series Leasing",
- "provider": {
- "name": "Banco XYZ Renting, S.A.",
- "tax_id": "A12345678"
}, - "currency": "EUR",
- "start_date": "2024-10-01",
- "end_date": "2028-09-30",
- "term_months": 48,
- "payment_frequency": "monthly",
- "status": "active",
- "linked_account": "ES4021005321592566566159",
- "holders": [
- {
- "ID": "12345678Z",
- "name": "LUIS GARCIA BAQUERO",
- "role": "owner"
}
], - "asset": {
- "category": "vehicle",
- "description": "BMW 320d Touring",
- "vin": "WBA8G51040K123456",
- "license_plate": "1234-ABC",
- "brand": "BMW",
- "model": "320d",
- "year": 2024,
- "serial_number": "string",
- "address": "string"
}, - "financials": {
- "capital_financed": 35000,
- "nominal_interest_rate": 4.25,
- "apr_tae": 4.38,
- "discount_rate": 0,
- "initial_fee": 3000,
- "security_deposit": 1000,
- "residual_value": 12000,
- "purchase_option": true,
- "services_included": {
- "maintenance": true,
- "insurance": true,
- "roadside_assistance": true,
- "tires": false
}, - "vat_included": true,
- "mileage_limit_year": 15000,
- "early_termination": {
- "allowed": true,
- "penalty_type": "percentage_of_remaining",
- "penalty_value": 40
}
}, - "totals": {
- "paid_installments": 10,
- "remaining_installments": 38,
- "total_paid": 0,
- "total_pending": 0,
- "principal_outstanding": 0,
- "accrued_interest": 0
}, - "installments": {
- "paid": [
- {
- "uuid": "b07a1a0d3e6f4c2a9e1d0f8b7c6a5e4d3c2b1a0f",
- "date": "2025-01-01",
- "status": "pending",
- "currency": "EUR",
- "total": 625.5,
- "breakdown": {
- "principal": 450,
- "interest": 80,
- "services": 70,
- "taxes": 25.5,
- "fees": 0
}, - "value_date": "2019-08-24",
- "receipt_uuid": "string",
- "additional_info": [
- {
- "key": "string",
- "value": "string"
}
]
}
], - "scheduled": [
- {
- "uuid": "b07a1a0d3e6f4c2a9e1d0f8b7c6a5e4d3c2b1a0f",
- "date": "2025-01-01",
- "status": "pending",
- "currency": "EUR",
- "total": 625.5,
- "breakdown": {
- "principal": 450,
- "interest": 80,
- "services": 70,
- "taxes": 25.5,
- "fees": 0
}, - "value_date": "2019-08-24",
- "receipt_uuid": "string",
- "additional_info": [
- {
- "key": "string",
- "value": "string"
}
]
}
]
}
}
], - "insurances": [
- {
- "uuid": "0ae4d722b1c82feeafb4b36b2893230444071335",
- "code": "969032717626333",
- "coverage_category": "property",
- "name": "MyBox Hogar",
- "currency": "EUR",
- "insured_value": {
- "name": "PISO / Residencia secundaria 46023 VALENCIA",
- "value": 250000
}, - "insured_concepts": [
- {
- "description": "Fire",
- "value": 25000
}
], - "constitution_date": "2020-01-01",
- "expiration_date": "2021-01-01",
- "next_payment_date": "2020-02-01",
- "next_installment": 800,
- "frequency": "monthly",
- "status": "active",
- "linked_account": "ES4914651234561234567890",
- "owner": {
- "ID": "07133834N",
- "name": "LUIS GARCIA BAQUERO"
}, - "claims": [
- {
- "uuid": "8772d6c978d37d7af83094abf380b8b703e94105",
- "claim_code": "0122074354T2",
- "incident_date": "2023-05-13",
- "claimed_date": "2023-05-15",
- "description": "Rotura de lunas por impacto de objetos",
- "status": "in_process"
}
]
}
], - "properties": [
- {
- "uuid": "string",
- "code": "string",
- "description": "string",
- "purpose": "string",
- "currency": "string",
- "trading_price": 0,
- "trading_year": 0,
- "historic_prices": [
- {
- "date": "2019-08-24",
- "price": 0
}
]
}
], - "files": [
- {
- "file_date": "2023-07-21",
- "retrieval_type": "repository",
- "file_type": "Norma 43",
- "description": "Monthly account statement",
- "content": "string"
}
], - "contracts": [
- {
- "signing_date": "2003-09-26",
- "type": "loan",
- "subtype": "mortgage",
- "description": "Variable rate mortgage",
- "pdf_file": "string"
}
], - "factoring": [
- {
- "uuid": "a62ae601a424403d0fbe968d335378421006c277",
- "contract_number": "000117001234567",
- "name": "FACTORING PPAL SIN RECURSO",
- "assignor_id": "B12345678",
- "assignor": "QUICKSILVER DISTRIBUCION Y LOGISTICA SL",
- "assignor_type": "non-recourse-factor",
- "assignee": "Banco Sabadell",
- "currency": "EUR",
- "balances": {
- "available": 11360.26,
- "disposed": 0,
- "limit": 11360.26
}, - "interest_rate": 5.25,
- "linked_account": "ES0700812345678987654321",
- "next_payment_date": "",
- "number_invoices": 8,
- "total_value": 14495.28,
- "total_advanced_value": 6919.29,
- "clients": [
- {
- "uuid": "2ea19f8f8bcda4fa5e54e139852e0a7459d16b49",
- "client_id": "A12345678",
- "client_name": "EMPRESA 1 SA",
- "limit": 50000,
- "disposed": 15000,
- "available": 35000,
- "payment_method": "transfer_payment",
- "payment_deadline": 30
}
], - "invoices": [
- {
- "uuid": "6b556584df0721e5f0b27448247c9682a6470d11",
- "invoice_id": "2023-53",
- "client_id": "A12345678",
- "operation_date": "2023-10-25",
- "due_date": "2024-01-24",
- "payment_date": "2024-01-20",
- "invoice_amount": 918.45,
- "received_amount": 873.53,
- "status": "funded",
- "additional_info": [
- {
- "key": "string",
- "value": "string"
}
]
}
], - "transactions": [
- {
- "uuid": "8a3b5c7d9e1f2a4b6c8d0e2f4a6b8c0d2e4f6a8b",
- "operation_date": "2023-10-25",
- "value_date": "2023-10-26",
- "amount": 1500,
- "currency": "EUR",
- "description": "ANTICIPO FACTURA 2023-53"
}
]
}
], - "confirming": [
- {
- "uuid": "a62ae601a424403d0fbe968d335378421006c277",
- "contract_number": "000117001234567",
- "name": "CONFIRMING PPAL SIN RECURSO",
- "currency": "EUR",
- "balances": {
- "available": 11360.26,
- "disposed": 0,
- "limit": 11360.26
}, - "interest_rate": 5.25,
- "linked_account": "ES0700812345678987654321",
- "next_payment_date": "",
- "number_invoices": 8,
- "total_value": 14495.28,
- "total_advanced_value": 6919.29,
- "deferrals": [
- {
- "status": "paid",
- "overdue": true,
- "start_date": "2019-08-24",
- "due_date": "2019-08-24",
- "total_value": 0,
- "deferred_value": 0,
- "interest_value": 0,
- "interest_rate": 0,
- "late_fees": 0
}
], - "deferrals_summary": {
- "count": 0,
- "total_value": 0,
- "deferred_value": 0,
- "interest_value": 0,
- "late_fees": 0
}, - "providers": [
- {
- "uuid": "2ea19f8f8bcda4fa5e54e139852e0a7459d16b49",
- "company_id": "A12345678",
- "company_name": "EMPRESA 1 SA"
}
], - "invoices": [
- {
- "uuid": "6b556584df0721e5f0b27448247c9682a6470d11",
- "invoice_id": "2023-53",
- "provider_id": "A12345678",
- "operation_date": "2023-10-25",
- "due_date": "2024-01-24",
- "amount": 918.45,
- "status": "advanced",
- "additional_info": [
- {
- "key": "string",
- "value": "string"
}
]
}
], - "additional_info": [
- {
- "key": "string",
- "value": "string"
}
]
}
], - "employment": {
- "summary": {
- "totalDaysRegistered": 8912,
- "daysInMultipleActivity": 130,
- "daysContributedForBenefits": 8782,
- "totalTimeEquivalence": "24 años, 0 meses y 17 días."
}, - "periods": [
- {
- "employer": "TRABAJADOR AUTONOMO",
- "regime": "AUTONOMO",
- "contract": "INDEFINIDO.TIEMPO COMPLETO.ORDINARIO",
- "category": "INGENIEROS LICENCIADOS",
- "actualStartDate": "2022-11-10",
- "startDate": "2022-11-10",
- "endDate": "Actual",
- "contributedDays": 1062
}
], - "pdf_file": "string"
}, - "tax_returns": [
- {
- "uuid": "5f2b9c1e8a7d3046b1c9e2f4a6d8b0c3e5f7a9b1",
- "issuer": "AEAT",
- "model": "100",
- "fiscal_year": 2025,
- "period": "0A",
- "receipt_number": "2025100000123456",
- "secure_verification_code": "A1B2C3D4E5F6G7H8",
- "filing_date": "2026-05-20",
- "filing_type": "individual",
- "holder_id": "99999999R",
- "holder_name": "APELLIDO1 APELLIDO2, NOMBRE",
- "spouse_id": "11111111H",
- "spouse_name": "APELLIDO3 APELLIDO4, NOMBRE",
- "currency": "EUR",
- "general_taxable_base": 32450.18,
- "savings_taxable_base": 1250.4,
- "general_liquid_base": 30120.18,
- "savings_liquid_base": 1250.4,
- "state_gross_tax": 3655.27,
- "regional_gross_tax": 3540.12,
- "state_net_tax": 3480.15,
- "regional_net_tax": 3398.6,
- "resulting_tax": 6878.75,
- "withholdings_and_payments": 7378.45,
- "differential_tax": -499.7,
- "result_amount": -499.7,
- "result_type": "refundable",
- "xml_file": "string",
- "pdf_file": "string"
}
], - "credit_reports": [
- {
- "uuid": "3c1f0e7a9b2d4c6e8f0a1b3c5d7e9f1a2b4c6d8e",
- "issuer": "BDE",
- "report_type": "summary",
- "report_name": "Informe Global",
- "reference": "I2026100100000000",
- "period": "2026-08",
- "request_date": "2026-10-01",
- "issue_date": "2026-10-01",
- "available_until": "2026-10-21",
- "file_name": "Informe Agregado.pdf",
- "pdf_file": "string"
}
]
}, - "statistics": {
- "SESSION": "3463754e3540884",
- "execution_time": 0.958119869232178,
- "warnings": [
- {
- "code": 1000,
- "message": "No contracted funds",
- "product_type": "portfolios"
}
], - "operation_id": "1827C79229",
- "token": "FRJ0mHlaqZwLzu"
}
}Prüfung der Kontoinhaberschaft: Prüfen Sie, ob eine IBAN einem Kontoinhaber gehört, mithilfe der SEPA-Empfängerüberprüfung (VoP) der mit Ihrer Lizenz verknüpften Bank. Schritt-für-Schritt-Anleitung: MyBankMatch.
Prüft, ob eine IBAN dem angegebenen Kontoinhaber gehört, mithilfe der SEPA-Empfängerüberprüfung (VoP) Ihrer eigenen Bank, die mit Ihrer WealthReader-Lizenz verknüpft ist. Liefert das Urteil der Bank: Es wird weder durch eine lokale Berechnung der Namensähnlichkeit ersetzt, noch wird ein Zahlungsauftrag erstellt, autorisiert oder ausgeführt.
Vor dem ersten Aufruf
MY_BANK_MATCH und verfügbarem Kontingent.api_key zugeordnet; das Bank-Token wird nicht an den Browser übergeben und ist kein Parameter der Anfrage.Anfrage: formularcodierter Body (application/x-www-form-urlencoded) mit api_key, iban und name, wie bei /entities/. Es wird kein JSON gesendet und der Header X-API-Key wird nicht verwendet. Bewahren Sie den api_key in Ihrem Backend auf.
Antwort: HTTP 200 bedeutet, dass ein Ergebnis des Produkts ermittelt wurde, nicht, dass der Name übereinstimmt. Prüfen Sie success und anschließend payload.result:
payload.result |
Bedeutung | Zusätzliche Felder | Kostenpflichtig |
|---|---|---|---|
MATCH |
Die Bank stuft den Namen als übereinstimmend mit dem Kontoinhaber ein. | Keine. | Ja, 0,10 EUR. |
PARTIAL_MATCH |
Die Bank meldet eine teilweise Übereinstimmung (CLOSE_MATCH). |
suggested_name. |
Ja, 0,10 EUR. |
NO_MATCH |
Die Bank gibt an, dass der Name nicht übereinstimmt. | Keine. | Ja, 0,10 EUR. |
NOT_CONFIGURED |
Mit der Lizenz ist noch keine Bank verknüpft. | setup_url. |
Nein. |
REAUTH_REQUIRED |
Die Verbindung zur Bank erfordert eine erneute Authentifizierung. | setup_url, reason_code. |
Nein. |
NOT_POSSIBLE |
Es konnte kein verwertbares Urteil ermittelt werden. Dies ist nicht gleichbedeutend mit NO_MATCH. |
reason. |
Nein. |
Nur MATCH, PARTIAL_MATCH und NO_MATCH verbrauchen Kontingent. Eingabefehler und nicht eindeutige Ergebnisse werden nicht berechnet.
Es gibt weder einen Idempotenzschlüssel noch eine kostenlose Wiederholung. Wenn Ihnen die Antwort verloren geht (Timeout, Netzwerk oder nicht auswertbarer Body), können das Ergebnis und der zugehörige Kontingentverbrauch für Ihre Anwendung unbekannt sein. Senden Sie dieselbe Abfrage nicht automatisch erneut: Prüfen Sie den Verlauf unter Kunden und wenden Sie sich unter Angabe von statistics.SESSION an den Support.
Vollständige Anleitung: MyBankMatch.
| api_key required | string Schlüssel aus 8 Hexadezimalzeichen einer aktiven Lizenz mit dem Produkt MY_BANK_MATCH und verfügbarem Kontingent. Bewahren Sie ihn in Ihrem Backend auf. |
| iban required | string IBAN eines SEPA-Landes. Leerzeichen werden entfernt, der Wert wird in Großbuchstaben umgewandelt und die länderspezifische Länge sowie die Prüfziffern nach mod-97 werden validiert. Beispiel: |
| name required | string <= 140 characters Name des Kontoinhabers. Nicht leer, gültiges UTF-8, ohne Steuerzeichen und bis zu 140 Zeichen. Er wird getrimmt und interne Leerzeichen werden zusammengefasst. Beispiel: |
api_key=a1b2c3d4&iban=ES9321005707250200257112&name=Wealthreader%20S.L.
{- "success": true,
- "payload": {
- "result": "MATCH"
}, - "statistics": {
- "SESSION": "0123456789abcdef",
- "execution_time": 0.42,
- "warnings": [ ]
}
}SEPA-Kontozahlungen (Account-to-Account), die von der Bank des Zahlers ausgelöst werden. Es gibt zwei Integrationsmöglichkeiten:
POST /payments/?action=fast-track liefert die Zahlungs-URL, und Wealth Reader benachrichtigt Ihre notification_url mit OK oder KO. Siehe Fast-Track-Zahlungen.POST /payments/?action=create eine unveränderliche Zahlungsabsicht, öffnet das Widget mit dem zurückgegebenen Token und bestätigt das Ergebnis mit POST /payments/?action=status. Siehe Einführung in Zahlungen und Status, Abfrage und Abgleich.Gemeinsame Regeln für alle Aufrufe /payments/?action=...
POST mit dem Header Content-Type: application/json und einem JSON-Objekt als Body (maximal 32768 Byte).X-API-Key (wr_live_ gefolgt von 72 Buchstaben oder Ziffern) einer aktiven Lizenz mit dem Produkt PAYMENTS. Er wird niemals im Body gesendet. Jeder authentifizierte Aufruf wird auf das Aufruflimit der Lizenz angerechnet.422 invalid_request.payment_status: settled. Ein Widget-Ereignis, eine SCA-Rückkehr oder interaction_status: completed bedeuten niemals, dass die Zahlung abgewickelt ist.Fehlerformat: application/json (nicht problem+json) mit einem stabilen error.code; error.message dient nur der Information und kann sich ändern.
{"success": false, "error": {"code": "invalid_request", "message": "The request body has an invalid schema."}}
| HTTP | error.code |
Grund |
|---|---|---|
| 400 | invalid_json |
Body leer, ungültig oder kein JSON-Objekt. |
| 401 | invalid_api_key |
X-API-Key fehlt, ist fehlerhaft, unbekannt oder inaktiv. |
| 403 | payments_not_allowed |
Die Lizenz verfügt nicht über das Produkt PAYMENTS. |
| 404 | action_not_found |
Unbekannte action. |
| 405 | method_not_allowed |
Andere Methode als POST. |
| 413 | request_too_large |
Body größer als 32768 Byte. |
| 415 | json_required |
Anderer Content-Type als application/json. |
| 422 | invalid_request |
Fehlende oder nicht vorgesehene Felder. |
| 429 | api_limit_reached |
Das Aufruflimit der Lizenz wurde erreicht. |
| 500 | internal_error |
Unerwarteter Fehler. |
| 503 | payments_disabled, payments_accept_new_disabled, payment_storage_unavailable, payment_state_unavailable |
Dienst vorübergehend nicht verfügbar oder neue Zahlungen pausiert. |
Wealth Reader sendet diesen POST an die notification_url einer Fast-Track-Zahlung, wenn es den Status der Zahlung prüft und einen Endstatus vorfindet. reconciliation_required ist kein Endstatus und wird nicht gemeldet: Bestätigen Sie ihn mit status.
outcome ist nur dann ok, wenn die Bank die Zahlung abgewickelt hat (settled); rejected, cancelled, expired und failed werden als ko gemeldet.status aufrufen. Es gibt keinen separaten geplanten Versand: Wenn der Zahler die Seite verlässt, bevor die Bank zu einem Ergebnis kommt, oder Ihr Server nicht mit 2xx antwortet, wird die Benachrichtigung bei der nächsten Prüfung gesendet. Wenn sie einige Minuten nach der Weiterleitung des Zahlers nicht eingetroffen ist, rufen Sie status mit der payment_intent_id auf; dieser Aufruf löst auch die ausstehende Benachrichtigung aus.2xx, damit sie als zugestellt gilt. Wealth Reader folgt keinen Weiterleitungen und wartet höchstens 3 Sekunden.customer_reference zusammen mit outcome als idempotent.status unter Verwendung Ihres X-API-Key und der payment_intent_id aus der Benachrichtigung.| User-Agent required | string Value: "WealthReader-Payments" |
| outcome required | string Enum: "ok" "ko"
|
| payment_status required | string Enum: "settled" "rejected" "cancelled" "expired" "failed" Endgültiges finanzielles Ergebnis. |
| customer_reference required | string Der |
| payment_intent_id required | string <uuid> Von |
{- "outcome": "ok",
- "payment_status": "settled",
- "customer_reference": "11111111-1111-4111-8111-111111111111",
- "payment_intent_id": "3f2b8c1e-5d4a-4b6f-9e21-7c0d4a1b2e3f"
}Ein einziger Aufruf, der die Zahlungs-URL zurückgibt. Der Zahler öffnet sie und autorisiert die Zahlung bei seiner Bank; sobald die Zahlung einen Endstatus erreicht, benachrichtigt Wealth Reader Ihre notification_url mit OK oder KO (siehe Webhook notification_url). Im Hintergrund wird dieselbe unveränderliche Zahlungsabsicht wie bei create erstellt: Betrag, Begünstigter und Verwendungszweck werden festgelegt, bevor sie den Browser erreichen.
Der Header Idempotency-Key ist zugleich Ihre Händlerreferenz (customer_reference in der Benachrichtigung): Er wird nicht im Body gesendet. Wenn Sie denselben Schlüssel mit demselben Body wiederholen, erhalten Sie dieselbe URL; wenn Sie ihn mit anderen Daten wiederverwenden (auch mit einem anderen logo), lautet die Antwort 409 idempotency_conflict.
Für eine Echtzeitüberweisung gibt es in dieser API keine eigene Obergrenze: Die Bank lehnt ab, was sie nicht akzeptieren kann, auch aufgrund des Betrags, und diese Ablehnung wird als KO gemeldet.
| X-API-Key required | string API-Schlüssel einer Lizenz mit dem Produkt PAYMENTS. Bewahren Sie ihn in Ihrem Backend auf. |
| Idempotency-Key required | string [ 16 .. 128 ] characters 16 bis 128 Zeichen; muss mit einem Buchstaben oder einer Ziffer beginnen und darf nur Buchstaben, Ziffern und |
| amount required | string Betrag in Haupteinheiten als JSON-Zeichenkette. Beispiel: |
| currency required | string Value: "EUR" Währung nach ISO 4217. In dieser Version nur Beispiel: |
required | object (payments-beneficiary) Empfänger der Überweisung. Er kann nach dem Erstellen der Zahlung nicht mehr geändert werden. |
| reference required | string [ 1 .. 140 ] characters Verwendungszweck auf dem Kontoauszug, bis zu 140 Zeichen. Beispiel: |
| priority required | string Enum: "normal" "instant"
Beispiel: |
| notification_url required | string <= 2000 characters Öffentliche Beispiel: |
| logo | string <= 2048 characters Optional. Öffentliche Beispiel: |
{- "amount": "15.50",
- "currency": "EUR",
- "beneficiary": {
- "name": "Comercio Online S.L.",
- "iban": "ES9121000418450200051332"
}, - "reference": "Pedido 78901",
- "priority": "normal",
}{- "payment_intent_id": "3f2b8c1e-5d4a-4b6f-9e21-7c0d4a1b2e3f"
}Erstellt eine unveränderliche Zahlungsabsicht und gibt ein kurzlebiges Token zurück, um das Widget im Browser des Zahlers zu öffnen. Betrag, Begünstigter und Verwendungszweck werden im Backend festgelegt und können im Browser nicht geändert werden. Bestätigen Sie nach dem Schließen des Widgets das Ergebnis aus Ihrem Backend mit status.
Es gibt zwei Body-Varianten:
amount_minor, currency, beneficiary, reference, customer_reference und allowed_origin fest.cruz_roja_demo): Wealth Reader legt Begünstigten, Verwendungszweck und Limits fest; Sie senden profile, institution_code, amount_minor, customer_reference und allowed_origin. Die Banken erhalten Sie mit profile-institutions.Wenn Sie denselben Idempotency-Key mit demselben Body wiederholen, erhalten Sie dieselbe Zahlungsabsicht (200, idempotent_replay: true); wenn Sie ihn mit anderen Daten wiederverwenden, lautet die Antwort 409 idempotency_conflict. Der Schlüssel gilt nur für Ihr Unternehmen.
Anleitung: Zahlungsabsichten und Idempotenz und Integration mit dem Widget.
| X-API-Key required | string API-Schlüssel einer Lizenz mit dem Produkt PAYMENTS. Bewahren Sie ihn in Ihrem Backend auf. |
| Idempotency-Key required | string [ 16 .. 128 ] characters 16 bis 128 sichtbare ASCII-Zeichen. Erzeugen Sie einen pro Zahlung (eine UUID v4 ist gültig) und verwenden Sie ihn erneut, wenn Sie den Aufruf wiederholen. |
| amount_minor required | integer >= 1 Betrag in Untereinheiten (Cent) als JSON-Ganzzahl. Beispiel: |
| currency required | string Value: "EUR" |
required | object (payments-beneficiary) Empfänger der Überweisung. Er kann nach dem Erstellen der Zahlung nicht mehr geändert werden. |
| reference required | string [ 1 .. 140 ] characters Verwendungszweck auf dem Kontoauszug, bis zu 140 Zeichen. Beispiel: |
| customer_reference required | string <= 128 characters Ihre interne Referenz der Zahlung. 1 bis 128 Zeichen; beginnt mit einem Buchstaben oder einer Ziffer und enthält nur Buchstaben, Ziffern und Beispiel: |
| allowed_origin required | string Origin ( Beispiel: |
| locale | string Value: "es" Optional. Sprache des Widgets; in dieser Version nur |
| expected_mode | string Enum: "mock" "live" Optional. Wenn der Wert nicht mit der Umgebung übereinstimmt, antwortet der Aufruf mit |
| allowed_institution_codes | Array of strings <= 2500 items Optional. Nicht leere Liste eindeutiger Bankcodes (siehe Beispiel:
|
| logo | string or null Optional. Öffentliche |
{- "amount_minor": 1500,
- "currency": "EUR",
- "beneficiary": {
- "name": "Comercio Online S.L.",
- "iban": "ES9121000418450200051332"
}, - "reference": "Pedido 78901",
- "customer_reference": "order-78901",
}{- "success": true,
- "payment": {
- "id": "3f2b8c1e-5d4a-4b6f-9e21-7c0d4a1b2e3f",
- "state": "ready",
- "payment_status": "not_initiated",
- "idempotent_replay": true,
- "widget": {
- "token": "wrp_w_…",
- "expires_at": "2026-11-08T10:15:00+00:00"
}
}
}Server-zu-Server-Abfrage des Status einer Zahlung, bis ein Ergebnis der Bank vorliegt. Ein Callback, eine SCA-Rückkehr oder das Schließen des Widgets sind keine finanzielle Bestätigung: Nur payment_status: settled ist eine.
Wealth Reader begrenzt die externen Abfragen pro Zahlungsabsicht; wenden Sie auch in Ihrem Backend ein Backoff an und erstellen Sie keine weitere Zahlungsabsicht, solange das Ergebnis mehrdeutig ist.
Mehrdeutiges Ergebnis: Ein Netzwerkausfall, ein Timeout oder eine nicht erkannte Antwort nach dem Absenden der Auslösung versetzt die Zahlungsabsicht in den Status reconciliation_required mit payment_status: unknown, und die Antwort enthält reconciliation. Die Auslösung wird niemals automatisch wiederholt. Bewahren Sie die Kennung und den Idempotenzschlüssel auf, erstellen Sie keine weitere Zahlungsabsicht und autorisieren Sie nicht erneut; wenn automatic_recovery den Wert false hat, beenden Sie die Abfragen und eskalieren Sie mit reconciliation.reference an den Support.
Bei Fast-Track-Zahlungen sendet diese Abfrage außerdem die ausstehende OK/KO-Benachrichtigung an notification_url, wenn die Zahlung einen Endstatus erreicht hat.
Anleitung: Status, Abfrage und Abgleich.
| X-API-Key required | string API-Schlüssel der Lizenz, die die Zahlung erstellt hat. |
| payment_intent_id required | string <uuid> Von Beispiel: |
| refresh | boolean Default: true Optional. |
{- "payment_intent_id": "3f2b8c1e-5d4a-4b6f-9e21-7c0d4a1b2e3f",
- "refresh": true
}{- "success": true,
- "payment": {
- "id": "3f2b8c1e-5d4a-4b6f-9e21-7c0d4a1b2e3f",
- "amount_minor": 1500,
- "currency": "EUR",
- "beneficiary": {
- "name": "Comercio Online S.L.",
- "iban_masked": "ES91••••••••••••••••1332"
}, - "reference": "Pedido 78901",
- "payment_attestation": {
- "mode": "live",
- "provider_binding": "…",
- "allowed_institution_codes": null,
- "profile": null,
- "profile_version": null
}, - "state": "settled",
- "interaction_status": "finished",
- "payment_status": "settled",
- "reconciliation_required": false,
- "expires_at": "2026-11-08T10:30:00+00:00",
- "updated_at": "2026-11-08T10:04:12+00:00"
}
}Gibt die Bedingungen eines für Ihr Unternehmen freigeschalteten verwalteten Profils (Begünstigter, Verwendungszweck, Betragslimits) sowie die Banken zurück, die der Zahler wählen kann. Verwenden Sie den gewählten code als institution_code in create.
| X-API-Key required | string API-Schlüssel einer Lizenz mit dem Produkt PAYMENTS. |
| profile required | string Code des verwalteten Profils. Beispiel: |
{- "profile": "cruz_roja_demo"
}{- "success": true,
- "profile": {
- "code": "cruz_roja_demo",
- "version": "2026-09-04",
- "currency": "EUR",
- "min_amount_minor": 1,
- "max_amount_minor": 100,
- "reference": "Donativo desde la demo de Wealthreader.com",
- "beneficiary_name": "Cruz Roja Española",
- "payment_attestation": {
- "mode": "live",
- "provider_binding": "…"
}, - "institutions": [
- {
- "code": "santander-es",
- "name": "Banco Santander",
- "country": "ES",
- "requires_debtor_iban": false,
}
]
}
}Katalog der Banken, die Zahlungen auslösen können, mit ihrem Logo und den unterstützten Zahlungsmethoden. X-API-Key ist optional; wenn Sie ihn senden, wird er validiert und als Aufruf gezählt. Außerdem wird POST mit denselben Filtern in einem JSON-Body akzeptiert sowie POST /payments/?action=entities mit verpflichtendem X-API-Key.
Unbekannte Filter werden ignoriert und führen nie zu einem Validierungsfehler.
| country | string Example: country=ES Ländercode nach ISO 3166-1 Alpha-2. Beispiel: |
| search | string Im Namen oder Code enthaltener Text, ohne Beachtung der Groß-/Kleinschreibung (Alias |
| code | string Example: code=santander-es Exakter Code der Bank, ohne Beachtung der Groß-/Kleinschreibung. Beispiel: |
| payment_method | string Enum: "sepa_credit_transfer" "instant_sepa_credit_transfer" Nur die Banken, die diese Zahlungsmethode unterstützen. |
| limit | integer [ 1 .. 2000 ] Seitengröße (1 bis 2000). |
| offset | integer >= 0 Anzahl der übersprungenen Ergebnisse. |
| X-API-Key | string Optional. Wenn er gesendet wird, wird er validiert und als Aufruf gezählt. |
{- "success": true,
- "total": 1,
- "entities": [
- {
- "code": "santander-es",
- "name": "Banco Santander",
- "country": "ES",
- "logo_fallback": null,
- "logo_source": "wealthreader",
- "payment_methods": [
- "sepa_credit_transfer",
- "instant_sepa_credit_transfer"
], - "requires_debtor_iban": false
}
]
}Real-time card expense synchronization from the Open Sync mobile app: per-customer employee pre-registration, signed webhooks (card_transaction.created / card_enrollment.confirmed), and REST query / backfill.
Creates or updates the webhook URL of the customer for the card_transaction.created and card_enrollment.confirmed events (see the cards-webhook-delivery schema for the delivery format and signature). On first setup, or when rotate_secret is true, a new webhook_secret (64 hex characters) is generated and returned once; in any other case webhook_secret comes back as null in the response and cannot be retrieved again. webhook_url must always be https:// and must resolve to a publicly routable host: localhost, private, loopback, link-local (including the cloud metadata address), CGNAT, multicast and reserved addresses are rejected, in any notation (hexadecimal, decimal, octal, short dotted or IPv4-mapped IPv6), and so is a hostname that does not resolve at all. The same check runs again right before every delivery, not only at registration: if the host is repointed at an internal address afterwards (DNS rebinding) the delivery is closed as failed with response_excerpt "blocked_host". Sending null in webhook_url disables webhooks for that customer; omitting the field leaves the stored URL untouched, which is how the secret is rotated without changing the URL.
| api_key required | string API key of the customer. |
| webhook_url | string or null https:// URL that will receive the events, on a publicly routable host that resolves in DNS. null disables webhooks; omitting the field leaves the stored URL unchanged. Beispiel: |
| rotate_secret | boolean Default: false When true, generates and returns a new webhook_secret. |
{- "api_key": "a1b2c3d4",
- "rotate_secret": false
}{- "success": true,
- "payload": {
- "webhook_secret": "9f1c2b3a4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f8",
- "active": true
}
}Creates an enrollment request in pending status with a short expiry (ttl_minutes, 20 by default, between 1 and 60) for the employee to confirm by opening the mobile app and entering that email (POST /user-sync-validation/, no contract change for the app). It is idempotent: repeating the call for the same (api_key, email) while it is still pending and not expired returns the same request. If the email is already linked to the calling customer, it returns status "active" directly. If it is already linked to a different customer, it returns 409. Rate limit: at most 60 calls to this endpoint per api_key every 60 seconds, counting every attempt and not only the ones that create a row, checked before anything else so the answers that create nothing (200 already active, 409 linked to another customer, 400) cannot be walked as an enumeration oracle. Exceeding it returns 429 with code rate_limited.
| api_key required | string API key of the customer. |
| email required | string <email> Email of the employee to pre-register. Beispiel: |
| ttl_minutes | integer [ 1 .. 60 ] Default: 20 Minutes the request stays valid before expiring. |
{- "api_key": "a1b2c3d4",
- "email": "empleado@cliente.com",
- "ttl_minutes": 20
}{- "success": true,
- "payload": {
- "enrollment_id": "0f3a9c7b1d2e4f5a6b7c8d9e0f1a2b3c",
- "status": "pending",
- "email": "empleado@cliente.com",
- "expires_at": "2026-07-11T14:22:11+02:00",
- "confirmed_at": null,
- "user_id": null
}
}Read-only status of an enrollment request. It has no side effects on card users, unlike POST /user-sync-validation/, which does confirm. The only write allowed is lazily marking a pending enrollment whose expiry date has already passed as expired.
| api_key required | string Example: api_key=a1b2c3d4 API key of the customer. Note it travels in the query string, so it ends up in access logs and intermediary proxies. Beispiel: |
| enrollment_id required | string Example: enrollment_id=0f3a9c7b1d2e4f5a6b7c8d9e0f1a2b3c Identifier returned by POST /cards/enrollments/. Beispiel: |
{- "success": true,
- "payload": {
- "enrollment_id": "0f3a9c7b1d2e4f5a6b7c8d9e0f1a2b3c",
- "status": "active",
- "email": "empleado@cliente.com",
- "expires_at": "2026-07-11T14:22:11+02:00",
- "confirmed_at": "2026-07-11T14:10:03+02:00",
- "user_id": "e9f4c2a1b3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7"
}
}Returns the real-time card transactions received for the employees linked to this api_key, ordered by ascending id. Meant both for periodic backfill (poll with date_from/date_to and paginate with since_id) and for one-off queries. This is the same transaction object carried by the card_transaction.created webhook.
| api_key required | string Example: api_key=a1b2c3d4 API key of the customer. Note it travels in the query string, so it ends up in access logs and intermediary proxies. Beispiel: |
| date_from | string <date> Example: date_from=2026-07-01 YYYY-MM-DD, on the operation date. Default: today minus 3 days. Beispiel: |
| date_to | string <date> Example: date_to=2026-07-11 YYYY-MM-DD, on the operation date. Default: today. Beispiel: |
string <email> Example: email=empleado@cliente.com Filters by the email of the employee. Beispiel: | |
| since_id | integer Example: since_id=216 Exclusive cursor on the transaction id, for pagination. Beispiel: |
| limit | integer <= 1000 Default: 500 Example: limit=500 Maximum number of transactions to return (500 by default, 1000 max). Beispiel: |
{- "success": true,
- "payload": {
- "transactions": [
- {
- "id": 217,
- "payment_id": "550e8400-e29b-41d4-a716-446655440000",
- "user_id": "e9f4c2a1b3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7",
- "email": "empleado@cliente.com",
- "card_last4": "1234",
- "entity_code": "bbva",
- "operation_date": "2026-07-11",
- "value_date": "2026-07-11",
- "amount": -57.6,
- "currency": null,
- "description": "SAKE RESTAURANTE",
- "merchant": "SAKE RESTAURANTE",
- "category": "Other",
- "gps": {
- "lat": 39.4661559,
- "lon": -0.3679207
}, - "received_at": "2026-07-11T14:02:11+02:00"
}
], - "next_since_id": null
}
}