---
title: "Register Tell consent"
method: POST
path: "/v0/organizations/{organization-id}/open-banking/tell-consents"
tags: ["Open banking"]
---

# Register Tell consent

`POST /v0/organizations/{organization-id}/open-banking/tell-consents`

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.

## Path parameters

- `organization-id` string, required

## Request body

- object
  - `tell-consent-id` string, uuid, required
  - `tell-gateway-id` string, uuid, required
  - `tell-consent-scope` 'payments' | 'accounts', required
  - `tell-consent-permissions` string[], required — Permissions granted by the consent. For `accounts` scope, must list at least one permission. For `payments` scope, pass `[]` — Tell Money returns no permissions and Griffin authorises payments from the scope alone.
  - `bank-account-urls` union[], required
    - union — Link to the bank account resource.
      - string
      - string
  - `tell-consent-expiry` string, date-time — ISO 8601 formatted date-time.

## Response `201`

Created

- object — A registered Tell consent.
  - `tell-consent-expiry` string, date-time — ISO 8601 formatted date-time.
  - `tell-gateway-id` string, uuid, required
  - `created-at` string, date-time, required — ISO 8601 formatted date-time.
  - `tell-consent-id` string, uuid, required
  - `tell-consent-scope` union, required
    - 'payments' | 'accounts'
    - string
  - `tell-consent-consumed-at` string, date-time — ISO 8601 formatted date-time.
  - `tell-consent-url` union, required
    - string
    - string
  - `tell-consent-status` union, required
    - 'revoked' | 'consumed' | 'authorised'
    - string
  - `tell-consent-permissions` union[], required
    - union
      - 'ReadPartyPSU' | 'ReadTransactionsDetail' | 'ReadProducts' | 'ReadStatementsDetail' | 'ReadDirectDebits' | 'ReadTransactionsDebits' | 'ReadTransactionsCredits' | 'ReadBeneficiariesDetail' | 'ReadBalances' | 'ReadPAN' | 'ReadScheduledPaymentsDetail' | 'ReadAccountsDetail' | 'ReadAccountsBasic' | 'ReadOffers' | 'ReadBeneficiariesBasic' | 'ReadStandingOrdersBasic' | 'ReadStandingOrdersDetail' | 'ReadTransactionsBasic' | 'ReadParty' | 'ReadStatementsBasic' | 'ReadScheduledPaymentsBasic'
      - string
  - `bank-account-urls` union[], required
    - union — Link to the bank account resource.
      - string
      - string
  - `tell-consent-revoked-at` string, date-time — ISO 8601 formatted date-time.

## Other responses

- `401` — Requires an API key to continue
- `404` — Gateway not found.
- `409` — Consent with this ID already exists.
- `422` — At least one of the supplied bank accounts doesn't exist.

---

[API](https://skmtc.net/griffin/apis/the-griffin-api.md) · [All operations](https://skmtc.net/griffin/apis/the-griffin-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/griffin/the-griffin-api/revisions/7da510b95492/schema)
