Bonaventure OgetoBy Bonaventure Ogeto|

Transfer Limits and Compliance Considerations

Paystack imposes per-transaction and daily transfer limits that vary by market, account tier, and destination type. Higher account tiers unlock higher limits. Recipient accounts also have inflow limits based on their KYC tier. Build limit validation into your payout pipeline to catch limit violations before they reach the API, and design escalation paths for transfers that exceed your current limits.

Understanding Paystack Transfer Limits

Paystack imposes limits on transfers at several levels. These limits protect both Paystack and your business from fraud and comply with local financial regulations.

Per-transaction limits: The maximum amount for a single transfer. This varies by destination type (bank account vs mobile money) and currency.

Daily limits: The total amount you can transfer in a 24-hour period. This resets daily and applies across all transfers from your account.

Account tier limits: Your Paystack account has a tier based on your KYC (Know Your Customer) verification level. Higher tiers allow higher limits. A newly created account with basic verification has lower limits than a fully verified business account.

These limits can change as Paystack updates their policies and as you upgrade your account tier. Always check your Paystack dashboard for the current limits that apply to your specific account. Do not hard-code limit values in your application because they may become outdated.

KYC Tiers and How to Upgrade

Paystack uses tiered KYC verification. Each tier requires more documentation but unlocks higher limits and additional features.

Basic tier: Business registration and basic owner information. Gets you started with transfers at lower limits. Sufficient for testing and early-stage products.

Intermediate tier: Additional documentation such as business address verification, director identification, and possibly financial statements. Higher transfer limits.

Full tier: Complete business verification including all directors, beneficial owners, bank statements, and possibly regulatory licenses. Highest transfer limits and full API access.

To upgrade your tier, log into the Paystack dashboard and navigate to Settings > Compliance or Business Verification. Submit the required documents for the next tier. Paystack reviews submissions and typically responds within a few business days.

If your payout volumes are growing and you are approaching your current limits, start the upgrade process before you hit the ceiling. Waiting until transfers start failing because of limit violations creates unnecessary pressure on both your team and the verification process.

Recipient-Side Limits

Even if your Paystack account can send large transfers, the recipient's account may not be able to receive them. Bank accounts and mobile money wallets have their own limits.

Nigerian bank accounts: Tiered KYC applies. Tier 1 accounts have daily transaction limits. Tier 2 and 3 accounts have progressively higher limits. If your transfer would push a Tier 1 recipient over their daily limit, it fails.

M-Pesa wallets (Kenya): M-Pesa has per-transaction and daily transaction limits that depend on the account tier. Safaricom sets these limits and updates them periodically.

Ghanaian mobile money: Similar tiered limits based on registration level. Basic registered accounts have lower limits than fully registered accounts.

You cannot check a recipient's current tier or remaining daily limit through the Paystack API. These failures surface as transfer.failed events with a reason related to limits. When you see these failures, inform the recipient that they may need to upgrade their account tier with their bank or mobile money provider.

Building Limit Checks into Your Pipeline

// Pre-validate transfers against known limits
// Store your current limits (update when they change)
var TRANSFER_LIMITS = {
  NGN: {
    perTransaction: 100000000, // Example: check dashboard for actual value
    daily: 500000000,          // Example: check dashboard for actual value
  },
  KES: {
    perTransaction: 50000000,
    daily: 200000000,
  },
};

async function validateTransferLimits(amount, currency) {
  var limits = TRANSFER_LIMITS[currency];
  if (!limits) {
    return { valid: true, warning: 'No limits configured for ' + currency };
  }

  if (amount > limits.perTransaction) {
    return {
      valid: false,
      error: 'Amount exceeds per-transaction limit of '
        + (limits.perTransaction / 100) + ' ' + currency,
    };
  }

  // Check daily usage
  var todayTotal = await db.payouts.sumInitiatedToday(currency);
  if (todayTotal + amount > limits.daily) {
    return {
      valid: false,
      error: 'Would exceed daily limit. Today total: '
        + (todayTotal / 100) + ', Limit: '
        + (limits.daily / 100) + ' ' + currency,
    };
  }

  return { valid: true };
}

These checks prevent you from sending transfers that will fail at the API level. Catching limit violations before the API call saves time, preserves your rate limit quota, and gives you clearer error messages to pass to your operations team or vendors.

Regulatory Compliance for Payout Systems

If you are building a payout system that handles money on behalf of third parties (marketplace vendor settlements, creator payouts, contractor payments), you may be subject to financial regulations in your jurisdiction.

Nigeria: The CBN (Central Bank of Nigeria) regulates payment service providers. If you are holding funds on behalf of vendors and disbursing through transfers, you may need a specific license or need to operate through a licensed entity. Paystack is licensed, but your platform's arrangement with Paystack determines whether you need additional licensing.

Kenya: The CBK (Central Bank of Kenya) and the Communications Authority regulate payment services and mobile money. Holding customer or vendor funds triggers regulatory requirements.

Ghana: The Bank of Ghana oversees electronic money issuers and payment service providers.

Anti-money laundering (AML): All African markets have AML requirements. If you process payouts above certain thresholds, you may need to implement transaction monitoring, suspicious activity reporting, and customer due diligence measures.

This is not legal advice. Consult with a financial regulatory advisor in your jurisdiction to understand the specific requirements that apply to your business model. The key question is: are you holding funds on behalf of others, and if so, what licensing or regulatory registration does that require?

Record-Keeping Requirements

Regardless of specific licensing requirements, keep detailed records of all transfers. Most African regulatory frameworks require financial records to be kept for 5-7 years.

For each transfer, store: the date and time, the amount and currency, the sender (your business), the recipient (name, account details), the purpose or reason, the Paystack reference and transfer code, the status (success, failed, reversed), and any failure reasons.

Do not rely solely on Paystack's records. Maintain your own database of all transfer activity. Paystack's data retention policies may differ from your regulatory requirements. Your database should be the primary record, with Paystack as a secondary reference.

For reconciliation between your records and Paystack, see reconciling payouts against recipient confirmations.

Build Compliant Payment Systems

Transfer limits and compliance are not the exciting parts of building a payout system, but they are the parts that keep your business operational and legally sound.

The McTaba bootcamp covers payment systems with attention to the regulatory context of African markets.

Create a free McTaba account

Key Takeaways

  • Paystack transfer limits vary by market, account tier, destination type, and currency. Check your dashboard for your current limits.
  • Higher KYC tiers unlock higher transfer limits. Complete full business verification to access the highest limits.
  • Recipient accounts have their own inflow limits. A lower-tier bank account may reject transfers above its daily limit.
  • Build limit checks into your payout pipeline. Validate each transfer against your known limits before sending to the API.
  • Keep records of all transfers for compliance. Most African regulators require transaction records for several years.
  • If you are building a payout system that handles money on behalf of third parties, you may need specific financial licensing in your jurisdiction.

Frequently Asked Questions

How do I find my current Paystack transfer limits?
Log into your Paystack dashboard and check Settings > Account Limits or Business Verification. The dashboard shows your current tier and the limits that apply. If you cannot find the information, contact Paystack support for your specific account limits.
Can I request higher transfer limits?
Yes. Upgrading your KYC tier typically unlocks higher limits. Submit the required documentation through your Paystack dashboard. For limits beyond the standard tiers, contact Paystack support to discuss your specific needs. High-volume businesses may be eligible for custom limits.
What happens if I exceed my daily transfer limit?
The transfer fails at the API level with an error message indicating the limit has been reached. Your balance is not affected (no money is deducted). You can retry the transfer the next day when the daily limit resets, or contact Paystack about increasing your limits.

Ready to build real-world apps?

Join the McTaba Labs full-stack marathon (4 months full-time · 6 months part-time). Learn M-Pesa, USSD, and WhatsApp engineering while shipping 8 production apps.

Apply to the McTaba Marathon