Charges
Charges represent a payment by your users, and have a wealth of data associated with it. Each charge has an associated checkout, which is a hosted page where a user can perform the payment. You'll need to redirect your users there so they can pay the charge. Note that charges (and it's associated checkouts) expire after a determined amount of time. Any payment done after the expiry of the charge will be refused.
note
To understand the difference between PAID
and CONFIRMED
status later on, just bear in mind that a PAID
orders mean that the payment was sent, while CONFIRMED
means the payment is successful and the funds are in your account. If you are familiar with credit cards payment processing, they are the equivalent to AUTHORIZED
and CAPTURED
payments using credit cards.
Note that, contrary to usual fiat working, cryptocurrency payments can't be reversed. Once the funds hit your account, they are yours and can't be taken away.
tip
Payments done from Criptan by your client are instantaneous and automatically confirmed, and are even faster and more secure than a normal cryptocurrency or credit card payment.
Create charge
To request a cryptocurrency payment, you create a charge. Since cryptocurrency payments are push payments, a charge will expire after a waiting period (payment window) if no payment has been detected. Charges are identified by a unique code.
HTTP Request
POST https://api.criptan.es/business/charge
Request arguments
Parameter | Type | Required | Description |
---|---|---|---|
currency | string | Required | Fiat currency identifier (e.g: 'EUR' ) |
amount | number | Required | Amount charged in fiat currency |
description | string | Required | Description of the payment |
products | array | Required | An array of JSON object that contains information about what you are charging the user |
product.title | string | Required | Name of the product |
product.description | string | Optional | Description of the product to be sold |
product.image | string | Optional | URL to the image of the product. Will be replaced by a placeholder if ommited |
product.quantity | number | Required | Number of items you are selling |
product.price | number | Required | Individual price of each product |
metadata | object | Optional | A JSON object that contains any metadata you want to include about your order |
ttl | number | Optional | The number of minutes your user has to pay the charge. Minimum: 5 minutes, Maximum: 60 minutes |
tip
Your metadata object has to be stringifable. If it is not, charge creation will fail.
Response
Generate QR code
If you don't want to use the provided payment page, you can use the data received from charge creation to generate a QR code and address for payment. The procedure depends on each coin, but for BTC (the only accepted coin at this time) you can use the following:
warning
If you alter the amount field from the response, the system will either register the charge as underpaid (if lowering the amount) or the amount overpaid (if making the amount bigger) will be lost!
You don't need to include fees: they are automatically included when the user scans the wallet.
Get information about a charge
If you want to retrieve information about a charge, you can do so using using a GET and the UUID of the payment
HTTP Request
GET https://api.criptan.es/business/charge/{id}
Response
tip
Payments done from Criptan by your client are instantaneous and automatically confirmed, and are even faster and more secure than a normal cryptocurrency or credit card payment.