Skip to main content

Security & Compliance

Understanding NextAPI's security framework and compliance requirements for building secure payment applications.

Security Overview​

NextAPI implements multiple layers of security to protect your payment operations:

Application Security
├── Authentication (API Keys, OAuth)
├── Authorization (Role-based Access)
├── Encryption (TLS, Data at Rest)
├── Audit Logging
└── Compliance (PCI-DSS, Data Privacy)

Authentication Methods​

API Keys​

The primary authentication method for server-side operations:

// Sandbox
const apiKey = 'sk_test_1234567890abcdef';

// Production
const apiKey = 'sk_live_1234567890abcdef';

// Usage
const response = await fetch('https://api.nextapi.com/v1/account', {
headers: {
'Authorization': `Bearer ${apiKey}`
}
});

OAuth 2.0​

For user authorization and delegated access:

// Authorization Code Flow
GET https://auth.nextapi.com/oauth/authorize?
response_type=code&
client_id=your_client_id&
redirect_uri=https://yourapp.com/callback&
scope=read+write&
state=random_string

// Exchange code for access token
POST https://auth.nextapi.com/oauth/token
{
"grant_type": "authorization_code",
"code": "auth_code_here",
"client_id": "your_client_id",
"client_secret": "your_client_secret"
}

Data Encryption​

In Transit (TLS)​

  • All API calls use HTTPS with TLS 1.2+
  • Certificate pinning available for mobile apps
  • HSTS headers enforced

At Rest​

  • Sensitive data encrypted using AES-256
  • Database encryption at rest
  • Key management with hardware security modules

Authorization & Permissions​

Role-Based Access Control (RBAC)​

RolePermissionsUse Case
OwnerFull accessPlatform administrators
AdminManage wallets, payoutsBusiness operators
OperatorCreate payouts, view reportsDaily operations
ViewerRead-only accessAuditors, reporting

Scopes for OAuth​

ScopePermissionsDescription
readView operationsRead wallets, transactions
writeCreate operationsCreate payouts, payment links
adminAdmin operationsManage wallets, users
webhooksWebhook managementConfigure webhooks

Compliance Standards​

PCI-DSS Compliance​

  • Level 1 Service Provider: Highest certification level
  • Tokenization: Card data replaced with secure tokens
  • Secure Storage: No raw card data stored
  • Regular Audits: Quarterly security scans, annual assessments

Data Privacy​

  • GDPR Compliant: EU data protection regulations
  • Data Minimization: Only collect necessary data
  • Right to Erasure: Data deletion capabilities
  • Consent Management: Explicit user consent required

Financial Regulations​

  • AML/KYC: Anti-money laundering and know-your-customer
  • Transaction Monitoring: Suspicious activity detection
  • Reporting Requirements: Regulatory transaction reporting
  • Sanctions Screening: OFAC and international sanctions

Security Best Practices​

API Key Management​

// Environment variables (recommended)
const apiKey = process.env.NEXTAPI_API_KEY;

// Never hardcode keys
const bad = 'sk_live_1234567890abcdef'; // DON'T DO THIS

// Use key management services
const apiKey = await secretsManager.getSecret('nextapi-api-key');

Request Signing​

For high-security operations, sign requests with HMAC:

const crypto = require('crypto');

function signRequest(method, url, body, secret) {
const timestamp = Math.floor(Date.now() / 1000);
const message = `${method}\n${url}\n${timestamp}\n${JSON.stringify(body)}`;

const signature = crypto
.createHmac('sha256', secret)
.update(message)
.digest('hex');

return {
'X-Signature': signature,
'X-Timestamp': timestamp
};
}

Webhook Security​

// Verify webhook signatures
function verifyWebhook(payload, signature, secret) {
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(JSON.stringify(payload))
.digest('hex');

return signature === `sha256=${expectedSignature}`;
}

Audit and Monitoring​

Audit Logs​

All sensitive operations are logged:

{
"timestamp": "2024-01-15T10:30:00Z",
"user_id": "user_123",
"action": "payout_created",
"resource_id": "payout_456",
"ip_address": "192.168.1.100",
"user_agent": "NextAPI-JS/1.0.0"
}

Security Monitoring​

  • Real-time alerts: Suspicious activity notifications
  • Rate limiting: Prevent abuse and attacks
  • Anomaly detection: Machine learning-based threat detection
  • IP whitelisting: Restrict access by IP address

Data Handling Guidelines​

Sensitive Data Classification​

ClassificationData TypeHandling Requirements
Highly SensitiveAPI keys, passwordsEncrypted, access logs disabled
SensitiveWallet balances, transaction amountsEncrypted, audit logged
Personal DataNames, emails, phone numbersEncrypted, GDPR compliant
Operational DataTransaction IDs, timestampsStandard security

Data Retention​

  • Transaction data: 7 years (regulatory requirement)
  • Personal data: As per user consent and GDPR
  • Audit logs: 1 year for security investigations
  • API logs: 90 days for troubleshooting

Security Checklist​

Development​

  • Use environment variables for secrets
  • Implement proper error handling (don't expose sensitive data)
  • Validate all input parameters
  • Use HTTPS for all communications
  • Implement rate limiting

Production​

  • Regularly rotate API keys
  • Monitor audit logs
  • Set up security alerts
  • Perform regular security assessments
  • Keep dependencies updated

Compliance​

  • Understand applicable regulations
  • Implement data retention policies
  • Handle user data requests promptly
  • Maintain compliance documentation
  • Regular compliance training

Incident Response​

Security Incident Types​

  1. Data Breach: Unauthorized access to sensitive data
  2. API Key Compromise: Stolen or exposed API keys
  3. Fraudulent Activity: Suspicious transactions
  4. Service Disruption: DDoS attacks or system failures

Response Procedures​

  1. Detection: Automated monitoring and alerting
  2. Assessment: Impact analysis and risk evaluation
  3. Containment: Isolate affected systems
  4. Resolution: Fix vulnerabilities and restore services
  5. Notification: Inform affected parties and regulators
  6. Post-mortem: Document lessons learned
  • [Understanding Your Wallet Structure](./understanding-your-wallet-structure
  • [IDs, Reference IDs, and Idempotency](./ids-reference-ids-idempotency
  • [Securely Receive and Verify Webhooks](../guides/how-to/securely-receive-and-verify-webhooks