Plexy
Pay APIGate APIDashboard
Pay APIGate APIDashboard
  1. Pay API
  • Overview
  • Authorization
  • Webhooks
  • API Errors
  • Test Scenarios
  • Ecommerce Plugins
  • API
    • Payments
      • Overview
      • Payment Links
        • Create Payment Link
        • List Payment Links
        • Retrieve Payment Link by Order Reference
        • Cancel Payment Link
        • Retrieve Payment Link
        • Update Payment Link Expiration
        • Retrieve Payment Links Statistics
      • Reccurent Payments
        • Create Merchant-Initiated Payment
      • Direct Payments
        • Get Keys
        • Create Host-to-Host Payment
      • Transaction Management
        • Find Transaction's History by ID
        • Find Transaction by Payment Link ID
        • Find Transaction by ID
        • Find Transaction by Order reference
      • Payment Management
        • Cancel Payment
        • Capture Payment
        • Process Refund
      • Split Requests
        • Create
        • List
        • Update
        • Get By Id
        • Delete
      • Settlement Payment Order
        • Create
        • Get by id
        • List
    • Payouts
      • Retrieve Payout Transactions
      • Process Payout
      • Save Card for Payouts
    • Customers
      • Get Customer's Card Tokens
      • List Customers
      • Create Customer
      • Get Customer by ID
      • Get Customer's Transactions
    • Merchants
      • Payment Beneficiary
        • Create
        • Update
        • Gey By Id
        • List
        • Transfer from beneficiary balance to merchant balance
        • Create manual settlement for beneficiary
      • Retrieve Merchant's Details
  • Client SDK
    • Server flow
      • Advanced server flow
      • Session server flow
    • Web
      • Web Drop-in
      • Web Components
    • Flutter
      • Flutter Drop-in
      • Flutter Components
  • Schemas
    • Schemas
      • response.TransactionList
      • entity.SplitRequest
      • entity.PaymentBeneficiary
      • request.CreatePaymentBeneficiary
      • entity.SettlementPaymentOrder
      • entity.PayoutRequest
      • entity.PayoutRequestRowData
      • command.HandleThreeDResult
      • domain.Report
      • entity.CardSaveSessionCustomer
      • entity.Permission
      • entity.UserProfile
      • entity.UserRole
      • errors.Message
      • errors.Source
      • errors.Type
      • git_plexypay_com_ecom_back_api_internal_domain_view.Page-domain_Report
      • git_plexypay_com_ecom_back_api_internal_domain_view.Page-entity_UserProfile
      • git_plexypay_com_ecom_back_api_internal_platform_errors.Code
      • models.CSVApiRequest
      • models.CreateBussinessDetails
      • models.KeyResponse
      • models.OnboardingRequest
      • models.Transaction
      • paymentcore.Address
      • paymentcore.CustomerDetails
      • request.AuthorizePayment
      • request.BrowserDetails
      • request.CardData
      • request.ChangeUserRole
      • request.ContinueThreeDS
      • request.CreateCardSaveSession
      • request.CreateInviteSession
      • request.CreatePaymentLink
      • request.CreatePaymentLinkMetadata
      • request.HandlePayout
      • request.MerchantInitiatedPayment
      • request.PasswordRequest
      • request.Recurring
      • request.RefundPayment
      • request.SaveCard
      • request.SaveOneCustomer
      • request.TwoStepAuthorizePayment
      • request.UpdateMerchantSettingsRequest
      • request.UpdatePaymentLink
      • response.AcquirerResponseThreeDSecure
      • response.AuthorizeAndCapturePayment
      • response.AuthorizePayment
      • response.CancelPaymentResponse
      • response.CapturePaymentResponse
      • response.ContinueThreeDS
      • response.Currency
      • response.Customer
      • response.CustomerTransaction
      • response.CustomerTransactions
      • response.Customers
      • response.Error
      • response.Merchant
      • response.MerchantInitiatedPayment
      • response.MerchantSettings
      • response.PaymentLink
      • response.PaymentLinkInfo
      • response.PaymentLinkMetadata
      • response.PaymentLinksInfo
      • response.PaymentLinksStatistics
      • response.PaymentLinksStatisticsItem
      • response.Payout
      • response.Permission
      • response.RefundPaymentResponse
      • response.Report
      • response.SavedCard
      • response.Session
      • response.Settlement
      • response.SettlementTransaction
      • response.Store
      • response.Stores
      • response.Transaction
      • response.TransactionDetails
      • response.TransactionEvents
      • response.TransactionHistoryEvent
      • response.TransactionHistoryEventData
      • response.TransactionResponse
      • response.TransactionWebhookDetails
      • response.Transactions
      • response.UpdateMerchantSettingsResponse
      • response.UserProfile
      • value.PaymentMethod
    • receipt
    • Error
    • DecimalAmount
    • ProductType
    • ProductCategory
    • Product
    • Order
    • AgentBalance
    • AgentDeposit
    • TopupRequest
    • CreateOrderRequest
Pay APIGate APIDashboard
Pay APIGate APIDashboard
  1. Pay API

Test Scenarios

INFO
This page describes the test scenarios we support, why they matter for product quality and compliance, and how to use test cards safely in Sandbox mode.

How to use Sandbox & test cards#

1
Switch to Sandbox
Use your Sandbox API key and Test Merchant ID. Never send test cards to Production.
2
Use the test cards below
PAN, expiry and CVV values below deterministically trigger validation errors, 3-D Secure, insufficient funds, and more.
3
Acknowledge webhooks
Return 2xx to confirm delivery. Log the payload; verify signatures if enabled.
WARNING
Do not use real customer data in Sandbox. Test PANs never move money and are accepted only in Sandbox.

Test Cards#

NOTE
Use these only in Sandbox. They are designed to trigger specific outcomes so you can validate your integration end-to-end.
Test CaseCard numberExpiryCVVExpected Result
Payment Success4111 1111 1111 111112/29123Payment processed successfully
Payment Fail5105 1051 0510 510011/28123Payment error (PAN fails Luhn/range)
TIP
Keep expiry dates in the future during testing. Use a random cardholder name. Do not reuse real customer names or emails in Sandbox.

Validation Tests#

API key: Wrong credentials or a terminal not bound to the merchant should return auth errors without touching the acquirer.
Amount: Enforce numeric, > 0, ≤ two decimals; respect business min amount (e.g., 100). Invalid formats (strings, floats in scientific notation) should fail fast.
Order details & payment method: Validate presence and schema; reject unsupported methods early.
3DS notification URL: If provided, must be HTTPS and reachable; reject malformed URLs.

Capture & Refund#

Partial capture: If supported, ensure amount ≤ authorized amount; subsequent captures obey remaining balance.
Partial refund: Track cumulative refunded amount; status reflects partial vs full refund.

What to verify before go-live#

All validation cases behave as specified (clear messages, correct HTTP codes).
Transaction, capture, refund, recurring, and save-card paths pass end-to-end.
Webhooks are received, verified, and acknowledged with 2xx.
Monitoring dashboards and alerts are wired and tested.
Modified at 2025-10-10 06:55:50
Previous
API Errors
Next
Ecommerce Plugins
Built with