Comment on page
Apps.Payment
Use payment to forward deposit to virtual account.
To simplify acceptance of digital assets you can use Payment SmartApp. Payment SmartApp will orchestrate automatic forwarding of deposit to related Virtual account.

Amount received to Virtual account will be diminished for the amount of blockchain fee paid for automatic withdrawal from Deposit account to Ramp account.
Use
seal
object to store immutable data about the payment.Use
data
object to store variable data about the payment.Source Deposit account is automatically created.
Target Virtual account must have related Ramp account assigned.
To create Payment you must provide target Virtual account address or alias.
Provide expected
amount
of deposit transaction to be able to track if it is paid in full.cURL
echo 'Create payment request for 0.03 BTC'
curl --location --request POST 'https://api.orangepill.cloud/v1/apps/payment' \
--header 'x-api-key: AXVubzpwQDU1dzByYM==' \
--header 'idempotency-key: 27373fabc392933dffabb' \
--header 'Content-Type: application/json' \
--data-raw '{
"destination": {
"account": "6340be52dffbdb56217f6a7b"
},
"amount": 0.03,
"asset": "BTC",
"original_amount": 120.40,
"original_currency": "USD",
"valid_until": 1671242779881,
"external": "INV12345",
"seal": {
"my_signature_field": "my_signature_value"
},
"data": {
"description": "Payment 0.03 BTC",
"invoice": "INV12345"
}
}'
In response we get new
payment
with status PENDING
if validation was succeful. Notice that Deposit account is automatically created for source
.{
"id": "639d2416cd7325b35f409452",
"source": {
"account": "634b56217f6a7b0be52dffbd",
"deposit_address": "bc1q7pna7w7462uruh8m54tcnzspva8xd98wmc546u",
"owner": "639675ab191e9023f356dfa6"
},
"destination": {
"account": "6340be52dffbdb56217f6a7b",
"owner": "639675ab191e9023f356dfa6"
},
"amount": "0.03",
"asset": "ETH",
"original_amount": 120.40,
"original_currency": "USD",
"valid_until": 1671242779881,
"external": "INV12345",
"seal": {
"my_signature_field": "my_signature_value"
},
"data": {
"description": "Payment 0.03 BTC",
"invoice": "INV12345"
},
"owner": "639675ab191e9023f356dfa6",
"created_at": 1671242774572,
"status": "PENDING",
"error": null
}
Status | Description |
---|---|
PENDING | Awaiting for deposit. |
PROCESSING | Deposit received, withdrawal and forwarding in process. |
DONE | Payment processing was successful. |
INCOMPLETE | Payment is on time but amount received is not full. |
OVERPAID | Payment is on time but amount received is overpaid. |
LATE | Payment was received in full but after valid time. |
FAILED | Payment creation or processing has failed. |
REFUND | Payment is ready for refund to source. |
REFUNDED | Payment has been refunded to source payer. |
You can apply filters to get list of payments.
cURL
echo 'list payments with status PENDING'
curl --location --request GET 'https://api.orangepill.cloud/v1/apps/payment?query={"status":"PENDING"}' \
--header 'x-api-key: AXVubzpwQDU1dzByYM==' \
--header 'Content-Type: application/json'
In response we get array of
payment
objects. [{
"id": "639d2416cd7325b35f409452",
"source": {
"account": "634b56217f6a7b0be52dffbd",
"deposit_address": "bc1q7pna7w7462uruh8m54tcnzspva8xd98wmc546u",
"owner": "639675ab191e9023f356dfa6"
},
"destination": {
"account": "6340be52dffbdb56217f6a7b",
"owner": "639675ab191e9023f356dfa6"
},
"amount": "0.03",
"asset": "BTC",
"original_amount": 120.40,
"original_currency": "USD",
"valid_until": 1671242779881,
"external": "INV12345",
"seal": {
"my_signature_field": "my_signature_value"
},
"data": {
"description": "Payment 0.03 Bitcoin",
"invoice": "INV12345"
},
"owner": "639675ab191e9023f356dfa6",
"created_at": 1671242774572,
"status": "PENDING",
"error": null
}]
Last modified 11d ago