# Link authentication

This endpoint provides an alternative way of initializing the connection flow using our Link solution, as explained in [this page](../../platform/link-overview/link-parameters). You can indicate the Link parameters using this endpoint to receive a JWT that can be used in the Link flow, so that you can avoid starting the Link with parameter values and instead just pass down the generated auth token. Using this flow is mandatory if you want to limit the owners in the Assets Transfer Flow.

## Start connection flow

> Retrieves a JWT token to start a connection flow in the Link with the indicated parameters

OpenAPI:

```json
{"openapi":"3.0.1","info":{"title":"Vumi Finlink API","version":"1.0"},"tags":[{"name":"Connections","description":"Endpoints for managing Vumi Finlink connections"}],"servers":[{"url":"https://api.finlink.vumi.io","description":"Production server url"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"paths":{"/api/v1/commands/connections/start-flow":{"post":{"tags":["Connections"],"summary":"Start connection flow","description":"Retrieves a JWT token to start a connection flow in the Link with the indicated parameters","operationId":"startWidgetConnectionFlow_2","requestBody":{"content":{"application/json":{"schema":{"required":["id","product"],"type":"object","properties":{"entity":{"type":"string","description":"Unique identifier of the financial entity to connect to (e.g., 'santander', 'bbva')","nullable":true},"product":{"type":"string","description":"Type of financial data to extract from the connection","enum":["TRANSACTIONS","ACTIVE_POSITIONS","ASSETS_TRANSFER","TRANSACTIONS","ACTIVE_POSITIONS","ASSETS_TRANSFER"]},"subproduct":{"type":"string","description":"Subtype of the product for more specific data extraction. Only required for ASSETS_TRANSFER product, else it should be null","nullable":true,"enum":["FUND","PP","FUND","PP"]},"externalId":{"type":"string","description":"External identifier to group multiple connections under the same reference. It might be something like a customer id or a user id","nullable":true},"desiredOwners":{"type":"array","description":"List of desired owners for assets transfer operations (only applicable for ASSETS_TRANSFER product). It will mark as non-transferable those positions which owners are similar to the ones in the list","nullable":true,"items":{"type":"string","description":"List of desired owners for assets transfer operations (only applicable for ASSETS_TRANSFER product). It will mark as non-transferable those positions which owners are similar to the ones in the list","nullable":true}},"id":{"type":"string","description":"UUID of the app redirect configuration that determines where the widget will redirect after completion","format":"uuid"}},"description":"Request to start a widget flow from the API side"}}},"required":true},"responses":{"200":{"description":"Successfully started connection flow","content":{"application/json":{"schema":{"type":"object","properties":{"authToken":{"type":"string","description":"The authentication token for the connection flow. Should be pass"},"maintenance":{"type":"boolean","description":"Whether the connection is in maintenance mode"}},"description":"Response for starting a connection flow"}}}},"400":{"description":"Invalid product and subproduct combination","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Message associated with the response. It typically indicates success or the error message that was encountered"}},"description":"A simple message response containing a message"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{}}},"403":{"description":"Product not contracted by the organization","content":{"application/json":{"schema":{"type":"object","properties":{"$ref":"#/paths/~1api~1v1~1commands~1connections~1start-flow/post/responses/400/content/application~1json/schema/properties"},"description":"A simple message response containing a message"}}}},"404":{"description":"Invalid redirect ID - the specified ID does not correspond to a valid redirect configuration","content":{"application/json":{"schema":{"type":"object","properties":{"$ref":"#/paths/~1api~1v1~1commands~1connections~1start-flow/post/responses/400/content/application~1json/schema/properties"},"description":"A simple message response containing a message"}}}},"500":{"description":"Internal server error","content":{"application/json":{}}}}}}}}
```
