Accept USDC on Algorand and aUSDC on VOI for Bol.com orders via AlgoVoi.
Bol.com processes all consumer checkout payments internally. AlgoVoi's Bol.com integration targets:
- B2B / supplier invoicing — receive order notifications and issue a crypto payment request to a supplier or fulfilment partner
- Seller-initiated settlement — settle platform fees or inter-company invoices in USDC/aUSDC
- Operator-initiated flows — your own backend posts order data directly to AlgoVoi (bypass mode)
AlgoVoi polls GET /orders?status=OPEN on the Bol.com Retailer API
↓
New OPEN order detected → AlgoVoi parses order details
↓
AlgoVoi creates a hosted checkout link (USDC or aUSDC)
↓
Counterparty pays on-chain
↓
AlgoVoi verifies transaction on-chain
↓
Bol.com order updated via PUT /orders/{orderId}/shipment with AlgoVoi TX reference
Bol.com does not offer native outbound webhooks. AlgoVoi polls for new OPEN orders at a configurable interval (default: every 60 seconds).
- An active AlgoVoi tenant account
- A Bol.com seller account on seller.bol.com
- API credentials (Client ID and Client Secret) from the Bol.com seller dashboard
You need at least one network config with a payout address and your chosen stablecoin.
POST /internal/tenants/{tenant_id}/network-configs
Authorization: Bearer <admin-key>
Content-Type: application/json
{
"network": "algorand_mainnet",
"payout_address": "<your-algorand-address>",
"preferred_asset_id": "31566704",
"preferred_asset_decimals": 6
}ASA
31566704is Circle's native USDC on Algorand mainnet. Your payout wallet must have opted into this ASA before receiving payments.
POST /internal/tenants/{tenant_id}/network-configs
Authorization: Bearer <admin-key>
Content-Type: application/json
{
"network": "voi_mainnet",
"payout_address": "<your-voi-address>",
"preferred_asset_id": "302190",
"preferred_asset_decimals": 6
}ARC200 app ID
302190is aUSDC on VOI mainnet.
- Log in to your Bol.com seller dashboard at seller.bol.com
- Navigate to Instellingen → API toegang (Settings → API access)
- Click Nieuwe API-sleutel aanmaken (Create new API key)
- Copy the Client ID and Client Secret — the secret is shown once
AlgoVoi authenticates with Bol.com using OAuth2 client credentials, exchanging your Client ID and Client Secret for a short-lived bearer token via
POST https://login.bol.com/token. Token refresh is handled automatically.
POST /internal/integrations/{tenant_id}/bolcom
Authorization: Bearer <admin-key>
Content-Type: application/json
{
"credentials": {
"client_id": "<bol-client-id>",
"client_secret": "<bol-client-secret>"
},
"shop_identifier": "<your-bol-seller-id>",
"base_currency": "EUR",
"preferred_network": "algorand_mainnet"
}preferred_network — which chain to settle payments on:
| Value | Settles in |
|---|---|
algorand_mainnet |
USDC (ASA 31566704) |
voi_mainnet |
WAD (ARC200 app ID 47138068) |
The response confirms the integration is active. Because Bol.com uses polling rather than webhooks, there is no webhook_url or webhook_secret returned.
{
"status": "active",
"platform": "bolcom",
"preferred_network": "algorand_mainnet",
"poll_interval_seconds": 60
}Bol.com does not support outbound webhooks. AlgoVoi polls GET https://api.bol.com/retailer/orders?status=OPEN on your behalf at the configured interval.
No additional setup is required — polling begins automatically once the integration is connected.
To adjust the poll interval, update the integration:
POST /internal/integrations/{tenant_id}/bolcom
Authorization: Bearer <admin-key>
Content-Type: application/json
{
"credentials": {
"client_id": "<bol-client-id>",
"client_secret": "<bol-client-secret>"
},
"shop_identifier": "<your-bol-seller-id>",
"base_currency": "EUR",
"preferred_network": "algorand_mainnet",
"poll_interval_seconds": 120
}Minimum poll interval is 30 seconds. Setting a value below 30 will be clamped to 30 to respect Bol.com rate limits.
Once connected:
- AlgoVoi detects a new OPEN order on the next poll cycle
- A hosted checkout link is created (valid 30 minutes)
- Share the checkout URL with your supplier or fulfilment partner
- Counterparty pays in USDC or aUSDC on-chain
- AlgoVoi verifies the transaction and calls
PUT https://api.bol.com/retailer/orders/{orderId}/shipmentwith the AlgoVoi TX ID as the shipment/tracking reference
| Symptom | Likely cause |
|---|---|
| HTTP 422 "No network config" | Network config missing for preferred_network |
| HTTP 401 from Bol.com API | Client ID or Client Secret is incorrect — reconnect the integration |
| Orders not being detected | Bol.com OAuth token refresh failure — check credentials and reconnect |
| Shipment update failing | Order may have already transitioned out of OPEN state on Bol.com |
| Payment link expired | Counterparty took longer than 30 minutes — re-trigger manually via operator POST |
Confirmed end-to-end on 2026-04-14 against api.algovoi.co.uk:
| Test | Network | Result |
|---|---|---|
| Webhook → checkout link | algorand_mainnet (USDC (ASA 31566704)) |
Pass |
| Webhook → checkout link | voi_mainnet (WAD (ARC200 app ID 47138068)) |
Pass |
| Webhook → checkout link | hedera_mainnet (USDC (token 0.0.456858)) |
Pass |
| Webhook → checkout link | stellar_mainnet (USDC (Circle)) |
Pass |
Response 401: {'detail': 'Webhook signature invalid'}
| Network | Asset | Notes |
|---|---|---|
algorand_mainnet |
USDC (ASA 31566704) | Requires ASA opt-in on payout wallet |
voi_mainnet |
WAD (ARC200 app ID 47138068) | |
algorand_testnet |
Test USDC | For integration testing only |
voi_testnet |
Test aUSDC | For integration testing only |