{"openapi":"3.0.0","info":{"description":"","title":"Rabo Identity Services - iDIN","version":"1.52.0","x-api-id":"be4da995-5724-430f-bcbe-6f4e4894e20c","x-ibm-name":"rabo-identity-services-idin"},"servers":[{"url":"https://api.rabobank.nl/openapi/","description":"Production server"},{"url":"https://api-sandbox.rabobank.nl/openapi/sandbox/","description":"Sandbox server"}],"paths":{"/ris/auth/idin/issuers":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/IssuerResponseDto"},"type":"array"}}},"description":"Successful operation","headers":{"X-Trace-Id":{"description":"Correlation id per request/response for debug purpose","schema":{"type":"string"},"x-example":"b91840df17aa33d33b2ead56d257b4e36b149e41d0561bec5cc8e3a83e6548bb"}}},"401":{"content":{"application/json":{"examples":{"response":{"value":{"authorization-error":"Unauthorized","detail":"Failure while processing the request!","instance":"/ris/auth/idin","status":401,"title":"Unauthorized","traceId":"79c50d0b82206e76192f7de64d42e2d4","type":"urn:ris:error:unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized","headers":{"X-Trace-Id":{"description":"Correlation id per request/response for debug purpose","schema":{"type":"string"},"x-example":"b91840df17aa33d33b2ead56d257b4e36b149e41d0561bec5cc8e3a83e6548bb"}}},"500":{"content":{"application/json":{"examples":{"response":{"value":{"detail":"Failure while processing the request!","instance":"/ris/auth/idin","status":500,"title":"Internal Server Error","traceId":"327725e316216679503dd9667256e02f","type":"about:blank"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"A general problem with the server.","headers":{"X-Trace-Id":{"description":"Correlation id per request/response for debug purpose","schema":{"type":"string"},"x-example":"b91840df17aa33d33b2ead56d257b4e36b149e41d0561bec5cc8e3a83e6548bb"}}}},"tags":["iDIN"],"operationId":"getIssuers","summary":"Get the list of issuing banks"}},"/ris/auth/idin/keys":{"get":{"responses":{"200":{"content":{"application/json":{"examples":{"response":{"value":{"keys":[{"alg":"RS256","e":"AQAB","kid":"12345","kty":"RSA","n":"0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx 4cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMs tn64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2 QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbI SD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqb w0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw"}]}}},"schema":{"$ref":"#/components/schemas/JwksResponse"}}},"description":"Integrity keys successfully retrieved","headers":{"X-Trace-Id":{"description":"Correlation id per request/response for debug purpose","schema":{"type":"string"},"x-example":"0328e2da2a0e1fa0aa3e1d3f2294e23f6153d6e5e6327e87c586f41fb7b683f2"}}}},"tags":["Keys"],"operationId":"getKeys","summary":"Retrieve Integrity Keys"}},"/ris/auth/idin/sessions":{"post":{"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdinCreateSessionResponseDto"}}},"description":"Successful operation","headers":{"X-Trace-Id":{"description":"Correlation id per request/response for debug purpose","schema":{"type":"string"},"x-example":"ba52bfe82e836a79d4b6b581e2c6866e7da2fd438224cb556fe755e7fdfc1721"}}},"400":{"content":{"application/json":{"examples":{"response":{"value":{"detail":"Invalid request content.","instance":"/ris/auth/idin/sessions","invalid-context":[{"field":"requestedAttributes","reason":"must not be empty"}],"status":400,"title":"Bad Request","traceId":"f499f7d9ae692eb6bffab82970c70bf9","type":"urn:ris:error:input-validation"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad request","headers":{"X-Trace-Id":{"description":"Correlation id per request/response for debug purpose","schema":{"type":"string"},"x-example":"ba52bfe82e836a79d4b6b581e2c6866e7da2fd438224cb556fe755e7fdfc1721"}}},"401":{"content":{"application/json":{"examples":{"response":{"value":{"authorization-error":"Unauthorized","detail":"Failure while processing the request!","instance":"/ris/auth/idin","status":401,"title":"Unauthorized","traceId":"79c50d0b82206e76192f7de64d42e2d4","type":"urn:ris:error:unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized","headers":{"X-Trace-Id":{"description":"Correlation id per request/response for debug purpose","schema":{"type":"string"},"x-example":"ba52bfe82e836a79d4b6b581e2c6866e7da2fd438224cb556fe755e7fdfc1721"}}},"500":{"content":{"application/json":{"examples":{"response":{"value":{"detail":"Failure while processing the request!","instance":"/ris/auth/idin","status":500,"title":"Internal Server Error","traceId":"327725e316216679503dd9667256e02f","type":"about:blank"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"A general problem with the server.","headers":{"X-Trace-Id":{"description":"Correlation id per request/response for debug purpose","schema":{"type":"string"},"x-example":"ba52bfe82e836a79d4b6b581e2c6866e7da2fd438224cb556fe755e7fdfc1721"}}}},"tags":["iDIN"],"operationId":"createSession","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdinRequestDto"}}},"required":true},"summary":"Create session"}},"/ris/auth/idin/sessions/{sessionId}":{"get":{"parameters":[{"description":"The session identifier","example":"da236845-63a2-f44e-84fb-5f8fb1aa0b3c","in":"path","name":"sessionId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdinResponseDto"}}},"description":"Successful operation","headers":{"X-Trace-Id":{"description":"Correlation id per request/response for debug purpose","schema":{"type":"string"},"x-example":"111c5987a48a5a4b5ba0292de7ba5f0802a18888370d00d35586a263dbe73f93"}}},"401":{"content":{"application/json":{"examples":{"response":{"value":{"authorization-error":"Unauthorized","detail":"Failure while processing the request!","instance":"/ris/auth/idin","status":401,"title":"Unauthorized","traceId":"79c50d0b82206e76192f7de64d42e2d4","type":"urn:ris:error:unauthorized"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized","headers":{"X-Trace-Id":{"description":"Correlation id per request/response for debug purpose","schema":{"type":"string"},"x-example":"111c5987a48a5a4b5ba0292de7ba5f0802a18888370d00d35586a263dbe73f93"}}},"404":{"content":{"application/json":{"examples":{"response":{"value":{"detail":"Failure while processing the request!","instance":"/ris/auth/idin/sessions/f0ecc204-e43b-444c-ae37-4d45ff3b2897","not-found-error":"Resource not found [f0ecc204-e43b-444c-ae37-4d45ff3b2897]","status":404,"title":"Resource not found","traceId":"c5d22a80461c552b3b7d1f8d6adee532","type":"urn:ris:error:not-found"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Resource not found","headers":{"X-Trace-Id":{"description":"Correlation id per request/response for debug purpose","schema":{"type":"string"},"x-example":"111c5987a48a5a4b5ba0292de7ba5f0802a18888370d00d35586a263dbe73f93"}}},"500":{"content":{"application/json":{"examples":{"response":{"value":{"detail":"Failure while processing the request!","instance":"/ris/auth/idin","status":500,"title":"Internal Server Error","traceId":"327725e316216679503dd9667256e02f","type":"about:blank"}}},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"A general problem with the server.","headers":{"X-Trace-Id":{"description":"Correlation id per request/response for debug purpose","schema":{"type":"string"},"x-example":"111c5987a48a5a4b5ba0292de7ba5f0802a18888370d00d35586a263dbe73f93"}}}},"tags":["iDIN"],"operationId":"retrieveSession","summary":"Retrieve session"}}},"components":{"schemas":{"AdditionalParametersDto":{"properties":{"idin_idp":{"type":"string"}},"type":"object"},"AddressFormatted":{"properties":{"city":{"description":"The city of the subject","example":"Utrecht","type":"string"},"country":{"description":"The country of the subject","example":"NL","type":"string"},"fullAddress":{"description":"Full address of the subject","example":"Croeselaan 18, 3521CB, Utrecht, NL","type":"string"},"houseNumber":{"description":"The house number of the subject","example":"18","type":"string"},"postalCode":{"description":"The postal code of the subject","example":"3521CB","type":"string"},"street":{"description":"The street name of the subject","example":"Croeselaan","type":"string"}},"type":"object"},"CallBackUrlDto":{"description":"Specify the redirect URLs that should be applied in different scenarios, https is required for all callback URLs.","properties":{"abort":{"description":"Redirect in case the flow is aborted","example":"https://developer.rabobank.nl/api-documentation/abort","type":"string"},"error":{"description":"Redirect in case the flow is failing","example":"https://developer.rabobank.nl/api-documentation/failed","type":"string"},"success":{"description":"Redirect in case the flow is successful","example":"https://developer.rabobank.nl/api-documentation/success","type":"string"}},"required":["abort","error","success"],"type":"object"},"ErrorDto":{"properties":{"code":{"description":"Code of the error","example":"idp:sql-connection-problem","type":"string"},"detail":{"description":"Details of the error","example":"Enable to connect to SQL memory store","type":"string"},"title":{"description":"Title of the error","example":"SQL connection problem.","type":"string"},"type":{"description":"Type of the error","example":"https://example.com/errors#sql-connection-problem","type":"string"}},"type":"object"},"ErrorResponse":{"properties":{"detail":{"description":"Detail of the error","example":"Failure while processing the request!","type":"string"},"instance":{"description":"Instance of the error","example":"/ris/resource/d5cc0517-4e2b-4e80-8442-46a5a130b03e","type":"string"},"status":{"description":"Status of the error","example":400,"format":"int32","type":"integer"},"title":{"description":"Tittle of the error","example":"Internal Server Error","type":"string"},"traceId":{"description":"Id of the error, so that it can be investigated on the persisted logs","example":"40b664267dbf2e1cec98de4a733bbd01","type":"string"},"type":{"description":"Type of the error","example":"urn:ris:error:input-validation","type":"string"}},"type":"object"},"IdinRequestDto":{"properties":{"additionalParameters":{"$ref":"#/components/schemas/AdditionalParametersDto"},"callbackUrls":{"$ref":"#/components/schemas/CallBackUrlDto"},"externalReference":{"description":"An external reference that can be set, which will be returned as a URL parameter on callbackUrls","example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","type":"string"},"language":{"description":"The desired language for the UI","example":"nl","type":"string"},"requestedAttributes":{"description":"The list of requested attributes for the identification of the user","example":["idpId","gender","name","lastName","preferredLastName","legalLastName","partnerLastName","legalLastNamePrefix","preferredLastNamePrefix","partnerLastNamePrefix","initials","dateOfBirth","18OrOlder","address","phoneNumber","email"],"items":{"type":"string"},"type":"array"},"sessionLifetime":{"description":"The default sessionLifetime is 1200s with a minimum of 300s. In case a value is set lower than 300s, a value of 300s is applied. The maximum value is 3599s.","example":1200,"format":"int64","maximum":3599,"type":"integer"}},"required":["callbackUrls","requestedAttributes"],"type":"object"},"IdinCreateSessionResponseDto":{"required":["callbackUrls","id","status"],"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the session","example":"f3586299-a7f3-074b-8c49-eaf866810210"},"authenticationUrl":{"type":"string","description":"The URL that should be used to redirect your user to for the identification","example":"https://rabobank.nl/broker/sp/external-service/login?messageId=b7ff5ac0-5a35-a144-9831-1434d87d19dd&transactionId=f3586299-a7f3-074b-8c49-eaf866810210"},"status":{"type":"string","description":"The current status of the session","example":"SUCCESS","enum":["SUCCESS","CREATED","ERROR","ABORT","WAITING_FOR_USER","EXPIRED"]},"statusDetail":{"type":"string","description":"More details in case the response leads to an error","example":"Additional details on the status"},"provider":{"type":"string","description":"The IdP which was used by the end-user to authenticate","example":"idin"},"callbackUrls":{"$ref":"#/components/schemas/CallBackUrlDto"},"error":{"$ref":"#/components/schemas/ErrorDto"},"language":{"type":"string","description":"The desired language for the UI","example":"nl"},"requestedAttributes":{"type":"array","description":"The list of requested attributes for the identification of the user","example":["idpId","gender","name","lastName","preferredLastName","legalLastName","partnerLastName","legalLastNamePrefix","preferredLastNamePrefix","partnerLastNamePrefix","initials","dateOfBirth","18OrOlder","address","phoneNumber","email"],"items":{"type":"string"}},"externalReference":{"type":"string","description":"An external reference that can be set, which will be returned as a URL parameter on callbackUrls","example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"},"sessionLifetime":{"type":"integer","description":"The default sessionLifetime is 1200s with a minimum of 300s. In case a value is set lower than 300s, a value of 300s is applied. The maximum value is 3599s.","format":"int64","example":1200}}},"IdinResponseDto":{"properties":{"authenticationUrl":{"description":"The URL that should be used to redirect your user to for the identification","example":"https://rabobank.nl/broker/sp/external-service/login?messageId=b7ff5ac0-5a35-a144-9831-1434d87d19dd&transactionId=f3586299-a7f3-074b-8c49-eaf866810210","type":"string"},"callbackUrls":{"$ref":"#/components/schemas/CallBackUrlDto"},"error":{"$ref":"#/components/schemas/ErrorDto"},"externalReference":{"description":"An external reference that can be set, which will be returned as a URL parameter on callbackUrls","example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","type":"string"},"id":{"description":"Unique identifier of the session","example":"f3586299-a7f3-074b-8c49-eaf866810210","type":"string"},"language":{"description":"The desired language for the UI","example":"nl","type":"string"},"provider":{"description":"The IdP which was used by the end-user to authenticate","example":"idin","type":"string"},"requestedAttributes":{"description":"The list of requested attributes for the identification of the user","example":["idpId","gender","name","lastName","preferredLastName","legalLastName","partnerLastName","legalLastNamePrefix","preferredLastNamePrefix","partnerLastNamePrefix","initials","dateOfBirth","18OrOlder","address","phoneNumber","email"],"items":{"type":"string"},"type":"array"},"sessionLifetime":{"description":"The default sessionLifetime is 1200s with a minimum of 300s. In case a value is set lower than 300s, a value of 300s is applied. The maximum value is 3599s.","example":1200,"format":"int64","type":"integer"},"status":{"description":"The current status of the session","enum":["SUCCESS","CREATED","ERROR","ABORT","WAITING_FOR_USER","EXPIRED"],"example":"SUCCESS","type":"string"},"statusDetail":{"description":"More details in case the response leads to an error","example":"Additional details on the status","type":"string"},"subject":{"$ref":"#/components/schemas/SubjectDto"}},"required":["callbackUrls","id","status"],"type":"object"},"IssuerDetailsDto":{"description":"List of issuing banks participating in the iDIN scheme","example":[{"id":"ABNANL2A","name":"ABNAMRO"},{"id":"ASNBNL21","name":"ASNBank"},{"id":"BUNQNL2A","name":"bunq"},{"id":"INGBNL2A","name":"ING"},{"id":"RABONL2U","name":"Rabobank"},{"id":"RBRBNL21","name":"RegioBank"},{"id":"SNSBNL2A","name":"SNS"}],"properties":{"id":{"description":"Unique identifier of the issuer bank participating in the iDIN scheme","type":"string"},"name":{"description":"Name of the issuer bank participating in the iDIN scheme","type":"string"}},"type":"object"},"IssuerResponseDto":{"properties":{"country":{"description":"Name of the country where the issuing bank is located","example":"Nederland","type":"string"},"issuers":{"description":"List of issuing banks participating in the iDIN scheme","example":[{"id":"ABNANL2A","name":"ABNAMRO"},{"id":"ASNBNL21","name":"ASNBank"},{"id":"BUNQNL2A","name":"bunq"},{"id":"INGBNL2A","name":"ING"},{"id":"RABONL2U","name":"Rabobank"},{"id":"RBRBNL21","name":"RegioBank"},{"id":"SNSBNL2A","name":"SNS"}],"items":{"$ref":"#/components/schemas/IssuerDetailsDto"},"type":"array"}},"type":"object"},"JwksResponse":{"description":"JWKSet keys response","properties":{"keys":{"items":{"properties":{},"type":"object"},"type":"array"}},"required":["keys"],"type":"object"},"SubjectDto":{"description":"The subject of the session","properties":{"18OrOlder":{"description":"Boolean indicating if the user is 18+ years","example":true,"type":"boolean"},"address":{"description":"The address of the subject","example":"Croeselaan 18, 3521CB, Utrecht, NL","type":"string"},"addressFormatted":{"$ref":"#/components/schemas/AddressFormatted"},"dateOfBirth":{"description":"The date of birth of the subject. Format is YYYYMMDD","example":"19800101","type":"string"},"email":{"description":"The email of the subject","example":"noreply@rabobank.nl","type":"string"},"gender":{"description":"Biological sex of user. Returned values: 0 (= unknown), 1 (= male), 2 (= female), 9 (= not specified)","example":"1","type":"string"},"id":{"description":"The identifier of the subject","example":"f3586299-a7f3-074b-8c49-eaf866810210","type":"string"},"idpId":{"description":"The Identity Provider (IdP) identifier of the subject","example":"FANTASYBANK1234567890","type":"string"},"initials":{"description":"The initials of the subject","example":"VJ","type":"string"},"lastName":{"description":"The last name of the subject","example":"de Vries","type":"string"},"legalLastName":{"description":"Legal last name of user without prefixes","example":"Vries","type":"string"},"legalLastNamePrefix":{"description":"The prefix of the legal last name of the subject","example":"de","type":"string"},"name":{"description":"The full name of the subject","example":"VJ de Vries","type":"string"},"partnerLastName":{"description":"The partner last name of the subject","example":"Jansen","type":"string"},"partnerLastNamePrefix":{"description":"The prefix of the last name of the partner of the subject","example":"de","type":"string"},"phoneNumber":{"description":"Phone number (mobile or landline) of subject","example":"+31612345678","type":"string"},"preferredLastName":{"description":"The preferred last name of the subject","example":"Vries-Jansen","type":"string"},"preferredLastNamePrefix":{"description":"Prefix of user's preferred last name","example":"de","type":"string"}},"type":"object"}},"securitySchemes":{"clientId":{"description":"ClientId as provided by the Rabobank developer portal.","in":"header","name":"X-IBM-Client-Id","type":"apiKey"}}},"security":[{"clientId":[]}],"x-components":{},"x-readme":{"explorer-enabled":false,"proxy-enabled":false}}