Sentoo (Betalen)
Wat is Sentoo?
Section titled “Wat is Sentoo?”Sentoo is de lokale online betaaloplossing voor de Dutch Caribbean. Het werkt vergelijkbaar met iDEAL in Nederland: de klant kiest zijn bank, wordt doorgestuurd naar zijn eigen bankapp, keurt de betaling goed, en wordt teruggestuurd naar de app.
Beschikbare banken:
- Aruba Bank
- Banco di Caribe
- Caribbean Mercantile Bank (CMB)
- MCB Bonaire
- MCB Curaçao
- Orco Bank
- Windward Islands Bank (WIB)
Betaalmethoden
Section titled “Betaalmethoden”| Methode | Kosten | Security |
|---|---|---|
| A2A (lokale bank) | 1%, max AWG/USD 1,50 | Bank-level authenticatie |
| Visa/Mastercard | Gateway $0.27–$0.48 + processing 0.25–0.75% + MDR + $20/mnd | 3D Secure (3DS), PCI DSS |
Onboarding
Section titled “Onboarding”Bij onboarding krijgen developers:
- Merchant key voor API authenticatie
- REST API documentatie op developer.sentoo.io
- OpenAPI v3 / Swagger met executable test requests
- Integration environment (sandbox) voor testen
Vereisten:
- Registratie bij Kamer van Koophandel Aruba
- Zakelijke bankrekening bij Aruba Bank of CMB
- Merchant agreement afsluiten met Sentoo
- Contact: support@sentoo.io
API integratie
Section titled “API integratie”Sentoo biedt een REST API met secret key authenticatie. De volledige API docs staan op developer.sentoo.io (beschikbaar na onboarding).
Transactie aanmaken
Section titled “Transactie aanmaken”const response = await fetch('https://api.sentoo.io/v1/transactions', { method: 'POST', headers: { 'Authorization': `Bearer ${c.env.SENTOO_API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ amount: 125.00, currency: 'AWG', description: 'Factuur #2024-047 — Dagopvang Max', expiry_date: '2024-12-08', webhook_url: 'https://api.[domein].com/api/payments/webhook', redirect_url: 'https://app.[domein].com/invoices/[id]/success', }),});
const { payment_url, qr_code, transaction_id } = await response.json();Webhook verwerken
Section titled “Webhook verwerken”// apps/api/src/routes/payments.ts — webhook endpointapp.post('/webhook', async (c) => { // 1. Verificeer webhook handtekening const signature = c.req.header('x-sentoo-signature'); const body = await c.req.text();
if (!verifySignature(body, signature, c.env.SENTOO_WEBHOOK_SECRET)) { return c.json({ error: 'Niet geautoriseerd' }, 401); }
const payload = JSON.parse(body); const adminClient = c.get('adminClient');
// 2. Betaling ophalen const { data: payment } = await adminClient .from('payments') .select('*') .eq('sentoo_transaction_id', payload.transaction_id) .single();
// 3. Idempotency check if (payment.status === 'success') { return c.json({ message: 'Al verwerkt' }, 200); }
// 4. Status updaten const status = mapSentooStatus(payload.status); await adminClient .from('payments') .update({ status, paid_at: new Date().toISOString() }) .eq('id', payment.id);
// 5. Notificatie bij succes if (status === 'success') { await sendPaymentConfirmation(payment); }
return c.json({ message: 'OK' }, 200);});Transactiestatussen
Section titled “Transactiestatussen”| Sentoo status | App status | Actie |
|---|---|---|
ISSUED | pending | — |
PENDING | pending | — |
SUCCESS | success | Factuur betaald, bevestigingsmail |
FAILED | failed | Notificatie klant |
CANCELLED | cancelled | — |
EXPIRED | expired | Herinnering sturen |
Betaalflow
Section titled “Betaalflow”1. Klant klikt "Betaal nu" op factuurpagina2. App roept Hono API aan: POST /api/invoices/:id/send3. API maakt Sentoo transactie aan4. App toont betaallink + QR code aan klant5. Klant klikt betaallink → Sentoo tussenpagina6. Klant kiest bank → redirect naar bankapp7. Klant autoriseert betaling8. Sentoo stuurt webhook: POST /api/payments/webhook9. API markeert factuur als betaald (idempotent)10. Bevestigingsmail via Resend11. Klant wordt teruggestuurd naar success paginaCards (Visa/Mastercard)
Section titled “Cards (Visa/Mastercard)”Sentoo Cards is een apart product voor internationale kaartbetalingen. Setup:
- Contact support@sentoo.io
- Sentoo regelt merchant card account bij de bank
- Eenmalige setup fee + maandelijkse kosten ($20+)
- 3D Secure (3DS) ingebouwd voor PCI DSS compliance
Nog navragen bij onboarding
Section titled “Nog navragen bij onboarding”- Taalondersteuning betaalpagina: welke talen? Is Papiamento beschikbaar? Taalparameter via API?
- Webhook signature formaat: exact verificatiemechanisme (HMAC-SHA256 verwacht, bevestigen bij onboarding)