Whop Payments API

Charges, refunds, retries, and voids.

Business capability
Payment Collection & Dunning BC-4250.40

Operations 6

GET /payments List payments #
POST /payments Create a payment #
GET /payments/{id} Retrieve a payment #
POST /payments/{id}/refund Refund a payment #
POST /payments/{id}/retry Retry a failed payment #
POST /payments/{id}/void Void a payment #

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/whop-payments-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

whop-payments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Whop REST API (v1) Payments API
  description: The Whop REST API (v1) is the current primary REST surface for the Whop digital-products / memberships / creator-commerce platform.
  version: '1.0'
  contact:
    name: API Evangelist
    email: kin@apievangelist.com
    url: https://apievangelist.com
  license:
    name: API documentation - Whop Terms of Service
    url: https://whop.com/terms-of-service/
servers:
- url: https://api.whop.com/api/v1
  description: Production
- url: https://sandbox-api.whop.com/api/v1
  description: Sandbox
security:
- bearerAuth: []
tags:
- name: Payments
  description: Charges, refunds, retries, and voids.
paths:
  /payments:
    get:
      operationId: listPayments
      tags:
      - Payments
      summary: List payments
      parameters:
      - name: after
        in: query
        schema:
          type: string
      - name: before
        in: query
        schema:
          type: string
      - name: first
        in: query
        schema:
          type: integer
      - name: last
        in: query
        schema:
          type: integer
      - name: company_id
        in: query
        schema:
          type: string
      - name: direction
        in: query
        schema:
          type: string
          enum:
          - asc
          - desc
      - name: order
        in: query
        schema:
          type: string
          enum:
          - final_amount
          - created_at
          - paid_at
      - name: product_ids
        in: query
        schema:
          type: array
          items:
            type: string
      - name: plan_ids
        in: query
        schema:
          type: array
          items:
            type: string
      - name: statuses
        in: query
        schema:
          type: array
          items:
            type: string
      - name: substatuses
        in: query
        schema:
          type: array
          items:
            type: string
      - name: billing_reasons
        in: query
        schema:
          type: array
          items:
            type: string
      - name: currencies
        in: query
        schema:
          type: array
          items:
            type: string
      - name: created_before
        in: query
        schema:
          type: string
          format: date-time
      - name: created_after
        in: query
        schema:
          type: string
          format: date-time
      - name: null
        in: query
        schema:
          type: string
        description: Search by user ID
        email: null
        or username.: null
      - name: include_free
        in: query
        schema:
          type: boolean
        description: Include zero-amount payments.
      responses:
        '200':
          description: A page of payments.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Payment'
                  page_info:
                    $ref: '#/components/schemas/PageInfo'
    post:
      operationId: createPayment
      tags:
      - Payments
      summary: Create a payment
      description: Charge a saved payment method off-session for a member.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        '201':
          description: The created payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
  /payments/{id}:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: retrievePayment
      tags:
      - Payments
      summary: Retrieve a payment
      responses:
        '200':
          description: A payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
  /payments/{id}/refund:
    post:
      operationId: refundPayment
      tags:
      - Payments
      summary: Refund a payment
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The refunded payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
  /payments/{id}/retry:
    post:
      operationId: retryPayment
      tags:
      - Payments
      summary: Retry a failed payment
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
  /payments/{id}/void:
    post:
      operationId: voidPayment
      tags:
      - Payments
      summary: Void a payment
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The voided payment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Payment'
components:
  schemas:
    Payment:
      type: object
      description: A payment. Fields taken from the documented List payments (PaymentListItem) response.
      properties:
        id:
          type: string
        status:
          type: string
        substatus:
          type:
          - string
          - 'null'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        paid_at:
          type:
          - string
          - 'null'
          format: date-time
        total:
          type: number
        subtotal:
          type: number
        currency:
          type: string
        refunded_amount:
          type:
          - number
          - 'null'
        card_last4:
          type:
          - string
          - 'null'
        billing_reason:
          type:
          - string
          - 'null'
        failure_message:
          type:
          - string
          - 'null'
        user:
          type: object
          additionalProperties: true
        plan:
          type: object
          additionalProperties: true
        product:
          type: object
          additionalProperties: true
        membership:
          type: object
          additionalProperties: true
        payment_method:
          type: object
          additionalProperties: true
        company:
          type: object
          additionalProperties: true
        promo_code:
          type:
          - object
          - 'null'
          additionalProperties: true
    PageInfo:
      type: object
      description: Cursor pagination metadata.
      properties:
        has_next_page:
          type: boolean
        has_previous_page:
          type: boolean
        start_cursor:
          type:
          - string
          - 'null'
        end_cursor:
          type:
          - string
          - 'null'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Whop API key
      description: 'Bearer token authentication. Use a Company/Account API key or an App API key in the `Authorization: Bearer <API_KEY>` header. OAuth access tokens are used when acting on behalf of a signed-in Whop user.'