Fintecture Customers API

Register and manage merchant customers, attach their bank accounts, and run identity verifications. Persisted customer records pre-fill payment fields and accelerate repeat checkouts; verifications confirm account holder identity through the AIS rails.

Fintecture Customers API is one of 8 APIs that Fintecture publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 3 machine-runnable capabilities that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Customers, KYC, Bank Accounts, and Verification. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 3 Naftiko capability specs.

OpenAPI Specification

fintecture-customers-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Fintecture Customers API
  description: >
    Register and manage merchant customers, attach their bank accounts, and run
    AIS-based identity verifications. Persisted customer records pre-fill
    payment fields and accelerate repeat checkouts.
  version: "v1"
  contact:
    name: Fintecture Support
    url: https://fintecture.com/contact

servers:
  - url: https://api.fintecture.com
    description: Production
  - url: https://api-sandbox.fintecture.com
    description: Sandbox

security:
  - BearerAuth: []

tags:
  - name: Customers
    description: Customer records
  - name: Bank Accounts
    description: Customer bank accounts
  - name: Verifications
    description: Customer identity verifications

paths:
  /v1/customers:
    get:
      summary: List All Customers
      description: Comprehensive overview of all registered customers.
      operationId: listAllCustomers
      tags: [Customers]
      parameters:
        - in: query
          name: page[number]
          schema: { type: integer }
        - in: query
          name: page[size]
          schema: { type: integer }
      responses:
        '200':
          description: Customer list
          content:
            application/json:
              schema: { $ref: '#/components/schemas/CustomerList' }
    post:
      summary: Create Customer
      description: Register a customer to accelerate payments.
      operationId: createCustomer
      tags: [Customers]
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: '#/components/schemas/CustomerCreate' }
      responses:
        '201':
          description: Customer created
          content:
            application/json:
              schema: { $ref: '#/components/schemas/Customer' }

  /v1/customers/{customer_id}:
    get:
      summary: Get A Customer
      description: Retrieve a customer's details by customer_id.
      operationId: getCustomerById
      tags: [Customers]
      parameters:
        - $ref: '#/components/parameters/CustomerIdPath'
      responses:
        '200':
          description: Customer details
          content:
            application/json:
              schema: { $ref: '#/components/schemas/Customer' }

  /v1/customers/{customer_id}/bank-accounts:
    get:
      summary: List All Customer Bank Accounts
      operationId: listAllCustomerBankAccounts
      tags: [Bank Accounts]
      parameters:
        - $ref: '#/components/parameters/CustomerIdPath'
      responses:
        '200':
          description: Bank account list
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items: { $ref: '#/components/schemas/CustomerBankAccount' }
    post:
      summary: Create Customer Bank Account
      operationId: createCustomerBankAccount
      tags: [Bank Accounts]
      parameters:
        - $ref: '#/components/parameters/CustomerIdPath'
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: '#/components/schemas/CustomerBankAccountCreate' }
      responses:
        '201':
          description: Bank account created
          content:
            application/json:
              schema: { $ref: '#/components/schemas/CustomerBankAccount' }

  /v1/customers/{customer_id}/bank-accounts/{account_id}:
    get:
      summary: Get A Bank Account From A Customer
      operationId: getBankAccountById
      tags: [Bank Accounts]
      parameters:
        - $ref: '#/components/parameters/CustomerIdPath'
        - in: path
          name: account_id
          required: true
          schema: { type: string }
      responses:
        '200':
          description: Bank account
          content:
            application/json:
              schema: { $ref: '#/components/schemas/CustomerBankAccount' }

  /v1/customers/{customer_id}/verification:
    post:
      summary: Initiate Customer Verification
      operationId: initiateCustomerVerification
      tags: [Verifications]
      parameters:
        - $ref: '#/components/parameters/CustomerIdPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                provider_id: { type: string }
                expected_name: { type: string }
      responses:
        '201':
          description: Verification started
          content:
            application/json:
              schema: { $ref: '#/components/schemas/CustomerVerification' }

  /v1/customers/{customer_id}/verifications:
    get:
      summary: List All Customer Verifications
      operationId: listAllCustomerVerifications
      tags: [Verifications]
      parameters:
        - $ref: '#/components/parameters/CustomerIdPath'
      responses:
        '200':
          description: Verification list
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items: { $ref: '#/components/schemas/CustomerVerification' }

  /v1/customers/{customer_id}/verification/{verification_id}:
    get:
      summary: Get A Verification
      operationId: getCustomerVerificationById
      tags: [Verifications]
      parameters:
        - $ref: '#/components/parameters/CustomerIdPath'
        - in: path
          name: verification_id
          required: true
          schema: { type: string }
      responses:
        '200':
          description: Verification details
          content:
            application/json:
              schema: { $ref: '#/components/schemas/CustomerVerification' }

components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  parameters:
    CustomerIdPath:
      in: path
      name: customer_id
      required: true
      schema: { type: string }
  schemas:
    Customer:
      type: object
      properties:
        id: { type: string }
        first_name: { type: string }
        last_name: { type: string }
        company_name: { type: string }
        email: { type: string, format: email }
        phone: { type: string }
        address:
          type: object
          properties:
            line1: { type: string }
            line2: { type: string }
            postal_code: { type: string }
            city: { type: string }
            country: { type: string }
        external_id: { type: string }
        created_at: { type: string, format: date-time }

    CustomerCreate:
      type: object
      required: [first_name, last_name, email]
      properties:
        first_name: { type: string }
        last_name: { type: string }
        company_name: { type: string }
        email: { type: string, format: email }
        phone: { type: string }
        external_id: { type: string }

    CustomerList:
      type: object
      properties:
        data:
          type: array
          items: { $ref: '#/components/schemas/Customer' }
        meta:
          type: object
          properties:
            count: { type: integer }

    CustomerBankAccount:
      type: object
      properties:
        id: { type: string }
        iban: { type: string }
        bic: { type: string }
        holder_name: { type: string }
        currency: { type: string }
        verified: { type: boolean }

    CustomerBankAccountCreate:
      type: object
      required: [iban, holder_name]
      properties:
        iban: { type: string }
        bic: { type: string }
        holder_name: { type: string }
        currency: { type: string }

    CustomerVerification:
      type: object
      properties:
        id: { type: string }
        status:
          type: string
          enum: [pending, verified, unverified, failed]
        match_score: { type: number }
        provider_id: { type: string }
        verified_at: { type: string, format: date-time }