---
updatedAt: 2026-06-04T16:54:59.000Z
agentTools:
  projectIndex: https://doc.fintecture.com/llms.txt
---

# Get provider's authorization

This API endpoint is used to authenticate your customer to their Bank for AIS access. Banks can provide different ways of authentication, we implement both the redirection model and the decoupled model (using the customers smartphone), subject to whether the bank supports those models. By calling this API endpoint and defining the authentication model, you will receive an URL to call which either redirects the customer to their bank or triggers an authentication request on his smartphone's bank app.


# OpenAPI definition

```json
{
  "openapi": "3.0.3",
  "info": {
    "title": "API EXPLORER",
    "version": "3.0.0",
    "description": "Public API\n",
    "contact": {
      "name": "Support",
      "email": "noelia.rodriguez@fintecture.com"
    }
  },
  "x-readme": {
    "explorer-enabled": false,
    "proxy-enabled": false,
    "samples-languages": [
      "curl",
      "javascript",
      "ruby"
    ]
  },
  "servers": [
    {
      "url": "https://api.sandbox.fintecture.com",
      "description": "Sandbox server"
    },
    {
      "url": "https://api.fintecture.com",
      "description": "Production server"
    }
  ],
  "paths": {
    "/ais/v1/provider/{provider_id}/authorize": {
      "get": {
        "security": [
          {
            "ApikeyAuth": []
          }
        ],
        "tags": [
          "accounts"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/Header-xRequestId-req"
          },
          {
            "$ref": "#/components/parameters/Header-xPsuId"
          },
          {
            "$ref": "#/components/parameters/Header-xPsuIpAddress"
          },
          {
            "$ref": "#/components/parameters/Query-responseType"
          },
          {
            "$ref": "#/components/parameters/Query-redirectUri-req"
          },
          {
            "$ref": "#/components/parameters/Query-state"
          },
          {
            "$ref": "#/components/parameters/Query-model"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AisV1ProviderAuthorization"
                }
              }
            },
            "description": "successful operation"
          },
          "400": {
            "$ref": "#/components/responses/400-BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/401-Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/403-Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/404-NotFound"
          },
          "500": {
            "$ref": "#/components/responses/500-InternalServerError"
          }
        },
        "operationId": "getAisV1ProviderAuthorization",
        "summary": "Get provider's authorization",
        "description": "This API endpoint is used to authenticate your customer to their Bank for AIS access. Banks can provide different ways of authentication, we implement both the redirection model and the decoupled model (using the customers smartphone), subject to whether the bank supports those models. By calling this API endpoint and defining the authentication model, you will receive an URL to call which either redirects the customer to their bank or triggers an authentication request on his smartphone's bank app.\n"
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/Path-providerId-req"
        },
        {
          "$ref": "#/components/parameters/Header-authorization"
        },
        {
          "$ref": "#/components/parameters/Header-signature-req"
        },
        {
          "$ref": "#/components/parameters/Header-date-req"
        },
        {
          "$ref": "#/components/parameters/Header-xRequestId-req"
        }
      ]
    }
  },
  "components": {
    "parameters": {
      "Header-authorization": {
        "example": "Bearer {access_token}",
        "name": "authorization",
        "description": "oAuth authorization using Bearer (conditional)",
        "schema": {
          "type": "string"
        },
        "in": "header",
        "required": false
      },
      "Header-date-req": {
        "name": "date",
        "description": "RFC2822 formatted date.",
        "schema": {
          "$ref": "#/components/schemas/DateRfc2822"
        },
        "in": "header",
        "required": true
      },
      "Header-signature-req": {
        "name": "signature",
        "description": "Signature is used to enforce security by signing request.<br>Related documentation can be found by clicking [<b>here</b>](https://doc.fintecture.com/docs/api-http-signature)",
        "schema": {
          "type": "string"
        },
        "in": "header",
        "required": true
      },
      "Header-xRequestId-req": {
        "name": "x-request-id",
        "description": "uuid v4. Required in Redirect mode.",
        "schema": {
          "$ref": "#/components/schemas/IdentifierUuidV4"
        },
        "in": "header",
        "required": true
      },
      "Header-xPsuId": {
        "name": "x-psu-id",
        "description": "The PSU's ID at the provider. Required in Decoupled mode.",
        "schema": {
          "type": "string"
        },
        "in": "header"
      },
      "Header-xPsuIpAddress": {
        "name": "x-psu-ip-address",
        "description": "the PSU's IP Address. Required in Decoupled mode.",
        "schema": {
          "type": "string",
          "example": "92.168.0.12"
        },
        "in": "header"
      },
      "Path-providerId-req": {
        "name": "provider_id",
        "description": "the provider id as returned by the providers resource",
        "schema": {
          "type": "string",
          "example": "bankfr"
        },
        "in": "path",
        "required": true
      },
      "Query-model": {
        "name": "model",
        "description": "Either redirect (default) or decoupled. Required in Decoupled mode",
        "schema": {
          "$ref": "#/components/schemas/OAuthModel"
        },
        "in": "query"
      },
      "Query-redirectUri-req": {
        "name": "redirect_uri",
        "description": "must correspond to one of the URLs provided when creating an application on the console. Required in Redirect mode.",
        "schema": {
          "type": "string",
          "pattern": "https:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)"
        },
        "in": "query",
        "required": true
      },
      "Query-responseType": {
        "name": "response_type",
        "description": "must be set to code and is only required if `app_id` has been set in headers.",
        "schema": {
          "enum": [
            "code"
          ],
          "type": "string",
          "example": "code"
        },
        "in": "query"
      },
      "Query-state": {
        "name": "state",
        "description": "an optional state parameter which will be provided back on redirection",
        "schema": {
          "type": "string"
        },
        "in": "query"
      }
    },
    "responses": {
      "400-BadRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/APIResponse400"
            }
          }
        },
        "description": "bad request"
      },
      "401-Unauthorized": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/APIResponse401"
            }
          }
        },
        "description": "unauthorized"
      },
      "403-Forbidden": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/APIResponse403"
            }
          }
        },
        "description": "forbidden"
      },
      "404-NotFound": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/APIResponse404"
            }
          }
        },
        "description": "resource not found"
      },
      "500-InternalServerError": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/APIResponse500"
            }
          }
        },
        "description": "internal server error"
      }
    },
    "schemas": {
      "AisV1ProviderAuthorization": {
        "title": "Provider Authorization",
        "description": "Provider Authorization",
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "example": "deutde"
          },
          "model": {
            "$ref": "#/components/schemas/OAuthModel"
          },
          "url": {
            "type": "string",
            "example": "https://simulator-api.db.com/gw/oidc/authorize?client_id=abcd&response_type=code&redirect_uri=https://api.fintecture.com/provider/deutde/auth/callback&state=169"
          }
        }
      },
      "APIResponse400": {
        "title": "400 API Response",
        "description": "Definition of the standard API reponse when a 400",
        "type": "object",
        "properties": {
          "status": {
            "format": "int32",
            "description": "HTTP status code",
            "type": "integer",
            "example": 400
          },
          "code": {
            "type": "string",
            "enum": [
              "bad_request",
              "provider_error"
            ],
            "example": "bad_request"
          },
          "log_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdentifierUuidV4"
              },
              {
                "description": "Log unique identifier"
              }
            ]
          },
          "errors": {
            "description": "Errors returned",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/APIResponse400Error"
            }
          }
        }
      },
      "APIResponse400Error": {
        "title": "API Response 400 Error",
        "description": "API Response 400 Error description",
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "bad_request",
              "customer_unknown",
              "account_unknown",
              "session_id_invalid_or_expired",
              "invalid_field",
              "mandatory_field_missing",
              "invalid_debited_account"
            ],
            "example": "bad_request"
          },
          "title": {
            "description": "Title message",
            "type": "string",
            "example": "Bad request"
          },
          "message": {
            "description": "Error message",
            "type": "string",
            "example": "Invalid parameters or malformed syntax."
          }
        }
      },
      "APIResponse401": {
        "title": "401 API Response",
        "description": "Definition of the standard API reponse when a 401",
        "type": "object",
        "properties": {
          "status": {
            "format": "int32",
            "description": "HTTP status code",
            "type": "integer",
            "example": 401
          },
          "code": {
            "type": "string",
            "enum": [
              "unauthorized"
            ],
            "example": "unauthorized"
          },
          "log_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdentifierUuidV4"
              },
              {
                "description": "Log unique identifier"
              }
            ]
          },
          "errors": {
            "description": "Errors returned",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/APIResponse401Error"
            }
          }
        }
      },
      "APIResponse401Error": {
        "title": "API Response 401 Error",
        "description": "API Response 401 Error description",
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "invalid_token",
              "invalid_scopes",
              "invalid_code",
              "invalid_app_id",
              "invalid_app_url"
            ],
            "example": "bad_request"
          },
          "title": {
            "description": "Title message",
            "type": "string",
            "example": "Invalid token"
          },
          "message": {
            "description": "Error message",
            "type": "string",
            "example": "The token is either invalid or expired."
          }
        }
      },
      "APIResponse403": {
        "title": "403 API Response",
        "description": "Definition of the standard API reponse when a 403",
        "type": "object",
        "properties": {
          "status": {
            "format": "int32",
            "description": "HTTP status code",
            "type": "integer",
            "example": 403
          },
          "code": {
            "type": "string",
            "enum": [
              "forbidden"
            ],
            "example": "forbidden"
          },
          "log_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdentifierUuidV4"
              },
              {
                "description": "Log unique identifier"
              }
            ]
          },
          "errors": {
            "description": "Errors returned",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/APIResponse403Error"
            }
          }
        }
      },
      "APIResponse403Error": {
        "title": "API Response 403 Error",
        "description": "API Response 403 Error description",
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "forbidden"
            ],
            "example": "forbidden"
          },
          "title": {
            "description": "Title message",
            "type": "string",
            "example": "Forbidden"
          },
          "message": {
            "description": "Error message",
            "type": "string",
            "example": "Access Forbidden."
          }
        }
      },
      "APIResponse404": {
        "title": "404 API Response",
        "description": "Definition of the standard API reponse when a 404",
        "type": "object",
        "properties": {
          "status": {
            "format": "int32",
            "description": "HTTP status code",
            "type": "integer",
            "example": 404
          },
          "code": {
            "type": "string",
            "enum": [
              "not_found"
            ],
            "example": "not_found"
          },
          "log_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdentifierUuidV4"
              },
              {
                "description": "Log unique identifier"
              }
            ]
          },
          "errors": {
            "description": "Errors returned",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/APIResponse404Error"
            }
          }
        }
      },
      "APIResponse404Error": {
        "title": "API Response 404 Error",
        "description": "API Response 404 Error description",
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "not_found"
            ],
            "example": "not_found"
          },
          "title": {
            "description": "Title message",
            "type": "string",
            "example": "Not found"
          },
          "message": {
            "description": "Error message",
            "type": "string",
            "example": "The requested resource could not be found. The requested resource either does not exist or is temporarily down."
          }
        }
      },
      "APIResponse500": {
        "title": "500 API Response",
        "description": "Definition of the standard API reponse when a 500",
        "type": "object",
        "properties": {
          "status": {
            "format": "int32",
            "description": "HTTP status code",
            "type": "integer",
            "example": 500
          },
          "code": {
            "type": "string",
            "enum": [
              "internal_server_error"
            ],
            "example": "internal_server_error"
          },
          "log_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdentifierUuidV4"
              },
              {
                "description": "Log unique identifier"
              }
            ]
          },
          "errors": {
            "description": "Errors returned",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/APIResponse500Error"
            }
          }
        }
      },
      "APIResponse500Error": {
        "title": "API Response 500 Error",
        "description": "API Response 500 Error description",
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "internal_server_error"
            ],
            "example": "internal_server_error"
          },
          "title": {
            "description": "Title message",
            "type": "string",
            "example": "Internal Server Error"
          },
          "message": {
            "description": "Error message",
            "type": "string",
            "example": "An internal error has occurred. If the error persists, please contact our support."
          }
        }
      },
      "DateRfc2822": {
        "title": "Date in rfc 2822 format",
        "description": "Date as described in rfc 2822 format",
        "type": "string",
        "example": "Thu, 18 Jun 2020 18:14:15 GMT"
      },
      "IdentifierUuidV4": {
        "title": "UUID V4 identifier",
        "description": "UUID V4 identifier",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
        "type": "string",
        "example": "dc5b0048-2a80-4a22-b2f9-fad7d72f074d"
      },
      "OAuthModel": {
        "title": "oAuth models (Enum)",
        "description": "",
        "enum": [
          "decoupled",
          "redirect"
        ],
        "type": "string",
        "example": "decoupled"
      }
    },
    "securitySchemes": {
      "ApikeyAuth": {
        "type": "apiKey",
        "description": "The app_id as provided following the creation of an application in the console",
        "x-default": "dc5b0048-2a80-4a22-b2f9-fad7d72f074d",
        "in": "header",
        "name": "app_id"
      }
    }
  },
  "tags": [
    {
      "name": "accounts",
      "description": "Account related endpoints",
      "x-displayName": "Account"
    }
  ]
}
```