blindpay-com Terms Of Service API

The Terms Of Service API from blindpay-com — 2 operation(s) for terms of service.

Operations 2

POST /v1/e/instances/{instance_id}/tos Initiate Terms of Service #
POST /v1/instances/{instance_id}/tos/passthrough Create Passthrough Terms of Service Acceptance #

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/blindpay-com:blindpay-com-terms-of-service-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

blindpay-com-terms-of-service-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: BlindPay Terms Of Service API
security:
- Bearer: []
tags:
- name: Terms Of Service
paths:
  /v1/e/instances/{instance_id}/tos:
    post:
      x-sdk: true
      tags:
      - Terms Of Service
      summary: Initiate Terms of Service
      description: Returns a URL where the end customer accepts BlindPay's terms of service. A person must open it in a browser and accept; it cannot be accepted through the API. After acceptance the browser is sent to redirect_url with tos_id as a query parameter, and a tos.accept webhook fires. Pass that tos_id (to_...) to Create Customer. idempotency_key is any unique string and cannot be reused.
      parameters:
      - schema:
          type: string
          minLength: 15
          maxLength: 15
          example: in_000000000000
        required: true
        name: instance_id
        in: path
      requestBody:
        description: Initiate a new terms of service
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiateTosIn'
      responses:
        '200':
          description: Initiate terms of service
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitiateTosOut'
        '400':
          description: 'Possible error codes: `VALIDATION_FAILED`. See the Error responses section for retry semantics.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                VALIDATION_FAILED:
                  summary: VALIDATION_FAILED
                  value:
                    success: false
                    code: VALIDATION_FAILED
                    message: validation_failed
                    description: The request contains invalid fields. Check the errors list for details.
                    errors: []
                    trace_id: 0af7651916cd43dd8448eb211c80319c
        '401':
          description: 'Possible error codes: `AUTH_UNAUTHORIZED`. See the Error responses section for retry semantics.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                AUTH_UNAUTHORIZED:
                  summary: AUTH_UNAUTHORIZED
                  value:
                    success: false
                    code: AUTH_UNAUTHORIZED
                    message: unauthorized
                    description: Authentication failed. Check your API key or session and try again.
                    errors: []
                    trace_id: 0af7651916cd43dd8448eb211c80319c
        '403':
          description: 'Possible error codes: `AUTH_FORBIDDEN`. See the Error responses section for retry semantics.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                AUTH_FORBIDDEN:
                  summary: AUTH_FORBIDDEN
                  value:
                    success: false
                    code: AUTH_FORBIDDEN
                    message: user_not_allowed
                    description: You do not have permission to perform this action.
                    errors: []
                    trace_id: 0af7651916cd43dd8448eb211c80319c
        '429':
          description: 'Possible error codes: `AUTH_RATE_LIMITED`. See the Error responses section for retry semantics.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                AUTH_RATE_LIMITED:
                  summary: AUTH_RATE_LIMITED
                  value:
                    success: false
                    code: AUTH_RATE_LIMITED
                    message: card_payment_rate_limit_exceeded
                    description: Too many requests. Wait a moment and try again.
                    errors: []
                    trace_id: 0af7651916cd43dd8448eb211c80319c
        '500':
          description: 'Possible error codes: `INTERNAL_ERROR`. See the Error responses section for retry semantics.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                INTERNAL_ERROR:
                  summary: INTERNAL_ERROR
                  value:
                    success: false
                    code: INTERNAL_ERROR
                    message: internal_error
                    description: Something went wrong on our side. Try again, and contact support with the trace ID if the problem persists.
                    errors: []
                    trace_id: 0af7651916cd43dd8448eb211c80319c
      operationId: postV1EInstancesByInstanceIdTos
      x-operation-id-source: derived
  /v1/instances/{instance_id}/tos/passthrough:
    post:
      x-sdk: false
      x-mcp: false
      tags:
      - Terms Of Service
      summary: Create Passthrough Terms of Service Acceptance
      description: For instances with passthrough Terms of Service enabled that collect the acceptance on their own page. Call it from your server right after the customer accepts, with the IP address and User-Agent collected from the customer browser, and use the returned tos_id when creating the customer. The acceptance time is recorded when BlindPay receives the request. Submissions are validated and monitored as set out in the Passthrough Terms of Service Partner Agreement (https://blindpay.com/passthrough-tos-partner-agreement).
      parameters:
      - schema:
          type: string
          minLength: 15
          maxLength: 15
          example: in_000000000000
        required: true
        name: instance_id
        in: path
      requestBody:
        description: Terms of service acceptance collected on the partner page
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePassthroughTosIn'
      responses:
        '200':
          description: Terms of service acceptance recorded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptTosOut'
        '400':
          description: 'Possible error codes: `TOS_PASSTHROUGH_ATTESTATION_INVALID`, `TOS_PASSTHROUGH_SETUP_INCOMPLETE`, `VALIDATION_FAILED`. See the Error responses section for retry semantics.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                TOS_PASSTHROUGH_ATTESTATION_INVALID:
                  summary: TOS_PASSTHROUGH_ATTESTATION_INVALID
                  value:
                    success: false
                    code: TOS_PASSTHROUGH_ATTESTATION_INVALID
                    message: passthrough_tos_attestation_invalid
                    description: The acceptance data does not look like it was collected from the customer device. Send the public IP address and the User-Agent of the customer browser, right after the acceptance.
                    errors: []
                    trace_id: 0af7651916cd43dd8448eb211c80319c
                TOS_PASSTHROUGH_SETUP_INCOMPLETE:
                  summary: TOS_PASSTHROUGH_SETUP_INCOMPLETE
                  value:
                    success: false
                    code: TOS_PASSTHROUGH_SETUP_INCOMPLETE
                    message: passthrough_tos_setup_incomplete
                    description: 'Finish the passthrough Terms of Service setup in the instance settings: add the terms link and screenshot, then accept the partner agreement.'
                    errors: []
                    trace_id: 0af7651916cd43dd8448eb211c80319c
                VALIDATION_FAILED:
                  summary: VALIDATION_FAILED
                  value:
                    success: false
                    code: VALIDATION_FAILED
                    message: validation_failed
                    description: The request contains invalid fields. Check the errors list for details.
                    errors: []
                    trace_id: 0af7651916cd43dd8448eb211c80319c
        '401':
          description: 'Possible error codes: `AUTH_UNAUTHORIZED`. See the Error responses section for retry semantics.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                AUTH_UNAUTHORIZED:
                  summary: AUTH_UNAUTHORIZED
                  value:
                    success: false
                    code: AUTH_UNAUTHORIZED
                    message: unauthorized
                    description: Authentication failed. Check your API key or session and try again.
                    errors: []
                    trace_id: 0af7651916cd43dd8448eb211c80319c
        '403':
          description: 'Possible error codes: `AUTH_FORBIDDEN`, `TOS_PASSTHROUGH_NOT_ENABLED`. See the Error responses section for retry semantics.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                AUTH_FORBIDDEN:
                  summary: AUTH_FORBIDDEN
                  value:
                    success: false
                    code: AUTH_FORBIDDEN
                    message: user_not_allowed
                    description: You do not have permission to perform this action.
                    errors: []
                    trace_id: 0af7651916cd43dd8448eb211c80319c
                TOS_PASSTHROUGH_NOT_ENABLED:
                  summary: TOS_PASSTHROUGH_NOT_ENABLED
                  value:
                    success: false
                    code: TOS_PASSTHROUGH_NOT_ENABLED
                    message: passthrough_tos_not_enabled
                    description: Passthrough Terms of Service is not enabled for this instance. Contact support to enable it.
                    errors: []
                    trace_id: 0af7651916cd43dd8448eb211c80319c
        '404':
          description: 'Possible error codes: `CUSTOMERS_NOT_FOUND`. See the Error responses section for retry semantics.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                CUSTOMERS_NOT_FOUND:
                  summary: CUSTOMERS_NOT_FOUND
                  value:
                    success: false
                    code: CUSTOMERS_NOT_FOUND
                    message: customer_not_found
                    description: The requested customer was not found.
                    errors: []
                    trace_id: 0af7651916cd43dd8448eb211c80319c
        '429':
          description: 'Possible error codes: `AUTH_RATE_LIMITED`. See the Error responses section for retry semantics.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                AUTH_RATE_LIMITED:
                  summary: AUTH_RATE_LIMITED
                  value:
                    success: false
                    code: AUTH_RATE_LIMITED
                    message: card_payment_rate_limit_exceeded
                    description: Too many requests. Wait a moment and try again.
                    errors: []
                    trace_id: 0af7651916cd43dd8448eb211c80319c
        '500':
          description: 'Possible error codes: `INTERNAL_ERROR`. See the Error responses section for retry semantics.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                INTERNAL_ERROR:
                  summary: INTERNAL_ERROR
                  value:
                    success: false
                    code: INTERNAL_ERROR
                    message: internal_error
                    description: Something went wrong on our side. Try again, and contact support with the trace ID if the problem persists.
                    errors: []
                    trace_id: 0af7651916cd43dd8448eb211c80319c
      operationId: postV1InstancesByInstanceIdTosPassthrough
      x-operation-id-source: derived
components:
  schemas:
    InitiateTosIn:
      type: object
      properties:
        idempotency_key:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        customer_id:
          type:
          - string
          - 'null'
          minLength: 15
          maxLength: 15
          example: re_000000000000
        redirect_url:
          type:
          - string
          - 'null'
          format: uri
      required:
      - idempotency_key
    Error:
      type: object
      properties:
        success:
          type: boolean
          example: false
        code:
          type: string
          description: Stable error code. See the Error codes section for the full list.
          example: PAYOUTS_INSUFFICIENT_BALANCE
        message:
          type: string
          description: Legacy machine-readable message. Prefer `code` for programmatic handling.
          example: not_enough_balance
        description:
          type: string
          description: Human-readable explanation, safe to show to end users.
          example: There is not enough balance to complete this payout. Fund your balance and try again.
        errors:
          type: array
          items:
            type: string
          example:
          - Bad Request
        trace_id:
          type: string
          description: Request trace ID. Include it when contacting support.
          example: 0af7651916cd43dd8448eb211c80319c
      required:
      - success
      - message
      - errors
    CreatePassthroughTosIn:
      type: object
      properties:
        idempotency_key:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        customer_id:
          type:
          - string
          - 'null'
          minLength: 15
          maxLength: 15
          example: re_000000000000
        ip_address:
          type: string
          format: ip
          description: Public IP address of the customer device, as seen by your edge. Not the IP address of your servers.
          example: 191.34.12.8
        user_agent:
          type: string
          minLength: 1
          maxLength: 1024
          description: The complete, unmodified User-Agent header sent by the browser of the customer
          example: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
      required:
      - idempotency_key
      - ip_address
      - user_agent
    AcceptTosOut:
      type: object
      properties:
        tos_id:
          type: string
          minLength: 15
          maxLength: 15
          example: to_000000000000
        idempotency_key:
          type: string
          format: uuid
          example: 123e4567-e89b-12d3-a456-426614174000
        customer_id:
          type:
          - string
          - 'null'
          minLength: 15
          maxLength: 15
          example: re_000000000000
        version:
          type:
          - string
          - 'null'
          enum:
          - 1.0.0
          - 1.0.1
          example: 1.0.0
      required:
      - tos_id
      - idempotency_key
    InitiateTosOut:
      type: object
      properties:
        url:
          type: string
          format: uri
          example: https://app.blindpay.com/e/terms-of-service?session_token=SESSION_TOKEN_FROM_INITIATE_TOS_RESPONSE
      required:
      - url
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT