Skip to main content
POST
/
invoices
/
create
curl --request POST \
  --url https://app.cryptoprocessing.com/api/v2/invoices/create \
  --header 'Content-Type: application/json' \
  --header 'X-Processing-Key: <api-key>' \
  --header 'X-Processing-Signature: <x-processing-signature>' \
  --data '
{
  "timer": false,
  "title": "Invoice Title",
  "currency": "EUR",
  "amount": 100,
  "foreign_id": "test_foreign_id_0344",
  "end_user_reference": "12345",
  "url_success": "https://example.com/success",
  "url_failed": "https://example.com/failed",
  "email_user": "[email protected]",
  "sender_type": "natural",
  "sender_data": {
    "first_name": "Friedrich",
    "last_name": "Müller",
    "date_of_birth": "1995-08-17"
  }
}
'
{
  "data": {
    "id": 826900,
    "url": "https://invoices.sandbox.cryptoprocessing.com/invoice/Jyf1cQ",
    "foreign_id": "test_foreign_id_0344",
    "end_user_reference": "12345",
    "address": null,
    "title": "Invoice Title",
    "status": "created",
    "currency": "EUR",
    "amount": "100.00000000",
    "sender_currency": null,
    "sender_amount": null,
    "fixed_at": null,
    "release_at": null,
    "seconds_left": null
  }
}
CryptoProcessing is required to collect sender data in compliance with the MiCA regulations. For more details, see About user data collection. The sender_data and the end_user_reference you provide must be associated with the same customer.

Authorizations

X-Processing-Key
string
header
required

Your API key.

Headers

X-Processing-Signature
string
required

Hex-encoded HMAC-SHA512 signature of the request body, generated using your secret key.

Body

application/json
end_user_reference
string
required

A persistent internal user ID used to track all requests for the same end user. Must be consistent across requests and must not contain personal data, such as the user's name or email address. Put customer personal details in sender_data.

timer
boolean
required

If this parameter is set to true, the invoice will expire in 15 minutes after it is created.

title
string
required

Invoice title that the customer will see.

Required string length: 1 - 50
foreign_id
string
required

This invoice's unique ID in your system.

currency
string
required

Currency you want to receive deposits in. For a list of all available currencies, see API currency codes.

amount
number
required

Invoice amount that you want to receive from the customer.

url_success
string<uri>
required

The URL the customer will be redirected to in case of a successful invoice payment.

url_failed
string<uri>
required

The URL the customer will be redirected to in case of an unsuccessful invoice payment.

email_user
string<email>
required

If the amount the customer pays does not match the amount you set for the invoice, Cryptoprocessing will send an email to this address instructing the customer on how they can receive a refund. If they paid less, they will receive a full refund. If they paid more, the customer will get instructions on how to be refunded the difference.

sender_type
enum<string>
required

Whether the sender is a natural person (natural) or a legal entity (legal). If you include the sender_type parameter in the request, sender_data is also required.

Available options:
natural,
legal
sender_data
object
required

If the sender is a natural person, include their first_name, last_name and date_of_birth. If the sender is a legal entity, include their legal_name and country_of_registration.

type
enum<string>

For partial pay invoices, set this parameter to good_until_expired. For standard invoices, use fill_or_kill or leave this parameter empty.

Available options:
fill_or_kill,
good_until_expired
description
string

Invoice description that the customer will see.

Maximum string length: 1000
sender_currency
string

Currency the customer will pay in. If provided together with timer: true, the invoice is created with a fixed payment currency.

Response

Created

data
object
Last modified on April 28, 2026