JustiFi Document API

Create/manage documents attached to your businesses and identities. When a document record is created using this API the response object returns a presigned url used to upload this document to an encrypted bucket. The presigned url can then be used to upload directly to an AWS s3 bucket, with a command like `curl -X PUT -T /path/to/file.pdf "insert presigned url"`. You must use the PUT method. This can also be accomplished from a backend or mobile app, from the browser or using our web components. After upload is complete the status changes from `pending` to `uploaded`.

Operations 3

POST /entities/document Create a Document #
GET /entities/document List Documents #
GET /entities/document/{id} Get a Document #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/justifi-document-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

justifi-document-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: '## Introduction


    The JustiFi API is a REST-based payment processing API.'
  title: JustiFi API Documentation Document API
  termsOfService: https://justifi.ai/terms-and-conditions
  x-logo:
    url: https://justifi-brand-assets.s3.us-east-2.amazonaws.com/justifi-light-bg.png
  contact:
    email: api-development@justifi.ai
servers:
- url: https://api.justifi.ai/v1
  description: JustiFi API
tags:
- name: Document
  description: Create/manage documents attached to your businesses and identities.
paths:
  /entities/document:
    post:
      summary: Create a Document
      description: Create a reference to a document, and receive a presigned URL for uploading the document
      operationId: CreateDocument
      tags:
      - Document
      parameters:
      - $ref: '#/components/parameters/authorization-header'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              properties:
                description:
                  type: string
                  example: My Document
                file_name:
                  type: string
                  example: the_file_name
                file_type:
                  type: string
                  example: application/pdf
                  description: the file media type/extension of the file you are uploading. For example, text/plain, application/pdf, image/png
                document_type:
                  type: string
                  enum:
                  - articles_of_incorporation
                  - balance_sheet
                  - bank_statement
                  - birth_certificate
                  - business_registration
                  - citizenship_card
                  - driver_license
                  - foreign_passport
                  - government_id
                  - nexus_card
                  - passport
                  - profit_and_loss_statement
                  - resident_card
                  - sin_card
                  - ssn_card
                  - status_card
                  - tax_return
                  - voided_check
                  - other
                  example: balance_sheet
                business_id:
                  type: string
                  format: uuid
                  example: biz_abc123
                  description: the business id to associate with this document (one of business id or identity id is required)
                identity_id:
                  type: string
                  format: uuid
                  example: idty_abc123
                  description: the identity id to associate with this document (one of business id or identity id is required)
                metadata:
                  type: object
                  description: any useful information you'd like to store alongside this document
                  example:
                    my_id: '123'
              required:
              - file_name
              - file_type
              - document_type
      responses:
        '201':
          description: Document was created and presigned successfully
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Envelope'
                - properties:
                    type:
                      example: document
                    data:
                      $ref: '#/components/schemas/Document'
    get:
      summary: List Documents
      description: List the documents you have uploaded. This endpoint supports pagination.
      operationId: ListDocuments
      tags:
      - Document
      parameters:
      - $ref: '#/components/parameters/authorization-header'
      responses:
        '200':
          description: Successfully list documents
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Envelope-list'
                - properties:
                    type:
                      example: array
                    data:
                      items:
                        $ref: '#/components/schemas/Document'
  /entities/document/{id}:
    get:
      summary: Get a Document
      description: Get details about a document, and a presigned download URL
      operationId: GetDocument
      tags:
      - Document
      parameters:
      - $ref: '#/components/parameters/id-path'
      - $ref: '#/components/parameters/authorization-header'
      responses:
        '200':
          description: Get Document
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Envelope'
                - properties:
                    type:
                      example: document
                    data:
                      $ref: '#/components/schemas/Document'
components:
  schemas:
    Envelope:
      type: object
      properties:
        id:
          description: the object id, also found in the data object
          type: string
          format: uuid
          example: prefix_xyz (same as id of data object)
        type:
          description: the object type, or array of objects
          type: string
          example: account
        data:
          description: the attributes for the object
          type: object
        page_info:
          description: information for cursor style pagination, is null for single records
          type: null
    Document:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: doc_abc123
        description:
          type: string
          example: My Document
          description: description of the document, used for your reference
        file_name:
          type: string
          example: my_document
          description: file name of the document
        file_type:
          type: string
          example: pdf
          description: the file media type/extension of the file you are uploading. For example, text/plain, application/pdf, image/png
        document_type:
          type: string
          enum:
          - articles_of_incorporation
          - balance_sheet
          - bank_statement
          - birth_certificate
          - business_registration
          - citizenship_card
          - driver_license
          - foreign_passport
          - government_id
          - nexus_card
          - passport
          - profit_and_loss_statement
          - resident_card
          - sin_card
          - ssn_card
          - status_card
          - tax_return
          - voided_check
          - other
          example: balance_sheet
        business_id:
          type: string
          format: uuid
          example: biz_abc123
          description: the business id to associate with this document (one of business id or identity id is required)
        identity_id:
          type: string
          format: uuid
          example: idty_abc123
          description: the identity id to associate with this document (one of business id or identity id is required)
        presigned_url:
          type: string
          format: url
          description: url used to PUT or GET the document to our cloud provider. This is not returned via the list API
          example: https://test.test/doc_abc123/file_name.pdf
        metadata:
          type: object
          format: json
          description: any useful information you'd like to store alongside this document
          additionalProperties: true
          example:
            language: english
            social_network: '@person'
        status:
          type: string
          enum:
          - pending uploaded canceled
        created_at:
          type: string
          format: date-time
          example: '2021-01-01T12:00:00Z'
        updated_at:
          type: string
          format: date-time
          example: '2021-01-01T12:00:00Z'
    Envelope-list:
      type: object
      properties:
        id:
          description: the object id
          type: number
          example: 1
        type:
          description: the object type, or array of objects
          type: string
          example: account
        data:
          description: the list of objects
          type: array
        page_info:
          description: information for cursor style pagination
          $ref: '#/components/schemas/PageInfo'
    PageInfo:
      type: object
      properties:
        end_cursor:
          description: the encoded id of the last record in the current list
          type: string
          example: WyIyMDIyLTAyLTA4IDE5OjUyOjM3LjEwNDE3MzAwMCIsIjY4MDliYTU5LTYxYjctNDg3MS05YWFiLWE2Y2MyNmY3M2M1ZCJd
        has_next:
          description: true if the collection contains records following the current list
          type: boolean
          default: false
        has_previous:
          description: true if the collection contains records ahead of the current list
          type: boolean
          default: false
        start_cursor:
          description: the encoded id of the first record in the current list
          type: string
          example: WyIyMDIyLTAyLTA4IDIwOjAxOjU4LjEyMDIzMjAwMCIsIjU5ZTFjNGI1LWFlOWQtNDIyZC04MTVkLWNjNzQ5NzdlYmFjYSJd
  parameters:
    id-path:
      in: path
      name: id
      schema:
        type: string
        format: uuid
      required: true
    authorization-header:
      in: header
      name: Authorization
      schema:
        type: string
      required: true
      example: Bearer {access_token}
      description: the `access_token` value returned from the JustiFi `oauth/token` endpoint (be sure to append `Bearer` before the token)
x-tagGroups:
- name: Authorization
  tags:
  - API Credentials
  - Web Component Tokens
- name: For Platforms
  tags:
  - Sub Accounts
  - Platform Wallet Accounts
  - Onboarding via Component
  - Hosted Onboarding
  - Onboarding via API
  - Fee Configurations
  - Proceeds
  - Reports
- name: Payment Resources
  tags:
  - Payments
  - Payment Methods
  - Tokenize via Component
  - Payment Method Groups
  - Refunds
  - Disputes
  - Payouts
  - Payout Holds
  - Balance Transactions
  - Ach Return Fees
  - Payment Method Migration
- name: Checkout Resources
  tags:
  - Checkouts
  - Checkout via Component
  - Checkout via API
- name: Insurance Resources
  tags:
  - Bind Insurance
- name: Entity Resources
  tags:
  - Business
  - Identity
  - Address
  - Document
  - Bank Account
  - Terms and Conditions
  - Provisioning
- name: Card Present Resources
  tags:
  - Terminals
  - Terminals Orders
- name: Libraries
  tags:
  - JustiFi Web Components
  - JustiFi SDK
- name: Event Publishing
  tags:
  - Events
  - Webhook Delivery