Download OpenAPI specification:Download
The Griffin API is based on REST. It has resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response verbs and response codes.
Our API deviates from strict RESTful principles if it makes sense to do so, such as when we enforce tighter access controls around certain operations.
For example, when closing a bank account: rather than send a PATCH request to the bank account resource to update its status to "closed", we provide a dedicated account closure resource.
Anyone can create an account with Griffin and try out our API in sandbox mode.
New to Griffin? Check out our getting started guide.
Our list APIs support pagination (e.g. list bank accounts and list payments). By default, a list API returns up to 25 results. If there are more results available, the response payload will include links to the previous/next pages.
You can request a different number of results (between 1 and 200, inclusive) by using the page[size] query parameter:
GET /organizations/:id/bank/accounts?page[size]=100
List responses will include a links object with prev and next attributes, as shown below.
Perform a GET request to the value of the attribute to fetch the previous/next page of results.
{
"accounts": [
// ...
],
"links": {
"prev": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/bank/accounts?page[before]=djE6WxSPxfYUTnCU9XtWzj9gGA",
"next": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/bank/accounts?page[after]=djE6aw79PXZySUOL16LD8HRJ3A"
}
}
If there is no previous or next page available, the value of the attribute will be null.
Any other query parameters included in the initial request will also be included in the response payload's links. If you want to change parameters (see filtering and sorting), request the first page and follow the links from there.
By default, resources will be listed in descending order, usually based on the created-at attribute.
You can change the sorting behaviour of a list of results by using the sort query parameter.
For example, to list bank accounts in ascending order (oldest first):
GET /organizations/:id/bank/accounts?sort=created-at
To explicitly sort in descending order (newest first), prefix the sort attribute with -:
GET /organizations/:id/bank/accounts?sort=-created-at
Some list APIs allow you to filter the results.
Filters are expressed as nested data structures encoded into query parameters.
For example, you can list bank accounts that are in either the opening or open state with:
GET /organizations/:id/bank/accounts?filter[account-status][in][]=opening&filter[account-status][in][]=open
Similarly, you can list legal persons with a specific application-status:
GET /organizations/:id/legal-persons?filter[application-status][eq]=accepted
Some list APIs allow you to include associated resources in the response, reducing the number of requests needed to fetch related data.
For instance, when listing bank accounts, you can include each bank account's beneficiary legal person by using the include query parameter:
GET /organizations/:id/bank/accounts?include=beneficiary
The response returns the usual list of bank accounts, but it will also have an included object with a legal-persons attribute:
{
"accounts": [
// ...
],
"links": {
// ...
}
"included": {
"legal-persons": [
// ...
]
}
}
Check the documentation for each list API to see all options for sorting and filtering
Each organization is allowed up to 50 concurrent (in-flight) API requests. Exceeding this threshold results in a 429 - Too Many Requests response. Upon receiving a 429 response, you should implement a backoff strategy, pausing to allow your outstanding requests to complete before attempting new requests. To manage your request rate effectively and avoid surpassing this limit, consider using a controlled approach such as a finite pool of threads or workers.
The api-key-secret field is only shown once when you create an API key.
We cannot recover the value, so you should store it securely.
Pass an Authorization header with GriffinAPIKey api-key-secret to authenticate.
Each API key is only valid for one organization. If you are a member of multiple organizations, you will need to create a new API key for each one. There is currently no limit on the number of API keys you can create.
Returns the API key without api-key-secret.
| api-key-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "api-key-url": "/api-keys/ak.ICAgICAgYXBpLWtleS1pZA",
- "api-key-name": "buildserver",
- "api-key-live?": true,
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "created-at": "2019-08-24T14:15:22Z"
}Deletes the API Key. This operation cannot be undone.
| api-key-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
List all active API keys in your organization.
| organization-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| sort | string Enum: "-created-at" "created-at" |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "api-keys": [
- {
- "api-key-url": "/api-keys/ak.ICAgICAgYXBpLWtleS1pZA",
- "api-key-name": "buildserver",
- "api-key-live?": true,
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "created-at": "2019-08-24T14:15:22Z"
}
], - "links": {
- "prev": "string",
- "next": "string"
}, - "included": null
}Create a new API key. This is the only time api-key-secret is shown.
| organization-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| api-key-name required | string (api-key-name) non-empty The name of the API Key. Cannot contain whitespace. |
{- "api-key-name": "string"
}{- "api-key-url": "/api-keys/ak.ICAgICAgYXBpLWtleS1pZA",
- "api-key-name": "buildserver",
- "api-key-live?": true,
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "api-key-secret": "g-test-buildserver-RrUZ5fUG4pSKwYVVG1C3Ft1xrMRxy1T7KUIyTva5bTk"
}List all your active API keys.
| user-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| sort | string Enum: "-created-at" "created-at" |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "api-keys": [
- {
- "api-key-url": "/api-keys/ak.ICAgICAgYXBpLWtleS1pZA",
- "api-key-name": "buildserver",
- "api-key-live?": true,
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "created-at": "2019-08-24T14:15:22Z"
}
], - "links": {
- "prev": "string",
- "next": "string"
}
}An event records a change to a resource in your organization. The event-type determines the shape of the event-payload. You can list your organization's events, or receive them as they happen with a webhook.
| event-url required | string (event-url) Link to the event. |
| event-type required | string (event-type) The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated Value: "account-status-created" |
required | account-status-created (object) or unavailable-payload (object) |
| created-at | string <date-time> (date-time) ISO 8601 formatted date-time. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "account-status-created",
- "event-payload": {
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "account-status": "closing"
}, - "created-at": "2019-08-24T14:15:22Z"
}| event-url required | string (event-url) Link to the event. |
| event-type required | string (event-type) The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated Value: "account-status-updated" |
required | account-status-updated (object) or unavailable-payload (object) |
| created-at | string <date-time> (date-time) ISO 8601 formatted date-time. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "account-status-updated",
- "event-payload": {
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "account-status": "closing"
}, - "created-at": "2019-08-24T14:15:22Z"
}| event-url required | string (event-url) Link to the event. |
| event-type required | string (event-type) The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated Value: "admission-created" |
required | admission-created (object) or unavailable-payload (object) |
| created-at | string <date-time> (date-time) ISO 8601 formatted date-time. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "admission-created",
- "event-payload": {
- "admission-status": "cancelled",
- "admission-scheme-information": {
- "end-to-end-identification": "string",
- "payment-scheme": "fps"
}, - "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "admission-url": "/admissions/pa.ICAgIGFkbWlzc2lvbi1pZA",
- "unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes ",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "original-unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes "
}, - "created-at": "2019-08-24T14:15:22Z"
}| event-url required | string (event-url) Link to the event. |
| event-type required | string (event-type) The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated Value: "admission-updated" |
required | admission-updated (object) or unavailable-payload (object) |
| created-at | string <date-time> (date-time) ISO 8601 formatted date-time. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "admission-updated",
- "event-payload": {
- "admission-status": "cancelled",
- "admission-scheme-information": {
- "end-to-end-identification": "string",
- "payment-scheme": "fps"
}, - "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "admission-url": "/admissions/pa.ICAgIGFkbWlzc2lvbi1pZA",
- "unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes ",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "original-unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes "
}, - "created-at": "2019-08-24T14:15:22Z"
}| event-url required | string (event-url) Link to the event. |
| event-type required | string (event-type) The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated Value: "decision-created" |
required | decision-created (object) or unavailable-payload (object) |
| created-at | string <date-time> (date-time) ISO 8601 formatted date-time. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "decision-created",
- "event-payload": {
- "decision-outcome": "accepted",
- "decision-notes": "string",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "decline-reasons": [
- {
- "decline-reason-code": "applicant-under-16",
- "decline-reason-title": "string",
- "decline-reason-description": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "decline-reason-claim-types": [
- "mobile-number"
]
}
], - "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "decision-maker": "system",
- "decision-user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "decision-ops-user": "griffin-ops-user",
- "decision-user-username": "user@example.com"
}, - "created-at": "2019-08-24T14:15:22Z"
}| event-url required | string (event-url) Link to the event. |
| event-type required | string (event-type) The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated Value: "onboarding-application-created" |
required | (onboarding-application-created (processing (object) or submitted (object) or errored (object) or complete (object))) or unavailable-payload (object) |
| created-at | string <date-time> (date-time) ISO 8601 formatted date-time. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "onboarding-application-created",
- "event-payload": {
- "onboarding-application-url": "/onboarding/applications/oa.b25ib2FyZGluZy1hcHBsaQ",
- "created-at": "2019-08-24T14:15:22Z",
- "workflow-url": "/workflows/wf.ICAgICB3b3JrZmxvdy1pZA",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "onboarding-application-status": "processing"
}, - "created-at": "2019-08-24T14:15:22Z"
}| event-url required | string (event-url) Link to the event. |
| event-type required | string (event-type) The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated Value: "onboarding-application-updated" |
required | (onboarding-application-updated (processing (object) or submitted (object) or errored (object) or complete (object))) or unavailable-payload (object) |
| created-at | string <date-time> (date-time) ISO 8601 formatted date-time. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "onboarding-application-updated",
- "event-payload": {
- "onboarding-application-url": "/onboarding/applications/oa.b25ib2FyZGluZy1hcHBsaQ",
- "created-at": "2019-08-24T14:15:22Z",
- "workflow-url": "/workflows/wf.ICAgICB3b3JrZmxvdy1pZA",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "onboarding-application-status": "processing"
}, - "created-at": "2019-08-24T14:15:22Z"
}| event-url required | string (event-url) Link to the event. |
| event-type required | string (event-type) The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated Value: "payment-created" |
required | payment-created (object) or unavailable-payload (object) |
| created-at | string <date-time> (date-time) ISO 8601 formatted date-time. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "payment-created",
- "event-payload": {
- "creditor": {
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "creditor-type": "griffin-bank-account"
}, - "rejected-at": "2019-08-24T14:15:22Z",
- "latest-submission-url": "/submissions/ps.ICAgc3VibWlzc2lvbi1pZA",
- "rejected-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "payment-direction": "inbound-payment",
- "created-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "created-via": "api",
- "created-at": "2019-08-24T14:15:22Z",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "payment-reference": "test reference",
- "payment-amount": {
- "currency": "GBP",
- "value": "1000.00"
}, - "payment-type": "credit-transfer",
- "ultimate-debtor": {
- "iban": "GB42GFNB12345612345678",
- "uk-domestic-sort-code": "123456",
- "bic": "GFNBGB22",
- "account-number": "12345678",
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "bban": "GFNB12345612345678",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "uk-domestic-account-number": "12345678",
- "other-account-identification": "ABC123",
- "account-number-code": "bban",
- "branch-identification": "ABC123",
- "other-institution-identification": "ABC123"
}, - "payment-admissions-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA/admissions",
- "payment-submissions-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA/submissions",
- "debtor": {
- "iban": "GB42GFNB12345612345678",
- "uk-domestic-sort-code": "123456",
- "bic": "GFNBGB22",
- "account-number": "12345678",
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "bban": "GFNB12345612345678",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "uk-domestic-account-number": "12345678",
- "other-account-identification": "ABC123",
- "account-number-code": "bban",
- "branch-identification": "ABC123",
- "other-institution-identification": "ABC123"
}, - "rejection-reason": "string",
- "mandate-url": "/mandates/mn.ICAgICAgbWFuZGF0ZS1pZA",
- "created-by-user": {
- "user-email": "user@example.com",
- "user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "user-username": "user@example.com",
- "api-keys-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/api-keys",
- "user-memberships-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/memberships",
- "given-name": "string",
- "surname": "string"
}, - "rejected-by-user": {
- "user-email": "user@example.com",
- "user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "user-username": "user@example.com",
- "api-keys-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/api-keys",
- "user-memberships-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/memberships",
- "given-name": "string",
- "surname": "string"
}
}, - "created-at": "2019-08-24T14:15:22Z"
}| event-url required | string (event-url) Link to the event. |
| event-type required | string (event-type) The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated Value: "submission-created" |
required | submission-created (object) or unavailable-payload (object) |
| created-at | string <date-time> (date-time) ISO 8601 formatted date-time. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "submission-created",
- "event-payload": {
- "submission-scheme-information": {
- "end-to-end-identification": "string",
- "scheme-status-code": "string",
- "scheme-status-code-description": "string",
- "payment-scheme": "fps"
}, - "submission-status": "scheduled",
- "created-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "scheduled-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "submission-status-reason": "string",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes ",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "submission-url": "/submissions/ps.ICAgc3VibWlzc2lvbi1pZA"
}, - "created-at": "2019-08-24T14:15:22Z"
}| event-url required | string (event-url) Link to the event. |
| event-type required | string (event-type) The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated Value: "submission-updated" |
required | submission-updated (object) or unavailable-payload (object) |
| created-at | string <date-time> (date-time) ISO 8601 formatted date-time. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "submission-updated",
- "event-payload": {
- "submission-scheme-information": {
- "end-to-end-identification": "string",
- "scheme-status-code": "string",
- "scheme-status-code-description": "string",
- "payment-scheme": "fps"
}, - "submission-status": "scheduled",
- "created-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "scheduled-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "submission-status-reason": "string",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes ",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "submission-url": "/submissions/ps.ICAgc3VibWlzc2lvbi1pZA"
}, - "created-at": "2019-08-24T14:15:22Z"
}| event-url required | string (event-url) Link to the event. |
| event-type required | string (event-type) The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated Value: "test-event" |
required | test-event (object) or unavailable-payload (object) |
| created-at | string <date-time> (date-time) ISO 8601 formatted date-time. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "test-event",
- "event-payload": {
- "property1": null,
- "property2": null
}, - "created-at": "2019-08-24T14:15:22Z"
}| event-url required | string (event-url) Link to the event. |
| event-type required | string (event-type) The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated Value: "transaction-created" |
required | transaction-created (object) or unavailable-payload (object) |
| created-at | string <date-time> (date-time) ISO 8601 formatted date-time. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "transaction-created",
- "event-payload": {
- "account-transaction-url": "/bank/transactions/tr.ICB0cmFuc2FjdGlvbi1pZA",
- "processed-at": "2019-08-24T14:15:22Z",
- "post-datetime": "2019-08-24T14:15:22Z",
- "balance-change-direction": "credit",
- "origin-metadata": {
- "property1": "string",
- "property2": "string"
}, - "effective-at": "2019-08-24T14:15:22Z",
- "transaction-origin-type": "interest",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "reference": "string",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "balance-change": {
- "currency": "GBP",
- "value": "1000.00"
}, - "account-balance": {
- "currency": "GBP",
- "value": "1000.00"
}
}, - "created-at": "2019-08-24T14:15:22Z"
}| event-url required | string (event-url) Link to the event. |
| event-type required | string (event-type) The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated Value: "verification-created" |
required | verification-created (object) or unavailable-payload (object) |
| created-at | string <date-time> (date-time) ISO 8601 formatted date-time. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "verification-created",
- "event-payload": {
- "verification-profiles-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/profiles",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "verification-resources-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/resources",
- "updated-at": "2019-08-24T14:15:22Z",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "workflow-url": "/workflows/wf.ICAgICB3b3JrZmxvdy1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "verification-checks-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/checks",
- "risk-rating": "high-risk",
- "verification-status": "in-progress",
- "verification-risk-assessments-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/risk-assessments"
}, - "created-at": "2019-08-24T14:15:22Z"
}| event-url required | string (event-url) Link to the event. |
| event-type required | string (event-type) The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated Value: "verification-resource-created" |
required | verification-resource-created (object) or unavailable-payload (object) |
| created-at | string <date-time> (date-time) ISO 8601 formatted date-time. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "verification-resource-created",
- "event-payload": {
- "verification-resource-id": "vr.N7hwn54ASHCQGOdocxfQQQ",
- "idv-check-status": "pending",
- "idv-check-url": "string",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "display-name": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "idv-check-expires-at": "2019-08-24",
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "verification-resource-type": "idv-check"
}, - "created-at": "2019-08-24T14:15:22Z"
}| event-url required | string (event-url) Link to the event. |
| event-type required | string (event-type) The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated Value: "verification-resource-updated" |
required | verification-resource-updated (idv-check (object)) or unavailable-payload (object) |
| created-at | string <date-time> (date-time) ISO 8601 formatted date-time. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "verification-resource-updated",
- "event-payload": {
- "verification-resource-type": "idv-check",
- "verification-resource-id": "vr.N7hwn54ASHCQGOdocxfQQQ",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "idv-check-status": "pending",
- "idv-check-url": "string",
- "idv-check-expires-at": "2019-08-24"
}, - "created-at": "2019-08-24T14:15:22Z"
}| event-url required | string (event-url) Link to the event. |
| event-type required | string (event-type) The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated Value: "verification-updated" |
required | verification-updated (object) or unavailable-payload (object) |
| created-at | string <date-time> (date-time) ISO 8601 formatted date-time. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "verification-updated",
- "event-payload": {
- "verification-profiles-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/profiles",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "verification-resources-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/resources",
- "updated-at": "2019-08-24T14:15:22Z",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "workflow-url": "/workflows/wf.ICAgICB3b3JrZmxvdy1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "verification-checks-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/checks",
- "risk-rating": "high-risk",
- "verification-status": "in-progress",
- "verification-risk-assessments-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/risk-assessments"
}, - "created-at": "2019-08-24T14:15:22Z"
}Returns an event. The event-type determines the shape of the event-payload.
Each payload has a version: the most recent API version that changed this event type’s payload, but no later than your organisation’s default version when the event was created.
If the payload’s version is newer than the version of your request, event-payload is returned as an unavailable payload. Its meta.required.api-version field gives the version you need to read it. Send that version, or a newer one, in the Griffin-Version header to see the full payload.
| event-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "account-status-created",
- "event-payload": {
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "account-status": "closing"
}, - "created-at": "2019-08-24T14:15:22Z"
}List all events for an organization
| organization-id required | string |
| filter[created-at][lt] | string <date-time> Return only events with a created-at less than the given timestamp. |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| filter[created-at][gt] | string <date-time> Return only events with a created-at greater than the given timestamp. |
| sort | string Enum: "-created-at" "created-at" |
| page[size] | integer <int64> [ 1 .. 200 ] |
| filter[created-at][gte] | string <date-time> Return only events with a created-at greater than or equal to the given timestamp. |
| filter[event-type][eq] | string Enum: "onboarding-application-updated" "decision-created" "payment-created" "transaction-created" "verification-updated" "admission-updated" "verification-created" "account-status-updated" "onboarding-application-created" "submission-created" "test-event" "admission-created" "verification-resource-updated" "account-status-created" "verification-resource-created" "submission-updated" The type of webhook event. Usually has the form {resource}-{operation}, e.g. payment-updated |
| filter[created-at][lte] | string <date-time> Return only events with a created-at less than or equal to the given timestamp. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "events": [
- {
- "event-url": "/events/ev.ICAgICAgICBldmVudC1pZA",
- "event-type": "account-status-created",
- "event-payload": {
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "account-status": "closing"
}, - "created-at": "2019-08-24T14:15:22Z"
}
], - "links": {
- "prev": "string",
- "next": "string"
}
}A webhook delivers events to a URL you control as they happen. A webhook can be activated or deactivated, and you can send it a test event to check that your endpoint receives it.
Get all webhooks for the organization
| organization-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "organization-webhooks": [
- {
- "webhook-description": "Griffin API webhook",
- "updated-at": "2019-08-24T14:15:22Z",
- "activate-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/activate",
- "deactivate-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/deactivate",
- "created-at": "2019-08-24T14:15:22Z",
- "webhook-state": "inactive",
- "created-by": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "test-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/test",
- "webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA",
}
]
}Create a webhook
| organization-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| webhook-destination-url required | string (webhook-destination-url) The callback URL of the webhook (HTTPS on port 443, public IP only) |
| webhook-description | string (webhook-description) non-empty A description of the webhook |
{- "webhook-description": "Griffin API webhook"
}{- "webhook-description": "Griffin API webhook",
- "updated-at": "2019-08-24T14:15:22Z",
- "activate-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/activate",
- "deactivate-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/deactivate",
- "created-at": "2019-08-24T14:15:22Z",
- "webhook-state": "inactive",
- "created-by": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "test-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/test",
- "webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA",
}Fetch a webhook
| webhook-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "webhook-description": "Griffin API webhook",
- "updated-at": "2019-08-24T14:15:22Z",
- "activate-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/activate",
- "deactivate-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/deactivate",
- "created-at": "2019-08-24T14:15:22Z",
- "webhook-state": "inactive",
- "created-by": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "test-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/test",
- "webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA",
}Update a webhook
| webhook-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| webhook-description | string (webhook-description) non-empty A description of the webhook |
{- "webhook-description": "Griffin API webhook"
}{- "webhook-description": "Griffin API webhook",
- "updated-at": "2019-08-24T14:15:22Z",
- "activate-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/activate",
- "deactivate-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/deactivate",
- "created-at": "2019-08-24T14:15:22Z",
- "webhook-state": "inactive",
- "created-by": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "test-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/test",
- "webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA",
}Activate a webhook
| webhook-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "webhook-description": "Griffin API webhook",
- "updated-at": "2019-08-24T14:15:22Z",
- "activate-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/activate",
- "deactivate-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/deactivate",
- "created-at": "2019-08-24T14:15:22Z",
- "webhook-state": "inactive",
- "created-by": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "test-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/test",
- "webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA",
}Deactivate a webhook
| webhook-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "webhook-description": "Griffin API webhook",
- "updated-at": "2019-08-24T14:15:22Z",
- "activate-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/activate",
- "deactivate-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/deactivate",
- "created-at": "2019-08-24T14:15:22Z",
- "webhook-state": "inactive",
- "created-by": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "test-webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA/actions/test",
- "webhook-url": "/webhooks/wh.ICAgICAgd2ViaG9vay1pZA",
}Get the status of the latest test event
| webhook-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "webhook-request-status": "default",
- "updated-at": "2019-08-24T14:15:22Z"
}Send a test event to the webhook
| webhook-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "webhook-request-status": "default",
- "updated-at": "2019-08-24T14:15:22Z"
}Message Signatures confirm the identity of the sender and integrity of request messages.
Key points:
Signature-Input and Signature headersHow to create message signatures provides a detailed guide.
Yields the status of the http signature validation
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| header-signature | string (header-signature) |
| header-signature-input | string (header-signature-input) |
{- "message": "string",
- "busy": true
}Yields the status of the http signature validation
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| header-signature | string (header-signature) |
| header-signature-input | string (header-signature-input) |
{- "message": "string",
- "busy": true
}Yields the status of the http signature validation
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| header-signature | string (header-signature) |
| header-signature-input | string (header-signature-input) |
{- "message": "string",
- "busy": true
}Yields the status of the http signature validation
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| header-signature | string (header-signature) |
| header-signature-input | string (header-signature-input) |
{- "message": "string",
- "busy": true
}Yields the status of the http signature validation
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| header-signature | string (header-signature) |
| header-signature-input | string (header-signature-input) |
{- "message": "string",
- "busy": true
}In the Griffin API, your organization and your customers are all represented by legal persons. When you sign up with Griffin, your organization will be automatically assigned a unique legal person ID. When onboarding your customers, you will create legal persons to represent them.
Every legal person has a legal-person-type with the value: individual or corporation.
An individual represents an individual human.
A corporation represents any non-human entity (not just companies). A corporation should have at least one director or person with significant control attached to it, who must also be represented as a distinct individual legal person.
Yields the legal-person.
| legal-person-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "latest-decision": {
- "decision-outcome": "accepted",
- "decision-notes": "string",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "decline-reasons": [
- {
- "decline-reason-code": "applicant-under-16",
- "decline-reason-title": "string",
- "decline-reason-description": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "decline-reason-claim-types": [
- "mobile-number"
]
}
], - "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "decision-maker": "system",
- "decision-user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "decision-ops-user": "griffin-ops-user",
- "decision-user-username": "user@example.com"
}, - "legal-person-type": "individual",
- "latest-risk-rating-url": "/risk-ratings/rr.ICByaXNrLXJhdGluZy1pZA",
- "display-name": "Company name",
- "application-status": "referred",
- "legal-person-status": "restricted",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "legal-person-decisions-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/decisions",
- "status-changed-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "legal-person-claims-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/claims",
- "legal-person-bank-payees-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/bank/payees",
- "legal-person-verifications-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/verifications",
- "legal-name": "string",
- "legal-person-documents-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/documents"
}Updates the legal-person.
| legal-person-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| display-name required | string (display-name) non-empty A human readable label for an entity |
{- "display-name": "string"
}{- "latest-decision": {
- "decision-outcome": "accepted",
- "decision-notes": "string",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "decline-reasons": [
- {
- "decline-reason-code": "applicant-under-16",
- "decline-reason-title": "string",
- "decline-reason-description": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "decline-reason-claim-types": [
- "mobile-number"
]
}
], - "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "decision-maker": "system",
- "decision-user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "decision-ops-user": "griffin-ops-user",
- "decision-user-username": "user@example.com"
}, - "legal-person-type": "individual",
- "latest-risk-rating-url": "/risk-ratings/rr.ICByaXNrLXJhdGluZy1pZA",
- "display-name": "Company name",
- "application-status": "referred",
- "legal-person-status": "restricted",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "legal-person-decisions-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/decisions",
- "status-changed-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "legal-person-claims-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/claims",
- "legal-person-bank-payees-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/bank/payees",
- "legal-person-verifications-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/verifications",
- "legal-name": "string",
- "legal-person-documents-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/documents"
}Returns a paginated list of all legal persons for the given organization.
By default, results are sorted descending by created-at (newest first). To sort ascending by created-at, provide a ?sort=created-at query parameter.
| organization-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| filter[has][] | Array of strings Items Value: "application-status" Return only legal persons with the given attributes. |
| filter[application-status][eq] | string Enum: "referred" "errored" "declined" "submitted" "accepted" Return only legal persons with the given application-status. |
| filter[legal-person-status][in][] | Array of strings Items Enum: "restricted" "onboarding-declined" "onboarded" "verified" "onboarding" Return only legal persons with the given legal-person-status. |
| include | Array of strings Items Enum: "company-roles" "latest-risk-rating" "latest-verification" For each legal person returned, include its latest verification (if one exists), any roles in companies (significant control or directorship), and/or its latest risk rating (if one exists) in the response under the |
| sort | string Enum: "-status-changed-at" "status-changed-at" "-created-at" "created-at" |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "legal-persons": [
- {
- "latest-decision": {
- "decision-outcome": "accepted",
- "decision-notes": "string",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "decline-reasons": [
- {
- "decline-reason-code": "applicant-under-16",
- "decline-reason-title": "string",
- "decline-reason-description": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "decline-reason-claim-types": [
- "mobile-number"
]
}
], - "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "decision-maker": "system",
- "decision-user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "decision-ops-user": "griffin-ops-user",
- "decision-user-username": "user@example.com"
}, - "legal-person-type": "individual",
- "latest-risk-rating-url": "/risk-ratings/rr.ICByaXNrLXJhdGluZy1pZA",
- "display-name": "Company name",
- "application-status": "referred",
- "legal-person-status": "restricted",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "legal-person-decisions-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/decisions",
- "status-changed-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "legal-person-claims-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/claims",
- "legal-person-bank-payees-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/bank/payees",
- "legal-person-verifications-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/verifications",
- "legal-name": "string",
- "legal-person-documents-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/documents"
}
], - "links": {
- "prev": "string",
- "next": "string"
}, - "meta": {
- "page": {
- "total": 0,
- "estimated-total": {
- "at-least": 1
}
}
}
}Creates a new Legal Person. A collection of Claims may be provided.
| organization-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| display-name required | string (display-name) non-empty A human readable label for an entity |
| legal-person-type required | string (legal-person-type) Enum: "individual" "corporation" Specifies if the legal person is an |
Array of aeoi-entity-classification (object) or alternative-number (object) or annual-turnover (object) or balance-sheet-size (object) or business-address (object) or business-description (object) or business-email-address (object) or business-industry (object) or business-name (object) or business-owner (object) or business-size (object) or business-start-date (object) or business-telephone-number (object) or business-type (object) or business-website (object) or cash-payments (object) or client-money-protection-scheme (object) or (commercial-property-industries (Not applicable (object) or List of industries and lines of business (object))) or commercial-property-ratio (object) or company-email-address (object) or company-telephone-number (object) or company-website (object) or contact-details (object) or director (object) or (employment (self-employed (object) or retired (object) or unemployed (object) or employed (object))) or entity-address (object) or entity-name (object) or external-risk-rating (object) or fca-fs-register-firm (object) or fca-fs-register-individual (object) or fca-mutuals-register (object) or governing-body-member (object) or hmo-license (object) or hmo-verification (object) or hmrc-register (object) or individual-identity (object) or individual-income (object) or individual-purposes-of-account (object) or (individual-residence ((United Kingdom and crown dependencies (both building-name and building-number (object) or only building-name (object) or only building-number (object))) or Other countries (object))) or individual-sources-of-funds (object) or initial-deposit (object) or international-operations-countries (object) or international-payments-countries (object) or managed-properties (object) or mobile-number (object) or nationality (object) or nominal-person-with-significant-control (object) or non-tenant-balance (object) or numbers-of-employees (object) or person-with-significant-control (object) or properties-origins-of-deposits (object) or property-types (object) or purposes-of-account (object) or reliance-verification (object) or role-titles (object) or senior-manager-function-holder (object) or sic-codes (object) or social-media (object) or sole-trader (object) or sources-of-funds (object) or tax-identification-number (object) or tax-identification-numbers-by-country (object) or tax-residencies (object) or tax-residency (object) or trading-address (object) or trading-name (object) or (uk-company-register ((IM (both building-name and building-number (object) or only building-name (object) or only building-number (object))) or GB (object) or (GG (both building-name and building-number (object) or only building-name (object) or only building-number (object))) or (JE (both building-name and building-number (object) or only building-name (object) or only building-number (object))))) or uk-financial-services-register (object) or us-citizen (object) or vat-registration (object) or verified-bank-account (object) (claim) |
{- "display-name": "string",
- "legal-person-type": "individual",
- "claims": [
- {
- "aeoi-entity-classification": "passive-nfe",
- "claim-type": "aeoi-entity-classification"
}
]
}{- "latest-decision": {
- "decision-outcome": "accepted",
- "decision-notes": "string",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "decline-reasons": [
- {
- "decline-reason-code": "applicant-under-16",
- "decline-reason-title": "string",
- "decline-reason-description": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "decline-reason-claim-types": [
- "mobile-number"
]
}
], - "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "decision-maker": "system",
- "decision-user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "decision-ops-user": "griffin-ops-user",
- "decision-user-username": "user@example.com"
}, - "legal-person-type": "individual",
- "latest-risk-rating-url": "/risk-ratings/rr.ICByaXNrLXJhdGluZy1pZA",
- "display-name": "Company name",
- "application-status": "referred",
- "legal-person-status": "restricted",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "legal-person-decisions-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/decisions",
- "status-changed-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "legal-person-claims-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/claims",
- "legal-person-bank-payees-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/bank/payees",
- "legal-person-verifications-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/verifications",
- "legal-name": "string",
- "legal-person-documents-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/documents"
}Returns a list of legal persons whose legal names match the search-query supplied in the request.
Takes an optional 'equals onboarded' filter.
| organization-id required | string |
| filter[legal-person-status][eq] | string Value: "onboarded" Return only legal persons with the given legal-person-status. |
| include | Array of strings Items Value: "company-roles" For each legal person returned, include any roles in companies (significant control or directorship) in the response under the |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| search-query required | string (search-query) non-empty |
{- "search-query": "string"
}{- "search-results": [
- {
- "latest-decision": {
- "decision-outcome": "accepted",
- "decision-notes": "string",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "decline-reasons": [
- {
- "decline-reason-code": "applicant-under-16",
- "decline-reason-title": "string",
- "decline-reason-description": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "decline-reason-claim-types": [
- "mobile-number"
]
}
], - "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "decision-maker": "system",
- "decision-user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "decision-ops-user": "griffin-ops-user",
- "decision-user-username": "user@example.com"
}, - "legal-person-type": "individual",
- "latest-risk-rating-url": "/risk-ratings/rr.ICByaXNrLXJhdGluZy1pZA",
- "display-name": "Company name",
- "application-status": "referred",
- "legal-person-status": "restricted",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "legal-person-decisions-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/decisions",
- "status-changed-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "legal-person-claims-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/claims",
- "legal-person-bank-payees-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/bank/payees",
- "legal-person-verifications-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/verifications",
- "legal-name": "string",
- "legal-person-documents-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/documents"
}
], - "meta": {
- "page": {
- "total": 0,
- "estimated-total": {
- "at-least": 1
}
}
}, - "included": {
- "company-roles": [
- {
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "individual-company-roles": {
- "property1": [
- null
], - "property2": [
- null
]
}
}
]
}
}The history of a legal person lists the events recorded against it: verifications created, decisions made and risk ratings registered.
Lists history of events for the given legal person.
| legal-person-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "legal-person-history": [
- {
- "legal-person-history-event-type": "risk-rating-registered",
- "timestamp": "2019-08-24T14:15:22Z",
- "risk-rating": "high-risk",
- "notes": "string",
- "manually-created-by": {
- "manually-created-by-type": "ops-user"
}, - "previous-risk-rating": "high-risk"
}
], - "links": {
- "prev": "string",
- "next": "string"
}, - "meta": {
- "page": {
- "total": 0,
- "estimated-total": {
- "at-least": 1
}
}
}
}A claim is an unverified data point or series of data points attached to a legal person. Claims are verified by running a verification against the legal person.
Deletes an existing claim about a Legal Person.
| claim-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
Yields a list of all current claims about this Legal Person.
| legal-person-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| sort | string Enum: "-created-at" "created-at" |
| filter[verification-status][eq] | string Enum: "unverified" "verified" The verification-status of a claim changes from |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "claims": [
- {
- "aeoi-entity-classification": "passive-nfe",
- "claim-type": "aeoi-entity-classification",
- "created-at": "2019-08-24T14:15:22Z",
- "claim-url": "/claims/cl.ICAgICAgICBjbGFpbS1pZA"
}
], - "links": {
- "prev": "string",
- "next": "string"
}
}Creates a new claim about a Legal Person.
| legal-person-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| aeoi-entity-classification required | string (aeoi-entity-classification) Enum: "passive-nfe" "active-nfe" "financial-institution" AEOI/CRS entity classification. Submit |
| claim-type required | string Value: "aeoi-entity-classification" |
{- "aeoi-entity-classification": "passive-nfe",
- "claim-type": "aeoi-entity-classification"
}{- "aeoi-entity-classification": "passive-nfe",
- "claim-type": "aeoi-entity-classification",
- "created-at": "2019-08-24T14:15:22Z",
- "claim-url": "/claims/cl.ICAgICAgICBjbGFpbS1pZA"
}A workflow determines which checks will be run against a legal person as part of a verification
Lists workflows for use when creating a verification.
| organization-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| sort | string Enum: "-created-at" "created-at" |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "workflows": [
- {
- "workflow-url": "/workflows/wf.ICAgICB3b3JrZmxvdy1pZA",
- "display-name": "string",
- "description": "string",
- "legal-person-type": "individual",
- "created-at": "2019-08-24T14:15:22Z",
- "disabled?": true,
- "required-claim-types": {
- "property1": [
- "mobile-number"
], - "property2": [
- "mobile-number"
]
}, - "workflow-rules": [
- "allow-zero-directors"
]
}
], - "links": {
- "prev": "string",
- "next": "string"
}, - "meta": {
- "page": {
- "total": 0,
- "estimated-total": {
- "at-least": 1
}
}
}
}Fetch the workflow.
| workflow-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "workflow-url": "/workflows/wf.ICAgICB3b3JrZmxvdy1pZA",
- "display-name": "string",
- "description": "string",
- "legal-person-type": "individual",
- "created-at": "2019-08-24T14:15:22Z",
- "disabled?": true,
- "required-claim-types": {
- "property1": [
- "mobile-number"
], - "property2": [
- "mobile-number"
]
}, - "workflow-rules": [
- "allow-zero-directors"
]
}A verification runs the checks defined by a workflow against a legal person and their claims.
List verifications for the given legal person.
| legal-person-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| sort | string Enum: "-created-at" "created-at" |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "verifications": [
- {
- "verification-profiles-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/profiles",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "verification-resources-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/resources",
- "updated-at": "2019-08-24T14:15:22Z",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "workflow-url": "/workflows/wf.ICAgICB3b3JrZmxvdy1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "verification-checks-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/checks",
- "risk-rating": "high-risk",
- "verification-status": "in-progress",
- "verification-risk-assessments-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/risk-assessments"
}
], - "links": {
- "prev": "string",
- "next": "string"
}, - "meta": {
- "page": {
- "total": 0,
- "estimated-total": {
- "at-least": 1
}
}
}
}Initiates verification of the subject legal person.
The request body must include a workflow-url to determine checks to be
performed by the verification. The workflow specified determines which claims
must exist for the subject legal person, as identified in the request URL, and any
associated legal persons (i.e. directors and people with significant control of a
corporation).
These claims can be found in the required-claim-types field on a Workflow.
Once a verification is created, the system will perform checks on the claim details.
The status of check processing is indicated by the verification-status in the response body.
Initially it will be pending, and will transition through in-progress to a final status of checks-complete.
A verification-status of failed indicates something went wrong during check processing.
You can initiate another verification to retry the check processing.
| legal-person-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| workflow-url required | string (workflow-url) A link to the workflow. |
{- "workflow-url": "/workflows/wf.ICAgICB3b3JrZmxvdy1pZA"
}{- "verification-profiles-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/profiles",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "verification-resources-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/resources",
- "updated-at": "2019-08-24T14:15:22Z",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "workflow-url": "/workflows/wf.ICAgICB3b3JrZmxvdy1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "verification-checks-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/checks",
- "risk-rating": "high-risk",
- "verification-status": "in-progress",
- "verification-risk-assessments-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/risk-assessments"
}Fetch the verification.
| verification-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "verification-profiles-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/profiles",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "verification-resources-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/resources",
- "updated-at": "2019-08-24T14:15:22Z",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "workflow-url": "/workflows/wf.ICAgICB3b3JrZmxvdy1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "verification-checks-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/checks",
- "risk-rating": "high-risk",
- "verification-status": "in-progress",
- "verification-risk-assessments-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/risk-assessments"
}GET a verification's profiles. A profile is the collection of claims used in a verification.
| verification-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "verification-subject-profile": {
- "display-name": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "legal-person-type": "individual",
- "current-claims": [
- {
- "aeoi-entity-classification": "passive-nfe",
- "claim-type": "aeoi-entity-classification"
}
], - "legal-name": "string"
}, - "verification-related-party-profiles": [
- {
- "display-name": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "legal-person-type": "individual",
- "current-claims": [
- {
- "aeoi-entity-classification": "passive-nfe",
- "claim-type": "aeoi-entity-classification"
}
], - "legal-name": "string"
}
]
}Yields details of the verification resources for this verification.
| verification-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "verification-resources": [
- {
- "verification-resource-type": "idv-check",
- "verification-resource-id": "vr.N7hwn54ASHCQGOdocxfQQQ",
- "idv-check-status": "pending",
- "idv-check-url": "string",
- "idv-check-expires-at": "2019-08-24",
- "display-name": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA"
}
], - "links": {
- "prev": "string",
- "next": "string"
}
}A decision records whether a legal person is accepted or declined, based on a verification whose checks are complete.
Lists all decisions for the given legal-person.
| legal-person-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| sort | string Enum: "-created-at" "created-at" |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "decisions": [
- {
- "decision-outcome": "accepted",
- "decision-notes": "string",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "decline-reasons": [
- {
- "decline-reason-code": "applicant-under-16",
- "decline-reason-title": "string",
- "decline-reason-description": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "decline-reason-claim-types": [
- "mobile-number"
]
}
], - "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "decision-maker": "system",
- "decision-user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "decision-ops-user": "griffin-ops-user",
- "decision-user-username": "user@example.com"
}
], - "links": {
- "prev": "string",
- "next": "string"
}
}Creates a decision against the legal person.
The provided verification must have a verification-status of checks-complete, otherwise a 422 is served.
When a decision is successfully created, the legal person's application-status is updated accordingly.
Multiple decisions may be made against the same legal person.
| legal-person-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| verification-url required | string (verification-url) A link to the verification. |
| decision-outcome required | string (decision-outcome) Enum: "accepted" "declined" |
| decision-notes required | string (decision-notes) Free-text field to explain the reasons behind the decision. |
{- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "decision-outcome": "accepted",
- "decision-notes": "string"
}{- "decision-outcome": "accepted",
- "decision-notes": "string",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "decline-reasons": [
- {
- "decline-reason-code": "applicant-under-16",
- "decline-reason-title": "string",
- "decline-reason-description": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "decline-reason-claim-types": [
- "mobile-number"
]
}
], - "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "decision-maker": "system",
- "decision-user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "decision-ops-user": "griffin-ops-user",
- "decision-user-username": "user@example.com"
}Look up a UK company on Companies House by its company number, including its directors and persons with significant control.
Lookup Companies House company by company number. Includes information about the company, its directors, and persons with significant control.
| company-number required | string Examples: 10842931 UK Companies House company number |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "company-address": {
- "building-number": "string",
- "street-name": "string",
- "city": "string",
- "postal-code": "NW16XE",
- "country-code": "GB"
}, - "date-of-latest-accounts": "2019-08-24",
- "entity-name": "string",
- "directors": [
- {
- "display-name": "string",
- "companies-house-url": "https://api.company-information.service.gov.uk/company/00000001/appointments/AbcDEFGhI1JKLmnO2PQ3sTUv4WX",
- "director-appointed-on": "2019-08-24",
- "director-occupation": "string",
- "day-of-birth": 1,
- "month-of-birth": 1,
- "year-of-birth": 1970
}
], - "date-of-latest-confirmation-statement": "2019-08-24",
- "corporation-type": "private-limited-guarant-nsc-limited-exemption",
- "company-status": "dissolved",
- "accounts-overdue": true,
- "sic-codes": [
- "12345"
], - "persons-with-significant-control": [
- {
- "display-name": "string",
- "natures-of-control": [
- "voting-rights-25-to-50-percent-limited-liability-partnership"
], - "companies-house-url": "https://api.company-information.service.gov.uk/company/00000001/appointments/AbcDEFGhI1JKLmnO2PQ3sTUv4WX",
- "given-name": "string",
- "surname": "string",
- "day-of-birth": 1,
- "month-of-birth": 1,
- "year-of-birth": 1970
}
], - "confirmation-statement-overdue": true,
- "date-of-incorporation": "2019-08-24",
- "entity-registration-number": "string"
}Reliance onboarding allows you to create and submit an application on behalf of your customer, using information about them you have already collected. For more information, checkout our onboarding guides.
Fetch an onboarding application.
| onboarding-application-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "onboarding-application-url": "/onboarding/applications/oa.b25ib2FyZGluZy1hcHBsaQ",
- "created-at": "2019-08-24T14:15:22Z",
- "workflow-url": "/workflows/wf.ICAgICB3b3JrZmxvdy1pZA",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "onboarding-application-status": "processing"
}Create an onboarding application and submit it for processing.
The request body must include a workflow-url to determine checks to be performed by the verification.
The workflow specified determines which claims must exist for the subject profile, and any related profile (i.e. directors and people with significant control of a corporation).
At the moment we only support 3 reliance workflows: Reliance LTD Company, Reliance Individual and Reliance Sole Trader.
You need to provide different claims depending on the type of customer you wish to onboard via reliance.
| LTD Company | Individual | Sole trader |
|---|---|---|
Subject profile:uk-company-registertrading-addressreliance-verificationRelated profiles: individual-identityindividual-residencereliance-verification |
Subject profile:individual-identityindividual-residencereliance-verification |
Subject profile:business-nameindividual-identityindividual-residencereliance-verification |
For more information, check out our onboarding guides.
| organization-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| workflow-url required | string (workflow-url) A link to the workflow. |
required | object (subject-profile) The subject profile to be onboarded. Directors and PSCs
must be declared via |
Array of objects (related-profiles) A list profiles related to the subject (e.g. directors, person with significant control). |
{- "workflow-url": "/workflows/wf.ICAgICB3b3JrZmxvdy1pZA",
- "subject-profile": {
- "display-name": "string",
- "claims": [
- {
- "aeoi-entity-classification": "passive-nfe",
- "claim-type": "aeoi-entity-classification"
}
]
}, - "related-profiles": [
- {
- "display-name": "string",
- "subject-association": {
- "director": {
}, - "psc": {
- "ownership-percent": "12.34",
}, - "senior-manager": { },
- "governing-body-member": { },
- "senior-manager-function-holder": { },
- "role-titles": [
- "Treasurer"
]
}, - "claims": [
- {
- "aeoi-entity-classification": "passive-nfe",
- "claim-type": "aeoi-entity-classification"
}
]
}
]
}{- "onboarding-application-url": "/onboarding/applications/oa.b25ib2FyZGluZy1hcHBsaQ",
- "onboarding-application-status": "processing"
}Bank accounts are used for managing funds. Every bank account is opened against a bank product, which determines the account's behaviour (type, pooled vs dedicated, interest, notice period, etc.). Some account types are for managing your own funds and some are for managing your customers' funds. For information, check out our guides:
Fetch a bank account
| bank-account-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "account-submissions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/submissions",
- "bank-account-product-url": "/bank/products/bp.IGJhbmstcHJvZHVjdC1pZA",
- "account-restricted": true,
- "account-payments-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/payments",
- "pooled-account-memberships-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership",
- "account-admissions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/admissions",
- "bank-product-type": "savings-account",
- "account-mandates-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/mandates",
- "display-name": "Reserve a/c",
- "controller-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "pooled-funds": true,
- "accrued-interest": {
- "currency": "GBP",
- "value": "1000.00"
}, - "account-status": "closing",
- "client-money-type": "designated-client-fund",
- "owner-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "closed-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "opened-at": "2019-08-24T14:15:22Z",
- "close-account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/actions/close",
- "available-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "pooled-account-membership-updates-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership-updates",
- "bank-account-restrictions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/restrictions",
- "bank-addresses": [
- {
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "account-number": "12345678",
- "account-number-code": "bban"
}
], - "account-transactions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/transactions",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "bank-account-events-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/events",
- "beneficiary-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "primary-account": false,
- "account-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "savings-type": "easy-access",
- "account-statements-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/statements"
}Update a bank account
| bank-account-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| display-name required | string (display-name) non-empty A human readable label for an entity |
{- "display-name": "string"
}{- "account-submissions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/submissions",
- "bank-account-product-url": "/bank/products/bp.IGJhbmstcHJvZHVjdC1pZA",
- "account-restricted": true,
- "account-payments-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/payments",
- "pooled-account-memberships-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership",
- "account-admissions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/admissions",
- "bank-product-type": "savings-account",
- "account-mandates-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/mandates",
- "display-name": "Reserve a/c",
- "controller-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "pooled-funds": true,
- "accrued-interest": {
- "currency": "GBP",
- "value": "1000.00"
}, - "account-status": "closing",
- "client-money-type": "designated-client-fund",
- "owner-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "closed-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "opened-at": "2019-08-24T14:15:22Z",
- "close-account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/actions/close",
- "available-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "pooled-account-membership-updates-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership-updates",
- "bank-account-restrictions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/restrictions",
- "bank-addresses": [
- {
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "account-number": "12345678",
- "account-number-code": "bban"
}
], - "account-transactions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/transactions",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "bank-account-events-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/events",
- "beneficiary-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "primary-account": false,
- "account-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "savings-type": "easy-access",
- "account-statements-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/statements"
}Close a bank account
| bank-account-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "account-submissions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/submissions",
- "bank-account-product-url": "/bank/products/bp.IGJhbmstcHJvZHVjdC1pZA",
- "account-restricted": true,
- "account-payments-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/payments",
- "pooled-account-memberships-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership",
- "account-admissions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/admissions",
- "bank-product-type": "savings-account",
- "account-mandates-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/mandates",
- "display-name": "Reserve a/c",
- "controller-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "pooled-funds": true,
- "accrued-interest": {
- "currency": "GBP",
- "value": "1000.00"
}, - "account-status": "closing",
- "client-money-type": "designated-client-fund",
- "owner-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "closed-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "opened-at": "2019-08-24T14:15:22Z",
- "close-account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/actions/close",
- "available-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "pooled-account-membership-updates-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership-updates",
- "bank-account-restrictions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/restrictions",
- "bank-addresses": [
- {
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "account-number": "12345678",
- "account-number-code": "bban"
}
], - "account-transactions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/transactions",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "bank-account-events-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/events",
- "beneficiary-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "primary-account": false,
- "account-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "savings-type": "easy-access",
- "account-statements-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/statements"
}Fetches a bank account product by ID
| bank-product-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "notice-period": {
- "notice-period-type": "instant-access"
}, - "bank-account-product-url": "/bank/products/bp.IGJhbmstcHJvZHVjdC1pZA",
- "bank-account-product-status": "inactive",
- "commission": {
- "gross-rate": {
- "basis-points": 0,
- "display-text": "string"
}
}, - "bank-account-product-class": "savings",
- "display-name": "Operational",
- "funding-type": "pooled",
- "bank-account-product-accounts-url": "/bank/products/bp.IGJhbmstcHJvZHVjdC1pZA/accounts",
- "updated-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "interest": {
- "annual-effective-rate": {
- "basis-points": 0,
- "display-text": "string"
}, - "gross-rate": {
- "basis-points": 0,
- "display-text": "string"
}
}, - "owner-type": "individual",
- "payment-schemes": {
- "faster-payments": {
- "inbound": true,
- "outbound": true
}, - "chaps": {
- "inbound": true
}, - "bacs-direct-credits": {
- "inbound": true
}, - "bacs-direct-debits": {
- "paying": true
}
}
}Opens a bank account of the given bank product
| bank-product-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| display-name | string (display-name) non-empty A human readable label for an entity |
| owner-url | string (owner-url) Link to the legal person that represents the owner of the account. |
| beneficiary-url | string (beneficiary-url) Link to the legal person that represents the beneficiary of the account. |
{- "display-name": "string",
- "owner-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "beneficiary-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA"
}{- "account-submissions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/submissions",
- "bank-account-product-url": "/bank/products/bp.IGJhbmstcHJvZHVjdC1pZA",
- "account-restricted": true,
- "account-payments-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/payments",
- "pooled-account-memberships-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership",
- "account-admissions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/admissions",
- "bank-product-type": "savings-account",
- "account-mandates-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/mandates",
- "display-name": "Reserve a/c",
- "controller-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "pooled-funds": true,
- "accrued-interest": {
- "currency": "GBP",
- "value": "1000.00"
}, - "account-status": "closing",
- "client-money-type": "designated-client-fund",
- "owner-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "closed-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "opened-at": "2019-08-24T14:15:22Z",
- "close-account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/actions/close",
- "available-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "pooled-account-membership-updates-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership-updates",
- "bank-account-restrictions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/restrictions",
- "bank-addresses": [
- {
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "account-number": "12345678",
- "account-number-code": "bban"
}
], - "account-transactions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/transactions",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "bank-account-events-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/events",
- "beneficiary-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "primary-account": false,
- "account-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "savings-type": "easy-access",
- "account-statements-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/statements"
}Yields a list of all bank accounts under the control of this Organization.
| organization-id required | string |
| filter[beneficiary-url][eq] | string Link to the legal person that represents the beneficiary of the account. |
| filter[owner-url][eq] | string Link to the legal person that represents the owner of the account. |
| include | Array of strings Items Enum: "beneficiary" "owner" For each bank account returned, include its owner and/or beneficiary in the response under the |
| filter[account-status][in][] | Array of strings Items Enum: "closing" "open" "closed" "opening" |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| filter[account-restricted][eq] | boolean Specifies whether the bank account has restrictions applied by Griffin. |
| filter[pooled-funds][eq] | boolean Specifies whether the bank account holds funds belonging to multiple beneficiaries. |
| sort | string Enum: "-created-at" "display-name" "created-at" "-display-name" |
| page[size] | integer <int64> [ 1 .. 200 ] |
| filter[bank-product-type][in][] | Array of strings Items Enum: "savings-account" "client-money-account" "safeguarding-account" "embedded-account" "operational-account" |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "accounts": [
- {
- "account-submissions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/submissions",
- "bank-account-product-url": "/bank/products/bp.IGJhbmstcHJvZHVjdC1pZA",
- "account-restricted": true,
- "account-payments-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/payments",
- "pooled-account-memberships-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership",
- "account-admissions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/admissions",
- "bank-product-type": "savings-account",
- "account-mandates-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/mandates",
- "display-name": "Reserve a/c",
- "controller-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "pooled-funds": true,
- "accrued-interest": {
- "currency": "GBP",
- "value": "1000.00"
}, - "account-status": "closing",
- "client-money-type": "designated-client-fund",
- "owner-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "closed-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "opened-at": "2019-08-24T14:15:22Z",
- "close-account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/actions/close",
- "available-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "pooled-account-membership-updates-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership-updates",
- "bank-account-restrictions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/restrictions",
- "bank-addresses": [
- {
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "account-number": "12345678",
- "account-number-code": "bban"
}
], - "account-transactions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/transactions",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "bank-account-events-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/events",
- "beneficiary-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "primary-account": false,
- "account-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "savings-type": "easy-access",
- "account-statements-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/statements"
}
], - "links": {
- "prev": "string",
- "next": "string"
}, - "included": null
}Open a new bank account
| organization-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| owner-url required | string (owner-url) Link to the legal person that represents the owner of the account. |
| display-name | string (display-name) non-empty A human readable label for an entity |
| savings-type required | string Value: "easy-access" |
| bank-product-type required | string Value: "savings-account" |
{- "bank-product-type": "savings-account",
- "owner-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "display-name": "string",
- "savings-type": "easy-access"
}{- "account-submissions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/submissions",
- "bank-account-product-url": "/bank/products/bp.IGJhbmstcHJvZHVjdC1pZA",
- "account-restricted": true,
- "account-payments-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/payments",
- "pooled-account-memberships-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership",
- "account-admissions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/admissions",
- "bank-product-type": "savings-account",
- "account-mandates-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/mandates",
- "display-name": "Reserve a/c",
- "controller-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "pooled-funds": true,
- "accrued-interest": {
- "currency": "GBP",
- "value": "1000.00"
}, - "account-status": "closing",
- "client-money-type": "designated-client-fund",
- "owner-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "closed-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "opened-at": "2019-08-24T14:15:22Z",
- "close-account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/actions/close",
- "available-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "pooled-account-membership-updates-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership-updates",
- "bank-account-restrictions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/restrictions",
- "bank-addresses": [
- {
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "account-number": "12345678",
- "account-number-code": "bban"
}
], - "account-transactions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/transactions",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "bank-account-events-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/events",
- "beneficiary-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "primary-account": false,
- "account-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "savings-type": "easy-access",
- "account-statements-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/statements"
}Returns a list of bank accounts whose account number match the search-query supplied in the request, either exactly or partially as a prefix.
| organization-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| search-query required | string (search-query) non-empty |
{- "search-query": "string"
}{- "search-results": [
- {
- "account-submissions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/submissions",
- "bank-account-product-url": "/bank/products/bp.IGJhbmstcHJvZHVjdC1pZA",
- "account-restricted": true,
- "account-payments-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/payments",
- "pooled-account-memberships-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership",
- "account-admissions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/admissions",
- "bank-product-type": "savings-account",
- "account-mandates-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/mandates",
- "display-name": "string",
- "controller-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "pooled-funds": true,
- "accrued-interest": {
- "currency": "GBP",
- "value": "1000.00"
}, - "account-status": "closing",
- "client-money-type": "designated-client-fund",
- "owner-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "closed-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "opened-at": "2019-08-24T14:15:22Z",
- "close-account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/actions/close",
- "available-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "pooled-account-membership-updates-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership-updates",
- "bank-account-restrictions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/restrictions",
- "bank-addresses": [
- {
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "account-number": "12345678",
- "account-number-code": "bban"
}
], - "account-transactions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/transactions",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "bank-account-events-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/events",
- "beneficiary-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "primary-account": false,
- "account-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "savings-type": "easy-access",
- "account-statements-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/statements"
}
], - "meta": {
- "page": {
- "total": 0,
- "estimated-total": {
- "at-least": 1
}
}
}
}Returns a paginated list of the organization's bank account products.
| organization-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| filter[status][in][] | Array of strings Items Enum: "inactive" "active" |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "bank-account-products": [
- {
- "notice-period": {
- "notice-period-type": "instant-access"
}, - "bank-account-product-url": "/bank/products/bp.IGJhbmstcHJvZHVjdC1pZA",
- "bank-account-product-status": "inactive",
- "commission": {
- "gross-rate": {
- "basis-points": 0,
- "display-text": "string"
}
}, - "bank-account-product-class": "savings",
- "display-name": "Operational",
- "funding-type": "pooled",
- "bank-account-product-accounts-url": "/bank/products/bp.IGJhbmstcHJvZHVjdC1pZA/accounts",
- "updated-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "interest": {
- "annual-effective-rate": {
- "basis-points": 0,
- "display-text": "string"
}, - "gross-rate": {
- "basis-points": 0,
- "display-text": "string"
}
}, - "owner-type": "individual",
- "payment-schemes": {
- "faster-payments": {
- "inbound": true,
- "outbound": true
}, - "chaps": {
- "inbound": true
}, - "bacs-direct-credits": {
- "inbound": true
}, - "bacs-direct-debits": {
- "paying": true
}
}
}
], - "links": {
- "prev": "string",
- "next": "string"
}, - "meta": {
- "page": {
- "total": 0,
- "estimated-total": {
- "at-least": 1
}
}
}
}Restrictions prevent payments on a bank account. A freeze blocks outbound payments while still allowing inbound payments. A block prevents both inbound and outbound payments.
Restrictions can be applied at any point in the account lifecycle (opening, open, closing, or closed), and multiple restrictions can be active on the same account simultaneously. Each restriction is independent — lifting one does not affect others.
Restrictions can only be updated or lifted if active.
For more information, see our guide on managing restrictions.
Fetches details of a single bank account restriction.
The response includes the restriction's current status (active or lifted),
type, reason code, legal status, and who applied it.
If the restriction was applied by Griffin using a sensitive reason code
(griffin-decision, law-enforcement, sanctions, or terrorist-financing),
the type, reason code, and legal status fields are omitted from the response.
Action URLs (update-bank-account-restriction-url, lift-bank-account-restriction-url)
are included only when you are authorised to perform those actions on the restriction.
| bank-account-restriction-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "lift-bank-account-restriction-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw/actions/lift",
- "restriction-status": "lifted",
- "restriction-legal-status": "not-applicable",
- "bank-account-restriction-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw",
- "created-at": "2019-08-24T14:15:22Z",
- "update-bank-account-restriction-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw/actions/update",
- "bank-account-restriction-events-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw/events",
- "restriction-reason-code": "suspicious",
- "restriction-type": "block",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "restriction-applied-by": {
- "restriction-applied-by-type": "ops-user"
}
}Lifts a bank account restriction.
Marks the restriction as lifted, removing its effect on the account. Notes are
required to provide context for the removal.
| bank-account-restriction-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| notes required | string <= 2000 characters |
{- "notes": "string"
}{- "lift-bank-account-restriction-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw/actions/lift",
- "restriction-status": "lifted",
- "restriction-legal-status": "not-applicable",
- "bank-account-restriction-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw",
- "created-at": "2019-08-24T14:15:22Z",
- "update-bank-account-restriction-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw/actions/update",
- "bank-account-restriction-events-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw/events",
- "restriction-reason-code": "suspicious",
- "restriction-type": "block",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "restriction-applied-by": {
- "restriction-applied-by-type": "ops-user"
}
}Updates a bank account restriction.
Allows you to change the restriction type, reason code, and/or legal status of an active restriction. Notes are always required to provide context for the change.
Only the fields you include in the request body will be updated. Omitted fields are left unchanged.
| bank-account-restriction-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| restriction-type | string Enum: "block" "freeze" |
| restriction-reason-code | string Enum: "fraud-app-perpetrator" "customer-request" "dormant" "other" "terrorist-financing" "law-enforcement" "sanctions" "risk-appetite" "deceased" "fraud-app-victim" "fraud-3rd-party" "money-laundering" "fraud-1st-party" |
| restriction-legal-status | string Enum: "not-applicable" "conviction-confirmed" "formal-charge-filed" "suspected" |
| notes required | string <= 2000 characters |
{- "restriction-type": "block",
- "restriction-reason-code": "fraud-app-perpetrator",
- "restriction-legal-status": "not-applicable",
- "notes": "string"
}{- "lift-bank-account-restriction-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw/actions/lift",
- "restriction-status": "lifted",
- "restriction-legal-status": "not-applicable",
- "bank-account-restriction-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw",
- "created-at": "2019-08-24T14:15:22Z",
- "update-bank-account-restriction-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw/actions/update",
- "bank-account-restriction-events-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw/events",
- "restriction-reason-code": "suspicious",
- "restriction-type": "block",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "restriction-applied-by": {
- "restriction-applied-by-type": "ops-user"
}
}Lists restrictions on a bank account.
Returns all restrictions (both active and lifted) by default. Use
filter[restriction-status][eq]=active to return only active restrictions.
See get restriction for details on field visibility and redaction.
| bank-account-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| sort | string Enum: "-created-at" "created-at" |
| filter[restriction-status][eq] | string Enum: "lifted" "active" Return only restrictions with the given restriction-status. |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "bank-account-restrictions": [
- {
- "lift-bank-account-restriction-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw/actions/lift",
- "restriction-status": "lifted",
- "restriction-legal-status": "not-applicable",
- "bank-account-restriction-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw",
- "created-at": "2019-08-24T14:15:22Z",
- "update-bank-account-restriction-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw/actions/update",
- "bank-account-restriction-events-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw/events",
- "restriction-reason-code": "suspicious",
- "restriction-type": "block",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "restriction-applied-by": {
- "restriction-applied-by-type": "ops-user"
}
}
], - "links": {
- "prev": "string",
- "next": "string"
}
}Applies a restriction to a bank account.
| Code | Description |
|---|---|
customer-request |
Account holder requested temporary restriction pending further instruction. |
deceased |
Account holder confirmed deceased. Restricted pending estate administration. |
dormant |
Account inactive for 2+ years (no customer-initiated transactions). |
fraud-1st-party |
Account holder is suspected perpetrator committing fraud against Griffin or third parties. |
fraud-3rd-party |
Account holder is victim of account takeover by unauthorised party. |
fraud-app-perpetrator |
Account holder is perpetrator receiving fraudulent payments from victims. |
fraud-app-victim |
Account holder is victim tricked into authorising payments to a fraudulent recipient. |
law-enforcement |
Restricted following law enforcement request, court order, or legal obligation. |
money-laundering |
Suspected money laundering detected. Restricted pending investigation. |
other |
Restriction applied for reasons not covered by standard categories. |
risk-appetite |
Account activity exceeds risk appetite thresholds. Restricted pending review. |
sanctions |
Account holder or associated party identified on a sanctions list. Restricted pending investigation. |
terrorist-financing |
Suspected terrorist financing. Restricted pending investigation. |
| Code | Description |
|---|---|
suspected |
Restriction due to suspicion of offence. No formal charges filed. |
formal-charge-filed |
Customer formally charged with an offence. Legal proceedings active. |
conviction-confirmed |
Customer convicted. Deposits connected with the conviction are ineligible for FSCS compensation. |
not-applicable |
Legal status not relevant (e.g. customer requests, dormant accounts). |
| bank-account-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| restriction-type required | string Enum: "block" "freeze" |
| restriction-reason-code required | string Enum: "fraud-app-perpetrator" "customer-request" "dormant" "other" "terrorist-financing" "law-enforcement" "sanctions" "risk-appetite" "deceased" "fraud-app-victim" "fraud-3rd-party" "money-laundering" "fraud-1st-party" |
| restriction-legal-status required | string Enum: "not-applicable" "conviction-confirmed" "formal-charge-filed" "suspected" |
| notes required | string <= 2000 characters |
{- "restriction-type": "block",
- "restriction-reason-code": "fraud-app-perpetrator",
- "restriction-legal-status": "not-applicable",
- "notes": "string"
}{- "lift-bank-account-restriction-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw/actions/lift",
- "restriction-status": "lifted",
- "restriction-legal-status": "not-applicable",
- "bank-account-restriction-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw",
- "created-at": "2019-08-24T14:15:22Z",
- "update-bank-account-restriction-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw/actions/update",
- "bank-account-restriction-events-url": "/bank/account-restrictions/ri.YmFuay1hY2NvdW50LXJlcw/events",
- "restriction-reason-code": "suspicious",
- "restriction-type": "block",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "restriction-applied-by": {
- "restriction-applied-by-type": "ops-user"
}
}A hold reserves funds on a bank account, for example for a card transaction that has been authorised but not yet cleared. A hold stays placed until it is released, for example when the transaction clears, expires or is reversed.
Lists all holds on a bank account.
Use filter[status][in][] to filter by specific statuses.
Use filter[updated-at][gte] to return only holds last updated at or after a timestamp.
Use filter[origin-type][eq] to filter by origin type.
| bank-account-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| sort | string Enum: "-created-at" "created-at" |
| filter[status][in][] | Array of strings Items Enum: "released" "placed" |
| filter[updated-at][gte] | string <date-time> Return only holds updated at or after the given timestamp. |
| filter[origin-type][eq] | string Value: "card-transaction" |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "holds": [
- {
- "expires-at": "2019-08-24T14:15:22Z",
- "origin-type": "card-transaction",
- "updated-at": "2019-08-24T14:15:22Z",
- "origin-metadata": {
- "property1": "string",
- "property2": "string"
}, - "direction": "debit",
- "status": "released",
- "created-at": "2019-08-24T14:15:22Z",
- "release-reason": "string",
- "amount": {
- "currency": "GBP",
- "value": "1000.00"
}, - "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "hold-url": "/bank/holds/ho.ICAgICAgICAgaG9sZC1pZA",
- "account-transactions": [
- {
- "account-transaction-url": "/bank/transactions/tr.ICB0cmFuc2FjdGlvbi1pZA",
- "updated-hold-at": "2019-08-24T14:15:22Z"
}
]
}
], - "links": {
- "prev": "string",
- "next": "string"
}
}Fetches a single hold by ID.
| hold-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "expires-at": "2019-08-24T14:15:22Z",
- "origin-type": "card-transaction",
- "updated-at": "2019-08-24T14:15:22Z",
- "origin-metadata": {
- "property1": "string",
- "property2": "string"
}, - "direction": "debit",
- "status": "released",
- "created-at": "2019-08-24T14:15:22Z",
- "release-reason": "string",
- "amount": {
- "currency": "GBP",
- "value": "1000.00"
}, - "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "hold-url": "/bank/holds/ho.ICAgICAgICAgaG9sZC1pZA",
- "account-transactions": [
- {
- "account-transaction-url": "/bank/transactions/tr.ICB0cmFuc2FjdGlvbi1pZA",
- "updated-hold-at": "2019-08-24T14:15:22Z"
}
]
}A pooled bank account holds funds on behalf of several customers. Its membership lists the legal persons whose funds it holds.
List legal persons in a pooled account membership
| bank-account-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| include | Array of strings Items Enum: "latest-risk-rating" "legal-person" "latest-verification" For each member returned, include its legal person details, latest verification (if one exists), and/or latest risk rating (if one exists) in the response under the |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "pool-members": [
- {
- "created-at": "2019-08-24T14:15:22Z",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA"
}
], - "links": {
- "prev": "string",
- "next": "string"
}, - "meta": {
- "page": {
- "total": 0,
- "estimated-total": {
- "at-least": 1
}
}
}, - "included": {
- "verifications": [
- {
- "verification-profiles-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/profiles",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "verification-resources-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/resources",
- "updated-at": "2019-08-24T14:15:22Z",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "workflow-url": "/workflows/wf.ICAgICB3b3JrZmxvdy1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "verification-checks-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/checks",
- "risk-rating": "high-risk",
- "verification-status": "in-progress",
- "verification-risk-assessments-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA/risk-assessments"
}
], - "risk-rating-entries": [
- {
- "risk-rating-url": "/risk-ratings/rr.ICByaXNrLXJhdGluZy1pZA",
- "risk-rating": "high-risk",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "notes": "string",
- "manually-created-by": {
- "manually-created-by-type": "ops-user"
}, - "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "previous-risk-rating": "high-risk"
}
], - "legal-persons": [
- {
- "latest-decision": {
- "decision-outcome": "accepted",
- "decision-notes": "string",
- "verification-url": "/verifications/vn.IHZlcmlmaWNhdGlvbi1pZA",
- "decline-reasons": [
- {
- "decline-reason-code": "applicant-under-16",
- "decline-reason-title": "string",
- "decline-reason-description": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "decline-reason-claim-types": [
- "mobile-number"
]
}
], - "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "decision-maker": "system",
- "decision-user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "decision-ops-user": "griffin-ops-user",
- "decision-user-username": "user@example.com"
}, - "legal-person-type": "individual",
- "latest-risk-rating-url": "/risk-ratings/rr.ICByaXNrLXJhdGluZy1pZA",
- "display-name": "string",
- "application-status": "referred",
- "legal-person-status": "restricted",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "legal-person-decisions-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/decisions",
- "status-changed-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "legal-person-claims-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/claims",
- "legal-person-bank-payees-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/bank/payees",
- "legal-person-verifications-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/verifications",
- "legal-name": "string",
- "legal-person-documents-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA/documents"
}
]
}
}Add and update the legal persons in a pooled account membership. Limited to 1000 legal persons per operation.
| bank-account-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| additions required | Array of strings (legal-person-url) |
| deletions required | Array of strings (legal-person-url) |
{- "additions": [
- "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA"
], - "deletions": [
- "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA"
]
}{- "pooled-account-memberships-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership"
}A payment captures the intent to move funds from a bank account to another bank account. Outbound payments can be made from your bank account to a payee. Griffin accepts inbound payments to your bank accounts on your behalf. If it's your first time using our payments API, check out our guide for sending payments
Yields an admission.
| admission-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "admission-status": "cancelled",
- "admission-scheme-information": {
- "end-to-end-identification": "string",
- "payment-scheme": "fps"
}, - "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "admission-url": "/admissions/pa.ICAgIGFkbWlzc2lvbi1pZA",
- "unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes ",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "original-unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes "
}Lists admissions targeting a bank account
| bank-account-id required | string |
| filter[created-at][lt] | string <date-time> Return only resources with a created-at less than the given timestamp. |
| filter[admission-status][in][] | Array of strings Items Enum: "cancelled" "processing" "returned" "delivered" |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| filter[created-at][gt] | string <date-time> Return only resources with a created-at greater than the given timestamp. |
| sort | string Enum: "-created-at" "created-at" |
| page[size] | integer <int64> [ 1 .. 200 ] |
| filter[created-at][gte] | string <date-time> Return only resources with a created-at greater than or equal to the given timestamp. |
| filter[created-at][lte] | string <date-time> Return only resources with a created-at less than or equal to the given timestamp. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "admissions": [
- {
- "admission-status": "cancelled",
- "admission-scheme-information": {
- "end-to-end-identification": "string",
- "payment-scheme": "fps"
}, - "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "admission-url": "/admissions/pa.ICAgIGFkbWlzc2lvbi1pZA",
- "unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes ",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "original-unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes "
}
], - "links": {
- "prev": "string",
- "next": "string"
}
}Lists payments made from a bank account.
| bank-account-id required | string |
| filter[rejected][eq] | boolean Specifies whether the payment has been rejected. |
Array of submission-status (string) or no-latest-submission-status (string) | |
| include | Array of strings Items Enum: "bank-account" "rejected-by" "latest-submission.created-by" "created-by" "latest-submission" For each payment returned, include its bank account, latest submission (if one exists), rejecting user (if one exists), and/or creating user (if one exists) in the response under the |
| filter[created-at][lt] | string <date-time> Return only resources with a created-at less than the given timestamp. |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| filter[created-at][gt] | string <date-time> Return only resources with a created-at greater than the given timestamp. |
| sort | string Enum: "-created-at" "created-at" |
| page[size] | integer <int64> [ 1 .. 200 ] |
| filter[created-at][gte] | string <date-time> Return only resources with a created-at greater than or equal to the given timestamp. |
| filter[payment-direction][eq] | string Enum: "inbound-payment" "outbound-payment" Whether the payment is moving money into or out of the account. |
| filter[created-at][lte] | string <date-time> Return only resources with a created-at less than or equal to the given timestamp. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "payments": [
- {
- "creditor": {
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "creditor-type": "griffin-bank-account"
}, - "rejected-at": "2019-08-24T14:15:22Z",
- "latest-submission-url": "/submissions/ps.ICAgc3VibWlzc2lvbi1pZA",
- "rejected-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "payment-direction": "inbound-payment",
- "created-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "created-via": "api",
- "created-at": "2019-08-24T14:15:22Z",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "payment-reference": "test reference",
- "payment-amount": {
- "currency": "GBP",
- "value": "1000.00"
}, - "payment-type": "credit-transfer",
- "ultimate-debtor": {
- "iban": "GB42GFNB12345612345678",
- "uk-domestic-sort-code": "123456",
- "bic": "GFNBGB22",
- "account-number": "12345678",
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "bban": "GFNB12345612345678",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "uk-domestic-account-number": "12345678",
- "other-account-identification": "ABC123",
- "account-number-code": "bban",
- "branch-identification": "ABC123",
- "other-institution-identification": "ABC123"
}, - "payment-admissions-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA/admissions",
- "payment-submissions-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA/submissions",
- "debtor": {
- "iban": "GB42GFNB12345612345678",
- "uk-domestic-sort-code": "123456",
- "bic": "GFNBGB22",
- "account-number": "12345678",
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "bban": "GFNB12345612345678",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "uk-domestic-account-number": "12345678",
- "other-account-identification": "ABC123",
- "account-number-code": "bban",
- "branch-identification": "ABC123",
- "other-institution-identification": "ABC123"
}, - "rejection-reason": "string",
- "mandate-url": "/mandates/mn.ICAgICAgbWFuZGF0ZS1pZA"
}
], - "links": {
- "prev": "string",
- "next": "string"
}
}Registers a new payment request for the bank account
| bank-account-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
required | payee (object) or griffin-bank-account (object) or uk-domestic (object) (creditor) |
required | object (payment-amount) Compound value representing both the currency and amount of money being sent. |
| payment-reference | string (payment-reference) [ 1 .. 35 ] characters Default: "Sent from X" Free-text field to help identify and categorise payments. X is the legal person who owns the account. This will be the |
{- "creditor": {
- "payee-url": "/payees/pe.ICAgICAgICBwYXllZS1pZA",
- "creditor-type": "payee"
}, - "payment-amount": {
- "currency": "GBP",
- "value": "1000.00"
}, - "payment-reference": "test reference"
}{- "creditor": {
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "creditor-type": "griffin-bank-account"
}, - "rejected-at": "2019-08-24T14:15:22Z",
- "latest-submission-url": "/submissions/ps.ICAgc3VibWlzc2lvbi1pZA",
- "rejected-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "payment-direction": "inbound-payment",
- "created-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "created-via": "api",
- "created-at": "2019-08-24T14:15:22Z",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "payment-reference": "test reference",
- "payment-amount": {
- "currency": "GBP",
- "value": "1000.00"
}, - "payment-type": "credit-transfer",
- "ultimate-debtor": {
- "iban": "GB42GFNB12345612345678",
- "uk-domestic-sort-code": "123456",
- "bic": "GFNBGB22",
- "account-number": "12345678",
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "bban": "GFNB12345612345678",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "uk-domestic-account-number": "12345678",
- "other-account-identification": "ABC123",
- "account-number-code": "bban",
- "branch-identification": "ABC123",
- "other-institution-identification": "ABC123"
}, - "payment-admissions-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA/admissions",
- "payment-submissions-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA/submissions",
- "debtor": {
- "iban": "GB42GFNB12345612345678",
- "uk-domestic-sort-code": "123456",
- "bic": "GFNBGB22",
- "account-number": "12345678",
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "bban": "GFNB12345612345678",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "uk-domestic-account-number": "12345678",
- "other-account-identification": "ABC123",
- "account-number-code": "bban",
- "branch-identification": "ABC123",
- "other-institution-identification": "ABC123"
}, - "rejection-reason": "string",
- "mandate-url": "/mandates/mn.ICAgICAgbWFuZGF0ZS1pZA",
- "created-by-user": {
- "user-email": "user@example.com",
- "user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "user-username": "user@example.com",
- "api-keys-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/api-keys",
- "user-memberships-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/memberships",
- "given-name": "string",
- "surname": "string"
}, - "rejected-by-user": {
- "user-email": "user@example.com",
- "user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "user-username": "user@example.com",
- "api-keys-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/api-keys",
- "user-memberships-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/memberships",
- "given-name": "string",
- "surname": "string"
}
}Lists submissions originating from a bank account
| bank-account-id required | string |
| filter[submission-status][in][] | Array of strings Items Enum: "scheduled" "failed" "processing" "returned" "delivered" |
| filter[created-at][lt] | string <date-time> Return only resources with a created-at less than the given timestamp. |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| filter[created-at][gt] | string <date-time> Return only resources with a created-at greater than the given timestamp. |
| sort | string Enum: "-created-at" "created-at" |
| page[size] | integer <int64> [ 1 .. 200 ] |
| filter[created-at][gte] | string <date-time> Return only resources with a created-at greater than or equal to the given timestamp. |
| filter[created-at][lte] | string <date-time> Return only resources with a created-at less than or equal to the given timestamp. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "submissions": [
- {
- "submission-scheme-information": {
- "end-to-end-identification": "string",
- "scheme-status-code": "string",
- "scheme-status-code-description": "string",
- "payment-scheme": "fps"
}, - "submission-status": "scheduled",
- "created-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "scheduled-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "submission-status-reason": "string",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes ",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "submission-url": "/submissions/ps.ICAgc3VibWlzc2lvbi1pZA"
}
], - "links": {
- "prev": "string",
- "next": "string"
}
}List payments in your organization.
| organization-id required | string |
| filter[rejected][eq] | boolean Specifies whether the payment has been rejected. |
Array of submission-status (string) or no-latest-submission-status (string) | |
| include | Array of strings Items Enum: "bank-account" "rejected-by" "latest-submission.created-by" "created-by" "latest-submission" For each payment returned, include its bank account, latest submission (if one exists), rejecting user (if one exists), and/or creating user (if one exists) in the response under the |
| filter[created-at][lt] | string <date-time> Return only resources with a created-at less than the given timestamp. |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| filter[payment-type][eq] | string Enum: "credit-transfer" "direct-debit" Whether the payment is a credit transfer or direct debit. |
| filter[created-at][gt] | string <date-time> Return only resources with a created-at greater than the given timestamp. |
| sort | string Enum: "-created-at" "created-at" |
| page[size] | integer <int64> [ 1 .. 200 ] |
| filter[created-at][gte] | string <date-time> Return only resources with a created-at greater than or equal to the given timestamp. |
| filter[payment-direction][eq] | string Enum: "inbound-payment" "outbound-payment" Whether the payment is moving money into or out of the account. |
| filter[created-at][lte] | string <date-time> Return only resources with a created-at less than or equal to the given timestamp. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "payments": [
- {
- "creditor": {
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "creditor-type": "griffin-bank-account"
}, - "rejected-at": "2019-08-24T14:15:22Z",
- "latest-submission-url": "/submissions/ps.ICAgc3VibWlzc2lvbi1pZA",
- "rejected-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "payment-direction": "inbound-payment",
- "created-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "created-via": "api",
- "created-at": "2019-08-24T14:15:22Z",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "payment-reference": "test reference",
- "payment-amount": {
- "currency": "GBP",
- "value": "1000.00"
}, - "payment-type": "credit-transfer",
- "ultimate-debtor": {
- "iban": "GB42GFNB12345612345678",
- "uk-domestic-sort-code": "123456",
- "bic": "GFNBGB22",
- "account-number": "12345678",
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "bban": "GFNB12345612345678",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "uk-domestic-account-number": "12345678",
- "other-account-identification": "ABC123",
- "account-number-code": "bban",
- "branch-identification": "ABC123",
- "other-institution-identification": "ABC123"
}, - "payment-admissions-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA/admissions",
- "payment-submissions-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA/submissions",
- "debtor": {
- "iban": "GB42GFNB12345612345678",
- "uk-domestic-sort-code": "123456",
- "bic": "GFNBGB22",
- "account-number": "12345678",
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "bban": "GFNB12345612345678",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "uk-domestic-account-number": "12345678",
- "other-account-identification": "ABC123",
- "account-number-code": "bban",
- "branch-identification": "ABC123",
- "other-institution-identification": "ABC123"
}, - "rejection-reason": "string",
- "mandate-url": "/mandates/mn.ICAgICAgbWFuZGF0ZS1pZA"
}
], - "links": {
- "prev": "string",
- "next": "string"
}
}Returns a list of payments which reference or scheme ID match the search-query supplied in the request.
| organization-id required | string |
| include | Array of strings Items Enum: "bank-account" "rejected-by" "latest-submission.created-by" "created-by" "latest-submission" For each payment returned, include its bank account, latest submission (if one exists), rejecting user (if one exists), and/or creating user (if one exists) in the response under the |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| search-query required | string (search-query) non-empty |
{- "search-query": "string"
}{- "search-results": [
- {
- "creditor": {
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "creditor-type": "griffin-bank-account"
}, - "rejected-at": "2019-08-24T14:15:22Z",
- "latest-submission-url": "/submissions/ps.ICAgc3VibWlzc2lvbi1pZA",
- "rejected-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "payment-direction": "inbound-payment",
- "created-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "created-via": "api",
- "created-at": "2019-08-24T14:15:22Z",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "payment-reference": "test reference",
- "payment-amount": {
- "currency": "GBP",
- "value": "1000.00"
}, - "payment-type": "credit-transfer",
- "ultimate-debtor": {
- "iban": "GB42GFNB12345612345678",
- "uk-domestic-sort-code": "123456",
- "bic": "GFNBGB22",
- "account-number": "12345678",
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "bban": "GFNB12345612345678",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "uk-domestic-account-number": "12345678",
- "other-account-identification": "ABC123",
- "account-number-code": "bban",
- "branch-identification": "ABC123",
- "other-institution-identification": "ABC123"
}, - "payment-admissions-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA/admissions",
- "payment-submissions-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA/submissions",
- "debtor": {
- "iban": "GB42GFNB12345612345678",
- "uk-domestic-sort-code": "123456",
- "bic": "GFNBGB22",
- "account-number": "12345678",
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "bban": "GFNB12345612345678",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "uk-domestic-account-number": "12345678",
- "other-account-identification": "ABC123",
- "account-number-code": "bban",
- "branch-identification": "ABC123",
- "other-institution-identification": "ABC123"
}, - "rejection-reason": "string",
- "mandate-url": "/mandates/mn.ICAgICAgbWFuZGF0ZS1pZA"
}
], - "meta": {
- "page": {
- "total": 0,
- "estimated-total": {
- "at-least": 1
}
}
}, - "included": {
- "accounts": [
- {
- "account-submissions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/submissions",
- "bank-account-product-url": "/bank/products/bp.IGJhbmstcHJvZHVjdC1pZA",
- "account-restricted": true,
- "account-payments-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/payments",
- "pooled-account-memberships-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership",
- "account-admissions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/admissions",
- "bank-product-type": "savings-account",
- "account-mandates-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/mandates",
- "display-name": "string",
- "controller-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "pooled-funds": true,
- "accrued-interest": {
- "currency": "GBP",
- "value": "1000.00"
}, - "account-status": "closing",
- "client-money-type": "designated-client-fund",
- "owner-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "closed-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "opened-at": "2019-08-24T14:15:22Z",
- "close-account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/actions/close",
- "available-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "pooled-account-membership-updates-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/membership-updates",
- "bank-account-restrictions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/restrictions",
- "bank-addresses": [
- {
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "account-number": "12345678",
- "account-number-code": "bban"
}
], - "account-transactions-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/transactions",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "bank-account-events-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/events",
- "beneficiary-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "primary-account": false,
- "account-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "savings-type": "easy-access",
- "account-statements-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA/statements"
}
], - "submissions": [
- {
- "submission-scheme-information": {
- "end-to-end-identification": "string",
- "scheme-status-code": "string",
- "scheme-status-code-description": "string",
- "payment-scheme": "fps"
}, - "submission-status": "scheduled",
- "created-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "scheduled-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "submission-status-reason": "string",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes ",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "submission-url": "/submissions/ps.ICAgc3VibWlzc2lvbi1pZA"
}
], - "users": [
- {
- "user-email": "user@example.com",
- "user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "user-username": "user@example.com",
- "api-keys-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/api-keys",
- "user-memberships-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/memberships",
- "given-name": "string",
- "surname": "string"
}
]
}
}Yields payment details
| payment-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "creditor": {
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "creditor-type": "griffin-bank-account"
}, - "rejected-at": "2019-08-24T14:15:22Z",
- "latest-submission-url": "/submissions/ps.ICAgc3VibWlzc2lvbi1pZA",
- "rejected-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "payment-direction": "inbound-payment",
- "created-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "created-via": "api",
- "created-at": "2019-08-24T14:15:22Z",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "payment-reference": "test reference",
- "payment-amount": {
- "currency": "GBP",
- "value": "1000.00"
}, - "payment-type": "credit-transfer",
- "ultimate-debtor": {
- "iban": "GB42GFNB12345612345678",
- "uk-domestic-sort-code": "123456",
- "bic": "GFNBGB22",
- "account-number": "12345678",
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "bban": "GFNB12345612345678",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "uk-domestic-account-number": "12345678",
- "other-account-identification": "ABC123",
- "account-number-code": "bban",
- "branch-identification": "ABC123",
- "other-institution-identification": "ABC123"
}, - "payment-admissions-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA/admissions",
- "payment-submissions-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA/submissions",
- "debtor": {
- "iban": "GB42GFNB12345612345678",
- "uk-domestic-sort-code": "123456",
- "bic": "GFNBGB22",
- "account-number": "12345678",
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "bban": "GFNB12345612345678",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "uk-domestic-account-number": "12345678",
- "other-account-identification": "ABC123",
- "account-number-code": "bban",
- "branch-identification": "ABC123",
- "other-institution-identification": "ABC123"
}, - "rejection-reason": "string",
- "mandate-url": "/mandates/mn.ICAgICAgbWFuZGF0ZS1pZA",
- "created-by-user": {
- "user-email": "user@example.com",
- "user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "user-username": "user@example.com",
- "api-keys-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/api-keys",
- "user-memberships-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/memberships",
- "given-name": "string",
- "surname": "string"
}, - "rejected-by-user": {
- "user-email": "user@example.com",
- "user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "user-username": "user@example.com",
- "api-keys-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/api-keys",
- "user-memberships-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/memberships",
- "given-name": "string",
- "surname": "string"
}
}Updates a payment
| payment-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| rejection-reason | string or null (non-empty-string) non-empty |
{- "rejection-reason": "string"
}Lists admissions for a payment. A payment may have at most one admission.
| payment-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "admissions": [
- {
- "admission-status": "cancelled",
- "admission-scheme-information": {
- "end-to-end-identification": "string",
- "payment-scheme": "fps"
}, - "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "created-at": "2019-08-24T14:15:22Z",
- "admission-url": "/admissions/pa.ICAgIGFkbWlzc2lvbi1pZA",
- "unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes ",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "original-unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes "
}
]
}Lists submissions for a payment. The presence of a submission means that the payment has been submitted.
| payment-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "submissions": [
- {
- "submission-scheme-information": {
- "end-to-end-identification": "string",
- "scheme-status-code": "string",
- "scheme-status-code-description": "string",
- "payment-scheme": "fps"
}, - "submission-status": "scheduled",
- "created-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "scheduled-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "submission-status-reason": "string",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes ",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "submission-url": "/submissions/ps.ICAgc3VibWlzc2lvbi1pZA"
}
]
}Submits a previously created payment for execution.
You can submit payments over different payment schemes, check out our payments guides to help decide which scheme best suites your use case.
| payment-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| payment-scheme required | string (payment-scheme) Enum: "fps" "book-transfer" Specifies the scheme over which a payment is executed. |
{- "payment-scheme": "fps"
}{- "submission-scheme-information": {
- "end-to-end-identification": "string",
- "scheme-status-code": "string",
- "scheme-status-code-description": "string",
- "payment-scheme": "fps"
}, - "submission-status": "scheduled",
- "created-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "scheduled-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "submission-status-reason": "string",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes ",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "submission-url": "/submissions/ps.ICAgc3VibWlzc2lvbi1pZA"
}Yields a submission.
| submission-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "submission-scheme-information": {
- "end-to-end-identification": "string",
- "scheme-status-code": "string",
- "scheme-status-code-description": "string",
- "payment-scheme": "fps"
}, - "submission-status": "scheduled",
- "created-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "scheduled-at": "2019-08-24T14:15:22Z",
- "created-at": "2019-08-24T14:15:22Z",
- "submission-status-reason": "string",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "unique-scheme-identifier": "PGIT2IS7AJG77D2HK23020240212826NatWes ",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "submission-url": "/submissions/ps.ICAgc3VibWlzc2lvbi1pZA"
}A transaction represents funds deposited or withdrawn from a bank account. Read more about transactions in our guides.
Lists transactions on a bank account.
| bank-account-id required | string |
| include | string Value: "payment" For each transaction returned, include its payment (if one exists) in the response under the |
| filter[processed-at][lt] | string <date-time> Return only transactions processed before the given timestamp. |
| filter[processed-at][gte] | string <date-time> Return only transactions processed at or after the given timestamp. |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| filter[processed-at][gt] | string <date-time> Return only transactions processed after the given timestamp. |
| filter[processed-at][lte] | string <date-time> Return only transactions processed at or before the given timestamp. |
| sort | string Enum: "-created-at" "processed-at" "-processed-at" "created-at" |
| page[size] | integer <int64> [ 1 .. 200 ] |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "account-transactions": [
- {
- "account-transaction-url": "/bank/transactions/tr.ICB0cmFuc2FjdGlvbi1pZA",
- "processed-at": "2019-08-24T14:15:22Z",
- "post-datetime": "2019-08-24T14:15:22Z",
- "balance-change-direction": "credit",
- "origin-metadata": {
- "property1": "string",
- "property2": "string"
}, - "effective-at": "2019-08-24T14:15:22Z",
- "transaction-origin-type": "interest",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "reference": "Restaurant Charge - Sushi Palace",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "balance-change": {
- "currency": "GBP",
- "value": "1000.00"
}, - "account-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "description": "Interest earned in April from Alexa account."
}
], - "links": {
- "prev": "string",
- "next": "string"
}, - "included": null
}Yields a bank account transaction
| transaction-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "account-transaction-url": "/bank/transactions/tr.ICB0cmFuc2FjdGlvbi1pZA",
- "processed-at": "2019-08-24T14:15:22Z",
- "post-datetime": "2019-08-24T14:15:22Z",
- "balance-change-direction": "credit",
- "origin-metadata": {
- "property1": "string",
- "property2": "string"
}, - "effective-at": "2019-08-24T14:15:22Z",
- "transaction-origin-type": "interest",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "reference": "Restaurant Charge - Sushi Palace",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "balance-change": {
- "currency": "GBP",
- "value": "1000.00"
}, - "account-balance": {
- "currency": "GBP",
- "value": "1000.00"
}, - "description": "Interest earned in April from Alexa account."
}A statement is a bank account's transactions between two dates, produced on request as a document in a chosen format. Once a statement has been generated, its document can be downloaded.
Lists the statements requested for a bank account.
Statements are returned most recently requested first.
| bank-account-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| sort | string Enum: "-created-at" "created-at" |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "statements": [
- {
- "statement-url": "/bank/statements/st.ICAgIHN0YXRlbWVudC1pZA",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "format": "xero-csv",
- "start-date": "2019-08-24",
- "end-date": "2019-08-24",
- "status": "pending",
- "created-at": "2019-08-24T14:15:22Z",
- "statement-download-url": "/bank/statements/st.ICAgIHN0YXRlbWVudC1pZA/download"
}
], - "links": {
- "prev": "string",
- "next": "string"
}
}Requests a statement of the bank account's transactions from
start-date to end-date, both inclusive. The end-date can't be before the
start-date, and the period must have ended: the end-date must be before
today in UK time (Europe/London).
Sandbox bank accounts can't have griffin-pdf statements: see
what's in a PDF statement.
The statement is created pending, and its document is generated in the
background. Fetch the statement to see when it is ready to download.
| bank-account-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| format required | string (format) Enum: "xero-csv" "griffin-pdf" The format of the statement's document. |
| start-date required | string <date> (start-date) The first day covered by the statement, inclusive. |
| end-date required | string <date> (end-date) The last day covered by the statement, inclusive. |
{- "format": "xero-csv",
- "start-date": "2019-08-24",
- "end-date": "2019-08-24"
}{- "statement-url": "/bank/statements/st.ICAgIHN0YXRlbWVudC1pZA",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "format": "xero-csv",
- "start-date": "2019-08-24",
- "end-date": "2019-08-24",
- "status": "pending",
- "created-at": "2019-08-24T14:15:22Z",
- "statement-download-url": "/bank/statements/st.ICAgIHN0YXRlbWVudC1pZA/download"
}Fetches a statement. A pending statement's status shows when
its document is ready to download.
| statement-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "statement-url": "/bank/statements/st.ICAgIHN0YXRlbWVudC1pZA",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "format": "xero-csv",
- "start-date": "2019-08-24",
- "end-date": "2019-08-24",
- "status": "pending",
- "created-at": "2019-08-24T14:15:22Z",
- "statement-download-url": "/bank/statements/st.ICAgIHN0YXRlbWVudC1pZA/download"
}A direct debit mandate authorises an originator to collect Direct Debit payments from a bank account.
Lists direct debit mandates for a bank account.
| bank-account-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| sort | string Enum: "-created-at" "created-at" |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "mandates": [
- {
- "collection-amount": {
- "max-amount": {
- "currency": "GBP",
- "value": "1000.00"
}, - "amount-type": "variable"
}, - "cancellation-reason": "cancelled-by-griffin",
- "mandate-payments-url": "/mandates/mn.ICAgICAgbWFuZGF0ZS1pZA/payments",
- "mandate-scheme-information": {
- "unique-scheme-id": "string",
- "payment-scheme": "bacs"
}, - "last-used-at": "2019-08-24T14:15:22Z",
- "creditor": {
- "payee-url": "/payees/pe.ICAgICAgICBwYXllZS1pZA",
- "creditor-type": "payee"
}, - "status": "cancelled",
- "created-at": "2019-08-24T14:15:22Z",
- "collection-frequency": "yearly",
- "reference": "string",
- "debtor": {
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA"
}, - "mandate-url": "/mandates/mn.ICAgICAgbWFuZGF0ZS1pZA"
}
], - "links": {
- "prev": "string",
- "next": "string"
}
}Fetch a mandate.
| mandate-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "collection-amount": {
- "max-amount": {
- "currency": "GBP",
- "value": "1000.00"
}, - "amount-type": "variable"
}, - "cancellation-reason": "cancelled-by-griffin",
- "mandate-payments-url": "/mandates/mn.ICAgICAgbWFuZGF0ZS1pZA/payments",
- "mandate-scheme-information": {
- "unique-scheme-id": "string",
- "payment-scheme": "bacs"
}, - "last-used-at": "2019-08-24T14:15:22Z",
- "creditor": {
- "payee-url": "/payees/pe.ICAgICAgICBwYXllZS1pZA",
- "creditor-type": "payee"
}, - "status": "cancelled",
- "created-at": "2019-08-24T14:15:22Z",
- "collection-frequency": "yearly",
- "reference": "string",
- "debtor": {
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA"
}, - "mandate-url": "/mandates/mn.ICAgICAgbWFuZGF0ZS1pZA"
}Update a mandate. Currently only cancellation is supported: set status to cancelled with a cancellation-reason.
| mandate-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| status | string (status) Enum: "cancelled" "active" "expired" |
| cancellation-reason | string (cancellation-reason) Enum: "cancelled-by-griffin" "debtor-deceased" "cancelled-by-creditor" "account-closed" "cancelled-by-debtor" |
{- "status": "cancelled",
- "cancellation-reason": "cancelled-by-griffin"
}Lists payments for a direct debit mandate.
| mandate-id required | string |
| include | Array of strings Items Enum: "bank-account" "rejected-by" "latest-submission.created-by" "created-by" "latest-submission" For each payment returned, include its bank account, latest submission (if one exists), rejecting user (if one exists), and/or creating user (if one exists) in the response under the |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| sort | string Enum: "-created-at" "created-at" |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "payments": [
- {
- "creditor": {
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "creditor-type": "griffin-bank-account"
}, - "rejected-at": "2019-08-24T14:15:22Z",
- "latest-submission-url": "/submissions/ps.ICAgc3VibWlzc2lvbi1pZA",
- "rejected-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "payment-direction": "inbound-payment",
- "created-by-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "created-via": "api",
- "created-at": "2019-08-24T14:15:22Z",
- "payment-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA",
- "payment-reference": "test reference",
- "payment-amount": {
- "currency": "GBP",
- "value": "1000.00"
}, - "payment-type": "credit-transfer",
- "ultimate-debtor": {
- "iban": "GB42GFNB12345612345678",
- "uk-domestic-sort-code": "123456",
- "bic": "GFNBGB22",
- "account-number": "12345678",
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "bban": "GFNB12345612345678",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "uk-domestic-account-number": "12345678",
- "other-account-identification": "ABC123",
- "account-number-code": "bban",
- "branch-identification": "ABC123",
- "other-institution-identification": "ABC123"
}, - "payment-admissions-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA/admissions",
- "payment-submissions-url": "/payments/pm.ICAgICAgcGF5bWVudC1pZA/submissions",
- "debtor": {
- "iban": "GB42GFNB12345612345678",
- "uk-domestic-sort-code": "123456",
- "bic": "GFNBGB22",
- "account-number": "12345678",
- "account-holder": "string",
- "bank-id-code": "gbdsc",
- "bank-id": "123456",
- "bban": "GFNB12345612345678",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "uk-domestic-account-number": "12345678",
- "other-account-identification": "ABC123",
- "account-number-code": "bban",
- "branch-identification": "ABC123",
- "other-institution-identification": "ABC123"
}, - "rejection-reason": "string",
- "mandate-url": "/mandates/mn.ICAgICAgbWFuZGF0ZS1pZA"
}
], - "links": {
- "prev": "string",
- "next": "string"
}
}A payee is the person or business to whom you are paying money. When you create a payee, you need to provide their name ("account-holder"), and their bank account number ("account-number") and sort code ("bank-id").
You may also register the outcome of a Confirmation of Payee (CoP) check with your payee by supplying a cop-request-url.
Read more about payees in our guides.
Lists payees belonging to the legal person.
| legal-person-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| include | Array of strings Items Value: "cop-requests" For each payee returned, include its Confirmation of Payee (CoP) details (if they exist) in the response under the |
| sort | string Enum: "-created-at" "created-at" |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "payees": [
- {
- "cop-request-url": "/cop-request/cp.ICBjb3AtcmVxdWVzdC1pZA",
- "payee-url": "/payees/pe.ICAgICAgICBwYXllZS1pZA",
- "account-number": "12345678",
- "account-holder": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "bank-id": "123456",
- "created-at": "2019-08-24T14:15:22Z",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "payee-status": "deactivated",
- "country-code": "GB"
}
], - "links": {
- "prev": "string",
- "next": "string"
}, - "included": null
}Registers a new payee with a legal person.
You may associate the outcome of a CoP request with the payee by supplying a cop-request-url.
| legal-person-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| account-holder required | string (account-holder) non-empty The name of the account holder. |
| account-number required | string (account-number) = 8 characters ^[0-9]{8}$ A UK account number. |
| bank-id required | string (bank-id) = 6 characters ^[0-9]{6}$ A UK sort code. |
| cop-request-url | string (cop-request-url) Link to a CoP request. |
{- "account-holder": "string",
- "account-number": "12345678",
- "bank-id": "123456",
- "cop-request-url": "/cop-request/cp.ICBjb3AtcmVxdWVzdC1pZA"
}{- "cop-request-url": "/cop-request/cp.ICBjb3AtcmVxdWVzdC1pZA",
- "payee-url": "/payees/pe.ICAgICAgICBwYXllZS1pZA",
- "account-number": "12345678",
- "account-holder": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "bank-id": "123456",
- "created-at": "2019-08-24T14:15:22Z",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "payee-status": "deactivated",
- "country-code": "GB"
}Returns the payee details.
| payee-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "cop-request-url": "/cop-request/cp.ICBjb3AtcmVxdWVzdC1pZA",
- "payee-url": "/payees/pe.ICAgICAgICBwYXllZS1pZA",
- "account-number": "12345678",
- "account-holder": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "bank-id": "123456",
- "created-at": "2019-08-24T14:15:22Z",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "payee-status": "deactivated",
- "country-code": "GB"
}Updates an existing payee.
You can update a payee with the outcome of a CoP request by supplying a cop-request-url.
A payee can be deactivated by updating the payee-status of an active payee to deactivated. Any attempt to create or submit a payment to a deactivated payee will fail.
A 422 is served when attempting to deactivate an already-deactivated payee.
| payee-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| cop-request-url | string (cop-request-url) Link to a CoP request. |
| payee-status | string (payee-status) Value: "deactivated" The status of the payee; you can only make payments to active payees. |
{- "cop-request-url": "/cop-request/cp.ICBjb3AtcmVxdWVzdC1pZA",
- "payee-status": "deactivated"
}{- "cop-request-url": "/cop-request/cp.ICBjb3AtcmVxdWVzdC1pZA",
- "payee-url": "/payees/pe.ICAgICAgICBwYXllZS1pZA",
- "account-number": "12345678",
- "account-holder": "string",
- "legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "bank-id": "123456",
- "created-at": "2019-08-24T14:15:22Z",
- "account-url": "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA",
- "payee-status": "deactivated",
- "country-code": "GB"
}Confirmation of Payee (CoP) is a payee checking service that helps prevent UK domestic payments from being sent to the wrong account. Read more about Confirmation of Payee in our guides.
Create a Confirmation of Payee (CoP) request.
| organization-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| account-number required | string (account-number) = 8 characters ^[0-9]{8}$ A UK account number. |
| bank-id required | string (bank-id) = 6 characters ^[0-9]{6}$ A UK sort code. |
| account-classification required | string (account-classification) Enum: "personal" "business" |
| name required | any (name) The name of the payee. |
| requester-legal-person-url required | string (requester-legal-person-url) A contextual link to the legal person. |
| secondary-reference-data | any (secondary-reference-data) Secondary reference data, such as a building society roll number or a credit card number. |
{- "account-number": "12345678",
- "bank-id": "123456",
- "account-classification": "personal",
- "name": "John Smith",
- "requester-legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "secondary-reference-data": "1234567890"
}{- "cop-request-url": "/cop-request/cp.ICBjb3AtcmVxdWVzdC1pZA",
- "account": {
- "account-number": "12345678",
- "bank-id": "123456",
- "account-classification": "personal",
- "name": "John Smith",
- "requester-legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "secondary-reference-data": "1234567890"
}, - "cop-response": {
- "status": "verified",
- "result": "match",
- "reason": "no-match-name",
- "suggested-name": "string",
- "suggested-account-classification": "business"
}
}Simulate the creation of a CoP Request. Note: This is an alpha API and may change anytime.
| organization-id required | string |
| cop-simulation-type required | string Enum: "match-name-business-personal" "account-not-found" "full-match" "no-match-name" "no-match-secondary-ref" "close-match-name-business-personal" "close-match-name-personal-business" "account-switched" "close-match-name" "account-not-supported" "match-name-personal-business" The type of simulation to run. |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| account-number required | string (account-number) = 8 characters ^[0-9]{8}$ A UK account number. |
| bank-id required | string (bank-id) = 6 characters ^[0-9]{6}$ A UK sort code. |
| account-classification required | string (account-classification) Enum: "personal" "business" |
| name required | any (name) The name of the payee. |
| requester-legal-person-url required | string (requester-legal-person-url) A contextual link to the legal person. |
| secondary-reference-data | any (secondary-reference-data) Secondary reference data, such as a building society roll number or a credit card number. |
{- "account-number": "12345678",
- "bank-id": "123456",
- "account-classification": "personal",
- "name": "John Smith",
- "requester-legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "secondary-reference-data": "1234567890"
}{- "cop-request-url": "/cop-request/cp.ICBjb3AtcmVxdWVzdC1pZA",
- "account": {
- "account-number": "12345678",
- "bank-id": "123456",
- "account-classification": "personal",
- "name": "John Smith",
- "requester-legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "secondary-reference-data": "1234567890"
}, - "cop-response": {
- "status": "verified",
- "result": "match",
- "reason": "no-match-name",
- "suggested-name": "string",
- "suggested-account-classification": "business"
}
}Open banking allows regulated third-party providers (TPPs) to access your customers' account data or initiate payments on their behalf. Griffin partners with tell.money to provide the TPP-facing open banking APIs. You handle the consent flow — authenticating your customer and registering the consent with Griffin — and Griffin handles the resource requests from TPPs.
For a full walkthrough, see our open banking integration guide.
Fetch a registered Tell consent.
| consent-id required | string <uuid> |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "tell-consent-expiry": "2019-08-24T14:15:22Z",
- "tell-gateway-id": "75c57ab5-f954-4104-9657-176490e1577d",
- "created-at": "2019-08-24T14:15:22Z",
- "tell-consent-id": "d1d7d560-30c6-44be-8719-f086af283754",
- "tell-consent-scope": "payments",
- "tell-consent-consumed-at": "2019-08-24T14:15:22Z",
- "tell-consent-url": "/open-banking/tell-consents/00000000-0000-0000-0000-000000000000",
- "tell-consent-status": "revoked",
- "tell-consent-permissions": [
- "ReadPartyPSU"
], - "bank-account-urls": [
- "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA"
], - "tell-consent-revoked-at": "2019-08-24T14:15:22Z"
}Revoke a registered Tell consent.
After revoking a consent with Tell Money, also revoke it with Griffin so that Griffin rejects any further resource requests for this consent.
| consent-id required | string <uuid> |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "tell-consent-expiry": "2019-08-24T14:15:22Z",
- "tell-gateway-id": "75c57ab5-f954-4104-9657-176490e1577d",
- "created-at": "2019-08-24T14:15:22Z",
- "tell-consent-id": "d1d7d560-30c6-44be-8719-f086af283754",
- "tell-consent-scope": "payments",
- "tell-consent-consumed-at": "2019-08-24T14:15:22Z",
- "tell-consent-url": "/open-banking/tell-consents/00000000-0000-0000-0000-000000000000",
- "tell-consent-status": "revoked",
- "tell-consent-permissions": [
- "ReadPartyPSU"
], - "bank-account-urls": [
- "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA"
], - "tell-consent-revoked-at": "2019-08-24T14:15:22Z"
}Register a Tell consent for open banking on your customers' accounts.
After granting a consent with Tell Money, register it with Griffin so that Griffin can validate Tell's subsequent resource requests.
tell-consent-permissions behaviour depends on tell-consent-scope:
accounts scope requires at least one permission; this controls which
AISP operations the TPP can perform (e.g. reading balances or
transactions).payments scope does not use permissions — Tell Money returns them
empty and Griffin authorises payment operations from the scope alone.
Pass [] (matching Tell's response) or any value; the field is still
required in the request.| organization-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| tell-consent-id required | string <uuid> |
| tell-gateway-id required | string <uuid> |
| tell-consent-scope required | string Enum: "payments" "accounts" |
| tell-consent-permissions required | Array of strings unique Items Enum: "ReadPartyPSU" "ReadTransactionsDetail" "ReadProducts" "ReadStatementsDetail" "ReadDirectDebits" "ReadTransactionsDebits" "ReadTransactionsCredits" "ReadBeneficiariesDetail" "ReadBalances" "ReadPAN" "ReadScheduledPaymentsDetail" "ReadAccountsDetail" "ReadAccountsBasic" "ReadOffers" "ReadBeneficiariesBasic" "ReadStandingOrdersBasic" "ReadStandingOrdersDetail" "ReadTransactionsBasic" "ReadParty" "ReadStatementsBasic" "ReadScheduledPaymentsBasic" Permissions granted by the consent. For |
| bank-account-urls required | Array of strings (account-url) |
| tell-consent-expiry | string <date-time> (inst) ISO 8601 formatted date-time. |
{- "tell-consent-id": "d1d7d560-30c6-44be-8719-f086af283754",
- "tell-gateway-id": "75c57ab5-f954-4104-9657-176490e1577d",
- "tell-consent-scope": "payments",
- "tell-consent-permissions": [
- "ReadPartyPSU"
], - "bank-account-urls": [
- "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA"
], - "tell-consent-expiry": "2019-08-24T14:15:22Z"
}{- "tell-consent-expiry": "2019-08-24T14:15:22Z",
- "tell-gateway-id": "75c57ab5-f954-4104-9657-176490e1577d",
- "created-at": "2019-08-24T14:15:22Z",
- "tell-consent-id": "d1d7d560-30c6-44be-8719-f086af283754",
- "tell-consent-scope": "payments",
- "tell-consent-consumed-at": "2019-08-24T14:15:22Z",
- "tell-consent-url": "/open-banking/tell-consents/00000000-0000-0000-0000-000000000000",
- "tell-consent-status": "revoked",
- "tell-consent-permissions": [
- "ReadPartyPSU"
], - "bank-account-urls": [
- "/bank/accounts/ba.IGJhbmstYWNjb3VudC1pZA"
], - "tell-consent-revoked-at": "2019-08-24T14:15:22Z"
}The organization resource represents your company and acts as a container for the majority of other resources, including legal persons and bank accounts. When you register for an account with Griffin, a new organization is created alongside your user account (unless you have received an invitation to join an existing organization). Your user account is associated with an organization via a membership.
Your organization can be in one of two modes:
test-mode for organizations created when you sign up for the sandbox.live-mode for when you go live with Griffin.Learn more about sandbox vs. live mode.
Yields the organization details
| organization-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "own-legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "organization-mode": "test-mode",
- "organization-memberships-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/memberships",
- "organization-invitations-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/invitations",
- "organization-payments-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/payments",
- "organization-bank-account-products-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/bank/products",
- "organization-onboarding-applications-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/onboarding/applications",
- "display-name": "Company Org",
- "organization-bank-accounts-search-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/bank/accounts/search",
- "organization-api-keys-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/api-keys",
- "organization-live-access-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/live-access",
- "organization-webhooks-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/webhooks",
- "organization-workflows-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/workflows",
- "organization-bank-accounts-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/bank/accounts",
- "available-roles": [
- {
- "display-name": "Company Org",
- "description": "string",
- "role-url": "/roles/re.ICAgICAgICAgcm9sZS1pZA",
- "role-category": "string"
}
], - "can-decide-on-verifications?": true,
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "organization-payments-search-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/payments/search",
- "organization-individuals-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/individuals",
- "organization-corporations-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/corporations",
- "organization-legal-persons-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/legal-persons",
- "organization-legal-persons-search-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/legal-persons/search",
- "organization-events-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/events"
}Users represent individuals who use the Griffin platform. A user must have a membership in at least one organization, and may have memberships in multiple organizations.
Get the User resource for the current user.
| user-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "user-email": "user@example.com",
- "user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "user-username": "user@example.com",
- "api-keys-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/api-keys",
- "user-memberships-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/memberships",
- "given-name": "string",
- "surname": "string"
}A role represents a pre-defined set of capabilities that can be assigned to a user via their membership in an organization. By default, the first user in an organization gets assigned an administration role. Subsequent users get assigned the most limited set of capabilities.
Returns the roles assigned to this membership.
| membership-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "roles": [
- {
- "display-name": "string",
- "description": "string",
- "role-url": "/roles/re.ICAgICAgICAgcm9sZS1pZA",
- "role-category": "string"
}
]
}Assigns roles to the membership.
A 422 Unprocessable Entity is served if either:
"available-roles"| membership-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| role-urls required | Array of strings (role-url) |
{- "role-urls": [
- "/roles/re.ICAgICAgICAgcm9sZS1pZA"
]
}{- "roles": [
- {
- "display-name": "string",
- "description": "string",
- "role-url": "/roles/re.ICAgICAgICAgcm9sZS1pZA",
- "role-category": "string"
}
]
}Yields a list of all Role resources.
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "roles": [
- {
- "display-name": "string",
- "description": "string",
- "role-url": "/roles/re.ICAgICAgICAgcm9sZS1pZA",
- "role-category": "string"
}
]
}Yields the Role resource.
| role-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "display-name": "string",
- "description": "string",
- "role-url": "/roles/re.ICAgICAgICAgcm9sZS1pZA",
- "role-category": "string"
}Memberships represents the relationship between a user and an organization. A membership must have at least one role assigned to it.
Returns the user's membership information.
| membership-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "membership-url": "/memberships/mp.ICAgbWVtYmVyc2hpcC1pZA",
- "membership-roles-url": "/memberships/mp.ICAgbWVtYmVyc2hpcC1pZA/roles",
- "organization": {
- "own-legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "organization-mode": "test-mode",
- "organization-memberships-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/memberships",
- "organization-invitations-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/invitations",
- "organization-payments-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/payments",
- "organization-bank-account-products-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/bank/products",
- "organization-onboarding-applications-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/onboarding/applications",
- "display-name": "string",
- "organization-bank-accounts-search-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/bank/accounts/search",
- "organization-api-keys-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/api-keys",
- "organization-live-access-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/live-access",
- "organization-webhooks-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/webhooks",
- "organization-workflows-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/workflows",
- "organization-bank-accounts-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/bank/accounts",
- "available-roles": [
- {
- "display-name": "string",
- "description": "string",
- "role-url": "/roles/re.ICAgICAgICAgcm9sZS1pZA",
- "role-category": "string"
}
], - "can-decide-on-verifications?": true,
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "organization-payments-search-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/payments/search",
- "organization-individuals-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/individuals",
- "organization-corporations-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/corporations",
- "organization-legal-persons-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/legal-persons",
- "organization-legal-persons-search-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/legal-persons/search",
- "organization-events-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/events"
}, - "roles": [
- {
- "display-name": "string",
- "description": "string",
- "role-url": "/roles/re.ICAgICAgICAgcm9sZS1pZA",
- "role-category": "string"
}
], - "user": {
- "user-email": "user@example.com",
- "user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "user-username": "user@example.com",
- "api-keys-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/api-keys",
- "user-memberships-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/memberships",
- "given-name": "string",
- "surname": "string"
}, - "created-at": "2019-08-24T14:15:22Z"
}Removes a user from an organization.
| membership-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
Returns this organization's memberships.
| organization-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| sort | string Enum: "-created-at" "created-at" |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "memberships": [
- {
- "membership-url": "/memberships/mp.ICAgbWVtYmVyc2hpcC1pZA",
- "membership-roles-url": "/memberships/mp.ICAgbWVtYmVyc2hpcC1pZA/roles",
- "organization": {
- "own-legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "organization-mode": "test-mode",
- "organization-memberships-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/memberships",
- "organization-invitations-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/invitations",
- "organization-payments-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/payments",
- "organization-bank-account-products-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/bank/products",
- "organization-onboarding-applications-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/onboarding/applications",
- "display-name": "Company Org",
- "organization-bank-accounts-search-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/bank/accounts/search",
- "organization-api-keys-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/api-keys",
- "organization-live-access-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/live-access",
- "organization-webhooks-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/webhooks",
- "organization-workflows-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/workflows",
- "organization-bank-accounts-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/bank/accounts",
- "available-roles": [
- {
- "display-name": "Company Org",
- "description": "string",
- "role-url": "/roles/re.ICAgICAgICAgcm9sZS1pZA",
- "role-category": "string"
}
], - "can-decide-on-verifications?": true,
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "organization-payments-search-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/payments/search",
- "organization-individuals-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/individuals",
- "organization-corporations-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/corporations",
- "organization-legal-persons-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/legal-persons",
- "organization-legal-persons-search-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/legal-persons/search",
- "organization-events-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/events"
}, - "roles": [
- {
- "display-name": "Company Org",
- "description": "string",
- "role-url": "/roles/re.ICAgICAgICAgcm9sZS1pZA",
- "role-category": "string"
}
], - "user": {
- "user-email": "user@example.com",
- "user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "user-username": "user@example.com",
- "api-keys-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/api-keys",
- "user-memberships-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/memberships",
- "given-name": "string",
- "surname": "string"
}, - "created-at": "2019-08-24T14:15:22Z"
}
], - "links": {
- "prev": "string",
- "next": "string"
}
}Returns this user's memberships.
| user-id required | string |
| page[before] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[after] | string <byte> A base64 encoded opaque string returned in paginated responses. |
| page[size] | integer <int64> [ 1 .. 200 ] |
| sort | string Enum: "-created-at" "created-at" |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
{- "memberships": [
- {
- "membership-url": "/memberships/mp.ICAgbWVtYmVyc2hpcC1pZA",
- "membership-roles-url": "/memberships/mp.ICAgbWVtYmVyc2hpcC1pZA/roles",
- "organization": {
- "own-legal-person-url": "/legal-persons/lp.IGxlZ2FsLXBlcnNvbi1pZA",
- "organization-mode": "test-mode",
- "organization-memberships-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/memberships",
- "organization-invitations-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/invitations",
- "organization-payments-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/payments",
- "organization-bank-account-products-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/bank/products",
- "organization-onboarding-applications-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/onboarding/applications",
- "display-name": "Company Org",
- "organization-bank-accounts-search-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/bank/accounts/search",
- "organization-api-keys-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/api-keys",
- "organization-live-access-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/live-access",
- "organization-webhooks-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/webhooks",
- "organization-workflows-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/workflows",
- "organization-bank-accounts-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/bank/accounts",
- "available-roles": [
- {
- "display-name": "Company Org",
- "description": "string",
- "role-url": "/roles/re.ICAgICAgICAgcm9sZS1pZA",
- "role-category": "string"
}
], - "can-decide-on-verifications?": true,
- "organization-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA",
- "organization-payments-search-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/payments/search",
- "organization-individuals-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/individuals",
- "organization-corporations-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/corporations",
- "organization-legal-persons-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/legal-persons",
- "organization-legal-persons-search-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/legal-persons/search",
- "organization-events-url": "/organizations/og.IG9yZ2FuaXphdGlvbi1pZA/events"
}, - "roles": [
- {
- "display-name": "Company Org",
- "description": "string",
- "role-url": "/roles/re.ICAgICAgICAgcm9sZS1pZA",
- "role-category": "string"
}
], - "user": {
- "user-email": "user@example.com",
- "user-url": "/users/ur.ICAgICAgICAgdXNlci1pZA",
- "user-username": "user@example.com",
- "api-keys-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/api-keys",
- "user-memberships-url": "/users/ur.ICAgICAgICAgdXNlci1pZA/memberships",
- "given-name": "string",
- "surname": "string"
}, - "created-at": "2019-08-24T14:15:22Z"
}
], - "links": {
- "prev": "string",
- "next": "string"
}
}Invitations enable users to create new memberships for their organization. The new membership is only created once when the invitation is accepted.
If the email-address provided is linked to an existing user, the invitation will create a membership for that user.
This does not affect any other memberships the user may have.
If the email-address is not linked to an existing user, the invitee will be prompted to set up a Griffin account when they accept the invitation.
When a new membership is created, the invited user is assigned the role with the most limited set of capabilities by default.
POST creates a new invitation to the organization.
Sends an email invitation to join the organization to the specified email-address.
| organization-id required | string |
| Griffin-Version | string Example: 2026-07-09 The API version to use for this request. Without this header, the request uses your organization's default API version. |
| email-address required | string (email-address) .+\@.+\..+ |
{- "email-address": "user@example.com"
}