Professional Documents
Culture Documents
Api Documentation
Api Documentation
Api Documentation
General description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
What makes us better than others? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Supported crypto currencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Supported fiat currencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Available trading pairs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
How can I test your service? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
How do I get a merchant account with AlphaPo? . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
How much does AlphaPo charge for its processing service? . . . . . . . . . . . . . . . . . . . . 10
What alternative payments do you support? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
How can I convert all these different coins to BTC? . . . . . . . . . . . . . . . . . . . . . . . . . 10
Can I convert coins to EUR? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
How often can I expect crypto settlements? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Is it safe to keep my money in your wallet? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Integration guide 12
Deposits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
How it works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Should I use deposits or invoices? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Reusing addresses vs. generating new addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Create and manage deposit addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Create deposit addresses using the API . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Create and manage deposit addresses in the back‐office . . . . . . . . . . . . . . . . . . 16
Fees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Exchange rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Tag field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Withdrawals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Typical withdrawal workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Withdrawal using the API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Exchanges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Exchange using the API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Invoices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
General invoice workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Invoice statuses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Invoice types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Invoice without restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Invoice with time restriction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Invoice with time restriction and preselected currency . . . . . . . . . . . . . . . . . . . 23
Invoice failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
What is a crypto payment form? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
What is a crypto wallet URI format? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
What is a QR code? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
How to create a QR code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Best practice as a result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
A note about deposit callback statuses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Validating callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Callbacks in the back‐office . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Foreign IDs and distinguishing callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
API Documentation 31
Obtaining API Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Deposit workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Withdrawal workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Deposit with exchange workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Withdrawal with exchange workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Invoice workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
API endpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Get list of supported currencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Get list of exchangeable currency pairs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Get list of currencies rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Get list of balances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Receive cryptocurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Withdraw cryptocurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Calculate exchange rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Exchange on fixed exchange rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Exchange regardless the exchange rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Create Invoice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Data examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Deposit data examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Callback: BTC sent to a deposit address . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Callback: ETH sent to a deposit address . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Callback: ERC20 sent to a deposit address . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Callback: BTC sent to a deposit address with exchange to EUR . . . . . . . . . . . . . . 55
Withdrawal data examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Callback: BTC withdrawn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Callback: ETH withdrawn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Callback: ERC20 withdrawn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Callback: EUR withdrawn with exchange to BTC . . . . . . . . . . . . . . . . . . . . . . 60
Exchange data examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Callback: EUR exchanged for BTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Callback: BTC exchanged for USD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Invoices data examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Request: invoice without restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Response: invoice without restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Request: invoice with time restriction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Response: invoice with time restriction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Request: invoice with time restriction and preselected currency . . . . . . . . . . . . . 66
Response: invoice with time restriction and preselected currency . . . . . . . . . . . . . 66
Callback: successful invoice payment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Callback: invoice transaction is in the mempool . . . . . . . . . . . . . . . . . . . . . . . 68
Callback: invoice payment by installments . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Callback: invoice timer expired . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Callback: invoice processing status for more than 24 hours . . . . . . . . . . . . . . . . 72
Callback: invoice payment is lesser than invoice amount . . . . . . . . . . . . . . . . . . 73
Callbacks with other statuses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Callback: transaction not confirmed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Callback: transaction cancelled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
How to start 79
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
API Set Up Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Whitelisting IP addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Enabling currencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
User Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
My addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
System addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Contacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Limits and Cold Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Balance management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Mass Payouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Mass payout file format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Initiate a mass payout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
View a mass payout status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Retrying unsuccessful transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Transaction and address tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Transactions tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Risk scoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Payments tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Package Info tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Withdrawal Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Default interface withdrawal limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Custom withdrawal limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Starting Point of API Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Using the test environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Using testnet currencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Receiving callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
AlphaPo Documentation General description / 5
General description
AlphaPo is an organisation providing cryptocurrency payment services. We enable businesses to operate
worldwide, reduce costs, and reach new markets by empowering companies with reliable cryptocurrency
processing methods. We support over 50 cryptocurrencies and counting.
ADA BTC ARS, AUD, AZN, BDT, BRL, BYN, CAD, CHF, CLP, CNY,
CZK, EUR, GBP, GEL, IDR, ILS, INR, JPY, KGS, KRW,
KZT, LKR, MDL, MXN, MYR, NGN, NOK, NPR, NZD,
PEN, PLN, RUB, SEK, THB, TJS, TRY, UAH, USD, VND,
ZAR
BCH BNB, BNB‐BSC, BTC, ETH, LTC, ARS, AUD, AZN, BDT, BRL, BYN, CAD, CHF, CLP, CNY,
USDC, USDTE, USDTT COP, CZK, EUR, GBP, GEL, IDR, ILS, INR, JPY, KGS, KRW,
KZT, LKR, MDL, MXN, MYR, NGN, NOK, NPR, NZD,
PEN, PLN, PYG, RUB, SEK, THB, TJS, TMT, TRY, UAH,
USD, UZS, VND, ZAR
BNB BCH, BTC, LTC, USDC, USDTE, AUD, CAD, CHF, EUR, GBP, INR, KZT, NOK, NZD, PLN,
USDTT RUB, TRY, UAH, USD
BNB‐BSC BCH, BTC, LTC, USDC, USDTE, AUD, CAD, CHF, EUR, GBP, INR, KZT, NOK, NZD, PLN,
USDTT RUB, TRY, UAH, USD
BTC ADA, BCH, BNB, BNB‐BSC, DOGE, ARS, AUD, AZN, BDT, BRL, BYN, CAD, CHF, CLP, CNY,
ETH, LTC, TRX, USDC, USDTE, COP, CZK, EUR, GBP, GEL, ILS, INR, JPY, KGS, KRW,
USDTT, XRP KZT, LKR, MDL, MXN, MYR, NGN, NOK, NPR, NZD,
PEN, PLN, PYG, RUB, SEK, THB, TJS, TMT, TRY, UAH,
USD, UZS, ZAR
DAI — EUR, USD
DOGE BTC, USDTE, USDTT EUR, USD, UZS
ETH BCH, BTC, LTC, USDC, USDTE, ARS, AUD, AZN, BDT, BRL, BYN, CAD, CHF, CLP, CNY,
USDTT, XRP COP, CZK, EUR, GBP, GEL, IDR, ILS, INR, JPY, KGS, KRW,
KZT, LKR, MDL, MXN, MYR, NGN, NOK, NPR, NZD,
PEN, PLN, PYG, RUB, SEK, THB, TJS, TMT, TRY, UAH,
USD, UZS, VND, ZAR
LTC BCH, BNB, BNB‐BSC, BTC, ETH, ARS, AUD, AZN, BDT, BRL, BYN, CAD, CHF, CLP, CNY,
USDC, USDTE, USDTT COP, CZK, EUR, GBP, GEL, IDR, ILS, INR, JPY, KGS, KRW,
KZT, LKR, MDL, MXN, MYR, NGN, NOK, NPR, NZD,
PEN, PLN, PYG, RUB, SEK, THB, TJS, TMT, TRY, UAH,
USD, UZS, VND, ZAR
TRX BTC, USDTE ARS, AUD, AZN, BDT, BRL, BYN, CAD, CHF, CLP, CNY,
COP, CZK, EUR, GBP, GEL, IDR, ILS, INR, JPY, KGS, KRW,
KZT, LKR, MDL, MXN, MYR, NGN, NOK, NPR, NZD,
PEN, PLN, PYG, RUB, SEK, THB, TJS, TRY, UAH, USD,
UZS, VND, ZAR
USDC BCH, BNB, BNB‐BSC, BTC, ETH, LTC ARS, EUR, USD
USDTB BCH, BNB, BNB‐BSC, BTC, ETH, LTC, ARS, AUD, AZN, BRL, BYN, CAD, CHF, CLP, CNY, CZK,
TRX, USDC EUR, GBP, GEL, IDR, ILS, INR, JPY, KGS, KRW, KZT,
MDL, MXN, MYR, NGN, NOK, NZD, PEN, PLN, RUB,
SEK, THB, TJS, TRY, UAH, USD, VND, ZAR;
AlphaPo Documentation General description / 9
USDTE BCH, BNB, BNB‐BSC, BTC, DOGE, ARS, AUD, AZN, BRL, BYN, CAD, CHF, CLP, CNY, COP,
ETH, LTC, TRX CZK, EUR, GBP, GEL, IDR, ILS, INR, JPY, KGS, KRW,
KZT, MDL, MXN, MYR, NGN, NOK, NZD, PEN, PLN,
PYG, RUB, SEK, THB, TJS, TMT, TRY, UAH, USD, UZS,
VND, ZAR
USDTT BCH, BNB, BNB‐BSC, BTC, DOGE, ARS, AUD, AZN, BRL, BYN, CAD, CHF, CLP, CNY, COP,
ETH, LTC CZK, EUR, GBP, GEL, IDR, ILS, INR, JPY, KGS, KRW,
KZT, MDL, MXN, MYR, NGN, NOK, NZD, PEN, PLN,
PYG, RUB, SEK, THB, TJS, TMT, TRY, UAH, USD,
UZS, VND, ZAR
XRP BTC, ETH ARS, AUD, AZN, BDT, BRL, BYN, CAD, CHF, CLP, CNY,
COP, CZK, EUR, GBP, GEL, IDR, ILS, INR, JPY, KGS, KRW,
KZT, LKR, MDL, MXN, MYR, NGN, NOK, NPR, NZD,
PEN, PLN, PYG, RUB, SEK, THB, TJS, TRY, UAH, USD,
UZS, VND, ZAR
You can obtain all supported currency pairs via the /currencies/pairs API endpoint.
AlphaPo Documentation FAQ / 10
FAQ
Tips and answers from the AlphaPo team
*Please note that the testnet coins are never supposed to have any value. More information about the Bitcoin
Testnet is available here.
See also: Starting Point of API Testing.
Integration guide
When we talk about cryptocurrency as a payment method, we should keep in mind that its payment workflow
differs from classic payment methods such as bank cards or e‐wallets. Therefore, when customers use this
payment method in a web‐service or application, they need some advice on how to make the payment
process convenient and simple.
In this integration guide, we would like to share our knowledge of how to efficiently work with cryptocur‐
rencies. We will also provide the most important information about the various AlphaPo API integration
options.
Deposits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Withdrawals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Exchanges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Invoices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
What is a crypto payment form? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
AlphaPo Documentation Deposits / 13
Deposits
AlphaPo supports creating channel deposits which is a common flow for letting a user top up their balance
on your site. In this flow, AlphaPo generates a dedicated crypto address for your user by your request, and
the user can make transactions to this address at any time. Such an address is called a deposit address. You
get notified about each transaction to the deposit address. If the transaction is successful, you are expected
to add the appropriate amount to the user’s balance on your site.
Some advantages of channel deposits are:
You can also create channel deposits that accept funds in one currency and automatically exchange them for
another at the current exchange rate. Thus, you will receive the funds already in the target currency, and
AlphaPo will notify you of the exchange that took place. You can enable the exchange while creating the
channel deposit.
This section of documentation describes channel deposits, but this is not the only way you
® can receive funds from your users. Read about another flow in the Invoices section.
Note that with cryptocurrencies, a “payment form” is merely information for making a payment, usually with
a link or QR code for convenience, but the actual transaction is initiated by the user later outside the form.
For this reason, AlphaPo does not return any transaction information immediately but instead only sends you
a callback when the user creates a transaction. Please note that this can happen long after the generation of
the deposit address and this can occur multiple times for the same deposit address.
How it works
1. When your user wants to top up their balance, you request a new deposit address from AlphaPo. Note
that if a deposit address has been previously generated for this user, it is recommended to skip this
step and reuse the old deposit address (see Reusing addresses vs. generating new addresses).
2. You pass the deposit address to the user (see our recommendations in What is a crypto payment form?).
At this point, depending on the user’s local configuration, their software wallet may launch automati‐
cally.
3. Using the software wallet, the user sends a transaction into the blockchain, by sending their funds to
the provided address.
4. When the incoming transaction is detected by AlphaPo, it appears on the Transactions tab with the
“Processing” status, and you are notified with an API callback (see Callbacks).
5. AlphaPo waits until it considers the transaction to be confirmed. Usually the transaction must be con‐
firmed in the blockchain, but for some cryptocurrencies, the status in AlphaPo can sometimes become
“Confirmed” immediately (see Confirmations and limits).
6. If automatic exchange was enabled for this channel deposit, it will be applied (see Available trading
pairs for what types of exchange are supported by AlphaPo).
7. For addresses generated via API, you are notified of the confirmed transaction via a callback. At this
point, you may want to reflect the incoming transfer of funds within your business logic — usually, by
increasing your user’s balance.
AlphaPo Documentation Deposits / 14
If a user tries to send one cryptocurrency to a deposit address generated for another cryp‐
Á tocurrency, the funds may be lost. However, particular recovery is sometimes possible (see
our Crosschain recovery policy).
• Once the deposit address is created, you cannot change the currency it accepts. But with an invoice,
however, you have the option of allowing the user to pay in the currency of their choice. In such a case,
the actual address will not be generated until the user selects the currency.
• For the invoice, you have the option of fixating the exchange rate for 15 minutes from the moment
the invoice is created. This may be useful, for example, when your ultimate goal is to receive a certain
amount of fiat currency at the current exchange rate, regardless of the exchange rate at the moment
of payment.
AlphaPo Documentation Deposits / 15
• The deposit address, once created, can be used for an unlimited period of time (see Reusing addresses
vs. generating new addresses), while the invoice can expire for a number of reasons, including timer
expiration or acceptance of sufficient funds from the user. After the expiration, the user will not be
able to top up the balance using the same invoice again.
Also note that in the case of the channel deposit, you usually give the user the crypto address itself and the
user simply sends funds to it using their software wallet, while in the case of the invoice you can just pass
the URL and the user interacts with AlphaPo using the web interface.
To learn more about how invoices work and how to use them, read the Invoices page.
• The Addresses tab shows the list of all your channel deposit addresses, divided between two sec‐
tions: My Addresses and System Addresses. The System Addresses section displays all the addresses
created using the API and deposit exchange addresses created using the back‐office, while the My
Addresses section contains those created using the back‐office, either on this tab (using the Create
address button) or on the Balances tab.
• The Balances tab gives you access to various balances‐related operations, and getting the channel
deposit addresses is one of them. The Receive and Top up dialogs that you can reach from this tab
allow you to view the existing addresses for the selected cryptocurrency or create new ones.
Note that AlphaPo does not send callbacks for the deposits to the addresses created on the Balances tab.
Fees
AlphaPo charges a fee when processing deposits. Full details on the fees applied to a given transaction are
always available on the Transactions tab and in the callback that you receive after the transaction. It is your
choice what amount to use for increasing the user’s balance on your site — including the fee or not.
The exact fees depend on your agreement and are listed on the Package Info tab in the back‐office. If you
have any questions, please contact our sales manager at sales@alphapo.net.
Exchange rates
When an exchange is enabled for a channel, the exchange rates depend on the external services that we use
and are calculated at the time of the exchange. If you need more control over the exchange process, consider
using Exchanges or Invoices.
Tag field
For most cryptocurrencies, the only field a user needs to specify the recipient is an address. This address can
be displayed in your interface directly or encoded as a QR code.
But sometimes the address is not enough for a successful payment. For example, Ripple has a concept of
“multiuser addresses” which require a Tag field to distinguish between recipients. AlphaPo provides the Tag
field for Ripple addresses both in the back‐office and in the API. Also, the Tag field is provided for BNB
addresses where it corresponds to the “memo” concept and works the same way.
When using channel deposits for such a currency, make sure you provide the user with both the address and
the Tag field. The absence of the Tag field may result in the loss of the funds sent by the user.
In the Receive dialog, no QR code is displayed for the cryptocurrencies with Tag fields.
AlphaPo Documentation Withdrawals / 17
Withdrawals
Unlike deposits, sending cryptocurrencies to your users is similar to classic payment methods. The users fill
out a form where they provide the address and the amount of the withdrawal. After that the web service
creates a transaction and sends a withdrawal request to the payment service provider. When the transaction
is confirmed by the payment service provider, the web service reduces the user’s balance on the website.
Algorithm
Exchanges
While on‐the‐fly exchanges for deposits and withdrawals are possible and mostly oriented towards end users,
there is a way to perform any conversion of funds (crypto to fiat, fiat to crypto or crypto to crypto) with the
existing merchant’s balances. The only requirement for this is that the exchange pair is supported by our
processing. This feature is available via the API as well as in the back‐office. The latter option is most
suitable in the case when the on‐the‐fly exchange was not used initially.
• /exchange/calculate — a request that does not perform the exchange by itself, but allows you to
obtain the actual ratio for the subsequent exchange. It can be used to get general information about
the actual exchange rate for the selected pair of currencies as well as to receive and fix the exchange
ratio for the /exchange/fixed API method. The obtained ratio is valid for one minute, after which
the request should be repeated.
• /exchange/fixed — performs an exchange with the ratio obtained from the request above.
• /exchange/now — performs an exchange without specifying the ratio beforehand. This method uses
the latest ratio from the trading platform at the time of sending this request to our API.
Note: The exchange feature available through the back‐office is implemented via the
® /exchange/fixed method. The exchange ratio changes every minute and is automatically
displayed within the exchange dialog.
Limits
The minimum exchange amount is equivalent to 30 USD. This limitation does not apply to on‐the‐fly ex‐
changes for deposits and withdrawals. For up‐to‐date information about the on‐the‐fly exchanges, please
refer to the Confirmations and limits section.
More detailed information on the min limits of exchange operations for specific currencies should be obtained
via the /currencies/pairs API endpoint, because they may vary dynamically.
AlphaPo Documentation Invoices / 20
Invoices
AlphaPo provides the ability to create an invoice for a certain amount for a B2B or B2C client.
1. Invoice without restrictions. The user chooses the currency of the payment themselves. The user
is required to pay within 15 minutes after currency selection. (There is no time limit for currency
selection). The exchange rate will be fixed when the user confirms the payment currency.
2. Invoice with time restriction. The user chooses the currency of the payment themselves. The user is
required to pay within 15 minutes after the invoice creation.
3. Invoice with time restriction and preselected currency. The user sees the amount and the payment
currency that they need to pay. The user is required to pay within 15 minutes after the invoice creation.
If the user fails to pay the invoice in due time, the system will display the “Failed” status.
You will receive a callback about the successful creation of the transaction after it appears in the mempool.
We will change the timer from 15 minutes to 24 hours. During this period, the transaction will change its
status to ”Confirmed”.
After successful confirmation of the transaction, the funds will be converted into the recipient’s currency
and transferred to your account. You will be charged a transaction fee after the funds are credited to the
account.
The user can choose to pay the invoice in installments. AlphaPo will keep waiting for new transactions as
long as the total sum of transactions received is less than the sum specified for this invoice. You will receive
a callback for each transaction.
If the user sends an amount of funds that is more than the specified one, the invoice will get the “Confirmed”
status and we will send instructions to the user’s email on how to get the overpayment back.
If the user sends an amount of funds that is less than the specified one and the timer expires, the invoice
will get the “Failed” status and we will send instructions to the user’s email on how to get the full payment
back.
The API endpoint for creating invoices is /invoices/create.
AlphaPo Documentation Invoices / 21
Invoice statuses
Invoice types
Invoice without restrictions
This invoice type allows the user to choose the payment currency themselves. There are no time restrictions
for payment. The rate will be fixed when the user confirms the payment currency.
Following the link, the user will see the invoice information and will also be able to choose the payment
currency.
After the currency is confirmed and the email address is entered, the exchange rate will be fixed for 15
minutes. During this period, the user needs to pay the invoice using the specified address.
AlphaPo Documentation Invoices / 22
After the currency is confirmed and the email address is entered, the user needs to pay the invoice using the
specified address before the timer expires.
AlphaPo Documentation Invoices / 23
In the Data Examples section, you can see an example of a callback for each type of invoice.
Invoice failure
The invoice payment fails if any of the following occur:
AlphaPo Documentation Invoices / 24
In the Data Examples section, you can see examples of callbacks for successful and unsuccessful invoice
payment cases.
AlphaPo Documentation What is a crypto payment form? / 25
If the user has the crypto wallet application on the same device, they need to:
The more actions the user has to take, the more likely they will not pay. That is why it is
preferable to display crypto addresses as clickable links on your payment form whenever
possible.
Also consider using QR codes so that the user can quickly scan the link with another device.
See the What is a QR code? section below for details.
AlphaPo Documentation What is a crypto payment form? / 26
What is a QR code?
A QR code (Quick Response code) is a special visual method of data encoding and transferring, which is
usually used for simple and fast semi‐automatic interaction with users’ mobile devices. It can contain any
text data, including URL links. When a user scans the QR code with their smartphone, the data inside the
QR code will be decoded. If it is a link associated with a special application, the user’s smartphone will react
in a predefined way. For example, it can suggest the user to follow the URL using a web browser or send
funds using their crypto wallet application.
Here is an example of the QR code:
The format of the URI that you need to encode in your QR code using the Google Chart Service is described
in What is a crypto wallet URI format?.
Here is an example of the QR code displayed using the <img> tag:
<img src="https://chart.googleapis.com/chart?chs=150x150&cht=qr&
chl=bitcoin:3AFaCnqriLNxj15kqtp5Pxn8puHfuqbX7W&choe=UTF-8">
After that, it does not matter whether the user receives the payment form using their laptop or smartphone.
They get the opportunity to make simple and fast payments in one click without any inconvenience.
To make the user experience even better, it would be a good idea to include in the payment form not only
the clickable QR code and the clickable crypto address, but also the following information:
Callbacks
Asynchronous payments are very popular with cryptocurrencies. In a typical deposit workflow, you have to
generate an address and pass it to your client. This will be their deposit address, which they will reuse for a
lifetime with you. In such a deposit workflow, we will notify you of any incoming payments with callbacks.
If you have been assigned the “Owner” role for your AlphaPo merchant account (see User Permissions), then
you can configure the callback URL manually in the merchant’s settings. Upon processing the payments,
AlphaPo will send you notifications in JSON format to this URL with all necessary information about the
transaction, such as its amount and status.
Our callbacks contain all the important information about the transaction:
• status
• currency
• amount
• blockchain transaction’s hash
• address
• fees
• number of confirmations
and so on.
In the Data Examples section, you can find examples of callbacks specific to each type of operation.
Be aware that, due to implementation details, it is sometimes possible for the same callback
Á to be sent multiple times. Always keep track of the transaction IDs to avoid double spending
and similar issues.
Validating callbacks
To provide authentication for the callback, AlphaPo signs the POST request with your API key and secret
key:
You must validate the signature of the callback and the values of known parameters to avoid fraud.
If the callback is validated successfully, your system should respond with the 200 OK HTTP code. No addi‐
tional parameters are required in the response body.
Otherwise, we will keep the callback in our sending queue and continue the attempts according to the fol‐
lowing schedule: 1, 5, 10, 15, 20, 30, 60, 90, 120, 150, 180, 210, 240 minutes.
Hint: When a user sends you the same amount to the same address, you will receive very
® similar callbacks. To understand whether you see several callbacks for the same transaction,
or there was more than one transaction, you can use the id parameter from the root element
in the callback JSON. This parameter is unique for all transactions from our side.
AlphaPo Documentation API Documentation / 31
API Documentation
Obtaining API Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Authorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
API endpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Data examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
AlphaPo Documentation Obtaining API Keys / 32
To activate your API key and see your secret key, enter your two‐factor authentication code and click Acti‐
vate.
After the activation you will see your secret key.
Warning: Please note that once you close the Activate API key window, you will no longer
Á be able to see it. Your secret key will be hidden and you will not be able to restore it. Please
save it in a secure place and avoid sending it via messengers or even email.
Authorization
AlphaPo API user authorization is done via sending two headers:
• X-Processing-Key — A public key, which can be obtained from the user’s account
• X-Processing-Signature — The POST request body signed by a secret key using the HMAC‐
SHA512 hash function. The secret key can be also obtained from the user’s account
For all requests you also need to use the next format key in the headers:
"Content-Type": "application/json"
You can check the validity of the signature you generated by comparing it with the sample below.
To do this, generate a signature using the following data:
03c25fcf7cd35e7d995e402cd5d51edd72d48e1471e865907967809a0c189ba55b90815f20e2b
b10f82c7a9e9d865546fda58989c2ae9e8e2ff7bc29195fa1ec
AlphaPo Documentation Workflows / 34
Workflows
Deposit workflow
1. You obtain a new address from the AlphaPo api (for some currencies it can be an address and a tag)
and save it somewhere on your side. After that, you display this address to your customer so they can
make a deposit.
2. The customer sends funds to this address.
3. After that, AlphaPo sends a callback to your callback URL with the details of the transaction. It contains
its status, address, currency, amount and fees.
4. If the status is confirmed, you should deposit the respective amount to the customer’s balance on
your side.
Withdrawal workflow
1. You request to send a certain amount of money to a certain address.
2. Your request is validated on our side. If the signature is correct, the address is valid and you have
sufficient funds on your balance, AlphaPo will respond to you with a transaction object.
3. You will receive a callback when the transaction status is updated.
1. You obtain a new address from AlphaPo API in the same way as in the deposit workflow. But addi‐
tionally in your request, you pass another parameter, convert_to, which determines the resulting
currency.
2. When a new deposit arrives, AlphaPo converts all incoming funds into the destination currency and
sends notifications as in the regular deposit workflow.
1. You do exactly the same as in the withdrawals workflow, but you specify two currencies instead of
one. One currency is the currency of your sending balance and the other is the cryptocurrency your
customer wants to receive.
2. Your request is validated on our side. If the signature is correct, the address is valid and you have
sufficient funds on your balance, AlphaPo will respond to you with a transaction object.
3. You will receive a callback when the transaction status is updated.
Invoice workflow
Invoices allow deposits to be made at a fixed exchange rate within a limited period of time, regardless of
the real exchange rate fluctuations. If you need to convert cryptocurrency funds into fiat currency or an‐
other cryptocurrency, the invoices will allow you to visualize the exact amount in the sender’s currency that
is required to get the exact amount in the receiver’s currency. When a deposit is processed through this
workflow, a user is redirected to the respective invoice page via the preset link and just needs to follow the
instructions on it. The invoices also allow refunds to be made in the event that the user fails to make a de‐
posit on time or finds that their balance is insufficient. All that is required in this case is to follow the link
with the respective instructions sent to the user’s email.
See also: Invoices, /invoices/create, Invoices data examples.
AlphaPo Documentation API endpoints / 36
API endpoints
Ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Get list of supported currencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Get list of exchangeable currency pairs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Get list of currencies rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Get list of balances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Receive cryptocurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Withdraw cryptocurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Calculate exchange rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Exchange on fixed exchange rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Exchange regardless the exchange rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Create Invoice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
AlphaPo Documentation API endpoints / 37
Ping
https://app.alphapo.net/api/v2/ping
Response
200 OK
{
"data": [
{
"id": 1,
"type": "crypto",
"currency": "BTC",
"minimum_amount": "0.001",
"deposit_fee_percent": "0.99",
"withdrawal_fee_percent": "0",
"precision": 8
}
]
}
AlphaPo Documentation API endpoints / 39
currency_from string Filter by ISO code of the currency from which the exchange can be made,
optional for example: BTC
currency_to string Filter by ISO code of the currency to which the conversion can be made, for
optional example: EUR
Response
200 OK
{
"data": [
{
"currency_from": {
"currency": "BTC",
"type": "crypto",
"min_amount": "0.00300000",
"min_amount_deposit_with_exchange": "0.00010000"
},
"currency_to": {
"currency": "EUR",
"type": "fiat"
},
"rate_from": "1",
"rate_to": "8795.80000000"
},
{
"currency_from": {
"currency": "EUR",
"type": "fiat",
"min_amount": "25.00000000"
},
"currency_to": {
"currency": "BTC",
"type": "crypto"
},
"rate_from": "1",
"rate_to": "8885.72951839"
},
{
"currency_from": {
"currency": "BCH",
"type": "crypto",
"min_amount": "0.00020000",
"min_amount_deposit_with_exchange": "0.00100000"
AlphaPo Documentation API endpoints / 40
},
"currency_to": {
"currency": "USD",
"type": "fiat"
},
"rate_from": "1",
"rate_to": "332.28264751"
},
{
"currency_from": {
"currency": "USD",
"type": "fiat",
"min_amount": "30.00000000"
},
"currency_to": {
"currency": "BCH",
"type": "crypto"
},
"rate_from": "1",
"rate_to": "335.94361522"
}
]
}
{
"errors": {
"currency_from": "The selected currency from is invalid.",
"currency_to": "The selected currency to is invalid."
}
}
AlphaPo Documentation API endpoints / 41
currency_from string Filter by ISO code of the currency from which the exchange can be made,
optional for example: BTC
currency_to string Filter by ISO code of the currency into which the conversion can be made,
optional for example: EUR
Response
200 OK
{
"data": [
{
"currency_from": {
"currency": "BTC",
"type": "crypto",
"min_amount": "0.00010000",
"min_amount_deposit_with_exchange": "0.00010000"
},
"currency_to": {
"currency": "EUR",
"type": "fiat"
},
"rate_from": "1",
"rate_to": "48715.61680000"
}
]
}
AlphaPo Documentation API endpoints / 42
{
"data": [
{
"currency": "DOGE",
"type": "crypto",
"balance": "13234.91276375"
},
{
"currency": "ADA",
"type": "crypto",
"balance": "7272.36400468"
},
{
"currency": "EUR",
"type": "fiat",
"balance": "5973.97568920"
},
{
"currency": "USDT",
"type": "crypto",
"balance": "0.00000000"
}
]
}
AlphaPo Documentation API endpoints / 43
Receive cryptocurrency
https://app.alphapo.net/api/v2/addresses/take
Receive an address for depositing cryptocurrency and (depending on the specified params) configure an
automatic crypto‐to‐fiat exchange on the fly.
Request
foreign_id string Your info for this address. It will be returned as a reference in the Address
response, for example: user‐id:2048
currency string ISO code of the currency in which funds will be received, for example: BTC
convert_to string If you need an auto exchange of all incoming funds, for example, to EUR,
optional specify this param as EUR. You can specify ISO code of any other supported
currency. Use the /currencies/pairs method, to see the list of supported
pairs.
Response
201 Created
{
"data": {
"id": 1,
"currency": "BTC",
"convert_to": "EUR",
"address": "12983h13ro1hrt24it432t",
"tag": "tag-123",
"foreign_id": "user-id:2048"
}
}
{
"errors": {
"foreign_id": "The foreign id field is required."
}
}
Hint: You do not have to generate a new address for this customer anymore, the address can
® be reused any number of times. See Reusing addresses vs. generating new addresses.
AlphaPo Documentation API endpoints / 44
• Make sure to use the Bitcoin URI format “bitcoin:” in QR. Works the same as “mailto:” (see What is a
crypto wallet URI format?).
• We do recommend making this QR clickable as customers may have a wallet set up on their computer
or mobile phone.
• We recommend specifying the approximate current exchange rate.
AlphaPo Documentation API endpoints / 45
Withdraw cryptocurrency
https://app.alphapo.net/api/v2/withdrawal/crypto
Withdraw in crypto to any specified address. You can send Cryptocurrency from your Fiat/Cryto currency
balance by using convert_to parameter and specifying amount or amount_to parameter.
Request
Parameters amount_to and amount can not be used into one request.
Á
Response
200 OK
{
"data": {
"id": 1,
"foreign_id": "122929",
"type": "withdrawal",
"status": "processing",
"amount": "0.01000000",
"sender_amount": "0.01000000",
"sender_currency": "ETH",
"receiver_amount": "0.01000000",
"receiver_currency": "ETH"
}
}
{
"errors": {
"amount": "The amount must be at least 0.001."
}
}
{
"errors": {
"amount_to": "The amount to field can not be used when the amount field is
presented."
}
}
{
"currency": "EUR",
"foreign_id": "12345",
"address": "tb1qktweq8grq4uekg309a0w6fcumeqktc5gyvaumc",
"convert_to": "BTC",
"amount_to": "0.001"
}
In this case, 0.001 BTC will be sent in the transaction and calculated EUR amount will be debited from the
merchant balance.
Response
{
"data": {
"id": 2,
"foreign_id": "12345",
"type": "withdrawal_exchange",
"status": "processing",
"amount": "19.00027665",
"sender_amount": "19.00027665",
"sender_currency": "EUR",
"receiver_currency": "BTC",
"receiver_amount": "0.00100000"
}
}
AlphaPo Documentation API endpoints / 47
Note: Please note that this endpoint is limited to 30 requests per minute from one IP address.
® If the number of requests is exceeded, a new successful response can only be received after
a one‐minute break.
Request
receiver_amount numeric The exact amount of funds to be received, for example: 10. This
optional parameter is required when the sender_amount parameter is absent
sender_currency string ISO code of the currency you want to exchange from, for example: BTC
receiver_currency string ISO code of the currency you want to exchange into, for example: EUR
sender_amount numeric The exact amount of funds to be sent, for example: 3. This parameter is
optional required when the receiver_amount parameter is absent
Response
200 OK
{
"data": {
"sender_amount": 1,
"sender_currency": "BTC",
"receiver_amount": "8549.81680000",
"receiver_currency": "EUR",
"fee_amount": "85.49816800",
"fee_currency": "BTC",
"price": "8549.81680000",
"ts_fixed": 1564293159,
"ts_release": 1564293219,
"fix_period": 60
}
}
{
"errors": {
"sender_currency": "Exchange is unavailable for given currencies"
}
}
{
"errors": {
"error code": 1015
}
}
AlphaPo Documentation API endpoints / 48
sender_currency string ISO code of the currency you want to exchange from, for example:
LTC
receiver_currency string ISO code of the currency you want to exchange into, for example:
USD
sender_amount numeric The amount you want to exchange, for example: 6.5. This parameter
optional is required when the receiver_amount parameter is absent
receiver_amount numeric The amount you want to receive, for example: 6.5. This parameter is
optional required when the sender_amount parameter is absent
foreign_id string A unique ID in your system, for example: 134453
price numeric The fixed exchange rate, for example: 89.75202000
Response
201 Created
{
"data": {
"id": 2687667,
"foreign_id": "knwi24op9",
"type": "exchange",
"sender_amount": "0.01",
"sender_currency": "BTC",
"receiver_amount": "63.52069015",
"receiver_currency": "EUR",
"fee_amount": "6.98727592",
"fee_currency": "EUR",
"price": "6352.06901520",
"status": "processing"
}
}
AlphaPo Documentation API endpoints / 49
sender_currency string ISO code of the currency you want to exchange from, for example:
EUR
receiver_currency string ISO code of the currency you want to exchange into, for example:
BTC
sender_amount numeric The amount you want to exchange, for example: 2. This parameter is
optional required when the receiver_amount parameter is absent
receiver_amount numeric The amount you want to receive, for example: 2. This parameter is
optional required when the sender_amount parameter is absent
foreign_id string A unique ID in your system, for example: 124876
Response
201 Created
{
"data": {
"id": 2687669,
"foreign_id": "wph27bmsp81",
"type": "exchange",
"sender_amount": "0.001",
"sender_currency": "BTC",
"receiver_amount": "6.33984642",
"receiver_currency": "EUR",
"fee_amount": "0.69738311",
"fee_currency": "EUR",
"price": "6339.84642127",
"status": "processing"
}
}
{
"errors": {
"sender_amount": "The amount must be at least 0.00300000"
}
}
AlphaPo Documentation API endpoints / 50
Create Invoice
https://app.alphapo.net/api/v2/invoices/create
timer boolean Whether the time for paying the invoice will be limit(15 minutes).
title string The invoice title that will be displayed to your client
description string The invoice description that will be displayed to your client
optional
currency string ISO code of the invoice currency that you want to receivfrom your client,
for example: EUR
sender_currency string ISO code of the currency in which your client pays the invoi(invoice with
preselected currency, for example: BTC
amount numeric The amount that you want to receive from your clientfor example: 106.75
foreign_id string A unique ID in your system, for example: 164
url_success string The URL to which we redirect your client in the casof successful invoice
paymentfor example: https://merchant.name.com/url_success
url_failed string The URL to which we redirect your client in the casof unsuccessful invoice
paymentfor example: https://merchant.name.com/url_failed
email_user string If the payment amount does not match the amount stated in the
invoicewe will send an email to the specified address with instructionon
funds recovery. In case of underpayment, the whole amounwill be
refunded. In case of overpayment, the recipient of the emaiwill be able to
recover the difference by following the instructions.
Response
200 OK
{
"data": {
"id": 79,
"url": "https://wallet.alphapo.net/invoice/RB9NZv",
"foreign_id": 164,
"name": "TEST NAME",
"status": "created",
"currency": "EUR",
"amount": "106.75",
"sender_currency": "BTC",
"sender_amount": null,
"fixed_at": 1581929889,
"release_at": 1581930789
}
}
{
"errors": {
"foreign_id": "The foreign id has already been taken."
}
}
AlphaPo Documentation Data examples / 51
Data examples
This section contains various examples of requests, responses and callbacks.
Deposit data examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Callback: BTC sent to a deposit address . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Callback: ETH sent to a deposit address . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Callback: ERC20 sent to a deposit address . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Callback: BTC sent to a deposit address with exchange to EUR . . . . . . . . . . . . . . 55
Withdrawal data examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Callback: BTC withdrawn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Callback: ETH withdrawn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Callback: ERC20 withdrawn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Callback: EUR withdrawn with exchange to BTC . . . . . . . . . . . . . . . . . . . . . . 60
Exchange data examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Callback: EUR exchanged for BTC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Callback: BTC exchanged for USD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Invoices data examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Request: invoice without restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Response: invoice without restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Request: invoice with time restriction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Response: invoice with time restriction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Request: invoice with time restriction and preselected currency . . . . . . . . . . . . . 66
Response: invoice with time restriction and preselected currency . . . . . . . . . . . . . 66
Callback: successful invoice payment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Callback: invoice transaction is in the mempool . . . . . . . . . . . . . . . . . . . . . . . 68
Callback: invoice payment by installments . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Callback: invoice timer expired . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Callback: invoice processing status for more than 24 hours . . . . . . . . . . . . . . . . 72
Callback: invoice payment is lesser than invoice amount . . . . . . . . . . . . . . . . . . 73
Callbacks with other statuses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Callback: transaction not confirmed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Callback: transaction cancelled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
AlphaPo Documentation Data examples / 52
"status": "confirmed"
}
AlphaPo Documentation Data examples / 57
}
],
"error": "",
"status": "confirmed"
}
AlphaPo Documentation Data examples / 62
"error": "",
"status": "confirmed",
"fixed_at": 1592307241,
"expires_at": 1592394104
}
AlphaPo Documentation Data examples / 71
Warning: Please note that the min limits for exchange operations must be obtained via the API
Á (see /currencies/pairs), as they may vary dynamically. Minimum deposit and withdrawal
limits must also be obtained via the API (see /currencies/list), although they do not
change often.
ADA 15 2 2 explorer.cardano.org
BCH 0/6* 0.01 0.01 blockchain.com/explorer/assets/bch
BNB 1 0.01 0.01 explorer.binance.org
BNB‐BSC 25 0.01 0.01 bscscan.com
BTC 0/1* 0.0001 0.0001 btc.bitaps.com
DAI 10 5 5 etherscan.io
DOGE 6 1 1 live.blockcypher.com/doge
ETH 10 0.01 0.01 etherscan.io
EURS 10 0.01 0.01 etherscan.io
LTC 6 0.01 0.01 live.blockcypher.com/ltc
SNACK 25 10 10 bscscan.com
TRX 19 10 10 tronscan.org
USDC 10 5 5 etherscan.io
USDTB 25 5 5 bscscan.com
USDTE 10 5 5 etherscan.io
USDTT 19 2 2 tronscan.org
XED 10 0.01 0.01 etherscan.io
XRP 1 0.001 0.001 xrpscan.com
* We use an external service to speed up the process of deposit crediting for slow blockchains:
• If the transaction is approved by the service, no confirmations are required and the deposit will be
credited immediately. Usually, this happens in 85% of cases.
• If not, the cryptoprocessing will require the number of confirmations shown after the / symbol in the
table.
It is defined automatically and does not require any action from the user.
Note: In cases when several blocks are released in a short period of time, the number of
® confirmations can exceed the value indicated in the table.
AlphaPo Documentation Dynamic minimum deposit fee for BTC / 77
• we keep all fees fixed, except for the minimum deposit fee,
• the minimum deposit fee changes predictably, based on public data,
• the minimum deposit fee never changes more than one time every week.
How it works
Every Monday, we check the average mining fee in the BTC network for the previous week, beginning and
ending at 00:00 UTC on Monday. You can observe this value in public BTC blockchain explorers, for example,
on the Blockchain.com’s Fees Per Transaction graph.
The average mining fee determines the new minimum deposit fee, according to the table below. If it differs
from the last week’s one, we notify all users about the planned change.
AlphaPo switches to the new minimum deposit fee at 10:00 UTC on Wednesday.
Note: We WILL NOT recover coins or tokens we do not support. Nor will we recover funds that were
distributed as a part of an ICO.
AlphaPo Documentation How to start / 79
How to start
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
API Set Up Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
User Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Limits and Cold Addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Balance management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Mass Payouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Transaction and address tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Withdrawal Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Starting Point of API Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
AlphaPo Documentation Introduction / 80
Introduction
For each new merchant, we can provide two separate environments:
In each environment, a merchant account will be created for you, and it will be given the “Owner” role (see
User Permissions).
Please note that multiple accounts can have the “Owner” role set for one merchant. Conversely,
® one account can have this role set for multiple merchant accounts.
We will send you an invite to the email address provided by you. This invite will allow you to activate the
merchant account. The invite looks like this:
Please click the link below the message to confirm your email address.
After that, log into the system using your master email and temporary password.
At this point, you need to install the Google Authenticator app on your Android or iOS device. We use
2FA (two‐factor authentication) for all activities and changes in our system. This gives you an extra layer of
security.
Set up the application either using the provided Masterkey or by scanning the QR code and entering the
generated 2FA code. You will need to use the Authenticator every time our system requires you to enter
such a code.
AlphaPo Documentation Introduction / 81
After logging in, you will need to create your new password.
AlphaPo Documentation API Set Up Stage / 82
Note: The API secret is the most important security issue for the production environment. The
® secret grants access to funds management, so the person who owns the secret can transfer
funds to any external addresses.
AlphaPo Documentation API Set Up Stage / 83
Now you need to set up the address for callbacks from the API. Callbacks are a means of communication
with our API. The system sends callbacks for every transaction (deposit or withdrawal) and correct handling
of these callbacks is essential for your day‐to‐day workflow. See the Callbacks page for more details.
You can specify the callback address by selecting the Settings tab. Then go to the API tab located in the top
left corner and enter your URL. The system will send callbacks to this URL. Without completing this step, it
is not possible to receive callbacks from us.
Whitelisting IP addresses
As an additional layer of security, it is highly recommended to whitelist IP addresses for your API key.
Whitelisting means that AlphaPo will process API requests only from a certain list of IP addresses (the
“white list”), while requests from any other IP addresses will be blocked. With this feature enabled, even if
someone were to gain unauthorized access to your API key, they would not be able to use it unless they
also gain access to a device with an IP address that you pre‐approved.
Whitelisting is disabled by default. It is automatically enabled if you specify one or more IP addresses for the
active API key.
To specify the IP addresses and enable whitelisting:
1. On the API keys tab, click the Edit button next to the active key.
2. In the IPs field, enter a comma‐separated list of IP addressed.
Typically, you may want to whitelist the IP addresses of the servers where your e‐commerce platform,
payment gateway, or any system that integrates with AlphaPo is hosted. If you use a cloud service or
a hosting provider, you can obtain these IP addresses from your service provider’s documentation or
support team.
Note that you should not specify your customers’ IP addresses, but only the ones your own system
controls.
3. Confirm the action by entering the 2FA code and clicking the Save button.
AlphaPo Documentation API Set Up Stage / 84
Enabling currencies
Make sure that all necessary currencies are enabled in your merchant account. To do this, go to the Currencies
Info tab. Here you can enable the currencies you want to use (either crypto or fiat) by clicking the Add New
Currency button and selecting the desired currencies from the list.
AlphaPo Documentation User Permissions / 85
User Permissions
On the Team tab, you can manage your team permissions, add and remove members.
By default, newly added members only have permission to view common information such as account bal‐
ances, actual fees and transaction info but not to modify them. Your master account has the “Owner” role.
It grants you access to all sensitive information (API secret, cold wallet addresses, etc.) and funds manage‐
ment.
You can share this role with other team members or transfer it to another account if you need, but this must
be approved by us for security reasons.
Attention: Please make sure the “Owner” role is only granted to the appropriate staff members,
Á as they will have access to confidential information.
AlphaPo Documentation Addresses / 86
Addresses
The Addresses tab contains three sections.
My addresses
The first section, My addresses, contains the deposit addresses provided to the merchant in order to replenish
the balance of the merchant’s account (see Deposits). These are the addresses displayed to users on the
Balances tab when they click the Receive button for the selected type of cryptocurrency.
The functionality of this section is available to all team members.
Clicking the address line in this section opens a side tab with the details of the deposit.
AlphaPo Documentation Addresses / 87
• Сopy the address by clicking the address line and then the Copy address button;
• Open the QR code or copy the link to the payment terminal by clicking the Receive button;
• Change the name of the address by clicking the Edit button.
To create a new address, click the Create address button in the My addresses section. In the window that
appears, fill in the following information:
• Name;
• Type: “Deposit”/“Deposit exchange”;
• The currency supported by the address;
• The currency into which the funds are to be converted, if the “Deposit exchange” type is selected.
AlphaPo Documentation Addresses / 88
System addresses
The second section, System addresses, contains the list of addresses generated by the API via the
/addresses/take request. This section is available to all team members. See Deposits for more details
on the deposits workflow.
To simplify the address search, you can filter the list by clicking the Filters button and selecting one of the
available parameters from the drop‐down list.
Detailed information about the address can be viewed and copied by clicking the address line and then the
Copy address button in the window that appears.
AlphaPo Documentation Addresses / 89
Contacts
The third section, Contacts, contains the list of withdrawal addresses added by you or your users. Only team
members with the “Owner” role can create such addresses.
To add an address to which you will withdraw funds on a constant basis, click the Add Contact button and
fill in the following required information:
AlphaPo Documentation Addresses / 90
• Name;
• Currency;
• Address.
The system checks if the format of the address corresponds to the network to which the withdrawal will be
sent. If the format is correct, the address is saved in our system.
You can get access to your saved withdrawal addresses when you select the currency of the withdrawal
transaction in the Balances tab. To get the access, first click the withdrawal currency and then the address
book icon (see Withdrawals).
AlphaPo Documentation Limits and Cold Addresses / 91
Example: You set Keep on Hot to 1 BTC and Min transaction Amount to 0.1 BTC. As soon as
b your balance reaches 1.1 BTC, the excess amount (0.1 BTC) will be automatically sent to your
cold wallet.
You can set any addresses that you want to use as cold ones on the Cold Addresses tab. You can fill in the
Cold Address field for each active currency.
AlphaPo Documentation Balance management / 92
Balance management
The Balances tab contains information about your cryptocurrency account balances and fiat account bal‐
ances.
The EUR equivalent for each cryptocurrency on your balance is depicted below the cryptocurrency amount
itself.
The Balances tab is very important for managing your account. Here you can see your deposit address for
each active cryptocurrency. To see the available actions, select one of the currencies. This opens a side
window with all possible actions.
Click the Receive button to see the deposit address (see Deposits). In the window that opens, you will see a
form with the address; pay close attention to its name. Usually, the default address or the last address you
AlphaPo Documentation Balance management / 93
used is displayed. In the drop‐down list, you can see all the addresses that were created in the My addresses
section of the Addresses tab.
You can either copy the address or use the provided QR if you find it more preferable. When making a deposit
to the address, make sure the currency is correct and the amount exceeds our processing limits.
By clicking the Send button, you can access the menu that allows you to withdraw cryptocurrency (see
Withdrawals). You need to specify the address and set the amount. Also make sure that the receiver’s
address is correct, the currency matches and the amount is above our processing limits.
You can exchange your cryptocurrency for fiat currency or vice versa, or exchange one cryptocurrency for
another (see Available trading pairs) by clicking the Exchange button.
AlphaPo Documentation Balance management / 94
In the menu that appears, you can choose the currency you want to exchange and the currency you want
to receive (either crypto or fiat), as well as set the amount. The exchange rate is fixed for one minute, so if
you exchange the funds within this time frame, you will get the exact amount in your chosen target currency.
If the timer expires, a new rate will be calculated and fixed for another minute. See Exchanges for more
details.
Note: Only users with the “Owner” role can access the Send and Exchange buttons, while any
® user from your team can see the deposit addresses by clicking the Deposit button.
AlphaPo Documentation Notifications / 95
Notifications
On the Notification tab, you can configure notifications to simplify the work with balances. These notifica‐
tions will help keep your business running.
Notifications will be sent to the addresses specified in the Emails section if the balance in a certain currency
becomes less than the amount specified in the Amount field of the Rules section.
To add a new email address, click the Add email button. To add a new rule, click the Add rule button and fill
in the required data and 2FA code in the window that appears (see below).
AlphaPo Documentation Mass Payouts / 96
Mass Payouts
The Mass Payouts tab provides an interface for initiating multiple outgoing crypto transactions at a time.
This can include transactions of different amounts made in different cryptocurrencies.
Initiating a mass payout involves processing a special CSV file and creating a transaction based on each data
row. Each transaction will then be processed in accordance with the general transaction flow, with the mass
payout getting its status based on all the transactions’ statuses.
Being an alternative interface to withdrawals, this feature works within the same limitations as they do.
For example, each individual transaction in a mass payout may be a subject to your merchant’s interface
withdrawal limits.
The file must start with a header row that lists these columns in the specified order.
Below is an example of a valid CSV file for a mass payout.
Address,Tag,Currency,Amount,Note
bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq,,BTC,0.0025,Salary for Alice
0x59E497D1AEf6B696B66F503D85d9b29A0e2930E8,,USDTE,120.20,Salary for Bob
r9NEXKYNyfxhzw7VzJp9et8t3onbam98G,2422386,XRP,400,Salary for Charlie
AlphaPo Documentation Mass Payouts / 97
Note that the amounts in the equivalent currency are for information purposes only. The actual costs
may change due to both the cryptoprocessing’s fees and the network’s mining fees. Both of them are
applied to each transaction only after the cryptoprocessing considers it confirmed.
6. Confirm the action by entering the 2FA code and clicking the Send payouts button.
AlphaPo Documentation Mass Payouts / 98
– Processing — the cryptoprocessing is still creating the transactions based on the CSV file or wait‐
ing for the transactions to be completed.
– Transaction on moderation — one or more transactions require another owner’s approval, due to
the withdrawal limits settings.
– Completed with errors — all created transactions are completed, but some transactions either
could not be created or failed after creation.
– Completed — all transactions were created and completed successfully.
Note that the table shows the Payouts processed and Transactions created values at the moment of the
latest page update. The actual values may change rapidly, especially while the CSV file is still being processed.
Refresh the page to get the latest information.
Click on a mass payout to open the panel with more details about it. The panel includes all the data from
above, as well as the following counters:
• Transactions created — the number of successfully created transactions. Click on the number to see
this mass payout’s transactions on the Transactions tab.
Below the counter, a separate counter will be shown for each status that transactions from this mass
payout got. Click on a number to see the mass payout’s transactions with the given status on the
Transactions tab.
• Transactions not created — the number of rows from the original CSV file for which the cryptoprocess‐
ing failed to create transactions.
AlphaPo Documentation Mass Payouts / 99
• Status — either the status of an unsuccessful transaction (Failed, Declined, Canceled) or Not created
if the cryptoprocessing failed to create a transaction based on this data row.
• Error — an error message explaining why the transaction was unsuccessful.
If you believe that the cause of the errors is fixed (you added more funds to your balances, you added a missing
Tag field, etc.), you can remove the Status and Error columns from the CSV file and use it for initiating a new
mass payout.
AlphaPo Documentation Transaction and address tracking / 100
A wide range of filtering options for transactions is available, which can be useful if you need to filter the
transactions by a given parameter: currency, time, status, etc. Also, you can export the list of transactions
into a .csv file by clicking the Export button in the upper right corner of the Filter menu.
Click on a transaction to open the panel with more details about it. This includes its time of creation, your
balances before and after the transaction, the addresses involved, etc. The exact set of properties varies
depending on the type of the transaction. If the transaction is a part of a mass payout, the panel will also
indicate its ID and name.
For deposits, withdrawals and invoices, the details panel also includes the TXID property (short for “Transac‐
tion ID”). Its meaning depends on whether the transaction is external or internal.
• An external transaction is a transaction between an AlphaPo user and an external address. For example,
it may be a withdrawal from your balance to an external wallet. An external transaction takes place in
the cryptocurrency’s blockchain, where it can be found by its TXID. Click the icon next to the “TXID”
label to open the transaction details in a public blockchain explorer.
• An internal transaction is a transaction between two AlphaPo users. For example, if your company has
multiple merchants registered at AlphaPo, sending funds between them will be done instantly as an
internal transaction. Such a transaction does not get sent to the public blockchain, thus avoiding the
mining fee. The TXID property displays a unique identifier of the transaction within AlphaPo. Click the
icon next to the “TXID” label to open the transaction details in AlphaPo Explorer.
AlphaPo Documentation Transaction and address tracking / 101
Risk scoring
In cryptocurrencies, it is often possible to analyze whether the funds used in the new transaction have par‐
ticipated in any suspicious transactions in the past.
AlphaPo makes such an analysis for BTC, BCH, ETH, LTC, and USDT, providing two parameters for incoming
transactions: Risky inflow and Risk score.
• Risky inflow is the amount of funds (in USD equivalent) that have originated from transactions that
can be considered suspicious.
• Risk score is the percentage of suspicious inputs or addresses among their total number. See Deposit
data examples.
Payments tab
The Payments tab also allows you to keep track of all transactions within your merchant account, and in
addition, contains information on our processing fees applied to these transactions and the remainder of
your funds after each transaction.
If you have any questions regarding the set fees or would like to discuss this matter further, please contact
us via sales@alphapo.net or email directly to our sales managers.
AlphaPo Documentation Withdrawal Limits / 103
Withdrawal Limits
To increase the level of control and security of your funds, we have added the ability to configure withdrawal
limits, which can be created for withdrawing funds both through the interface and through the API.
With this functionality, you can set up a default limit and specify a custom limit for a specific currency.
Withdrawals that exceed the limit will obtain the “Pending” status. All your team members whose email
addresses are specified in the settings will receive email notifications with a link to the list of transactions
with “Pending” status. They can approve or decline transactions with the “Pending” status.
Setting limits for withdrawals and confirmation of withdrawals exceeding the limit are available only to team
members with the “Owner” role within your merchant account (see User Permissions).
Note: Transactions cannot be created and confirmed by the same owner. If only one member
® of your team has the “Owner” role, then the interface withdrawal functionality is not available
to you.
To set up withdrawal limits, go to Settings → Withdrawal limit. On this tab, select which withdrawals you
are going to limit: created via the API or the interface.
These settings will be applied to all withdrawals via the interface/API for all cryptocurrencies.
To set up the default limits, click the Edit button.
• select the option “All interface withdrawals will be passed through manual moderation” (all interface with‐
drawals will be manually moderated);
• for each type of limit (one operation, per hour, per day):
– leave the “Unlimited” value (there are no restrictions on the interface withdrawals for the the cor‐
responding type of limit)
OR
– select “Custom” and enter a value (if the total amount of the interface withdrawals for the corre‐
sponding limit type exceeds the specified value, then this and all the subsequent transactions will
be manually moderated).
In the window that appears, select the currency from the drop‐down list. The next steps are similar to those
described in Default interface withdrawal limits.
When specifying the amount, you cannot set the value to “0” to send all transactions to manual moderation.
Instead, check the box All interface/API withdrawals will be passed through manual moderation.
The custom withdrawal limits have a higher priority than the Default withdrawal limits.
Example: Let us assume 1 BTC = 10,000 EUR. The user sets the default withdrawal limit “per
b day” to 9000 EUR and the custom withdrawal limit for one operation in BTC equal to 2 BTC.
When you withdraw 1 BTC, the transaction will not become “Pending” because it will be less
than your custom withdrawal limit.
AlphaPo Documentation Starting Point of API Testing / 106
Example
b Production: https://app.alphapo.net/api/v2/addresses/take
Test: https://app.sandbox.cryptoprocessing.com/api/v2/addresses/take
Receiving callbacks
By this time, if you have followed the steps above and have already set your callback URL, you should start
receiving them from our system. Make sure that the callbacks are processed correctly on your side and
you receive them for all ongoing transactions. If you did not receive the callback when you should, you can
click the Repeat callback button and our API will resend it to you. If the problem persists or you have any
questions about the API, please do not hesitate to contact us via info@alphapo.net.
AlphaPo Documentation Starting Point of API Testing / 107