NOWPayments Payments API

Payment creation and management

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/now-payments-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 email required.

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

OpenAPI Specification

now-payments-payments-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: NOWPayments Authentication Payments API
  description: 'NOWPayments is a crypto payment gateway that enables businesses to accept 300+ cryptocurrencies, create payment invoices, process recurring subscriptions, and manage merchant mass payouts. The API supports automatic coin conversion, IPN webhooks, and fiat withdrawals.

    '
  version: 1.0.0
  contact:
    name: NOWPayments Support
    email: support@nowpayments.io
    url: https://nowpayments.io/help
  termsOfService: https://nowpayments.io/terms
servers:
- url: https://api.nowpayments.io/v1
  description: Production server
- url: https://api.sandbox.nowpayments.io/v1
  description: Sandbox server
security:
- ApiKeyAuth: []
tags:
- name: Payments
  description: Payment creation and management
paths:
  /payment:
    post:
      operationId: createPayment
      summary: Create a payment
      description: 'Creates a new cryptocurrency payment. The customer will send crypto to the returned pay_address. Supports automatic coin conversion and IPN webhook notifications.

        '
      tags:
      - Payments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePaymentRequest'
            example:
              price_amount: 100
              price_currency: usd
              pay_currency: btc
              ipn_callback_url: https://example.com/ipn
              order_id: ORDER-12345
              order_description: Apple Macbook Pro 2019 x 1
      responses:
        '201':
          description: Payment created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
    get:
      operationId: listPayments
      summary: List payments
      description: Returns a paginated list of all payments for the merchant account.
      tags:
      - Payments
      parameters:
      - name: limit
        in: query
        description: Number of records per page (default 10)
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 500
      - name: page
        in: query
        description: Page number (0-indexed)
        schema:
          type: integer
          default: 0
          minimum: 0
      - name: sortBy
        in: query
        description: Field to sort by
        schema:
          type: string
          enum:
          - payment_id
          - payment_status
          - pay_address
          - price_amount
          - price_currency
          - pay_amount
          - pay_currency
          - order_id
          - created_at
          - updated_at
      - name: orderBy
        in: query
        description: Sort direction
        schema:
          type: string
          enum:
          - asc
          - desc
      - name: dateFrom
        in: query
        description: Filter payments from this date (ISO 8601)
        schema:
          type: string
          format: date-time
      - name: dateTo
        in: query
        description: Filter payments up to this date (ISO 8601)
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: List of payments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /payment/{payment_id}:
    get:
      operationId: getPaymentStatus
      summary: Get payment status
      description: Returns the current status and details of a specific payment.
      tags:
      - Payments
      parameters:
      - name: payment_id
        in: path
        required: true
        description: Unique payment identifier
        schema:
          type: string
          example: '5045208125'
      responses:
        '200':
          description: Payment details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentStatusResponse'
              example:
                payment_id: 5045208125
                payment_status: waiting
                pay_address: 3EktnHQD7RiAE6uzMj2ZifT9YgRrkSgzQX
                price_amount: 100
                price_currency: usd
                pay_amount: 0.00267
                actually_paid: 0
                pay_currency: btc
                order_id: ORDER-12345
                order_description: Apple Macbook Pro 2019 x 1
                purchase_id: 4944856743
                created_at: '2021-01-15T12:00:00.000Z'
                updated_at: '2021-01-15T12:00:00.000Z'
                outcome_amount: 0.00267
                outcome_currency: btc
        '404':
          $ref: '#/components/responses/NotFound'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    PaymentResponse:
      type: object
      properties:
        payment_id:
          type: integer
          description: Unique payment identifier
        payment_status:
          type: string
          description: Current payment status
          enum:
          - waiting
          - confirming
          - confirmed
          - sending
          - partially_paid
          - finished
          - failed
          - refunded
          - expired
        pay_address:
          type: string
          description: Cryptocurrency address to which the customer should send payment
        price_amount:
          type: number
          format: double
          description: Requested payment amount in fiat currency
        price_currency:
          type: string
          description: Fiat currency of the price amount
        pay_amount:
          type: number
          format: double
          description: Amount to pay in cryptocurrency
        pay_currency:
          type: string
          description: Cryptocurrency for payment
        order_id:
          type: string
          description: Merchant order ID
        order_description:
          type: string
          description: Order description
        ipn_callback_url:
          type: string
          description: IPN callback URL
        created_at:
          type: string
          format: date-time
          description: Payment creation timestamp
        updated_at:
          type: string
          format: date-time
          description: Payment last update timestamp
        purchase_id:
          type: integer
          description: Purchase identifier
    PaymentListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/PaymentStatusResponse'
        limit:
          type: integer
          description: Records per page
        page:
          type: integer
          description: Current page number
        pagesCount:
          type: integer
          description: Total number of pages
        total:
          type: integer
          description: Total number of payments
    CreatePaymentRequest:
      type: object
      required:
      - price_amount
      - price_currency
      - pay_currency
      properties:
        price_amount:
          type: number
          format: double
          description: Fiat equivalent of the price to be paid in crypto
          example: 100
        price_currency:
          type: string
          description: Fiat currency in which price_amount is specified (e.g., usd, eur)
          example: usd
        pay_amount:
          type: number
          format: double
          description: Amount users have to pay in crypto (overrides price_amount conversion)
        pay_currency:
          type: string
          description: Cryptocurrency in which to receive payment
          example: btc
        ipn_callback_url:
          type: string
          format: uri
          description: URL to receive IPN callback notifications
        order_id:
          type: string
          description: Merchant order ID for reconciliation
          example: ORDER-12345
        order_description:
          type: string
          description: Human-readable order description
          example: Apple Macbook Pro 2019 x 1
        purchase_id:
          type: string
          description: ID of existing purchase to create additional payment for
        payout_address:
          type: string
          description: Custom payout address (overrides account default)
        payout_currency:
          type: string
          description: Currency for the payout address (required when payout_address is specified)
        payout_extra_id:
          type: string
          description: Extra ID, memo, or tag for the payout address
        fixed_rate:
          type: boolean
          description: Use fixed exchange rate for the payment
    PaymentStatusResponse:
      allOf:
      - $ref: '#/components/schemas/PaymentResponse'
      - type: object
        properties:
          actually_paid:
            type: number
            format: double
            description: Amount actually received so far
          outcome_amount:
            type: number
            format: double
            description: Amount to be credited to merchant after conversion
          outcome_currency:
            type: string
            description: Currency of the outcome amount
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
          description: Error message
        errors:
          type: array
          description: Detailed error list
          items:
            type: string
  responses:
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: NOWPayments API key obtained from your merchant dashboard
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT token obtained from the /auth endpoint (required for mass payout operations)
externalDocs:
  description: NOWPayments API Documentation
  url: https://nowpayments.io/help/api