> ## Documentation Index
> Fetch the complete documentation index at: https://docs.neobank.proofof.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Start Perflo Connection



## OpenAPI

````yaml /openapi.json post /v1/perflo-connections
openapi: 3.1.0
info:
  summary: >-
    Canonical API for customer onboarding, accounts, remittance, mandates, and
    cards.
  title: Example Neobank
  version: 0.1.0
servers: []
security: []
paths:
  /v1/perflo-connections:
    post:
      tags:
        - Onboarding
      summary: Start Perflo Connection
      operationId: start_perflo_connection_v1_perflo_connections_post
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PerfloConnectionView'
          description: Successful Response
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Malformed or invalid request semantics
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Authentication required
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Action not permitted
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Resource not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: State or idempotency conflict
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Request validation failed
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Rate limit exceeded
        '502':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Invalid upstream response
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Provider capability unavailable
        '504':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Provider timeout
components:
  schemas:
    PerfloConnectionView:
      additionalProperties: false
      properties:
        account_hint:
          anyOf:
            - type: string
            - type: 'null'
          title: Account Hint
        action:
          anyOf:
            - $ref: '#/components/schemas/RedirectAction'
            - type: 'null'
        status:
          enum:
            - pending
            - connected
            - reconnect_required
            - operator_action_required
            - not_connected
          title: Status
          type: string
      required:
        - status
        - account_hint
        - action
      title: PerfloConnectionView
      type: object
    ProblemDetails:
      additionalProperties: false
      properties:
        code:
          title: Code
          type: string
        detail:
          title: Detail
          type: string
        fields:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          title: Fields
        instance:
          title: Instance
          type: string
        refresh_onboarding:
          title: Refresh Onboarding
          type: boolean
        request_id:
          title: Request Id
          type: string
        retryable:
          title: Retryable
          type: boolean
        status:
          title: Status
          type: integer
        submission_uncertain:
          title: Submission Uncertain
          type: boolean
        title:
          title: Title
          type: string
        type:
          title: Type
          type: string
      required:
        - type
        - title
        - status
        - detail
        - instance
        - code
        - request_id
        - retryable
        - submission_uncertain
        - refresh_onboarding
      title: ProblemDetails
      type: object
    RedirectAction:
      additionalProperties: false
      description: >-
        A hosted provider hand-off: open url, optionally before expires_at,

        optionally polling for the outcome after poll_after_ms milliseconds.


        card_reveal, grant_approval, and connect actions always carry
        expires_at,

        and grant_approval actions a positive poll_after_ms; a null expires_at

        occurs only on kyc_session, and a null poll_after_ms means no polling

        applies.
      properties:
        expires_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Expires At
        kind:
          enum:
            - kyc_session
            - card_reveal
            - grant_approval
            - connect
          title: Kind
          type: string
        poll_after_ms:
          anyOf:
            - exclusiveMinimum: 0
              type: integer
            - type: 'null'
          title: Poll After Ms
        url:
          title: Url
          type: string
      required:
        - kind
        - url
        - expires_at
        - poll_after_ms
      title: RedirectAction
      type: object

````