Benji Pays Emails API

Sent emails for authenticated organizations

Operations 2

GET /v2/emails List sent emails for an Organization #
GET /v2/emails/{emailId} Get a single sent email #

Specifications

Schemas & Data

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/benjipays-com:benjipays-com-emails-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

benjipays-com-emails-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Benji Pays Merchant Emails API
  description: 'The Benji Pays Merchant API is a JSON over HTTPS API. All endpoints live under `/v2`. Errors follow RFC 7807 and are served as `application/problem+json`. This overview describes the cross-cutting behavior shared by every merchant endpoint. Endpoint-specific schemas live with each operation. ## Authentication


    Merchant endpoints authenticate with an organization-scoped `x-api-key` header issued from the merchant app:


    ```

    x-api-key:

    ```


    The key is scoped to one organization and inherits the permissions of the login that created it. Failures return `401 Unauthorized` (missing/expired/invalid credentials) or `403 Forbidden` (insufficient mapping permission or organization lifecycle restrictions). ## Request and Correlation IDs


    Two header pairs help with tracing:


    | Header | Direction | Purpose |

    | --- | --- | --- |

    | `X-Request-ID` | request (optional) / response (always) | Unique identifier for one request. Generated as a UUID v4 when the client omits it. |

    | `X-Correlation-ID` | request (optional) / response (always) | Identifier that flows across service boundaries for distributed tracing. Generated as a UUID v4 when omitted. |


    Both IDs are echoed on success and included as `requestId` / `correlationId` extensions on `application/problem+json` error responses. These headers are auto-injected on every operation in this spec — do not redeclare them per route. ## Idempotency


    POST, PATCH, and PUT endpoints accept an `Idempotency-Key` header to make retries safe. - Format: 1–255 characters, alphanumeric only (`[a-zA-Z0-9]+`). - Scope: keys are scoped per actor (no cross-tenant collisions). - Cache: the first response for a given key is cached for 24 hours. - Replay: a duplicate request with the same key and the same body returns the cached response with `X-Idempotency-Replayed: true` only after credentials were resolved by the global authenticate middleware (API key or Auth0 JWT signature check) before the idempotency cache lookup. - Conflict: same key with a different body returns `409 Conflict`. - In-flight: a second request with the same key while the first is still being processed returns `429 Too Many Requests` with `Retry-After` and problem `type` `https://api.benjipays.com/problems/idempotency-processing` (distinct from rate-limit `…/rate-limit-exceeded`). `Idempotency-Key` is auto-injected on every POST/PATCH/PUT operation in this spec — do not redeclare it per route. Routes that intentionally opt out set `x-bp-skip-idempotency: true`. The middleware fails open: if the cache layer is unavailable the request proceeds without idempotency protection. Most write routes treat the header as optional. Routes that require it set `x-bp-require-idempotency: true` and return `400 Bad Request` when it is missing — currently `POST /v2/transactions`, `POST /v2/transactions/prepayments`, and `POST /v2/transactions/{transactionId}/retry-accounting`. Those routes are also the exception to the fail-open rule above: when the cache layer is unavailable they return `503 Service Unavailable` with `Retry-After` and problem `type` `https://api.benjipays.com/problems/idempotency-unavailable`, and the request is not processed. Retry with the same key. The two charge routes (`POST /v2/transactions` and `POST /v2/transactions/prepayments`) also save the key on the charge. Recover a charge with `GET /v2/transactions?idempotencyKey={key}` (empty `data` when the key was never used). After the 24-hour replay window, the same key creates a new charge. ## Pagination


    List endpoints use offset-based pagination with two query parameters:


    | Parameter | Type | Default | Bounds |

    | --- | --- | --- | --- |

    | `limit` | integer | `20` | `1`–`1000` |

    | `offset` | integer | `0` | `≥ 0` |


    Some endpoints use different bounds (for example usage/billing and autoprocessing forecast). Check the per-operation schema.'
  version: 2.0.0
  contact:
    name: Benji Pays API Support
    email: benji@benjipays.com
servers:
- url: https://api.benjipays.com
  description: Development server
security:
- ApiKeyAuth: []
tags:
- name: Emails
  description: Sent emails for authenticated organizations
paths:
  /v2/emails:
    get:
      summary: List sent emails for an Organization
      description: Returns paginated sent emails for the organization associated with the authenticated API key. Matches the merchant-app email history, restricted to merchant-facing email types. Filter by customer, type, status, and sent-date range.
      tags:
      - Emails
      security:
      - ApiKeyAuth: []
      parameters:
      - $ref: '#/components/parameters/RequestIdHeader'
      - $ref: '#/components/parameters/CorrelationIdHeader'
      - in: query
        name: customerId
        schema:
          description: Filter to a single accounting customer ID.
          type: string
          maxLength: 200
        description: Filter to a single accounting customer ID.
      - in: query
        name: type
        schema:
          type: string
          enum:
          - invoice
          - receipt
          - cardrequest
          - emailreminder
          - generalemail
          - logininvite
          - installment
          - security
          - nightlyresults
          - benjiinvoice
          - other
          - invoicepaid
          - emailverify
          description: Filter by merchant-facing email type. Internal types cannot be queried.
      - in: query
        name: status
        schema:
          type: string
          enum:
          - sent
          - queued
          - error
          description: Filter by delivery status (`sent`, `queued`, `error`).
      - in: query
        name: sentStart
        schema:
          description: 'Start of the sent-date range (inclusive). Two formats: `(1)` Calendar day `YYYY-MM-DD` (e.g. `2024-07-02`) — start of that day in UTC (`00:00:00.000Z`). `(2)` ISO-8601 UTC timestamp (e.g. `2024-07-02T07:00:00.000Z`) — exact UTC bound. Optional independently of `sentEnd`.'
          examples:
          - '2024-07-02'
          - '2024-07-02T07:00:00.000Z'
          type: string
          maxLength: 40
        description: 'Start of the sent-date range (inclusive). Two formats: `(1)` Calendar day `YYYY-MM-DD` (e.g. `2024-07-02`) — start of that day in UTC (`00:00:00.000Z`). `(2)` ISO-8601 UTC timestamp (e.g. `2024-07-02T07:00:00.000Z`) — exact UTC bound. Optional independently of `sentEnd`.'
      - in: query
        name: sentEnd
        schema:
          description: 'End of the sent-date range (inclusive). Two formats: `(1)` Calendar day `YYYY-MM-DD` (e.g. `2024-07-02`) — end of that day in UTC (`23:59:59.999Z`). `(2)` ISO-8601 UTC timestamp (e.g. `2024-07-03T06:59:59.999Z`) — exact UTC bound. Optional independently of `sentStart`.'
          examples:
          - '2024-07-02'
          - '2024-07-03T06:59:59.999Z'
          type: string
          maxLength: 40
        description: 'End of the sent-date range (inclusive). Two formats: `(1)` Calendar day `YYYY-MM-DD` (e.g. `2024-07-02`) — end of that day in UTC (`23:59:59.999Z`). `(2)` ISO-8601 UTC timestamp (e.g. `2024-07-03T06:59:59.999Z`) — exact UTC bound. Optional independently of `sentStart`.'
      - in: query
        name: search
        schema:
          description: Free-text search across email fields (recipient, subject, etc.).
          type: string
          maxLength: 200
        description: Free-text search across email fields (recipient, subject, etc.).
      - in: query
        name: sort
        schema:
          description: Sort field (`sentDate`, `subject`, `status`, `type`).
          type: string
          enum:
          - sentDate
          - subject
          - status
          - type
        description: Sort field (`sentDate`, `subject`, `status`, `type`).
      - in: query
        name: order
        schema:
          description: 'Sort direction. Accepted values: `asc`, `desc`. Defaults to `desc` when omitted.'
          type: string
          enum:
          - asc
          - desc
        description: 'Sort direction. Accepted values: `asc`, `desc`. Defaults to `desc` when omitted.'
      - in: query
        name: limit
        schema:
          default: 20
          type: integer
          minimum: 1
          maximum: 1000
      - in: query
        name: offset
        schema:
          default: 0
          type: integer
          minimum: 0
          maximum: 9007199254740991
      responses:
        '200':
          description: Paginated email list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListEmailsResponse'
        '400':
          description: Bad request — request validation failed (invalid query/path parameters; `type` `…/validation-error` with optional `errors[]`), and/or organization has no accounting integration configured.
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: number
                  detail:
                    type: string
                  instance:
                    type: string
                required:
                - type
                - title
                - status
                - detail
                additionalProperties: false
                description: RFC 7807 Problem Details error response
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: number
                  detail:
                    type: string
                  instance:
                    type: string
                required:
                - type
                - title
                - status
                - detail
                additionalProperties: false
                description: RFC 7807 Problem Details error response
        '403':
          description: Forbidden — missing required OAuth scope (`organizations:emails:read`), insufficient live mapping permission on the API key owner (e.g. `companyAdmin`), and/or free trial ended without billing enabled. Scope, mapping, and billing state are independent gates; see response `detail`.
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: number
                  detail:
                    type: string
                  instance:
                    type: string
                required:
                - type
                - title
                - status
                - detail
                additionalProperties: false
                description: RFC 7807 Problem Details error response
                examples:
                  missingScope:
                    summary: Missing OAuth scope
                    value:
                      type: https://api.benjipays.com/problems/forbidden
                      title: Forbidden
                      status: 403
                      detail: 'Missing required scope: organizations:emails:read'
                      instance: /v2/emails
                  insufficientMappingPermission:
                    summary: Insufficient live mapping permission (API key owner)
                    value:
                      type: https://api.benjipays.com/problems/forbidden
                      title: Forbidden
                      status: 403
                      detail: Insufficient permission for this resource
                      instance: /v2/emails
                  freeTrialOverNotPaying:
                    summary: Free trial ended without billing
                    value:
                      type: https://api.benjipays.com/problems/forbidden
                      title: Forbidden
                      status: 403
                      detail: Free trial has ended and billing is not enabled
                      instance: /v2/emails
        '404':
          description: Organization not found
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: number
                  detail:
                    type: string
                  instance:
                    type: string
                required:
                - type
                - title
                - status
                - detail
                additionalProperties: false
                description: RFC 7807 Problem Details error response
        '429':
          description: Too Many Requests
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: number
                  detail:
                    type: string
                  instance:
                    type: string
                required:
                - type
                - title
                - status
                - detail
                additionalProperties: false
                description: RFC 7807 Problem Details error response
      operationId: getV2Emails
      x-operation-id-source: derived
  /v2/emails/{emailId}:
    get:
      summary: Get a single sent email
      description: Returns a single sent email by its `id` (from the list endpoint), including the body content and the full delivery event timeline. Scoped to the authenticated organization and restricted to merchant-facing email types.
      tags:
      - Emails
      security:
      - ApiKeyAuth: []
      parameters:
      - $ref: '#/components/parameters/RequestIdHeader'
      - $ref: '#/components/parameters/CorrelationIdHeader'
      - in: path
        name: emailId
        schema:
          type: string
          pattern: ^[a-f\d]{24}$
          description: The email identifier (`id` from the list endpoint).
          example: 6a313b8505f3f5de0b551543
        required: true
        description: The email identifier (`id` from the list endpoint).
      responses:
        '200':
          description: Email detail
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEmailResponse'
        '400':
          description: Bad request — request validation failed (invalid query/path parameters; `type` `…/validation-error` with optional `errors[]`), and/or organization has no accounting integration configured.
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: number
                  detail:
                    type: string
                  instance:
                    type: string
                required:
                - type
                - title
                - status
                - detail
                additionalProperties: false
                description: RFC 7807 Problem Details error response
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: number
                  detail:
                    type: string
                  instance:
                    type: string
                required:
                - type
                - title
                - status
                - detail
                additionalProperties: false
                description: RFC 7807 Problem Details error response
        '403':
          description: Forbidden — missing required OAuth scope (`organizations:emails:read`), insufficient live mapping permission on the API key owner (e.g. `companyAdmin`), and/or free trial ended without billing enabled. Scope, mapping, and billing state are independent gates; see response `detail`.
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: number
                  detail:
                    type: string
                  instance:
                    type: string
                required:
                - type
                - title
                - status
                - detail
                additionalProperties: false
                description: RFC 7807 Problem Details error response
                examples:
                  missingScope:
                    summary: Missing OAuth scope
                    value:
                      type: https://api.benjipays.com/problems/forbidden
                      title: Forbidden
                      status: 403
                      detail: 'Missing required scope: organizations:emails:read'
                      instance: /v2/emails
                  insufficientMappingPermission:
                    summary: Insufficient live mapping permission (API key owner)
                    value:
                      type: https://api.benjipays.com/problems/forbidden
                      title: Forbidden
                      status: 403
                      detail: Insufficient permission for this resource
                      instance: /v2/emails
                  freeTrialOverNotPaying:
                    summary: Free trial ended without billing
                    value:
                      type: https://api.benjipays.com/problems/forbidden
                      title: Forbidden
                      status: 403
                      detail: Free trial has ended and billing is not enabled
                      instance: /v2/emails
        '404':
          description: Email not found
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: number
                  detail:
                    type: string
                  instance:
                    type: string
                required:
                - type
                - title
                - status
                - detail
                additionalProperties: false
                description: RFC 7807 Problem Details error response
        '429':
          description: Too Many Requests
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: number
                  detail:
                    type: string
                  instance:
                    type: string
                required:
                - type
                - title
                - status
                - detail
                additionalProperties: false
                description: RFC 7807 Problem Details error response
      operationId: getV2EmailsByEmailId
      x-operation-id-source: derived
components:
  schemas:
    GetEmailResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/EmailDetail'
      required:
      - data
      additionalProperties: false
      description: Single email response
    EmailEvent:
      type: object
      properties:
        type:
          type: string
          description: Event type (e.g. Send, Delivery, Open, Bounce, Complaint)
        timestamp:
          anyOf:
          - type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          - type: 'null'
          description: ISO-8601 UTC timestamp of the event
        recipients:
          description: Recipients for delivery events
          type: array
          items:
            type: string
      required:
      - type
      - timestamp
      additionalProperties: false
      description: A single delivery event
    ListEmailsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/EmailSummary'
        pagination:
          type: object
          properties:
            total:
              type: number
              description: Total matching emails across all pages
            limit:
              type: number
            offset:
              type: number
            hasMore:
              type: boolean
            nextOffset:
              anyOf:
              - type: number
              - type: 'null'
            prevOffset:
              anyOf:
              - type: number
              - type: 'null'
          required:
          - total
          - limit
          - offset
          - hasMore
          - nextOffset
          - prevOffset
          additionalProperties: false
      required:
      - data
      - pagination
      additionalProperties: false
      description: Paginated email list response
    EmailSummary:
      type: object
      properties:
        id:
          type: string
          description: Email identifier (Mongo `_id`)
        type:
          anyOf:
          - type: string
          - type: 'null'
          description: Email type (e.g. invoice, receipt, emailreminder)
        status:
          anyOf:
          - type: string
          - type: 'null'
          description: Delivery status (sent, queued, error)
        subject:
          anyOf:
          - type: string
          - type: 'null'
        from:
          anyOf:
          - type: string
          - type: 'null'
        to:
          type: array
          items:
            type: string
        cc:
          type: array
          items:
            type: string
        bcc:
          type: array
          items:
            type: string
        sentDate:
          anyOf:
          - type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          - type: 'null'
          description: ISO-8601 UTC timestamp the email was created/sent
        opened:
          type: boolean
        lastOpened:
          anyOf:
          - type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          - type: 'null'
          description: ISO-8601 UTC timestamp of the last non-bot open
        bounced:
          type: boolean
        delivered:
          type: boolean
        customerId:
          anyOf:
          - type: string
          - type: 'null'
          description: Accounting customer ID
        invoiceIds:
          type: array
          items:
            type: string
          description: Associated accounting invoice IDs
        sentBy:
          anyOf:
          - type: string
          - type: 'null'
          description: Display name of the user who sent the email
        reminderRule:
          $ref: '#/components/schemas/EmailReminderRule'
        hasAttachments:
          type: boolean
      required:
      - id
      - type
      - status
      - subject
      - from
      - to
      - cc
      - bcc
      - sentDate
      - opened
      - lastOpened
      - bounced
      - delivered
      - customerId
      - invoiceIds
      - sentBy
      - reminderRule
      - hasAttachments
      additionalProperties: false
      description: A sent email (summary)
    EmailReminderRule:
      anyOf:
      - type: object
        properties:
          displayName:
            anyOf:
            - type: string
            - type: 'null'
            description: Friendly reminder rule name, resolved from email-reminder settings
        required:
        - displayName
        additionalProperties: false
      - type: 'null'
      description: Reminder rule descriptor for reminder emails; null for non-reminder emails
    EmailDetail:
      type: object
      properties:
        id:
          type: string
          description: Email identifier (Mongo `_id`)
        type:
          anyOf:
          - type: string
          - type: 'null'
          description: Email type (e.g. invoice, receipt, emailreminder)
        status:
          anyOf:
          - type: string
          - type: 'null'
          description: Delivery status (sent, queued, error)
        subject:
          anyOf:
          - type: string
          - type: 'null'
        from:
          anyOf:
          - type: string
          - type: 'null'
        to:
          type: array
          items:
            type: string
        cc:
          type: array
          items:
            type: string
        bcc:
          type: array
          items:
            type: string
        sentDate:
          anyOf:
          - type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          - type: 'null'
          description: ISO-8601 UTC timestamp the email was created/sent
        opened:
          type: boolean
        lastOpened:
          anyOf:
          - type: string
            format: date-time
            pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          - type: 'null'
          description: ISO-8601 UTC timestamp of the last non-bot open
        bounced:
          type: boolean
        delivered:
          type: boolean
        customerId:
          anyOf:
          - type: string
          - type: 'null'
          description: Accounting customer ID
        invoiceIds:
          type: array
          items:
            type: string
          description: Associated accounting invoice IDs
        sentBy:
          anyOf:
          - type: string
          - type: 'null'
          description: Display name of the user who sent the email
        reminderRule:
          $ref: '#/components/schemas/EmailReminderRule'
        hasAttachments:
          type: boolean
        html:
          anyOf:
          - type: string
          - type: 'null'
          description: HTML body of the email
        text:
          anyOf:
          - type: string
          - type: 'null'
          description: Plain-text body of the email
        events:
          type: array
          items:
            $ref: '#/components/schemas/EmailEvent'
          description: Full delivery event timeline
      required:
      - id
      - type
      - status
      - subject
      - from
      - to
      - cc
      - bcc
      - sentDate
      - opened
      - lastOpened
      - bounced
      - delivered
      - customerId
      - invoiceIds
      - sentBy
      - reminderRule
      - hasAttachments
      - html
      - text
      - events
      additionalProperties: false
      description: A sent email (detail, with body and event timeline)
  parameters:
    RequestIdHeader:
      name: X-Request-ID
      in: header
      required: false
      description: Optional client-supplied unique ID for one request. The server generates a UUID v4 if omitted and always echoes the value in the response.
      schema:
        type: string
        format: uuid
    CorrelationIdHeader:
      name: X-Correlation-ID
      in: header
      required: false
      description: Optional ID that flows across service boundaries for distributed tracing. The server generates a UUID v4 if omitted and always echoes the value in the response.
      schema:
        type: string
        format: uuid
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Organization-scoped API key. Send it in the x-api-key header. Available on organization endpoints only.
x-speakeasy-retries:
  strategy: backoff
  backoff:
    initialInterval: 500
    maxInterval: 60000
    maxElapsedTime: 3600000
    exponent: 1.5
  statusCodes:
  - 5XX
  retryConnectionErrors: true
x-provenance:
  method: searched
  source: https://developer.benjipays.com/reference
  harvested: '2026-11-02'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://developer.benjipays.com/reference/delete_v2-customers-customerid-alert.md
  - https://developer.benjipays.com/reference/delete_v2-customers-customerid-notes-noteid.md
  - https://developer.benjipays.com/reference/get_v2-accounting-accounts.md
  - https://developer.benjipays.com/reference/get_v2-autoprocessing-forecast.md
  - https://developer.benjipays.com/reference/get_v2-customers-customerid-notes-noteid.md
  - https://developer.benjipays.com/reference/get_v2-customers-customerid-notes.md
  - https://developer.benjipays.com/reference/get_v2-customers-customerid.md
  - https://developer.benjipays.com/reference/get_v2-customers.md
  - https://developer.benjipays.com/reference/get_v2-emails-emailid.md
  - https://developer.benjipays.com/reference/get_v2-emails.md
  - https://developer.benjipays.com/reference/get_v2-gateways-capabilities.md
  - https://developer.benjipays.com/reference/get_v2-gateways.md
  - https://developer.benjipays.com/reference/get_v2-invoices-invoiceid-pdf.md
  - https://developer.benjipays.com/reference/get_v2-invoices-invoiceid.md
  - https://developer.benjipays.com/reference/get_v2-invoices.md
  - https://developer.benjipays.com/reference/get_v2-notes-categories.md
  - https://developer.benjipays.com/reference/get_v2-notes-statuses.md
  - https://developer.benjipays.com/reference/get_v2-organization.md
  - https://developer.benjipays.com/reference/get_v2-payment-method-requests-paymentmethodrequestid.md
  - https://developer.benjipays.com/reference/get_v2-payment-method-requests.md
  - https://developer.benjipays.com/reference/get_v2-payment-methods-id.md
  - https://developer.benjipays.com/reference/get_v2-payment-methods.md
  - https://developer.benjipays.com/reference/get_v2-settings.md
  - https://developer.benjipays.com/reference/get_v2-transactions-transactionid-receipt.md
  - https://developer.benjipays.com/reference/get_v2-transactions.md
  - https://developer.benjipays.com/reference/get_v2-users.md
  - https://developer.benjipays.com/reference/get_v2-whoami-1.md


# --- truncated at 32 KB (33 KB total) ---
# Full source: https://artifacts.apis.io/benjipays-com/openapi/benjipays-com-emails-api-openapi.yml