-
Get Started
Concepts
Secure Access
HTTP for API Transport
Resources and URI Structure
Resource Collections
Hypermedia APIs
Representation Profiles and Schemas
Versioning
Revisions
Resource Sets
Optimistic Locking and Concurrency
Error Responses and Error Representation
Markdown
OpenAPI Reference
Release Notes
Apiture API License Agreement
Resources and URI Structure
Apiture Open Banking APIs center on REST concepts of transferring representations of resources and application state. Resources are the banking business objects, such as users, accounts, transfers, files, transactions, statements, and so on. Resources may either be collections or instances which reside in collections. Each resource, whether it is a collection or an instance, has a unique Uniform Resource Indicator or URI, which serves as the address of that resource. Use the URI to access a resource.
URIs
A URI is the address of a resource. Apiture Open Banking APIs use “clean URIs” which aid in
understanding the API resource structure. As addresses of resources, URIs are nouns.
The HTTP verbs GET
, POST
, PUT
and DELETE
convey the action of the request.
Think of GET
as an alias for “Read”, POST
as an alias for “Create”, and PUT
as an alias for “Update”.
Translate each operation into an imperative sentence:
- Read
POST /transfers
as “Create a new resource within the transfers collection” - Read
PUT /users/u123
as “Update user u123”
The URIs of Apiture Open Banking APIs do not contain verbs.
Verbs in URIs do not allow us to extend the API with PUT
, GET
, DELETE
, or define instances beneath the verb.
When URIs are nouns, we can always
extend the API. For example, GET /validations
returns a collection, and we can extend it to the operation
GET /validations/{validationId}
.
Resource URI Structure
The URIs of Apiture Open Banking APIs follow a consistent structure that reflects the resources of each API.
Path | Description |
---|---|
/<apiName>/ |
The root of the API, from which the rest of the API may be discovered. Examples: /accounts/ /transfers/ |
/<apiName>/<collectionName> |
A collection of resources within the API. The response to the GET /apiName/ call contains a link to this collection. Examples: /accounts/externalAccounts /transfers/scheduledTransfers |
/<apiName>/<collectionName>/{instanceId} |
An instance is a resource in the named collection with a unique identifier string, the {instanceId} . Example: /accounts/externalAccounts/c276fda5-b631-49f2-8911-13c6ad6264da |
In the the third example above, {instanceId}
denotes a path variable, a string consisting of ASCII characters, which
varies from instance to instance. For example, the path pattern for an external account is
/accounts/externalAccounts/{externalAccountId}
. Replace the path variable {externalAccountId}
with the unique ID of
an external account, such as c276fda5-b631-49f2-8911-13c6ad6264da
. This
gives the URI for the specific external account: /accounts/externalAccounts/c276fda5-b631-49f2-8911-13c6ad6264da
.
Note: An account ID is not the same as the account number. We do not use account numbers in URIs for security
reasons.
API Root
Each Apiture Open Banking API has a top-level root that corresponds to the API name. The root of the Accounts API is /accounts/
.
The API root operation, such as, the Accounts API operation GET /accounts
, returns a set of links
to the top level resources in the API;
these are typically collections. For example, GET /accounts/
returns links to the top level collections (/accounts/accounts
1 and /accounts/externalAccounts
)
as well as links to operations to create new resources in those top level collections.
Links at the top of the API do not include links that apply to instances within collections. You can discover links on an item from the instance resource.
-
It is common for a top-level collection to have the same name as the API name. The primary collection in the Accounts API is also named
accounts
, yielding the path/accounts/accounts
to the collection of accounts. ↩