OpPay Documentation
Everything you need to accept Bitcoin payments on your website — SDK reference, integration guides, FAQ and legal documents.
Overview
What is OpPay?
OpPay is a Bitcoin-native payment SDK that lets any website accept BTC payments in minutes — with zero KYC, zero bank accounts, and a fee of just 0.01% per transaction.
📱
OPNet Wallet App
The fastest and safest method. The customer opens the OPNet Wallet app, taps scan, and points the camera at the QR code. Payment is signed and broadcast in seconds — no browser connection, fully offline signing.
SAFEST
₿
Bitcoin Address
Works with any Bitcoin wallet in the world. The customer scans the QR code or copies the address and sends the exact amount. OpPay monitors the mempool and confirms once the transaction is seen on-chain.
UNIVERSAL
🔒
OpCredit — Pay Later
The world's first Bitcoin-native buy-now-pay-later. The customer's BTC is locked in an OPNet smart contract on Bitcoin Layer 1. The merchant ships first. Funds are released when the customer confirms receipt — or fully refunded on a return.
BUYER PROTECTED
ℹ️
Demo-only notice. This version of OpPay is a demonstration platform. No real Bitcoin is transferred. Mainnet production release is in development.
Getting Started
Quick Start
Add a working Bitcoin payment button to any website in under 2 minutes. No backend required for the basic flow.
1
Get your API key
Complete the
merchant onboarding at
oppay.io/setup. You'll receive your API key instantly — no identity verification required.
2
Include the SDK script
Add one line to the <head> of every page where you want to offer Bitcoin payment.
3
Call OpPay.open()
Trigger the payment modal from any button click. Pass the amount, currency and merchant details. Handle success and failure in your own callbacks.
4
Confirm payments via webhook
Register a webhook URL in your merchant dashboard. OpPay will POST a signed event to your server every time a payment confirms on-chain.
<!-- 1. Load the SDK -->
<script src="https://cdn.oppay.io/v1/pay.js"></script>
<!-- 2. Your pay button -->
<button onclick="openPayment()">₿ Pay with Bitcoin</button>
<!-- 3. The call -->
<script>
function openPayment() {
OpPay.open({
amount: 49.99,
btc: 0.000495,
currency: 'EUR',
merchant: 'My Shop',
description: 'Order #1234',
api_key: 'op_live_xxxxxxxxxxxx',
onSuccess: (d) => console.log('Paid!', d.txId),
onFailure: (d) => console.log('Failed:', d.reason),
onCancel: () => console.log('Cancelled'),
});
}
</script>
Integration
Integration Guide
OpPay works on any stack. Choose your platform below.
Shopify
In your Shopify theme editor, go to Online Store → Themes → Edit code. Open theme.liquid and paste the SDK script before </head>. Then add an OpPay button in your product template using a Liquid snippet.
WooCommerce
Install the OpPay for WooCommerce plugin (available in the WordPress plugin directory). Enter your API key in the settings and OpPay will appear as a payment option at checkout automatically.
React / Next.js
import { useCallback } from 'react';
export function PayButton({ amount, btc, merchant, description }) {
const handlePay = useCallback(() => {
OpPay.open({
amount, btc, merchant, description,
currency: 'EUR',
api_key: process.env.NEXT_PUBLIC_OPPAY_KEY,
onSuccess: (d) => router.push(`/order/confirmed?tx=${d.txId}`),
});
}, [amount, btc, merchant, description]);
return <button className="oppay-btn" onClick={handlePay}>₿ Pay</button>;
}
💡
Tip: Always calculate the BTC amount server-side using a live price feed before calling OpPay.open(). Never hardcode BTC amounts — the price moves.
SDK Reference
OpPay.open( options )
Opens the payment modal. All options are passed as a single configuration object.
| Parameter | Type | Description |
| amountrequired | number | The price to charge, in the currency specified. Example: 49.99 |
| btcrequired | number | The exact BTC amount equivalent. Displayed to the customer. Example: 0.000495 |
| currencyrequired | string | ISO 4217 currency code for the display price. Supported: EUR USD GBP JPY CHF AUD CAD |
| merchantrequired | string | Your store name shown in the modal header. Example: "TechStore NL" |
| descriptionoptional | string | Order description shown in the payment summary. Example: "Running Shoes #7203" |
| api_keyoptional | string | Your OpPay merchant API key. Omit in demo mode. Required for live payments and webhook delivery. |
| session_idoptional | string | OpPay session ID for payment tracking and OPNet QR polling. Generated by the backend session API. |
| btc_addressoptional | string | Your merchant Bitcoin address. If omitted, OpPay generates a demo address. Required for live mode. |
| onSuccessoptional | function | Callback fired when a payment confirms. Receives a PaymentResult object. |
| onFailureoptional | function | Callback fired when a payment fails or is disputed. Receives a FailureResult object. |
| onCanceloptional | function | Callback fired when the customer closes the modal without completing payment. |
PaymentResult object (onSuccess)
{
txId: string, // Bitcoin transaction hash
method: 'opnet' | 'btcaddr' | 'opcredit',
amount: number, // amount in chosen currency
currency: string, // ISO currency code
escrowId?: string, // only present for OpCredit payments
}
OpPay.close()
Programmatically closes the payment modal. Useful if you need to dismiss it from your own UI logic.
SDK Reference
Payment Methods
The OpPay modal always presents all three payment methods. You cannot hide or restrict methods — this ensures the best conversion rate across all customer wallet types.
OPNet Wallet App
The customer scans a QR code with the OPNet mobile app. The transaction is signed offline in the app and broadcast directly to Bitcoin Layer 1. This is the most secure method — the private key never leaves the device and the payment app never connects to your website.
Bitcoin Address
A standard Bitcoin payment address QR is shown. Any Bitcoin wallet (Coinbase, Ledger, BlueWallet, Cash App, etc.) can scan it and send the exact amount. OpPay monitors the mempool for the transaction and confirms it after 1 block. The customer clicks "I've sent the BTC" and OpPay starts watching.
OpCredit — Buy Now Pay Later
See the OpCredit reference section for full details.
⚠️
Note for gambling / gaming merchants: OpCredit (Pay Later) is not available for gambling, gaming credits, or digital goods where the service is consumed immediately. If you are a gambling merchant, contact support and we will configure your account to hide the OpCredit option.
OpCredit
OpCredit — Escrow Reference
OpCredit is OpPay's Bitcoin-native buy-now-pay-later system. It uses an OPNet smart contract deployed on Bitcoin Layer 1 to hold funds in escrow between buyer and merchant.
How the escrow works
1
Customer locks BTC in the smart contract
The customer's BTC is transferred to an OPNet escrow contract on Bitcoin Layer 1. The contract address is unique per order. The merchant can see the locked balance but cannot withdraw it yet.
2
Merchant ships the order
The merchant's dashboard shows the escrow as LOCKED. This is their signal to ship. The merchant ships without receiving any payment yet — the BTC guarantee covers the risk.
3a
Customer confirms receipt → BTC released to merchant
When the order arrives, the customer clicks "Confirm Received" in the OpPay confirmation screen. The smart contract releases the BTC to the merchant's address instantly — on-chain, irreversible.
3b
Customer returns the order → BTC refunded
If the customer clicks "Return Order", a return dispute is opened. The merchant must confirm receipt of the returned goods before BTC is refunded. If the merchant does not respond within 7 days, the contract auto-refunds the customer.
4
Auto-release after 14 days
If neither action is taken within 14 days, the smart contract automatically releases the BTC to the merchant. This protects merchants against customers who simply forget to confirm receipt.
🔒
Smart contract security: The escrow contract is deployed on Bitcoin Layer 1 via OPNet. Neither OpPay, the merchant, nor any third party can access the funds without the conditions being met. The code is fully auditable on-chain.
Escrow identifiers in callbacks
When an OpCredit payment is confirmed, onSuccess fires with method: 'opcredit' and an escrowId like ESC-A3F7C2B1. Store this ID — you will need it to correlate webhook events when the escrow is released or disputed.
SDK Reference
Callbacks & Events
OpPay uses three client-side callbacks. For server-side confirmation use webhooks — never trust the client callback alone for order fulfilment.
OpPay.open({
// ... amount, btc, etc.
onSuccess: (result) => {
// Fires on: confirmed payment, escrowed OpCredit, confirmed receipt
console.log(result.txId); // Bitcoin tx hash
console.log(result.method); // 'opnet' | 'btcaddr' | 'opcredit'
console.log(result.escrowId); // only for opcredit
},
onFailure: (result) => {
// Fires on: tx rejected, escrow failed, return requested
console.log(result.reason);
// Reasons: 'rejected' | 'escrow_failed' | 'returned' | 'cancelled'
},
onCancel: () => {
// Customer closed modal without completing payment
},
});
⚠️
Security warning: Do not fulfil orders based on onSuccess alone. Always wait for the webhook confirmation from the OpPay server, which verifies the transaction on Bitcoin Layer 1.
Currencies
Currency Support
OpPay displays prices in the customer's preferred fiat currency, but every payment settles on-chain in Bitcoin. This means OpPay works for every country in the world — no currency conversion fees, no exchange markup, no blocked regions.
| Code | Currency | Country / Region |
| EUR | Euro | Eurozone (19 countries) |
| USD | US Dollar | United States + 11 countries |
| GBP | British Pound | United Kingdom |
| JPY | Japanese Yen | Japan |
| CHF | Swiss Franc | Switzerland |
| AUD | Australian Dollar | Australia |
| CAD | Canadian Dollar | Canada |
BTC conversion rates are fetched live from CoinGecko at the time OpPay.open() is called. Rates are cached for 60 seconds. We recommend passing a pre-calculated btc amount from your server to ensure accuracy.
Merchant
Webhooks
OpPay sends a signed HTTP POST to your webhook URL every time a payment event occurs. Configure your webhook URL in the merchant dashboard.
Event types
| Event | Trigger |
| payment.confirmed | Bitcoin transaction received at least 1 confirmation on-chain |
| payment.failed | Transaction was rejected or timed out |
| escrow.locked | OpCredit escrow contract deployed and funded by buyer |
| escrow.released | Buyer confirmed receipt — BTC sent to merchant address |
| escrow.disputed | Buyer opened a return request |
| escrow.refunded | BTC refunded to buyer after successful return |
| escrow.expired | 14-day auto-release triggered — BTC sent to merchant |
Webhook payload
{
"event": "payment.confirmed",
"txId": "0x4a3f2c1d...",
"amount": 49.99,
"currency": "EUR",
"btc": 0.000495,
"method": "btcaddr",
"merchant_id": "mer_xxxx",
"session_id": "sess_xxxx",
"timestamp": 1710000000,
"signature": "sha256=..."
}
Validate the signature header against your webhook secret before processing. Respond with HTTP 200 OK within 5 seconds or OpPay will retry up to 3 times.
Merchant
Security
API Key Security
Your API key identifies your merchant account. Never expose your live API key in client-side code or public repositories. Use environment variables. For frontend use, use the op_pub_ public key which has read-only scopes.
Bitcoin Address Rotation
For high-volume merchants, we recommend generating a unique Bitcoin address per order via the Sessions API. This enables precise payment matching and prevents any amount confusion. The btc_address and session_id parameters in OpPay.open() support this pattern.
No KYC architecture
OpPay does not collect, store, or process personal data about your customers. There is no customer registration, no ID verification, and no email requirement. The only identifying information is the on-chain Bitcoin transaction, which is public by nature of the Bitcoin protocol.
Merchant
Fees & Pricing
OpPay has the simplest and lowest pricing in the payment industry.
| Item | Cost |
| Setup & integration | Free — €0 |
| Monthly / yearly subscription | Free — €0 |
| API calls | Free — €0 |
| Webhook delivery | Free — €0 |
| Welcome bonus — first €100,000 in sales | Free — €0 (0% fee) |
| Platform service fee (after €100k) | 0.01% per confirmed transaction |
| Bitcoin network fee (miner fee) | Variable — paid by the sender |
| OpCredit escrow fee | 0.01% (included in base fee) |
🎉
Welcome bonus: New merchants pay zero platform fees on their first €100,000 in confirmed sales. This is automatically tracked in your merchant dashboard with a live progress bar.
💰
0.01% means: on a €100 sale, OpPay takes 1 cent. Stripe takes ~€3.20. PayPal takes ~€3.49. OpPay is up to 300× cheaper.
Support
Frequently Asked Questions
What is OpPay and how does it work?
▼
OpPay is a Bitcoin payment SDK. You embed one script tag on your website, and a professional payment modal appears when a customer clicks Pay. The modal supports three payment methods: OPNet Wallet App (QR scan), Bitcoin Address (any wallet), and OpCredit (pay later via escrow). Payments settle on Bitcoin Layer 1 — real BTC goes directly to your wallet. No middleman, no bank account needed.
Do I need to register or verify my identity (KYC)?
▼
No. OpPay never asks for your identity, passport, address, or any personal documents — for merchants or customers. You only need a Bitcoin wallet address to receive payments. This is by design: Bitcoin is permissionless, and OpPay respects that. Complete anonymity is guaranteed at the protocol level.
Which currencies are supported?
▼
OpPay displays prices in EUR, USD, GBP, JPY, CHF, AUD, and CAD. Because every payment settles in Bitcoin on-chain, OpPay effectively works for every country in the world — we just show the price in whichever fiat currency your store uses. The BTC amount is calculated at live rates from CoinGecko at checkout time.
What is OpCredit and how is it different from Klarna or Afterpay?
▼
OpCredit is a Bitcoin-native buy-now-pay-later system. Unlike Klarna or Afterpay, it does not involve credit scores, personal data, or debt. Instead, the customer's BTC is locked in an OPNet smart contract on Bitcoin Layer 1. The merchant ships first. The customer confirms receipt and the BTC is released. If the customer wants to return, they open a dispute and the BTC is refunded. No credit check, no identity, no loan — just a smart contract guarantee.
How long does a Bitcoin payment take?
▼
With the OPNet Wallet App method, the customer's transaction is broadcast immediately — OpPay detects it in the mempool within seconds and confirms after the first Bitcoin block (~10 minutes). For the Bitcoin Address method, confirmation takes 1–3 Bitcoin blocks (~10–30 minutes). For OpCredit, the escrow is deployed and confirmed within one block and the merchant can ship immediately after.
What is the OpPay fee?
▼
0.01% per confirmed transaction. That is 1 cent on a €100 order. There are no setup fees, no monthly fees, no hidden charges, and no minimum transaction size. The Bitcoin network miner fee is paid separately by the sender (customer) as part of their Bitcoin transaction.
Can customers charge back a Bitcoin payment?
▼
No. Confirmed Bitcoin transactions are final and irreversible by protocol. There are no chargebacks. For merchants, this eliminates one of the biggest costs and risks of card processing. For customers who need protection, the OpCredit escrow system provides a fair dispute process without relying on bank reversals.
Where does my Bitcoin go after a payment?
▼
Directly to your Bitcoin wallet address. OpPay does not hold funds, custody BTC, or route payments through any escrow (except for OpCredit orders, where the smart contract does). You enter your Bitcoin receiving address when setting up your merchant account, and all confirmed payments are sent straight there on-chain — no withdrawals, no waiting period.
Is OpPay available worldwide?
▼
Yes. Bitcoin has no borders. OpPay works in every country that can access the internet and Bitcoin network. There are no country restrictions, no blocked regions, no sanctions screening (as we handle no fiat). If you have a Bitcoin wallet, you can use OpPay — as a merchant or a customer.
Can I integrate OpPay with Shopify or WooCommerce?
▼
Yes. OpPay provides dedicated integration paths for
Shopify (theme code injection),
WooCommerce (plugin),
React/Next.js (npm package), and plain HTML. See the
Integration Guide for step-by-step instructions for each platform.
What happens if I lose my API key?
▼
Log into your merchant dashboard and generate a new API key. Old keys can be revoked immediately. Your transaction history and Bitcoin address are linked to your merchant account, not the key — so regenerating does not affect past payments.
Is this real Bitcoin or a test network?
▼
The current public demo on this site is a simulation only — no real Bitcoin is transferred, all confirmations are simulated. The production OpPay platform uses real Bitcoin on Bitcoin Layer 1 (mainnet). Testnet access for development is available to registered merchants — use the OPNet Signet testnet for integration testing.
Legal
Terms of Service
Last updated: March 1, 2026 · Effective: March 1, 2026
⚠️
Please read these Terms of Service carefully before using the OpPay platform. By registering as a merchant or using the OpPay SDK on your website, you agree to be bound by these terms.
1. Definitions
"OpPay" refers to the OpPay payment platform, SDK, API, merchant dashboard, and all associated services provided by OpPay B.V. (in formation), registered in the Netherlands.
"Merchant" refers to any business or individual who registers an OpPay merchant account and uses the OpPay SDK to accept payments on their website or application.
"Customer" refers to the end user who initiates a Bitcoin payment through the OpPay modal on a Merchant's website.
"OpCredit" refers to OpPay's Bitcoin escrow payment feature, which uses OPNet smart contracts on Bitcoin Layer 1.
"BTC" and "Bitcoin" refer to the Bitcoin cryptocurrency operating on the Bitcoin Layer 1 mainnet blockchain.
2. Service Description
OpPay provides a software development kit (SDK) and associated backend infrastructure that enables Merchants to accept Bitcoin payments on their websites. OpPay is a non-custodial payment facilitation service — we do not hold, custody, transmit, or control any Bitcoin on behalf of Merchants or Customers, except as temporarily locked in OPNet escrow contracts during OpCredit transactions.
OpPay does not operate as a money services business, payment institution, or electronic money institution under any jurisdiction, as we do not hold or transmit fiat currency and do not custody Bitcoin in the ordinary course.
3. Merchant Account & Eligibility
3.1 Any person or legal entity may register as a Merchant. OpPay does not require identity verification (KYC) to create an account or use the service.
3.2 Merchants are responsible for their own legal compliance in their jurisdiction, including any obligations related to accepting cryptocurrency payments, tax reporting, and consumer protection laws.
3.3 Merchants must not use OpPay to facilitate transactions that are illegal in their jurisdiction or the customer's jurisdiction, including but not limited to: fraud, money laundering, terrorist financing, sale of prohibited substances, or circumventing financial sanctions.
3.4 By accepting these terms, the Merchant represents that their business and the transactions they process comply with all applicable laws.
4. Fees
4.1 OpPay charges a platform service fee of 0.01% (zero point zero one percent) of the Bitcoin value of each confirmed transaction.
4.2 The fee is automatically deducted at settlement. If technical implementation prevents automatic deduction, Merchants will be invoiced monthly for accrued fees.
4.3 Bitcoin network miner fees (transaction fees paid to Bitcoin miners) are separate from OpPay fees and are borne by the party broadcasting the transaction.
4.4 OpPay reserves the right to modify the fee structure with 30 days' written notice to registered Merchants.
5. Payments & Settlement
5.1 OpPay is non-custodial. Bitcoin payments flow directly from the Customer's wallet to the Merchant's designated Bitcoin address. OpPay does not hold funds at any point in the standard payment flow.
5.2 Confirmed Bitcoin transactions are final and irreversible. OpPay cannot reverse, cancel, or refund a confirmed on-chain Bitcoin transaction.
5.3 Merchants are solely responsible for their refund and return policies. OpPay provides the OpCredit escrow mechanism as a technical tool but is not a party to the underlying commercial transaction.
6. OpCredit Escrow Terms
6.1 OpCredit uses smart contracts deployed on the OPNet protocol on Bitcoin Layer 1. The smart contract code governs the release, refund, and auto-expiry of escrowed funds.
6.2 OpPay does not control, modify, or have access to funds held in OpCredit escrow contracts. The contract executes automatically based on on-chain conditions.
6.3 The standard escrow duration is 14 days from deployment. If neither the Customer nor the Merchant takes action, the smart contract auto-releases funds to the Merchant after 14 days.
6.4 Return disputes must be initiated within 14 days of the escrow deployment date.
6.5 OpCredit is not available for gambling merchants, digital goods consumed immediately, or service-based transactions where delivery cannot be physically confirmed.
7. Prohibited Activities
Merchants may not use OpPay in connection with:
- Illegal goods or services of any kind
- Money laundering, terrorist financing, or sanctions evasion
- Fraudulent transactions, fake merchant accounts, or phishing
- High-risk financial products (securities, unregulated financial instruments) without proper licensing
- Adult content in jurisdictions where it is illegal
- Counterfeit goods or trademark infringement
- Multi-level marketing schemes or pyramid schemes
- Proceeds from theft, extortion, or ransomware
OpPay reserves the right to terminate any merchant account without notice if we determine, in our sole discretion, that the account is being used for prohibited activities.
8. Disclaimer of Warranties
OpPay is provided "as is" and "as available" without any express or implied warranties, including but not limited to merchantability, fitness for a particular purpose, or non-infringement. OpPay does not warrant that the service will be uninterrupted, error-free, or that Bitcoin network conditions will be consistent.
9. Limitation of Liability
To the maximum extent permitted by applicable law, OpPay and its officers, directors, employees, and partners shall not be liable for any indirect, incidental, special, consequential, or punitive damages, including but not limited to loss of Bitcoin, loss of profits, or loss of business, arising from your use of the OpPay service.
OpPay's total aggregate liability in connection with these Terms shall not exceed the total fees paid by the Merchant to OpPay in the 12 months preceding the claim.
10. Governing Law
These Terms shall be governed by and construed in accordance with the laws of the Netherlands, without regard to conflict of law principles. Any disputes shall be submitted to the exclusive jurisdiction of the courts of Amsterdam, the Netherlands.
11. Changes to Terms
OpPay reserves the right to modify these Terms at any time. Merchants will be notified of material changes via the registered merchant email address. Continued use of OpPay after the effective date of changes constitutes acceptance.
Questions about these terms? Contact us at legal@oppay.io
Legal
Privacy Policy
Last updated: March 1, 2026
1. Our commitment to privacy
OpPay is built on a core principle: we collect as little data as possible. Bitcoin is a permissionless protocol — our infrastructure reflects that. Customer data is never required, never stored, and never sold.
2. Data we collect from Merchants
When you register as a merchant, we collect:
- Your merchant name or store name
- Your website URL
- Your Bitcoin receiving address
- An email address (optional — only required for webhook notifications and account recovery)
We do not collect national identification numbers, passports, proof of address, or any government-issued documents.
3. Data we collect about Customers
We collect zero personal data about Customers. When a Customer makes a payment via OpPay, the only information we process is:
- The Bitcoin transaction hash (public information on the Bitcoin blockchain)
- The amount and currency of the payment
- A session ID (anonymous, not linked to any personal identity)
No name, email, IP address (beyond server-level logging required for security), shipping address, or any other personal data is collected from Customers.
4. Payment data
Bitcoin transactions are recorded on the public Bitcoin blockchain. This is immutable and outside OpPay's control. OpPay stores a record of transactions in your merchant dashboard for reporting purposes, but this data consists only of blockchain-public information.
5. Data retention
Merchant account data is retained as long as the account is active and for 2 years after account closure for legal and accounting purposes. Transaction logs are retained for 7 years in accordance with standard accounting regulations.
6. Third parties
OpPay uses the following third-party services:
- CoinGecko — for live BTC price data (no personal data is shared)
- OPNet infrastructure — for Bitcoin Layer 1 transaction monitoring
We do not use advertising networks, analytics trackers, or marketing data brokers.
7. Your rights (GDPR)
If you are located in the European Union, you have the right to access, correct, or delete the personal data we hold about you. You also have the right to data portability and the right to object to processing. To exercise these rights, contact privacy@oppay.io. We will respond within 30 days.
Privacy questions? Contact privacy@oppay.io
Legal
Cookie Policy
OpPay uses minimal cookies. Our cookie usage is limited to:
| Cookie | Type | Purpose | Duration |
| oppay_session | Essential | Merchant session authentication | Session |
| oppay_merchant | Essential | Remember merchant login state | 30 days |
| oppay_currency | Preference | Remember selected display currency | 90 days |
We use no analytics cookies, no advertising cookies, and no tracking pixels. We do not use Google Analytics, Facebook Pixel, or any other third-party tracking service.
The OpPay SDK embedded on merchant websites does not set any cookies in the customer's browser. It uses localStorage only to cache the last transaction in the customer's own browser (not transmitted to any server).
Legal
AML Statement
Anti-Money Laundering & Counter-Terrorism Financing Statement
OpPay takes its obligations under anti-money laundering (AML) and counter-terrorism financing (CTF) laws seriously, to the extent applicable to our non-custodial, decentralized architecture.
Our position on AML
OpPay operates as a non-custodial technology provider. We do not transmit, hold, or control funds. Our SDK is software — like a point-of-sale terminal manufacturer — and does not constitute a money service business under most jurisdictions, including the Netherlands (DNB registration is not required for non-custodial software providers).
However, OpPay proactively enforces the following measures:
- Merchant terms of service prohibit use of OpPay for illegal activity, money laundering, or terrorist financing
- Merchant accounts can be suspended if credible reports of illegal activity are received
- We cooperate fully with law enforcement requests supported by valid legal process
- We monitor for merchants operating in prohibited sectors
VASP Status
OpPay does not qualify as a Virtual Asset Service Provider (VASP) under FATF guidance or the EU's MiCA regulation, as we do not exchange, transfer, or custody virtual assets. We provide payment infrastructure software only. Merchants who use OpPay to receive Bitcoin may have their own VASP obligations depending on their business model and jurisdiction — this is their sole responsibility.
AML/compliance questions? Contact compliance@oppay.io