Discovering APIs Published by Data Providers
In Raidiam, Data Providers can publish their APIs, allowing Third Party Applications (Data Receivers) to integrate more efficiently. These APIs may adhere to the Trust Framework Administrator's Data API specifications or follow a custom implementation depending on the ecosystem configuration.
The API discovery process varies across Open Data Ecosystems—some use the Participants API to list organizations and their technical resources, while others or certain federations restrict access to organization data exclusively through Raidiam APIs.
Discovering APIs in Open Data Ecosystems
If your framework is an Open Data Ecosystem, client application's can utilize the Participants API to receive a JSON document containing a list of all participants and their technical resources, including the published APIs.
{
"AuthorisationServerId": "c8f0bf49-4744-4933-8960-7add6e590841",
"AutoRegistrationNotificationWebhook": null,
"AutoRegistrationSupported": true,
"CreatedAt": "2021-06-03T12:25:26Z",
"CustomerFriendlyDescription": "Mock Bank by Raidiam",
"CustomerFriendlyLogoUri": "https://cdn.raidiam.io/directory-ui/brand/obbrazil/0.2.0.112/favicon.svg",
"CustomerFriendlyName": "Mock Bank",
"DeprecatedDate": null,
"DeveloperPortalUri": "https://mockbank.com/dev",
"FederationEndpoint": null,
"FederationId": null,
"Issuer": "https://auth.mockbank.poc.raidiam.io",
"NotificationWebhook": null,
"NotificationWebhookAddedDate": null,
"NotificationWebhookStatus": null,
"OpenIDDiscoveryDocument": "https://auth.mockbank.poc.raidiam.io/.well-known/openid-configuration",
"OrganisationId": "74e929d9-33b6-4d85-8ba7-c146c867a817",
"ParentAuthorisationServerId": null,
"PayloadSigningCertLocationUri": "https://mockbank.com/payload.pem",
"RetirementDate": null,
"SupersededByAuthorisationServerId": null,
"SupportsCiba": false,
"SupportsDCR": false,
"SupportsRedirect": true,
"TermsOfServiceUri": "https://mockbank.com/tos",
"ApiResources": [
{
"ApiResourceId": "7aea412d-40e4-4f79-a9b2-84b18a699be6",
"ApiVersion": "1",
"FamilyComplete": false,
"ApiCertificationUri": null,
"CertificationStatus": null,
"CertificationStartDate": null,
"CertificationExpirationDate": null,
"ApiFamilyType": "consents",
"ApiDiscoveryEndpoints": []
},
{
"ApiResourceId": "441f5d3d-385e-4b06-8a34-5b7c4dfcb125",
"ApiVersion": "1",
"FamilyComplete": true,
"ApiCertificationUri": null,
"CertificationStatus": null,
"CertificationStartDate": null,
"CertificationExpirationDate": null,
"ApiFamilyType": "accounts",
"ApiDiscoveryEndpoints": [
{
"ApiDiscoveryId": "fb1a47cd-0620-4a91-b3a9-c5bffb38bd2d",
"ApiEndpoint": "https://matls-api.mockbank.poc.raidiam.io/open-banking/accounts/v1/accounts"
},
{
"ApiDiscoveryId": "2191da36-e03c-4802-a44a-66a56a48516e",
"ApiEndpoint": "https://matls-api.mockbank.poc.raidiam.io/open-banking/accounts/v1/accounts/{accountId}"
},
{
"ApiDiscoveryId": "1940e9f0-0aea-4164-8f02-f5a1bc72e87d",
"ApiEndpoint": "https://matls-api.mockbank.poc.raidiam.io/open-banking/accounts/v1/accounts/{accountId}/transactions"
},
{
"ApiDiscoveryId": "3f29155c-dad9-4818-87b6-059606157558",
"ApiEndpoint": "https://matls-api.mockbank.poc.raidiam.io/open-banking/accounts/v1/accounts/{accountId}/balances"
},
{
"ApiDiscoveryId": "636f8f95-f5f0-42c1-84d3-2c4d85ea7bc3",
"ApiEndpoint": "https://matls-api.mockbank.poc.raidiam.io/open-banking/accounts/v1/accounts/{accountId}/transactions-current"
},
{
"ApiDiscoveryId": "bb7f64f0-675d-4d23-a8c7-ffad45e7dbc0",
"ApiEndpoint": "https://matls-api.mockbank.poc.raidiam.io/open-banking/accounts/v1/accounts/{accountId}/overdraft-limits"
}
]
},
{
"ApiResourceId": "c60a1787-20dd-4a0a-9a2d-3fcf4819ded8",
"ApiVersion": "1",
"FamilyComplete": true,
"ApiCertificationUri": null,
"CertificationStatus": null,
"CertificationStartDate": null,
"CertificationExpirationDate": null,
"ApiFamilyType": "credit-cards-accounts",
"ApiDiscoveryEndpoints": [
{
"ApiDiscoveryId": "0c0eb910-4fd4-4298-976d-0540e00833de",
"ApiEndpoint": "https://matls-api.mockbank.poc.raidiam.io/open-banking/credit-cards-accounts/v1/accounts"
},
{
"ApiDiscoveryId": "58d0de32-a118-41a6-9fa1-b07fe3656bf7",
"ApiEndpoint": "https://matls-api.mockbank.poc.raidiam.io/open-banking/credit-cards-accounts/v1/accounts/{creditCardAccountId}"
},
{
"ApiDiscoveryId": "72afda1a-7955-4f2d-9bc6-4884d1adfc41",
"ApiEndpoint": "https://matls-api.mockbank.poc.raidiam.io/open-banking/credit-cards-accounts/v1/accounts/{creditCardAccountId}/limits"
},
{
"ApiDiscoveryId": "5a321b7e-4ca3-4103-8ba1-d3fd416f1b76",
"ApiEndpoint": "https://matls-api.mockbank.poc.raidiam.io/open-banking/credit-cards-accounts/v1/accounts/{creditCardAccountId}/transactions"
},
{
"ApiDiscoveryId": "f97d1ee9-696e-482d-b56e-2899fb464606",
"ApiEndpoint": "https://matls-api.mockbank.poc.raidiam.io/open-banking/credit-cards-accounts/v1/accounts/{creditCardAccountId}/transactions-current"
},
{
"ApiDiscoveryId": "2e8bcf54-27ea-4e46-a49b-5215c5cf1a5c",
"ApiEndpoint": "https://matls-api.mockbank.poc.raidiam.io/open-banking/credit-cards-accounts/v1/accounts/{creditCardAccountId}/bills/{billId}/transactions"
},
{
"ApiDiscoveryId": "7d7dd9ac-2a8f-40da-8b1f-624884a55f54",
"ApiEndpoint": "https://matls-api.mockbank.poc.raidiam.io/open-banking/credit-cards-accounts/v1/accounts/{creditCardAccountId}/bills"
}
]
}
]}
Within the JSON payload above, you can see the ApiResources
object which is a
list of all the APIs and their endpoints you can integrate with.
Discovering APIs in Other Ecosystems
In order to get information about the published APIs for an organisation, utilize the below Raidiam APIs. Since all APIs published within Raidiam are tied to an authorisation server, you need to first check all authorisation servers added for an organisation and then check the published APIs.
-
Authenticate client application using client credentials flow and request the directory:software scope.
-
Raidiam Connect's Authorisation Server validates the certificate as part of the
tls_client_auth
client authentication process. -
If validation is successful, the server returns an access token you can use to call Raidiam's APIs and retrieve information about the authorisation servers and their configuration.
-
Retrieve authorisation servers using one of the APIs listed below:
-
Get All Organisations - lists all organisations the user is authorised to retrieve.
-
Get All Authorisation Servers for Given Organisation - lists all authorisation servers registered within an organisation along with their configuration.
-
Get Authorisation Server by Identifier - returns a selected authorisation server along with its configuration.
Include the access token you got in the step #1 to authenticate your client application's request.
-
-
Retrieve a list of all API resources published for an authorisation server once you have its authorisation server identifier.