### Get started with Outbound Source: https://docs.flinks.com/api-home Go to our OAuth endpoints if you're using Outbound. ```APIDOC ## Get started with Outbound ### Description Go to our OAuth endpoints if you're using Outbound. ### Endpoint ./api/outbound/getting-started ``` -------------------------------- ### Get started with Flinks API Source: https://docs.flinks.com/api-home Learn how to use our APIs and make your first API call. ```APIDOC ## Get started ### Description Learn how to use our APIs and make your first API call. ### Endpoint ./api/authorize/rest-api ``` -------------------------------- ### Get All Business Attributes Source: https://docs.flinks.com/api/enrich/endpoints/business-attributes/get-all-business-attributes This endpoint will provide you with all the currently available Business Attributes. Please refer to or consult the Quickstart Guide for further information on the use-cases / when to use this specific endpoint. ```APIDOC ## GET /v3/{customerId}/insight/login/{loginId}/attributes/{requestId}/GetAllBusinessAttributes ### Description This endpoint will provide you with all the currently available Business Attributes. ### Method GET ### Endpoint /v3/{customerId}/insight/login/{loginId}/attributes/{requestId}/GetAllBusinessAttributes ### Parameters #### Path Parameters - **customerId** (string) - Required - Unique GUID provided by Flinks that grants you access to the environment. - **loginId** (string) - Required - GUID representing end user's login ID. - **requestId** (string) - Required - GUID representing an authorized request to the API. ### Responses #### Success Response (200) - **HttpStatusCode** (integer) - **Card** (object) - Object containing an Id field (end user's loginId) and all the available business attributes (name: value pairs). - **Login** (object) - Object representing end user's technical information. - **RequestId** (string) - GUID representing an authorized request to the API. #### Error Response (400) - **HttpStatusCode** (integer) - **Message** (string) - **FlinksCode** (string) #### Error Response (401) Unauthorized ``` -------------------------------- ### Example Account Response Source: https://docs.flinks.com/api/connect/endpoints/account-linking/get-accounts-detail Illustrates a typical successful response from the Get Accounts Detail API, showcasing a chequing account with transaction data. ```json { "HttpStatusCode": 200, "Accounts": [ { "Transactions": [ { "Date": "2025-01-31", "Code": null, "Description": "PAYROLL - Stripe Paycheck", "Debit": 1000.4, "Credit": 1500.25, "Balance": 5105.6, "Id": "94584aed-7c98-42a4-9836-9f8557db63f5" } ], "TransitNumber": "12347", "InstitutionNumber": "777", "OverdraftLimit": 100.5, "Title": "Chequing Account", "AccountNumber": "7641238", "LastFourDigits": null, "Balance": { "Available": 5405.5, "Current": 5105.5, "Limit": "5105.5" }, "Category": "Operations", "Type": "Chequing", "Currency": "CAD", "Holder": { "Name": "Testing", "Address": { "CivicAddress": "25 york street", "City": "TOR" } } } ] } ``` -------------------------------- ### Example Successful Response Source: https://docs.flinks.com/api/outbound/endpoints/institutions/get-supported-data-providers This example shows a successful response from the /api/v1/providers endpoint, listing a data provider with its ID, name, country, and supported scopes. ```json [ { "provider_id": 1000, "name": "Flinks Capital", "country": "CA", "scopes": [ "ACCOUNT_BASIC", "ACCOUNT_DETAILED", "ACCOUNT_PAYMENTS", "INVESTMENTS", "TRANSACTIONS", "STATEMENTS", "CUSTOMER_CONTACT", "CUSTOMER_PERSONAL" ] } ] ``` -------------------------------- ### Account Details Example Source: https://docs.flinks.com/api/connect/endpoints/account-linking/get-accounts-detail This example shows the structure of detailed account information returned by the API. It includes personal and login details, as well as institution-specific data. ```json { "Province": "ON", "PostalCode": "M5J 2V5", "POBox": null, "Country": "CA", "Email": "test_user1@nomail.com", "PhoneNumber": "9051234567", "AccountType": null, "Id": "27a9ffa0-c6b9-4cc6-9eaa-aa9efa07a889", "InstitutionName": "FlinksCapital", "Login": { "Username": "chat_gpt", "IsScheduledRefresh": false, "LastRefresh": "2025-01-31T17:40:54.569261", "Type": "Personal", "Id": "5602459c-f6d0-4ca0-6750-08dccdcadcc0" }, "InstitutionId": 14, "Institution": "FlinksCapital", "RequestId": "22178382-31ee-485c-a750-c20929b6a344" } ``` -------------------------------- ### GetAccountsSummaryAsync Response Examples Source: https://docs.flinks.com/api/connect/endpoints/account-linking/get-accounts-summary-async Examples of responses for the GetAccountsSummaryAsync operation, including success (OPERATION_PENDING) and error (SESSION_NONEXISTENT) cases. ```json { "FlinksCode": "OPERATION_PENDING", "Links": [ { "rel": "GetAccountsSummaryAsync", "href": "/GetAccountsSummaryAsync", "example": "/GetAccountsSummaryAsync/077785a3-fd0f-42f7-9251-ee2ff7f3b4ff" } ], "HttpStatusCode": 202, "Message": "Your operation is still processing", "RequestId": "077785a3-fd0f-42f7-9251-ee2ff7f3b4ff" } ``` ```json { "HttpStatusCode": 400, "Message": "RequestId 1df20baf-65d5-40ee-9be0-8058c13042e2 is invalid or session has ended", "FlinksCode": "SESSION_NONEXISTENT" } ``` -------------------------------- ### GEFT Session Object Example Source: https://docs.flinks.com/api/pay/endpoints/geft An example of the JSON object returned for a GEFT session, including session ID, reference ID, amount, and status. ```json { "sessionId": "850750a4-3021-4061-ac03-a8d873aa4179", "referenceId": "USER12345", "amount": 500.00, "status": "Completed", "statusDetails": "EFT0301" } ``` -------------------------------- ### Get Credit Risk Attributes Source: https://docs.flinks.com/api/enrich/endpoints/consumer-attributes/get-credit-risk-attributes This endpoint provides all Credit Risk Use-Case Attributes. Refer to the Quickstart guide for details on when to use this endpoint. ```APIDOC ## Get Credit Risk Attributes ### Description This endpoint will provide you with all Credit Risk Use-Case Attributes. ### Method GET ### Endpoint /get-credit-risk-attributes ### Parameters #### Query Parameters - **customerId** (string) - Mandatory - GUID representing your customer ID (provided by Flinks). - **loginId** (string) - Mandatory - GUID representing end user's login ID. You get this value after a successful **Authorize** request. - **requestId** (string) - Mandatory - GUID representing an authorized request to the API. You get this value after a successful **Authorize** request. ### Response #### Success Response (200) - **Card** (object) - Object containing an **id** field (end user's LoginId) and all the requested attributes (name: value). - **Login** (object) - Object representing some end user's technical information such as the LoginId. See **Authorize** endpoint documentation for this object details. - **RequestId** (string) - GUID representing an authorized request to the API. You get this value after a successful **Authorize** request. - **AttributesDetails** (object) - Object containing the fields **TransactionId**, **AccountId**, **Date**, **Description**, **Debit**, and **Credit per Attribute**. ``` -------------------------------- ### Example Authorize URL Source: https://docs.flinks.com/api/outbound/getting-started Construct this URL to initiate the authorization process with a Data Provider. Ensure all parameters are correctly set. ```bash https://api.flinks.io/api/v1/authorize? response_type=code &client_id=clientid &redirect_uri=https%3A%2F%2Fexample.com%2Fcallback &scope=ACCOUNT_BASIC%20ACCOUNT_DETAILED%20ACCOUNT_PAYMENTS%20INVESTMENTS%20TRANSACTIONS%20STATEMENTS%20CUSTOMER_CONTACT%20CUSTOMER_PERSONAL &state=state &provider_id=1000 &correlation_id=fce84d61-dfa8-4e2b-bd94-f1ec6a445841 ``` -------------------------------- ### Example Prompt for Flinks Integration Source: https://docs.flinks.com/guides/ai/skill An example prompt demonstrating how to instruct an AI assistant to build a full Flinks bank account aggregation app using React, Tailwind, FastAPI, and incorporating various Flinks functionalities like authentication, Connect iframe, data retrieval, and MFA handling. ```text Using the Flinks skill context in ./flinks-skill.md, implement a full Flinks bank account aggregation app. React + Tailwind for the frontend (Vite), FastAPI for the backend. The app should: (1) generate an authorize token on the backend, (2) load Flinks Connect iframe with the token, (3) capture the loginId via event listener, (4) call /Authorize then /GetAccountsDetail with polling on 202, (5) handle 203 MFA (Connect handles it in-iframe during initial connect), (6) display account data with balances and transactions, (7) offer a "Refresh Data" button that triggers a live re-authorization — if the backend gets 200, fetch fresh GetAccountsDetail data; if 203, return the requestId + a fresh authorize token to the frontend so it can relaunch Flinks Connect iframe with ?requestId=...&authorizeToken=... for the user to answer MFA, then fetch data after redirect. Use sandbox credentials. ``` -------------------------------- ### Create EFT Transaction Success Response Example Source: https://docs.flinks.com/api/pay/endpoints/eft/create-transaction This is an example of a successful response when an EFT transaction is created. It includes details about the scheduled transaction, such as its ID, amount, start date, and status. ```json { "schedules": [ { "id": "a1b2c3d4-5678-90ab-cdef-1234567890ab", "amount": 250, "startDate": "2026-04-15T00:00:00", "endDate": "0001-01-01T00:00:00", "transactionsCount": 1, "frequency": "OneTime", "payor": { "name": "Jane Doe", "email": null }, "payee": { "name": null, "email": null }, "status": "Active", "padStatus": null, "padId": null, "crossReferenceNumber": "INV-1001", "paymentDirection": "DEBIT" } ] } ``` -------------------------------- ### Initiate Payment Session API Call Source: https://docs.flinks.com/skill.md Use POST to `/Sessions/Initiate` under the Pay API to start a payment session. This returns a sessionId which is used for subsequent payment processing steps. ```bash curl -X POST https://api.flinks.com/v2/pay/sessions/initiate \ -H "x-api-key: YOUR_X_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "customerId": "YOUR_CUSTOMER_ID", "requestId": "YOUR_REQUEST_ID", "amount": 100.00, "currency": "CAD", "description": "Payment for services" }' ``` -------------------------------- ### Error Responses Source: https://docs.flinks.com/api/outbound/endpoints/fdx/get-transactions Examples of error responses that may be returned by the FDX Get Transactions API. ```APIDOC #### Error Response (4XX) ```json { "code": 702, "message": "Invalid start or end date", "debugMessage": "Start time is invalid" } ``` #### Error Response (5XX) ```json { "code": 500, "message": "Internal Server Error", "debugMessage": "An unexpected error occured" } ``` ``` -------------------------------- ### Example Redirected Landing Page URL with Tag Source: https://docs.flinks.com/guides/connect/flinks-connect/use-custom-tag This URL demonstrates how to include a custom tag as a query parameter when redirecting users. Ensure the 'Tag' parameter is correctly appended. ```json { "step": "REDIRECT", "institution": "FlinksCapital", "url": "https://example.com/thank-you?loginId=8b35f6c8-e7b6-41d3-98f8-08d68b7f8d31&tag=YourTag&institution=FlinksCapital" } ``` -------------------------------- ### OpenAPI Specification for Get Supported Data Providers Source: https://docs.flinks.com/api/outbound/endpoints/institutions/get-supported-data-providers This OpenAPI specification defines the GET /api/v1/providers endpoint, including request parameters, response schemas, and example responses for success and error cases. ```yaml openapi: 3.0.3 info: title: Flinks API description: > Flinks API provides financial data connectivity, enrichment, and payment solutions. ## Authentication Endpoints require authentication using `flinks-auth-key` header (Bearer token). For more information, visit: https://docs.flinks.com version: 3.0.0 contact: name: Flinks Support url: https://www.flinks.com/contact/sales termsOfService: https://www.flinks.com servers: - url: https://ob.flinksapp.com description: Flinks Outbound Production security: - BearerAuth: [] tags: - name: Authorization description: Endpoints for generating authorization tokens and authenticating requests paths: /api/v1/providers: get: tags: - Outbound summary: Get Supported Data Providers description: >- Use the /api/v1/providers endpoint to retrieve a list of all supported Data Providers in the Outbound ecosystem. operationId: listSupportedDataProviders responses: '200': description: Result content: application/json: schema: type: array items: type: object properties: provider_id: type: integer description: Unique identifier for the data provider. name: type: string description: Name of the data provider. country: type: string description: Country code of the data provider (e.g., CA, US). scopes: type: array items: type: string description: >- List of data scopes supported by the data provider (e.g., ACCOUNT_BASIC, ACCOUNT_DETAILED, TRANSACTIONS, STATEMENTS, CUSTOMER_CONTACT, CUSTOMER_PERSONAL, INVESTMENTS, ACCOUNT_PAYMENTS). example: - provider_id: 1000 name: Flinks Capital country: CA scopes: - ACCOUNT_BASIC - ACCOUNT_DETAILED - ACCOUNT_PAYMENTS - INVESTMENTS - TRANSACTIONS - STATEMENTS - CUSTOMER_CONTACT - CUSTOMER_PERSONAL '400': description: Client Error content: application/json: schema: type: object properties: message: type: string example: message: Invalid request parameters '401': description: Unauthorized - Expired or invalid token. content: application/json: schema: type: object properties: message: type: string example: message: Invalid Bearer Token '500': description: Server Error content: application/json: schema: type: object properties: message: type: string example: message: Internal Server Error components: securitySchemes: BearerAuth: type: http scheme: bearer description: Bearer token obtained from the /Token endpoint. ``` -------------------------------- ### Internal Server Error Response Source: https://docs.flinks.com/api/outbound/endpoints/fdx/get-customers This is an example of a 5XX server error response from the Get Customers endpoint. ```json { "code": 500, "message": "Internal server error", "debugMessage": "An unexpected error occured" } ``` -------------------------------- ### Customer Not Found Error Response Source: https://docs.flinks.com/api/outbound/endpoints/fdx/get-customers This is an example of an error response when a customer is not found by the Get Customers endpoint. ```json { "code": 601, "message": "Customer not found", "debugMessage": "The provided customer was not found" } ``` -------------------------------- ### Multiple Accounts and Balances Example Source: https://docs.flinks.com/api/upload/endpoints/document-processing/optional-parameters Structure for applying specific MostRecentBalance values to individual accounts when submitting multiple accounts. ```json { "Attributes": { "Card": [ "{{Attribute List}}" ] }, "Options": { "OriginCountry": "{{Country Code}}", "AttributesDetail": [ "{{Attribute List}}" ], "AccountOptions”: { "{{AccountID1}}” : { "MostRecentBalance”: "{{Most Recent Balance1}}" }, "{{AccountID2}}”: { "MostRecentBalance”: "{{Most Recent Balance2}}" } } }, ``` -------------------------------- ### Get MFA Questions OpenAPI Specification Source: https://docs.flinks.com/api/connect/endpoints/account-linking/get-mfa-questions This OpenAPI specification defines the GET /v3/{customerId}/BankingServices/GetMFAQuestions/{loginId} endpoint. It includes request parameters, response schemas for success and error cases, and example payloads. ```yaml GET /v3/{customerId}/BankingServices/GetMFAQuestions/{loginId} openapi: 3.0.3 info: title: Flinks API description: > Flinks API provides financial data connectivity, enrichment, and payment solutions. ## Authentication Endpoints require authentication using `flinks-auth-key` header (Bearer token). For more information, visit: https://docs.flinks.com version: 3.0.0 contact: name: Flinks Support url: https://www.flinks.com/contact/sales termsOfService: https://www.flinks.com servers: - url: https://{instance}-api.private.fin.ag description: Flinks API Environment variables: instance: default: toolbox description: The environment instance (e.g., toolbox, sandbox, production) security: [] tags: - name: Authorization description: Endpoints for generating authorization tokens and authenticating requests - name: Enrich - Consumer Attributes description: Consumer financial attribute analysis and credit risk assessment paths: /v3/{customerId}/BankingServices/GetMFAQuestions/{loginId}: get: tags: - Connect summary: Get MFA Questions description: >- Retrieve the multi-factor authentication (MFA) questions associated with a user's account. operationId: getMfaQuestions parameters: - name: customerId in: path required: true schema: type: string default: 43387ca6-0391-4c82-857d-70d95f087ecb description: Unique GUID provided by Flinks. - name: loginId in: path required: true schema: type: string description: Unique identifier that represents a specific user. responses: '200': description: Success content: application/json: schema: type: object properties: Message: type: string description: Status message indicating the result of the request. Questions: type: array description: Array of MFA question objects. items: type: object properties: Question: type: string description: The security question text. example: Message: SUCCESS Questions: - Question: What shape do people like most? - Question: What is the best country on earth? '400': description: Invalid Request content: application/json: schema: type: object properties: HttpStatusCode: type: integer description: HTTP status code of the response. Message: type: string description: Error message describing the issue. FlinksCode: type: string description: 'Flinks-specific error code: INVALID_REQUEST.' example: HttpStatusCode: 400 Message: The login 'bb8b8569-3bfc-43c1-ae31-08d6de7f1675' is invalid. FlinksCode: INVALID_REQUEST ``` -------------------------------- ### Get Institution by Routing Number OpenAPI Specification Source: https://docs.flinks.com/api/connect/endpoints/account-linking/institutions-routing-number This OpenAPI specification defines the GET endpoint for retrieving institution details using a routing number. It includes request parameters, response schemas, and examples for success and error cases. ```yaml GET /v3/{customerId}/BankingServices/Institutions/RoutingNumber/{routingNumber} openapi: 3.0.3 info: title: Flinks API description: > Flinks API provides financial data connectivity, enrichment, and payment solutions. ## Authentication Endpoints require authentication using `flinks-auth-key` header (Bearer token). For more information, visit: https://docs.flinks.com version: 3.0.0 contact: name: Flinks Support url: https://www.flinks.com/contact/sales termsOfService: https://www.flinks.com servers: - url: https://{instance}-api.private.fin.ag description: Flinks API Environment variables: instance: default: toolbox description: The environment instance (e.g., toolbox, sandbox, production) security: [] tags: - name: Authorization description: Endpoints for generating authorization tokens and authenticating requests - name: Enrich - Consumer Attributes description: Consumer financial attribute analysis and credit risk assessment paths: /v3/{customerId}/BankingServices/Institutions/RoutingNumber/{routingNumber}: get: tags: - Connect summary: Get Institution by Routing Number description: >- Returns the details of the institution corresponding to the routing number. operationId: getInstitutionByRoutingNumber parameters: - name: customerId in: path required: true schema: type: string default: 43387ca6-0391-4c82-857d-70d95f087ecb description: Unique GUID provided by Flinks. - name: routingNumber in: path required: true schema: type: string description: Routing Number for the Institution details to be accessed. responses: '200': description: Success content: application/json: schema: type: object properties: Id: type: integer description: Unique identifier for the institution. Localizations: type: array description: Localized information for the institution. items: type: object properties: Language: type: string description: Language code. Name: type: string description: Localized name of the institution. Urls: type: array description: URLs associated with the institution. items: type: object properties: Type: type: string description: Type of URL. Url: type: string description: The URL. Status: type: string description: Status of the institution. Country: type: string description: Country code. RoutingNumbers: type: array description: >- List of all routing numbers associated with the institution. items: type: string example: Id: 20 Localizations: - Language: en Name: Chase Bank Urls: - Type: Main Url: https://www.chase.com/ Status: Enabled Country: US RoutingNumbers: - '071000770' - '072413201' - '065000029' - '071901141' - '111100022' - '043202409' - '311972788' - '121143257' - '021000021' - '322271627' '404': description: Not Found content: application/json: schema: type: object properties: HttpStatusCode: type: integer description: HTTP status code of the response. Message: type: string description: Error message indicating no institution was found. example: HttpStatusCode: 404 Message: 'No institution was found with the Routing Number: 322271622' ``` -------------------------------- ### Basic GEFT Testing Workflow Source: https://docs.flinks.com/guides/pay/geft/testing-best-practices This function outlines a basic workflow for testing GEFT scenarios, including authentication, session creation, event monitoring, iframe launching, and status polling. It requires helper functions like authenticate, getTestScenarioData, createSession, setupEventMonitoring, launchGeftIframe, and pollSessionStatus. ```javascript async function testGeftScenario(scenarioName) { try { // 1. Authenticate const authResponse = await authenticate(); // 2. Create session with test data const sessionData = getTestScenarioData(scenarioName); const session = await createSession(sessionData, authResponse.access_token); // 3. Monitor events setupEventMonitoring(session.sessionId); // 4. Launch iframe launchGeftIframe(session.sessionId); // 5. Poll status const finalStatus = await pollSessionStatus( session.sessionId, authResponse.access_token ); return { scenario: scenarioName, success: finalStatus.status === 'Completed', status: finalStatus }; } catch (error) { console.error(`Test failed for ${scenarioName}:`, error); throw error; } } ``` -------------------------------- ### Create EFT Transaction Request Example Source: https://docs.flinks.com/api/pay/endpoints/eft/create-transaction This example demonstrates the structure of a request to create a single EFT transaction. Ensure all required fields like amount, currency, and payment direction are correctly specified. The `scheduleInfo` object is used for one-time or recurring payments. ```json { "transactionCode": 1, "amount": 250, "description": "Invoice 1001", "crossReferenceNumber": "INV-1001", "paymentDirection": "DEBIT", "currency": "CAD", "payor": { "accountInfo": { "institutionCode": "001", "transitNumber": "12345", "accountNumber": "1234567" }, "contactInfo": { "firstName": "Jane", "lastName": "Doe" } }, "scheduleInfo": { "paymentFrequency": "OneTime", "startDate": "2026-04-15" } } ``` -------------------------------- ### User Identifier Example Source: https://docs.flinks.com/api/upload/endpoints/document-processing/optional-parameters Use UserIdentifier to replace the default GUID for mapping requests to your internal IDs. It is passed through to the response. ```json { "UserIdentifier": "User Identifier Value", "Attributes": { "Card": [ "sum_debits_30_days" ] }, ... ``` -------------------------------- ### Make your first API call Source: https://docs.flinks.com/guides/enrich/setup-attributes This is the first API request that needs to be executed whenever you want to retrieve data from a connected account. It exchanges your `loginId` for a new `requestId`. ```APIDOC ## POST /Authorize ### Description Exchanges a `loginId` for a `requestId` to confirm the validity of a request and identify the account for data retrieval. ### Method POST ### Endpoint `https://toolbox-api.private.fin.ag/v3/{id}/BankingServices/Authorize` ### Parameters #### Request Body - **LoginId** (string) - Required - The login ID of the account. - **MostRecentCached** (boolean) - Required - Set to `true` to retrieve the most recent cached data. ### Request Example ```json { "LoginId":"5e115eac-1209-4f19-641c-08d6d484e2fe", "MostRecentCached":true } ``` ### Response #### Success Response (200) - **Links** (array) - Links related to the response. - **HttpStatusCode** (integer) - The HTTP status code of the response. - **Login** (object) - Information about the login. - **Username** (string) - The username associated with the login. - **IsScheduledRefresh** (boolean) - Indicates if a scheduled refresh is active. - **LastRefresh** (string) - The timestamp of the last refresh. - **Type** (string) - The type of login. - **Id** (string) - The unique identifier for the login. - **Institution** (string) - The name of the financial institution. - **RequestId** (string) - A unique identifier for the request. #### Response Example ```json { "Links": [...], "HttpStatusCode": 200, "Login": { "Username": "Greatday", "IsScheduledRefresh": false, "LastRefresh": "2019-05-09T13:47:46.5227901", "Type": "Personal", "Id": "5e115eac-1209-4f19-641c-08d6d484e2fe" }, "Institution": "FlinksCapital", "RequestId": "1243c283-e0ca-4fda-a5e4-343068430190" } ``` ``` -------------------------------- ### /GetUserAnalysisAttributes Source: https://docs.flinks.com/llms.txt This endpoint will provide you with all Credit Risk use-case attributes. Please refer to our Quickstart guide for further information on the use-cases / when to use this specific endpoint. ```APIDOC ## GET /GetUserAnalysisAttributes ### Description Provides all Credit Risk use-case attributes. Refer to the Quickstart guide for usage details. ### Method GET ### Endpoint /GetUserAnalysisAttributes ``` -------------------------------- ### Initiate Session Source: https://docs.flinks.com/llms.txt Initiates a new payment session. ```APIDOC ## Initiate Session ### Description Initiates a new payment session for e-Transfer. ### Method POST ### Endpoint /api/pay/endpoints/e-transfer/sessions-initiate ``` -------------------------------- ### Get Access Token Source: https://docs.flinks.com/api/outbound/getting-started To call any of our Endpoints for Partners, use the client credentials that we provided to you during onboarding to obtain an `access_token`. Each `access_token` has an expiry date that's defined in the `expires_in` of the response. When an `access_token` expires, discard it and complete this step again to obtain a new one. If you pass an expired or invalid `access_token`, you'll receive a 400 error response. ```APIDOC ## Get an Access Token ### Description Obtain an `access_token` using your client credentials to authenticate API calls. ### Method POST ### Endpoint /Token ### Parameters #### Request Body - **grant_type** (string) - Required - `client_credentials` - **client_id** (string) - Required - `{partner client_id}` - **client_secret** (string) - Required - `{partner client_secret}` - **scope** (string) - Required - `client:admin` ### Response #### Success Response (200) - **access_token** (string) - The obtained access token. - **expires_in** (integer) - The time in seconds until the token expires. ### Request Example ```json { "grant_type": "client_credentials", "client_id": "{partner client_id}", "client_secret": "{partner client_secret}", "scope": "client:admin" } ``` ### Response Example ```json { "access_token": "{access_token}", "expires_in": 3600 } ``` ``` -------------------------------- ### Access Customer Data Source: https://docs.flinks.com/api/outbound/getting-started Use the obtained access token to call Data Access endpoints and retrieve customer data. For example, to get customer account data, call the `/Accounts` endpoint. ```APIDOC ## Start receiving your data Use the `access_token` to call the [Data Access endpoints](./endpoints/fdx/index) and start receiving your data. For example, to get customer account data, call the `/Accounts` endpoint and pass the `access_token`. ### Endpoint `/Accounts` ### Method GET ### Parameters #### Query Parameters - **access_token** (string) - Required - The access token obtained from the /Token endpoint. ``` -------------------------------- ### Get Nightly Refresh Status Source: https://docs.flinks.com/api/connect/endpoints/account-linking/get-nightly-refresh-status Use this endpoint to retrieve a list of accounts that are enabled for nightly refresh but are currently ineligible, along with the reasons for their ineligibility. This helps in troubleshooting and guiding users to re-link their accounts. ```APIDOC ## GET /v3/{customerId}/BankingServices/GetNightlyRefreshStatus ### Description Troubleshoot nightly refreshes and see ineligible accounts. This endpoint returns a list of all `LoginIds` that you've enabled nightly refresh for, but are not eligible for refreshes because they don't meet all of the requirements. This endpoint returns a response that details why the account is ineligible. ### Method GET ### Endpoint `/v3/{customerId}/BankingServices/GetNightlyRefreshStatus` ### Parameters #### Path Parameters - **customerId** (string) - Required - Unique GUID provided by Flinks. #### Header Parameters - **Authorization** (string) - Required - Contains the Bearer Token (API secret key) that's provided by Flinks. Example: `Bearer ` ### Responses #### Success Response (200) - **HttpStatusCode** (integer) - HTTP status code of the response. - **IneligibleCards** (array) - Array of cards that are not eligible for nightly refresh. - **LoginId** (string) - Unique identifier for the user's account. - **LastRefreshDate** (string) - Date and time of the last refresh attempt. - **LastRefreshState** (string) - State of the last refresh attempt. - **LastRefreshErrorCode** (string) - Error code from the last refresh attempt, if applicable. - **Message** (string) - A message indicating the status or any issues. - **FlinksCode** (string) - A specific code indicating the type of response or error. #### Response Example (200) ```json { "HttpStatusCode": 200, "IneligibleCards": [ { "LoginId": "d12c531b-9622-4477-38c5-08d779b6f27e", "LastRefreshDate": "2020-06-18T03:26:34.6854364", "LastRefreshState": "AnsweringSecurityChallenge", "LastRefreshErrorCode": null } ], "Message": "The login 'bb8b8569-3bfc-43c1-ae31-08d6de7f1675' is invalid.", "FlinksCode": "INVALID_REQUEST" } ``` ``` -------------------------------- ### Successful Payment Networks Response (First Page) Source: https://docs.flinks.com/api/outbound/endpoints/fdx/get-payment-networks This example shows a successful response when retrieving the first page of payment networks for an account. It includes pagination details and a list of payment networks. ```json { "page": { "nextOffset": "806801cd-999a-461b-9d08-5fd95d0e3300", "totalElements": 5 }, "links": { "next": { "href": "https://ob.flinksapp.com/api/fdx/5/accounts/11/payment-networks?limit=1&offset=806801cd-999a-461b-9d08-5fd95d0e3300" } }, "paymentNetworks": [ { "bankId": "string", "identifier": "string", "identifierType": "ACCOUNT_NUMBER", "type": "US_ACH", "transferIn": true, "transferOut": true } ] } ``` -------------------------------- ### OpenAPI Specification for Registration Status Source: https://docs.flinks.com/api/outbound/endpoints/registration/all-data-recipients This OpenAPI specification defines the GET /api/v1/recipients/providers/requests endpoint, which retrieves the registration status for all data recipients. It includes details on request parameters, responses, and example payloads for success and error cases. ```yaml openapi: 3.0.3 info: title: Flinks API description: > Flinks API provides financial data connectivity, enrichment, and payment solutions. ## Authentication Endpoints require authentication using `flinks-auth-key` header (Bearer token). For more information, visit: https://docs.flinks.com version: 3.0.0 contact: name: Flinks Support url: https://www.flinks.com/contact/sales termsOfService: https://www.flinks.com servers: - url: https://ob.flinksapp.com description: Flinks Outbound Production security: - BearerAuth: [] tags: - name: Authorization description: Endpoints for generating authorization tokens and authenticating requests paths: /api/v1/recipients/providers/requests: get: tags: - Outbound summary: Get the Registration Status for All Data Recipients description: >- Use the /api/v1/recipients/providers/requests endpoint to check the registrations status of all Data Recipients. operationId: getSupportedDataProvidersStatus responses: '200': description: Result content: application/json: schema: type: array items: type: object properties: client_id: type: string description: Unique identifier for the data recipient. client_name: type: string description: Name of the data recipient. provider_id: type: integer description: Unique identifier for the data provider. provider_name: type: string description: Name of the data provider. country: type: string description: Country code of the data provider (e.g., CA, US). registration_status: type: string description: >- Current registration status (PENDING_APPROVAL, PENDING_ACTIVATION, or ACTIVE). requested_on: type: string description: >- Timestamp of when the registration was requested (ISO 8601 format). example: - client_id: dc-xxxxxxxxxxxxxxxxxxxxxxxxx client_name: Flinks Fake provider_id: 2000 provider_name: NBC country: CA registration_status: PENDING_APPROVAL requested_on: '2024-02-29T14:24:42.6055680Z' - client_id: dc-xxxxxxxxxxxxxxxxxxxxxxxxx client_name: Flinks Fake provider_id: 1000 provider_name: Flinks Capital country: CA registration_status: PENDING_APPROVAL requested_on: '2024-02-29T14:24:42.6009460Z' '400': description: Client Error content: application/json: schema: type: object properties: message: type: string example: message: Invalid request parameters '401': description: Unauthorized - Expired or invalid token. content: application/json: schema: type: object properties: message: type: string example: message: Invalid Bearer Token '500': description: Server Error content: application/json: schema: type: object properties: message: type: string example: message: Internal Server Error components: securitySchemes: BearerAuth: type: http scheme: bearer description: Bearer token obtained from the /Token endpoint. ``` -------------------------------- ### Account Retrieval with Paging (JSON) Source: https://docs.flinks.com/api/outbound/endpoints/fdx/get-accounts Example of a successful response including pagination details and a different account type. The 'nextOffset' and 'href' in 'links' are used for fetching subsequent pages. ```json { "page": { "nextOffset": "", "totalElements": 6 }, "links": { "next": { "href": "https://ob-preprod.flinksapp.dev/api/fdx/5/accounts?limit=1&offset=", "action": null, "description": null } }, "accounts": [ { "locAccount": { "accountId": "11", "accountType": "CREDITCARD", "accountNumber": "4200240024244242", "accountNumberDisplay": "4200240024244242", "productName": "Product Name Credit Card", "nickname": "Credit Card", "status": "OPEN", "description": "Credit Card", "currency": { "currencyCode": "CAD" } } } ] } ``` -------------------------------- ### Select New Questions and Answers Prompt Example Source: https://docs.flinks.com/guides/connect/legacy-api-integrations This JSON structure illustrates a scenario where the user must select new security questions from provided lists and then answer them. The 'Iterables' field contains the available questions for the user to choose from. ```json { "RequestId" : "2b000833-0bf4-4705-9ef8-80d4572af4c4", "SecurityChallenges" : [ { Type : "QuestionAndAnswer", Prompt : "Personal Verification Question 1", Iterables : [ "What is the name of my mother", "What is the name of my dog", "..." ] }, { Type : "QuestionAndAnswer", Prompt : "Personal Verification Question 2", Iterables: [ "What is the name of my mother", "What is the name of my dog", "..." ] }, { Type : "QuestionAndAnswer", Prompt : "Personal Verification Question 3", Iterables: [ "What is the name of my mother", "What is the name of my dog", "..." ] } ] } ``` -------------------------------- ### List Active Data Providers OpenAPI Specification Source: https://docs.flinks.com/api/outbound/endpoints/authorize/list-active-data-providers This OpenAPI specification defines the `/api/v1/providers` GET endpoint. It includes details on request parameters, response schemas for success (200), unauthorized access (401), and not found (404) scenarios, along with an example response. ```yaml openapi: 3.0.3 info: title: Flinks Outbound Auth API description: | Flinks Outbound Authentication API. Endpoints for generating authorization tokens and authenticating requests. version: 3.0.0 servers: - url: https://{host} description: Flinks Outbound Auth Server variables: host: default: '{host}' description: Host URL security: [] tags: - name: Authorization description: Endpoints for generating authorization tokens and authenticating requests paths: /api/v1/providers: get: tags: - Outbound summary: List Active Data Providers (v1) description: Use the /api/v1/providers endpoint to list active Data Providers. operationId: listActiveDataProvidersV1 responses: '200': description: Returns an array of Data Provider objects. content: application/json: schema: type: array items: type: object properties: provider_id: type: integer description: The unique identifier of the Data Provider. name: type: string description: The name of the Data Provider. country: type: string description: The country the Data Provider operates in. example: - id: 1000 name: FlinksCapital '401': description: Returned when the access token is missing, invalid, or expired. content: application/json: schema: type: object properties: message: type: string example: message: Unauthorized '404': description: Returned when no Data Providers are found. content: application/json: schema: type: object ``` -------------------------------- ### Triple MFA Prompt Example Source: https://docs.flinks.com/guides/connect/legacy-api-integrations This JSON structure represents a prompt for a triple MFA scenario where the user must provide answers to three security questions. Ensure all three answers are returned in a single call. ```json { "RequestId" : "2b000833-0bf4-4705-9ef8-80d4572af4c4", "SecurityChallenges" : [ { Type : "QuestionAndAnswer", Prompt : "What is the name of your mother" }, { Type : "QuestionAndAnswer", Prompt : "What is the name of your father" }, { Type : "QuestionAndAnswer", Prompt : "What is the name of your dog" } ] } ``` -------------------------------- ### Get account information Source: https://docs.flinks.com/api-home Get detailed information for a connected account. ```APIDOC ## Get account information ### Description Get detailed information for a connected account. ### Endpoint ./api/connect/endpoints/account-linking/get-accounts-detail ``` -------------------------------- ### Get Accounts Summary Async Source: https://docs.flinks.com/llms.txt Get pending requests from GetAccountsSummary using the /GetAccountsSummaryAsync endpoint. ```APIDOC ## GetAccountsSummaryAsync ### Description Get pending requests from GetAccountsSummary. ### Method GET ### Endpoint /GetAccountsSummaryAsync ``` -------------------------------- ### Get Accounts Detail Async Source: https://docs.flinks.com/llms.txt Get pending requests from GetAccountsDetail using the /GetAccountsDetailAsync endpoint. ```APIDOC ## GetAccountsDetailAsync ### Description Get pending requests from GetAccountsDetail. ### Method GET ### Endpoint /GetAccountsDetailAsync ```