Perseus
Overview
Perseus is a comprehensive fiat payment provider that enables businesses to accept payments in multiple currencies worldwide. It provides a robust integration for processing fiat currency transactions with flexible KYC requirements and supports various payment methods.

Features
- Extensive multi-currency support
- Flexible KYC verification options
- Advanced fraud protection
- Real-time payment notifications
Integration Requirements
- Banksy API Key
- Valid callback URLs for success and failure scenarios
- Customer email for transaction notifications
- SSL-enabled endpoint for webhook notifications
Supported Currencies
Currencies
- AUD - Australian Dollar
- BRL - Brazilian Real
- CAD - Canadian Dollar
- CNY - Chinese Yuan
- CZK - Czech Koruna
- DKK - Danish Krone
- EUR - Euro
- HKD - Hong Kong Dollar
- HUF - Hungarian Forint
- ILS - Israeli New Shekel
- JPY - Japanese Yen
- MYR - Malaysian Ringgit
- MXN - Mexican Peso
- TWD - New Taiwan Dollar
- NZD - New Zealand Dollar
- NOK - Norwegian Krone
- PHP - Philippine Peso
- PLN - Polish Złoty
- GBP - British Pound
- SGD - Singapore Dollar
- SEK - Swedish Krona
- CHF - Swiss Franc
- THB - Thai Baht
- USD - United States Dollar
Accepted Payment Methods
- Credit/Debit Cards
- Visa
- Mastercard
- American Express
- Discover
- Diners Club
Implementation
Payment Payload Structure
const payload = {
amount: number, // Payment amount
currency: string, // Currency code (e.g., USD, EUR, GBP)
currencyType: "perseus", // Fixed value for fiat transactions
isKycOptional: boolean, // Whether KYC is required
customerEmail: string, // Customer's email address
successCallback: string, // URL for successful payments
failureCallback: string, // URL for failed payments
};
Example Implementation
import { Banksy } from "banksy-sdk";
// Initialize the Banksy SDK with your API key
const banksy = new Banksy("your-api-key");
async function createPerseusPayment() {
try {
const paymentPayload = {
amount: 10,
currency: "USD",
currencyType: "perseus",
isKycOptional: true,
customerEmail: "customer@example.com",
successCallback: "https://your-domain.com/success",
failureCallback: "https://your-domain.com/failure",
};
const payment = await banksy.createPayment(paymentPayload);
console.log("Payment Created:", payment);
// Redirect to payment page
window.location.href = payment.paymentLink;
} catch (error) {
console.error("Payment creation failed:", error);
}
}
Testing
- Use sandbox API keys for development
- Test with various currencies and payment methods
- Verify webhook handling for different payment scenarios
- Test KYC flows when required
- Validate error handling and edge cases
Test Cards
For testing in the sandbox environment:
// American Express
Card Number: 371449635398431
Card Number: 376680816376961
// Diners Club
Card Number: 36259600000004
// Maestro
Card Number: 6304000000000000
Card Number: 5063516945005047
// Mastercard
Card Number: 2223000048400011
// Visa
Card Number: 4005519200000004
Card Number: 4012000033330026
Card Number: 4012000077777777
Card Number: 4012888888881881
API Testing with cURL
You can test the payment creation endpoint using the following cURL command:
curl --location 'https://sandbox-api.banksy.id/sdk/payment/create' \
--header 'Content-Type: application/json' \
--header 'X-AUTH: ck_test_************738139' \
--data-raw '{
"amount": 100,
"currency": "USD",
"currencyType": "perseus",
"isKycOptional": true,
"customerEmail": "customer@example.com",
"successCallback": "http://domain.com/success",
"failureCallback": "http://domain.com/failure"
}'
Security Best Practices
-
Authentication & Authorization
- Implement strong API key management
- Use webhook signatures for verification
- Regular key rotation
- IP whitelisting when possible
-
Fraud Prevention
- Enable advanced fraud detection
- Monitor unusual transaction patterns
- Implement velocity checks
- Use AVS and CVV verification
-
Error Handling
- Implement comprehensive logging
- Monitor failed transactions
- Set up alerting for suspicious activities
- Proper error message handling
Support
For technical support or integration assistance, please contact the Banksy support team through the official channels.