Persona Accounts API

Persistent end-user records across Inquiries.

Documentation

Specifications

Other Resources

OpenAPI Specification

withpersona-accounts-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Persona Accounts API
  description: 'The Persona API is a configurable identity platform for KYC, KYB, AML, and fraud prevention. It exposes Inquiries, Inquiry Sessions, Accounts, Verifications, Reports, Cases, Transactions, Devices, Documents, Webhooks, Events, Importers, and Workflow Runs.


    All resources follow the JSON:API media type conventions: request and response payloads are wrapped in a top-level `data` object with `type`, `id`, `attributes`, and `relationships` members. Requests are authenticated with a Bearer API key. Two optional headers shape every request: `Persona-Version` pins the API version to a date (e.g. `2023-01-05`), and `Key-Inflection` selects the casing of JSON keys (`camel`, `kebab`, or `snake`). Idempotency is supported via the `Idempotency-Key` header.'
  termsOfService: https://withpersona.com/legal/terms-of-service
  contact:
    name: Persona Support
    url: https://help.withpersona.com
    email: support@withpersona.com
  version: '2023-01-05'
servers:
- url: https://api.withpersona.com/api/v1
  description: Production
security:
- bearerAuth: []
tags:
- name: Accounts
  description: Persistent end-user records across Inquiries.
paths:
  /accounts:
    get:
      operationId: listAllAccounts
      tags:
      - Accounts
      summary: List all Accounts
      description: Retrieves a list of your organization's Accounts in reverse chronological order.
      parameters:
      - $ref: '#/components/parameters/PageAfter'
      - $ref: '#/components/parameters/PageBefore'
      - $ref: '#/components/parameters/PageSize'
      - name: filter[reference-id]
        in: query
        schema:
          type: string
        description: Filter Accounts by reference ID.
      - $ref: '#/components/parameters/PersonaVersion'
      - $ref: '#/components/parameters/KeyInflection'
      responses:
        '200':
          description: A list of Accounts.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
    post:
      operationId: createAccount
      tags:
      - Accounts
      summary: Create an Account
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericResource'
      responses:
        '201':
          description: The created Account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResource'
  /accounts/{account-id}:
    parameters:
    - name: account-id
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: retrieveAccount
      tags:
      - Accounts
      summary: Retrieve an Account
      responses:
        '200':
          description: The requested Account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResource'
    patch:
      operationId: updateAccount
      tags:
      - Accounts
      summary: Update an Account
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericResource'
      responses:
        '200':
          description: The updated Account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResource'
  /accounts/{account-id}/consolidate:
    parameters:
    - name: account-id
      in: path
      required: true
      schema:
        type: string
    post:
      operationId: consolidateAccounts
      tags:
      - Accounts
      summary: Consolidate Accounts into an Account
      responses:
        '200':
          description: The consolidated Account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericResource'
components:
  parameters:
    PageAfter:
      name: page[after]
      in: query
      required: false
      description: Cursor for the object after which to start the page.
      schema:
        type: string
    KeyInflection:
      name: Key-Inflection
      in: header
      required: false
      description: Controls the casing of JSON keys in requests and responses.
      schema:
        type: string
        enum:
        - camel
        - kebab
        - snake
    PersonaVersion:
      name: Persona-Version
      in: header
      required: false
      description: Pins the API version to a release date, e.g. 2023-01-05.
      schema:
        type: string
        example: '2023-01-05'
    PageSize:
      name: page[size]
      in: query
      required: false
      description: Number of results per page (max 100).
      schema:
        type: integer
        default: 10
        maximum: 100
    PageBefore:
      name: page[before]
      in: query
      required: false
      description: Cursor for the object before which to end the page.
      schema:
        type: string
  schemas:
    ResourceObject:
      type: object
      description: A JSON:API resource object.
      properties:
        type:
          type: string
        id:
          type: string
        attributes:
          type: object
          additionalProperties: true
        relationships:
          type: object
          additionalProperties: true
    GenericList:
      type: object
      description: A JSON:API document wrapping a collection of resources.
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ResourceObject'
        links:
          type: object
          properties:
            prev:
              type: string
              nullable: true
            next:
              type: string
              nullable: true
    GenericResource:
      type: object
      description: A JSON:API document wrapping a single resource.
      properties:
        data:
          $ref: '#/components/schemas/ResourceObject'
        included:
          type: array
          items:
            $ref: '#/components/schemas/ResourceObject'
        meta:
          type: object
          additionalProperties: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Persona API key passed as a Bearer token in the Authorization header.