Cryptomus Payments API
Create and manage payment invoices for merchant integrations
Create and manage payment invoices for merchant integrations
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/cryptomus-payments-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Cryptomus Exchange Payments API
description: 'Cryptomus is a cryptocurrency payment gateway providing REST APIs for accepting crypto payments, creating invoices, processing payouts, managing recurring billing, and accessing real-time exchange rate and market data across 100+ cryptocurrencies.
'
version: 1.0.0
contact:
name: Cryptomus Support
url: https://cryptomus.com/
termsOfService: https://cryptomus.com/terms
license:
name: Proprietary
url: https://cryptomus.com/privacy
servers:
- url: https://api.cryptomus.com/v1
description: Cryptomus API v1 (Merchant & Payout)
- url: https://api.cryptomus.com/v2
description: Cryptomus API v2 (Exchange & Market Data)
security:
- MerchantAuth: []
tags:
- name: Payments
description: Create and manage payment invoices for merchant integrations
paths:
/payment:
post:
operationId: createInvoice
summary: Create a payment invoice
description: Creates a cryptocurrency payment invoice for merchant integrations.
tags:
- Payments
parameters:
- in: header
name: sign
required: true
schema:
type: string
description: MD5(base64_encode(body) + API_KEY)
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- amount
- currency
- order_id
properties:
amount:
type: string
description: Payment amount (e.g., "10.28")
currency:
type: string
description: Currency code
order_id:
type: string
minLength: 1
maxLength: 128
description: Unique merchant order ID (alphanumeric, dashes, underscores)
network:
type: string
description: Blockchain network code
url_return:
type: string
minLength: 6
maxLength: 255
description: Return URL after payment
url_success:
type: string
minLength: 6
maxLength: 255
description: Success redirect URL
url_callback:
type: string
minLength: 6
maxLength: 255
description: Webhook URL for payment status notifications
is_payment_multiple:
type: boolean
default: true
description: Allow multiple payments for the same invoice
lifetime:
type: integer
minimum: 300
maximum: 43200
default: 3600
description: Invoice lifespan in seconds
to_currency:
type: string
description: Target cryptocurrency for conversion
subtract:
type: integer
minimum: 0
maximum: 100
default: 0
description: Commission percentage deducted from payment amount
accuracy_payment_percent:
type: number
minimum: 0
maximum: 5
default: 0
description: Accepted payment tolerance percentage
additional_data:
type: string
maxLength: 255
description: Internal notes
currencies:
type: array
items:
type: string
description: Allowed payment currencies
except_currencies:
type: array
items:
type: string
description: Excluded payment currencies
course_source:
type: string
enum:
- Binance
- BinanceP2P
- Exmo
- Kucoin
description: Exchange rate source
from_referral_code:
type: string
description: Referral connection code
discount_percent:
type: integer
minimum: -99
maximum: 100
description: Discount (-) or commission (+) percentage applied
is_refresh:
type: boolean
default: false
description: Refresh an expired invoice
responses:
'200':
description: Invoice created successfully
content:
application/json:
schema:
type: object
properties:
state:
type: integer
result:
$ref: '#/components/schemas/PaymentObject'
'422':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/payment/info:
post:
operationId: getPaymentInfo
summary: Get payment information
description: Retrieve details of a specific payment invoice.
tags:
- Payments
parameters:
- in: header
name: sign
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
uuid:
type: string
format: uuid
description: Invoice UUID
order_id:
type: string
minLength: 1
maxLength: 128
description: Invoice order ID (takes precedence if both provided)
responses:
'200':
description: Payment information retrieved
content:
application/json:
schema:
type: object
properties:
state:
type: integer
result:
$ref: '#/components/schemas/PaymentObject'
'422':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/payment/list:
post:
operationId: listPayments
summary: List payment history
description: Retrieve a paginated list of payment invoices with optional date filters.
tags:
- Payments
parameters:
- in: header
name: sign
required: true
schema:
type: string
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
date_from:
type: string
description: Filter from date (YYYY-MM-DD H:mm:ss)
date_to:
type: string
description: Filter to date (YYYY-MM-DD H:mm:ss)
cursor:
type: string
description: Pagination cursor
responses:
'200':
description: Payment list retrieved
content:
application/json:
schema:
type: object
properties:
state:
type: integer
result:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/PaymentObject'
paginate:
$ref: '#/components/schemas/PaginateResult'
/payment/services:
post:
operationId: listPaymentServices
summary: List available payment services
description: Retrieve available payment networks and currencies with limits and commissions.
tags:
- Payments
parameters:
- in: header
name: sign
required: true
schema:
type: string
requestBody:
required: false
content:
application/json:
schema:
type: object
responses:
'200':
description: Payment services list
content:
application/json:
schema:
type: object
properties:
state:
type: integer
result:
type: array
items:
$ref: '#/components/schemas/ServiceItem'
/payment/refund:
post:
operationId: refundPayment
summary: Refund a payment
description: Issue a refund for a completed payment to a specified address.
tags:
- Payments
parameters:
- in: header
name: sign
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- address
- is_subtract
properties:
uuid:
type: string
format: uuid
description: Invoice UUID
order_id:
type: string
minLength: 1
maxLength: 128
description: Invoice order ID
address:
type: string
description: Wallet address to refund to
is_subtract:
type: boolean
description: If true, deduct commission from merchant balance; if false, reduce refund amount
responses:
'200':
description: Refund initiated
content:
application/json:
schema:
type: object
properties:
state:
type: integer
result:
type: array
'422':
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/payment/mark-as-paid:
post:
operationId: markPaymentAsPaid
summary: Mark payment as paid
description: Manually mark an invoice as paid (test/internal use).
tags:
- Payments
parameters:
- in: header
name: sign
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
uuid:
type: string
format: uuid
order_id:
type: string
responses:
'200':
description: Payment marked as paid
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
message:
type: string
/payment/qr:
post:
operationId: getInvoiceQrCode
summary: Generate invoice QR code
description: Generate a QR code image for a payment invoice.
tags:
- Payments
parameters:
- in: header
name: sign
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- merchant_payment_uuid
properties:
merchant_payment_uuid:
type: string
format: uuid
description: Invoice identifier
responses:
'200':
description: QR code image returned
content:
application/json:
schema:
type: object
properties:
state:
type: integer
result:
type: object
properties:
image:
type: string
description: Base64 encoded QR code image
components:
schemas:
ServiceItem:
type: object
properties:
network:
type: string
currency:
type: string
is_available:
type: boolean
limit:
type: object
properties:
min_amount:
type: string
max_amount:
type: string
commission:
type: object
properties:
fee_amount:
type: string
percent:
type: string
PaginateResult:
type: object
properties:
count:
type: integer
description: Number of items on the current page
hasPages:
type: boolean
description: Whether multiple pages exist
nextCursor:
type: string
nullable: true
description: Cursor for the next page
previousCursor:
type: string
nullable: true
description: Cursor for the previous page
perPage:
type: integer
description: Maximum items per page
PaymentObject:
type: object
properties:
uuid:
type: string
format: uuid
order_id:
type: string
amount:
type: string
payment_amount:
type: string
nullable: true
payer_amount:
type: string
nullable: true
discount_percent:
type: integer
nullable: true
discount:
type: string
payer_currency:
type: string
nullable: true
currency:
type: string
merchant_amount:
type: string
nullable: true
network:
type: string
nullable: true
address:
type: string
nullable: true
from:
type: string
nullable: true
txid:
type: string
nullable: true
payment_status:
type: string
enum:
- process
- check
- paid
- paid_over
- fail
- wrong_amount
- cancel
- system_fail
- refund_process
- refund_fail
- refund_paid
url:
type: string
format: uri
expired_at:
type: integer
description: Unix timestamp of expiry
is_final:
type: boolean
additional_data:
type: string
nullable: true
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
ErrorResponse:
type: object
properties:
state:
type: integer
description: Error state code (1 = error)
message:
type: string
errors:
type: object
additionalProperties:
type: array
items:
type: string
securitySchemes:
MerchantAuth:
type: apiKey
in: header
name: merchant
description: 'Merchant UUID from personal account settings. All requests also require a `sign` header computed as MD5(base64_encode(request_body) + API_KEY).
'