Puzzle Accounts API

The Accounts API from Puzzle — 3 operation(s) for accounts.

Operations 6

POST /company/{id}/accounts Create Financial Account #
GET /company/{id}/accounts Get Financial Accounts #
POST /company/{id}/accounts/balances Create Account Balance #
GET /company/{id}/accounts/balances Get Financial Account Balances #
GET /company/{id}/ledgerAccounts/{ledgerAccountId} Get Ledger Account #
GET /rest/v0/company/{id}/accounts List ledger accounts #

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/puzzle-accounts-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

puzzle-accounts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Puzzle Accounts API
  version: '1.0'
  description: 'Operations tagged Accounts across 2 of this provider''s published API definitions: puzzle-openapi-original.json, puzzle-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://staging.southparkdata.com/rest/v0
- url: https://staging.southparkdata.com
  description: Documented Puzzle API server (Puzzle's underlying data platform is named South Park Data). Confirmed from the public API reference.
tags:
- name: Accounts
paths:
  /company/{id}/accounts:
    post:
      operationId: createFinancialAccount
      summary: Create Financial Account
      description: 'Creates a financial account for the specified Puzzle company.


        The created account will have a status of Syncing until data is added to it, then it will be Ready. Please allow a couple of minutes for this status to update after the data has been added to the account.


        The type of data that can be added to an account depends on the account type.


        Required scope: write:account'
      tags:
      - Accounts
      parameters:
      - name: id
        in: path
        required: true
        description: The company ID
        schema:
          type: string
          minLength: 1
          description: Partner-facing external identifier
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                nativeId:
                  type: string
                  minLength: 1
                name:
                  type: string
                  minLength: 1
                mask:
                  type: string
                type:
                  type: string
                  enum:
                  - Investment
                  - Invoice
                  - Credit
                  - Depository
                  - Loan
                  - Other
                  - PaymentProcessing
                  - Payroll
                  - Fintech
                  - Sweep
                currency:
                  type: string
                  minLength: 3
                  maxLength: 3
                  description: ISO 4217 currency code
                subType:
                  type: string
                  enum:
                  - Annuity
                  - Brokerage
                  - BrokerageForMinors
                  - CD
                  - Checking
                  - CreditCard
                  - EducationSavingsAccount
                  - HSA
                  - Investment
                  - LineOfCredit
                  - Loan
                  - MoneyMarket
                  - Mortgage
                  - Other
                  - PayPal
                  - Prepaid
                  - ProfitSharingPlan
                  - Retirement
                  - Savings
                  - StockPlan
                  - Stripe
                  - TaxAdvantagedInvestment
                  - Trust
                  - Unknown
                  - CashLike
              required:
              - nativeId
              - name
              - mask
              - type
              - currency
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    minLength: 1
                    description: Partner-facing external identifier
                  nativeId:
                    type:
                    - string
                    - 'null'
                  name:
                    type: string
                  mask:
                    type: string
                  type:
                    type: string
                    enum:
                    - Investment
                    - Invoice
                    - Credit
                    - Depository
                    - Loan
                    - Other
                    - PaymentProcessing
                    - Payroll
                    - Fintech
                    - Sweep
                  subType:
                    type:
                    - string
                    - 'null'
                    enum:
                    - Annuity
                    - Brokerage
                    - BrokerageForMinors
                    - CD
                    - Checking
                    - CreditCard
                    - EducationSavingsAccount
                    - HSA
                    - Investment
                    - LineOfCredit
                    - Loan
                    - MoneyMarket
                    - Mortgage
                    - Other
                    - PayPal
                    - Prepaid
                    - ProfitSharingPlan
                    - Retirement
                    - Savings
                    - StockPlan
                    - Stripe
                    - TaxAdvantagedInvestment
                    - Trust
                    - Unknown
                    - CashLike
                  currentBalance:
                    type:
                    - object
                    - 'null'
                    properties:
                      amount:
                        type: string
                        minLength: 1
                        description: Arbitrary-precision decimal, serialized as a string
                      currency:
                        type: string
                        minLength: 3
                        maxLength: 3
                        description: ISO 4217 currency code
                    required:
                    - amount
                    - currency
                    description: A monetary amount with its currency
                  status:
                    type: string
                    enum:
                    - Syncing
                    - Ready
                  lastUpdatedAt:
                    type:
                    - string
                    - 'null'
                    minLength: 1
                    description: ISO 8601 timestamp
                required:
                - id
                - nativeId
                - name
                - mask
                - type
                - subType
                - currentBalance
                - status
                - lastUpdatedAt
    get:
      operationId: financialAccounts
      summary: Get Financial Accounts
      description: 'Retrieves a list of all of the company''s financial accounts.


        Required scope: read:company'
      tags:
      - Accounts
      parameters:
      - name: id
        in: path
        required: true
        description: The company ID
        schema:
          type: string
          minLength: 1
          description: Partner-facing external identifier
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  accounts:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 1
                          description: Partner-facing external identifier
                        nativeId:
                          type:
                          - string
                          - 'null'
                        name:
                          type: string
                        mask:
                          type: string
                        type:
                          type: string
                          enum:
                          - Investment
                          - Invoice
                          - Credit
                          - Depository
                          - Loan
                          - Other
                          - PaymentProcessing
                          - Payroll
                          - Fintech
                          - Sweep
                        subType:
                          type:
                          - string
                          - 'null'
                          enum:
                          - Annuity
                          - Brokerage
                          - BrokerageForMinors
                          - CD
                          - Checking
                          - CreditCard
                          - EducationSavingsAccount
                          - HSA
                          - Investment
                          - LineOfCredit
                          - Loan
                          - MoneyMarket
                          - Mortgage
                          - Other
                          - PayPal
                          - Prepaid
                          - ProfitSharingPlan
                          - Retirement
                          - Savings
                          - StockPlan
                          - Stripe
                          - TaxAdvantagedInvestment
                          - Trust
                          - Unknown
                          - CashLike
                        currentBalance:
                          type:
                          - object
                          - 'null'
                          properties:
                            amount:
                              type: string
                              minLength: 1
                              description: Arbitrary-precision decimal, serialized as a string
                            currency:
                              type: string
                              minLength: 3
                              maxLength: 3
                              description: ISO 4217 currency code
                          required:
                          - amount
                          - currency
                          description: A monetary amount with its currency
                        status:
                          type: string
                          enum:
                          - Syncing
                          - Ready
                        lastUpdatedAt:
                          type:
                          - string
                          - 'null'
                          minLength: 1
                          description: ISO 8601 timestamp
                      required:
                      - id
                      - nativeId
                      - name
                      - mask
                      - type
                      - subType
                      - currentBalance
                      - status
                      - lastUpdatedAt
                required:
                - accounts
    servers:
    - url: https://staging.southparkdata.com/rest/v0
  /company/{id}/accounts/balances:
    post:
      operationId: createAccountBalance
      summary: Create Account Balance
      description: 'Creates a balance for a financial account.


        Note that Puzzle stores all account balances trending towards positive, regardless of account type. Additional details can be found here.


        Required scope: write:account_balance'
      tags:
      - Accounts
      parameters:
      - name: id
        in: path
        required: true
        description: The company ID
        schema:
          type: string
          minLength: 1
          description: Partner-facing external identifier
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                accountId:
                  type: string
                  minLength: 1
                  description: Partner-facing external identifier
                balance:
                  type: object
                  properties:
                    amount:
                      type: string
                      minLength: 1
                      description: Arbitrary-precision decimal, serialized as a string
                    currency:
                      type: string
                      minLength: 3
                      maxLength: 3
                      description: ISO 4217 currency code
                  required:
                  - amount
                  - currency
                  description: A monetary amount with its currency
                availableBalance:
                  type: object
                  properties:
                    amount:
                      type: string
                      minLength: 1
                      description: Arbitrary-precision decimal, serialized as a string
                    currency:
                      type: string
                      minLength: 3
                      maxLength: 3
                      description: ISO 4217 currency code
                  required:
                  - amount
                  - currency
                  description: A monetary amount with its currency
                timestamp:
                  type: string
                  minLength: 1
                  description: ISO 8601 timestamp
              required:
              - accountId
              - balance
              - timestamp
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    minLength: 1
                    description: Partner-facing external identifier
                  accountId:
                    type: string
                    minLength: 1
                    description: Partner-facing external identifier
                  balance:
                    type: object
                    properties:
                      amount:
                        type: string
                        minLength: 1
                        description: Arbitrary-precision decimal, serialized as a string
                      currency:
                        type: string
                        minLength: 3
                        maxLength: 3
                        description: ISO 4217 currency code
                    required:
                    - amount
                    - currency
                    description: A monetary amount with its currency
                  availableBalance:
                    type: object
                    properties:
                      amount:
                        type: string
                        minLength: 1
                        description: Arbitrary-precision decimal, serialized as a string
                      currency:
                        type: string
                        minLength: 3
                        maxLength: 3
                        description: ISO 4217 currency code
                    required:
                    - amount
                    - currency
                    description: A monetary amount with its currency
                  timestamp:
                    type: string
                    minLength: 1
                    description: ISO 8601 timestamp
                required:
                - id
                - accountId
                - balance
                - availableBalance
                - timestamp
    get:
      operationId: balances
      summary: Get Financial Account Balances
      description: 'Returns the balances on a company''s financial accounts on the provided dates. A balance is the balance on the account at the start of the day provided.


        If we have an official institution account balance for that date, we will use the institution''s provided account balance. If the institution has not provided an account balance for the requested date, we will calculate the balance by summing transactions in the account that have occurred between the target data and the closest balance we have available.


        Note that Puzzle stores all account balances trending towards positive, regardless of account type. Additional details can be found here.


        If any of the company accounts are currently syncing or processing, this endpoint will return a 409 error.


        You can check the status of an account in the company object on the FinancialInstitutionAccount object. If the status is UpToDate then these balances can be retrieved without error.


        Required scope: read:company'
      tags:
      - Accounts
      parameters:
      - name: id
        in: path
        required: true
        description: The company ID
        schema:
          type: string
          minLength: 1
          description: Partner-facing external identifier
      - name: dates
        in: query
        required: true
        schema:
          anyOf:
          - type: string
          - type: array
            items:
              type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  balancesByDate:
                    type: array
                    items:
                      type: object
                      properties:
                        date:
                          type: string
                        balances:
                          type: array
                          items:
                            type: object
                            properties:
                              balance:
                                type: object
                                properties:
                                  amount:
                                    type: string
                                    minLength: 1
                                    description: Arbitrary-precision decimal, serialized as a string
                                  currency:
                                    type: string
                                    minLength: 3
                                    maxLength: 3
                                    description: ISO 4217 currency code
                                required:
                                - amount
                                - currency
                                description: A monetary amount with its currency
                              date:
                                type: string
                              derivedFrom:
                                type: string
                                enum:
                                - OfficialInstitutionBalance
                                - Calculated
                              account:
                                type:
                                - object
                                - 'null'
                                properties:
                                  id:
                                    type: string
                                    minLength: 1
                                    description: Partner-facing external identifier
                                  nativeId:
                                    type:
                                    - string
                                    - 'null'
                                  type:
                                    type: string
                                    enum:
                                    - Investment
                                    - Invoice
                                    - Credit
                                    - Depository
                                    - Loan
                                    - Other
                                    - PaymentProcessing
                                    - Payroll
                                    - Fintech
                                    - Sweep
                                  name:
                                    type: string
                                  mask:
                                    type:
                                    - string
                                    - 'null'
                                  currentBalance:
                                    type: object
                                    properties:
                                      amount:
                                        type: string
                                        minLength: 1
                                        description: Arbitrary-precision decimal, serialized as a string
                                      currency:
                                        type: string
                                        minLength: 3
                                        maxLength: 3
                                        description: ISO 4217 currency code
                                    required:
                                    - amount
                                    - currency
                                    description: A monetary amount with its currency
                                  status:
                                    type: string
                                    enum:
                                    - Syncing
                                    - Ready
                                  ingestStatus:
                                    type: string
                                    enum:
                                    - Syncing
                                    - Ready
                                  connectionStatus:
                                    type: string
                                    enum:
                                    - OK
                                    - TemporaryOutage
                                    - Disconnected
                                  lastUpdatedAt:
                                    type:
                                    - string
                                    - 'null'
                                    minLength: 1
                                    description: ISO 8601 timestamp
                                  pathToDetails:
                                    type: string
                                required:
                                - id
                                - nativeId
                                - type
                                - name
                                - mask
                                - currentBalance
                                - status
                                - ingestStatus
                                - connectionStatus
                                - lastUpdatedAt
                                - pathToDetails
                            required:
                            - balance
                            - date
                            - derivedFrom
                            - account
                        totalCash:
                          type: object
                          properties:
                            amount:
                              type: string
                              minLength: 1
                              description: Arbitrary-precision decimal, serialized as a string
                            currency:
                              type: string
                              minLength: 3
                              maxLength: 3
                              description: ISO 4217 currency code
                          required:
                          - amount
                          - currency
                          description: A monetary amount with its currency
                      required:
                      - date
                      - balances
                      - totalCash
                required:
                - balancesByDate
    servers:
    - url: https://staging.southparkdata.com/rest/v0
  /company/{id}/ledgerAccounts/{ledgerAccountId}:
    get:
      operationId: ledgerAccount
      summary: Get Ledger Account
      description: 'Retrieves a specific account in the company''s chart of accounts.


        By default, the balances on the account are calculated using cash basis.


        Required scope: read:company'
      tags:
      - Accounts
      parameters:
      - name: id
        in: path
        required: true
        description: The company ID
        schema:
          type: string
          minLength: 1
          description: Partner-facing external identifier
      - name: ledgerAccountId
        in: path
        required: true
        description: The ledger account ID
        schema:
          type: string
          minLength: 1
          description: Partner-facing external identifier
      - name: basis
        in: query
        required: false
        schema:
          type: string
          enum:
          - cash
          - accrual
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    minLength: 1
                    description: Partner-facing external identifier
                  name:
                    type: string
                  coaKeys:
                    type: array
                    items:
                      type: string
                      minLength: 1
                      description: Chart-of-accounts key
                  restrictedCoaKeys:
                    type: array
                    items:
                      type: string
                      minLength: 1
                      description: Chart-of-accounts key
                  nominalCode:
                    type: string
                  description:
                    type:
                    - string
                    - 'null'
                  keywords:
                    type: array
                    items:
                      type: string
                  type:
                    type: string
                  tags:
                    type: array
                    items:
                      type: string
                  category:
                    type: string
                  subCategory:
                    type:
                    - string
                    - 'null'
                  tertiaryCategory:
                    type:
                    - string
                    - 'null'
                  parentCode:
                    type:
                    - string
                    - 'null'
                  currentBalance:
                    type: object
                    properties:
                      amount:
                        type: string
                        minLength: 1
                        description: Arbitrary-precision decimal, serialized as a string
                      currency:
                        type: string
                        minLength: 3
                        maxLength: 3
                        description: ISO 4217 currency code
                    required:
                    - amount
                    - currency
                    description: A monetary amount with its currency
                  currentBalanceWithoutSubAccounts:
                    type: object
                    properties:
                      amount:
                        type: string
                        minLength: 1
                        description: Arbitrary-precision decimal, serialized as a string
                      currency:
                        type: string
                        minLength: 3
                        maxLength: 3
                        description: ISO 4217 currency code
                    required:
                    - amount
                    - currency
                    description: A monetary amount with its currency
                  isBankAccount:
                    type: boolean
                  accountId:
                    type:
                    - string
                    - 'null'
                    minLength: 1
                    description: Partner-facing external identifier
                  views:
                    type: array
                    items:
                      type: string
                  currentness:
                    type:
                    - string
                    - 'null'
                required:
                - id
                - name
                - coaKeys
                - restrictedCoaKeys
                - nominalCode
                - keywords
                - type
                - tags
                - category
                - currentBalance
                - currentBalanceWithoutSubAccounts
                - isBankAccount
                - views
    servers:
    - url: https://staging.southparkdata.com/rest/v0
  /rest/v0/company/{id}/accounts:
    get:
      operationId: listAccounts
      tags:
      - Accounts
      summary: List ledger accounts
      description: List the chart of accounts and ledger account balances for a company's general ledger.
      x-puzzle-unverified: true
      parameters:
      - $ref: '#/components/parameters/CompanyId'
      responses:
        '200':
          description: A list of ledger accounts.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LedgerAccount'
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - oauth2: []
      - apiKey: []
    servers:
    - url: https://staging.southparkdata.com
      description: Documented Puzzle API server (Puzzle's underlying data platform is named South Park Data). Confirmed from the public API reference.
components:
  parameters:
    CompanyId:
      name: id
      in: path
      required: true
      description: The company ID.
      schema:
        type: string
  responses:
    Unauthorized:
      description: Missing or invalid credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    LedgerAccount:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
          description: Asset, Liability, Equity, Revenue, or Expense.
        balance:
          type: number
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 with scoped access (for example read:company, read:transactions, read:report). Partner credentials are issued after the Puzzle partner technical review.
      flows:
        clientCredentials:
          tokenUrl: https://puzzle-api.readme.io/reference
          scopes:
            read:company: Read company data
            read:transactions: Read transactions
            read:accounts: Read ledger accounts
            read:report: Read financial statements
    apiKey:
      type: apiKey
      in: header
      name: Authorization
      description: API key authentication via the Authorization header, as described in the Puzzle developer docs.
x-refined-from:
- puzzle-openapi-original.json
- puzzle-openapi.yml