Developer
  • Getting started keyboard_arrow_down

    Discover

    • arrow_forward
      EV Charging

      Discover our unattended POS solution for the ev market

    Our solutions

    • arrow_forward
      CCV Terminal

      Integrate with a CCV Terminal

    • arrow_forward
      SoftPOS

      Turn your own device into a payment terminal

    • arrow_forward
      CCV Online Payments

      Accepting online payments in your platform without technical knowledge

    • arrow_forward

    • arrow_forward

    Connect to the CCV Platform

    Integrate our products into your software. Let's make payment happen together!

    Look at all the possibilities
  • Documentation
  • API Reference
menu
    • expand_less Payment API
      • expand_more General
        • Communication
        • Environments
        • Authentication
        • Idempotency
        • Transaction Types
        • Webhooks
        • Notifications
        • Error Handling
        • Security & Privacy
        • Return URL
      • expand_less Online Payments
        • expand_more Quick Start
          • Initial Setup
          • Create Payment
        • expand_more Basic Operations
          • Create A Payment
          • Refund A Payment
          • Authorise & Capture Payments
          • Query The Payment Status
        • expand_more Payment Features
          • expand_more 3D-Secure 2
            • SCA And 3D-Secure 2
            • Compliance Guide
            • Out Of Scope Transactions
            • Exemptions
          • Payment Links
          • Merchant Initiated Payments
          • Embedded Card Payments
          • Mandates
          • Customers & Loyalty
          • Partial Payment
        • expand_more Payment Methods
          • American Express
          • Apple Pay
          • Google Pay
          • expand_more Bancontact
            • Bancontact Walled Initiated Payments (WIP)
            • Bancontact Deferred Sales
          • Bancontact Mobile
          • Banktransfer
          • IDEAL
          • Klarna
          • Landingpage
          • Maestro
          • Mastercard
          • Payconiq
          • Paypal
          • Visa
        • expand_more Payouts
          • Split Payout
          • Test Payout
        • expand_less Developer Resources
          • Currencies
          • Languages
          • Payment Testing
          • Test Cards
      • expand_more In-person Payments
        • expand_more SoftPOS
          • expand_more General
            • Getting Started
            • Device Requirements
            • SoftPOS TerminalIds
            • SoftPOS Errors
            • Currencies
            • Languages
            • Network And Connectivity
            • Release Notes
          • expand_more Basic Operations
            • Install A Terminal
            • Make A Payment
            • Handling Receipts
          • expand_more API Reference
            • SoftPOS - API Reference
    • expand_more Board Your Merchants At CCV
      • expand_more General
        • Getting Started
        • Authentication
      • expand_more Boarding API
        • StartOrder
        • AddSalesPackage
        • AddProductPSPStandalone
        • AddProductPSPSubmerchant
        • AddTerminalPackage
        • SetShoppingCartPricingDetails
        • SubmitOrder
        • Boarding
      • API Reference
    • expand_more Android Rest Beta API
      • expand_more General
        • Getting Started
        • Brands
        • Supported Languages
      • expand_more Basic Operations
        • Make A Payment
        • Cancel A Payment
        • Handling Receipts
        • Show Display Messages
        • Recover A Payment
      • expand_more Payment Features
        • Authorise & Capture
        • Capture
      • expand_more Terminal Features
        • Transaction Overview
        • Brands
        • Period Closing
        • Terminal - Status
      • expand_more Tokenization
        • Tokenization - Get A Card Token
        • Read A Mifare Card
        • Custom Text On Terminal
      • expand_more API Reference
        • API Reference
    • expand_more Android SDK
      • expand_more General
        • Getting Started
        • Demo Application - Android SDK
        • Result States
        • Language Codes
        • Error Handling
        • Logging
        • EP2
        • Download SDK
        • Release Notes
      • expand_more Basic Operations
        • Make A Payment
        • Stop Ongoing Payment
        • Recover A Payment - Android SDK
      • expand_more Payment Features
        • Account Selection - Android SDK
        • Additional Receipt Text - Android SDK
        • Allow Or Deny Card Brands - Android SDK
        • Authorisation By Voice - Android SDK
        • Authorise - Android SDK
        • Capture - Android SDK
        • Card Detection - Android SDK
        • Card Detection Deprecated - Android SDK
        • Card Token - Android SDK
        • Card Validation - Android SDK
        • Customer Display - Android SDK
        • E-Receipt - Android SDK
        • Manual Card Information Entry - Android SDK
        • Payment Reversal - Android SDK
        • Refund - Android SDK
        • Request Transaction Information - Android SDK
        • Reservation - Android SDK
        • German Eichrecht - Android SDK
      • expand_more SDK Guides
        • Activate Terminal - Android SDK
        • Card Circuits - Android SDK
        • Card Reader Status - Android SDK
        • Card Reader Status - Android SDK
        • Check Password - Android SDK
        • Factory Reset - Android SDK
        • Get Config - Android SDK
        • Get Status - Android SDK
        • Mobile Phone Prepaid - Android SDK
        • Online Agent - Android SDK
        • Partial Period Closing - Android SDK
        • Period Closing - Android SDK
        • Possible Transaction Types - Android SDK
        • Retrieve Last Ticket - Android SDK
        • Retrieve Open Pre Authorisations - Android SDK
        • Startup - Android SDK
        • Taxfree - Android SDK
        • Terminal Administration - Android SDK
        • Terminal Discovery - Android SDK
        • Ticket Reprint Period Closing - Android SDK
        • Transaction Overview - Android SDK
        • Check Password - Android SDK
      • expand_more Hardware Access
        • Getting Started
        • NFC - Android SDK
        • Printing - Android SDK
        • QR And Barcode Scanner - Android SDK
      • expand_more API Reference
        • API Documentation
    • Android App Requirements
    • expand_more Certification
      • Introduction
      • expand_more Attended Certification Tests
        • expand_more Aborting
          • F1A - Regular Abort By Merchant
          • F1B - Failing Abort By Merchant
          • F1D - Hammering Abort By Merchant
        • expand_more Allowed Amounts
          • S1A - Transaction With Amount Of EUR 0,00
          • S1B - Transaction With Negative Amount
          • S1C - Transaction With Highest Possible Amount
          • S1D - Over-Amount Transaction
        • expand_more Connection Lost
          • Q1B - Manual Transaction Recovery
          • Q1C - Ethernet Connection With ITS Fails
          • Q1F - Device Unavailable
          • Q1G - Terminal Not Responding
          • T1A - Automatic Transaction Recovery
        • expand_more E Journal
          • M1A - Store E-Journal
          • M2A - ECR/POS Print Journal Receipts
          • M3A - ECR/POS Storing Journal Receipts
        • expand_more Reprint Ticket
          • L1A - Reprint Ticket
          • L1B - Reprint Ticket Declined Transaction
          • L2A - Reprint Ticket No Printer Available
          • L2B - Reprint Ticket Declined Transaction No Printer Available
        • expand_more Tickets
          • U1A - Request For Identification
          • U1B - Request For Signature
          • U1C - Request For Signature And Identification
          • U1D - Failing Transaction No Receipt
          • U1E - Split Payment
        • expand_more Time Out
          • R1A - Time Out On Presenting A Card
          • R1B - Time Out During Pin Entry
        • expand_more Transactions
          • C1A - Happy Flow
          • C1B - Happy Flow Contactless
          • C1D - Happy Flow Magnetic Stripe
          • C1E - Declined Transaction By Host
          • C1E - Transaction Aborted By Cardholder
          • C1F - Absence Of Thousand Separator
          • C1G - Cashier Display Messages
        • expand_more Validation
          • H1A - Too Many Fingers
          • H1B - Not Removing Card
          • H2A - Power Loss Or Closing Of ECR/POS During Transaction
      • expand_more Unattended Certification Tests
        • expand_more User Guidance
          • C1 - Successful Payment
          • C2 - Next Cardholder
          • C3 - Abort On PIN Entry
          • C4 - Time Out During PIN Entry
          • C5 - No Amount Entered
          • C6 - Language Selection
          • C7 - Amount To Authorise
          • C8 - Available Funds
        • expand_more Device Selection
          • D1 - Device Selection
          • D2 - Invalid Device
          • D3 - Charger Selection Abort
          • D4 - No Charger Selected
          • D5 - Authorisation With No Free Devices
        • expand_more Product Delivery
          • E1 - Product Selection
          • E2 - Enabled Products
          • E3 - Invalid Product Entered
          • E4 - Product Selection Aborted
          • E5 - No Product Selected
          • E6 - Max Delivery Time
          • E7 - Abort Session
          • E7 - Abort By POS
          • E9 - Not Started Charging In Time
          • E10 - Take More Fuel Than AVF
          • E10 - Multiple Sessions Mixed
          • E12 - Postpone Card Financial Advice On New Cardholder Card
          • E13 - Abort Session On Card Reinsert
        • expand_more Receipts
          • F1 - Cardholder Retrieve Receipt Info
          • F2 - Cardholder Receipt Retrieval
          • F3 - Reprint Ticket
          • F4 - F8 - Ticket Printing And Content
          • F9 - TrackingToken Deleted
          • F10 - Printer Paper Low
          • F11 - CardPayment Erased From Storage
          • F12 - E-Receipt Received By Cardholder
          • F13 - E-Receipt Failure
        • expand_more Transaction Limit Handeling Maestro
          • G1 - Maestro CardPayment 1 Euro
          • G2 - Maestro CardPayment 30 Euro
          • G3 - Maestro CardPayment 60 Euro
          • G4 - Maestro CardPayment 500 Euro
        • expand_more Transaction Limit Handeling Mastercard
          • H1 - Mastercard CardPayment 1 Euro
          • H2 - Mastercard CardPayment 30 Euro
          • H3 - Mastercard CardPayment 60 Euro
          • H4 - Mastercard CardPayment 500 Euro
        • expand_more Mifare Handling
          • I1 - Happy Flow Mifare
          • I2 - Unknown Mifare Card
          • I3 - No Mifare Card Presented
          • I4 - Mastercard Presented
        • expand_more Card Circuits
          • L1 - Available Card Circuits
        • expand_more Reconciliation
          • M1 - Reconciliation As Function
          • M2 - Reconciliation By New Shiftnumber
          • M3 - POS Auto Triggers Reconciliation With Closure
        • expand_more Journal
          • N1 - Journal Accessible By Authorized Employees
          • N2 - Journal Cannot Be Altered
        • expand_more Exception Flows
          • O1 - Unknown Card Session
          • O2 - Maximum Time Out
          • O3 - Device Unavailable
          • O4 - Time Out Card-Type Fallback
          • O5 - Time Out On Presenting Card
          • O6 - App Stability
          • O7 - Automatic Startup
          • O8 - Sleep Mode Not Supported
          • O8 - Sleep Mode Supported
        • expand_more Recovery
          • X1 - Recovery After Communication Failure
          • X2 - Recovery After CCV Component Update
          • X3 - Recovery After 24 Hour Reboot
          • X4 - Recovery After CCV-Fusion Client Restart
          • Y1 - Recovery After Power Failure With No Battery Backup
          • Y2 - Recovery After Power Failure With Battery Backup
      • expand_more SoftPOS Certification Tests
        • expand_more Success Scenarios
          • Installation Success - SoftPOS Certification Test
          • Payment Success - SoftPOS Certification Test
        • expand_more Failed Scenarios
          • Installation Failed - CCV SoftPOS App Not Installed - SoftPOS Certification Test
          • Payment Failed - Declined - SoftPOS Certification Test
          • Payment Failed - CCV SoftPOS App Is Closed During Payment - SoftPOS Certification Test
          • Payment Failed -CCV SoftPOS App Is Killed During Payment - SoftPOS Certification Test
          • Payment Failed - SoftPOS App Not Installed Anymore - SoftPOS Certification Test
        • expand_more Other Scenarios
          • Other Scenario - Data Cleared Of The CCV SoftPOS App - SoftPOS Certification Test
    • expand_more Development Kits
      • SoftPOS Dev Kit
      • IM30 Dev Kit
    • Glossary

Payment API

  • General
    • Communication
    • Environments
    • Authentication
    • Idempotency
    • Transaction Types
    • Webhooks
    • Notifications
    • Error Handling
    • Security & Privacy
    • Return URL
  • Online Payments
    • Quick Start expand_more
      • Initial Setup
      • Create Payment
    • Basic Operations expand_more
      • Create A Payment
      • Refund A Payment
      • Authorise & Capture Payments
      • Query The Payment Status
    • Payment Features expand_more
      • 3D-Secure 2 expand_more
        • SCA And 3D-Secure 2
        • Compliance Guide
        • Out Of Scope Transactions
        • Exemptions
      • Payment Links
      • Merchant Initiated Payments
      • Embedded Card Payments
      • Mandates
      • Customers & Loyalty
      • Partial Payment
    • Payment Methods expand_more
      • American Express
      • Apple Pay
      • Google Pay
      • Bancontact expand_more
        • Bancontact Walled Initiated Payments (WIP)
        • Bancontact Deferred Sales
      • Bancontact Mobile
      • Banktransfer
      • IDEAL
      • Klarna
      • Landingpage
      • Maestro
      • Mastercard
      • Payconiq
      • Paypal
      • Visa
    • Payouts expand_more
      • Split Payout
      • Test Payout
    • Developer Resources
      • Currencies
      • Languages
      • Payment Testing
      • Test Cards
  • In-person Payments
    • SoftPOS expand_more
      • General expand_more
        • Getting Started
        • Device Requirements
        • SoftPOS TerminalIds
        • SoftPOS Errors
        • Currencies
        • Languages
        • Network And Connectivity
        • Release Notes
      • Basic Operations expand_more
        • Install A Terminal
        • Make A Payment
        • Handling Receipts
      • API Reference expand_more
        • SoftPOS - API Reference

What's on this page

  • Payment testing
  • Method Card
    • General
    • Authorise - Capture
      • Authorise
      • Capture
  • Method iDEAL
    • iDeal mandate authentication flow
  • Method PayPal
  • Method Terminal
  • Method Payconiq
  • Method Gift
  • Method SoftPos
  • Method Apple Pay
  • Method Google Pay
    • Google Pay test card behavior
    • Determine payment result
  • Fraud detection
Online Payments / Developer Resources / Payment Testing

Payment testing

The features below must be used in operating mode TEST and can be used to test VPOS functionality in a CCV Lab simulated environment. The operating mode is associated with your API key. Once you have completed your integration, you must use your LIVE key for production usage.

Method Card

For card transactions you must use a known test card. The system rejects unknown cards in combination with a Test API key.

The used card number (PAN) determines the 3D Secure authentication flow that is used.

General

Amount Simulator Response VPOS status
8.00 timeout pending and after period of time success**
8.01 failed failed with failure code INSUFFICIENT_FUNDS
8.02 failed failed with failure code CARD_REFUSED
8.03 soft decline success*
8.04 soft decline failed*
9.00 failed failed
23.00 timeout pending and after period of time failed**
81.00 failed failed with failure code INSUFFICIENT_FUNDS
82.00 failed failed with failure code CARD_REFUSED
83.00 soft decline success*
84.00 soft decline failed*
other success success
  • * The simulator responds with a soft decline on the first authorisation. The second authorisation response depends on the specified amount.
  • ** Amount 8.00 and 23.00 only work in combination with method card and brand bcmc

Authorise - Capture

Note: Our simulators only store transactions for a limited amount of time. As a result, a capture following an authorisation might not have the expected behaviour due to the unknown state of the authorisation.

Authorise

Brand Amount Simulator Response VPOS status
bcmc 125.00 success success with partial approval of 100.00
other 125.00 failed failed
other other success success

Capture

  • A full capture is allowed
  • A capture of more than the authorised amount is not allowed

Method iDEAL

For iDEAL transactions you can pass specific amounts:

Amount Simulator response VPOS status
5.00 Failure failed
6.00 Cancelled failed with failure code cancelled
7.00 Expired failed with failure code expired
8.00 Open pending
9.00 Success after 10 seconds success
10.00 Failure after 10 seconds failed
11.00 Simulator only responds after 10 seconds but then Success success
12.00 First callback has status Open, after 10 seconds callback with Success success
other Success success

iDeal mandate authentication flow

When using iDeal mandates, the server can respond with a notification result. The test bahavior can be triggered using following amounts:

Amount Authentication flow VPOS status
12.00 NotificationResult REDIRECT success
other NotificationResult PUSH_SENT_SHOW_WAITING_SCREEN success

Method PayPal

For PayPal transactions you can pass specific amounts:

Amount Simulator response VPOS status
5.00 failed failed with failure code processing_error
6.00 canceled failed with failure code cancelled
7.00 expired failed with failure code expired
8.00 pending pending
9.00 approved success
10.00 created pending
11.00 denied failed with failure code rejected
27.00 422 Unprocessable Entity failed with failure code processing_error
other completed success

Method Terminal

A simulated terminal is available to test your integration with a test api key:

  • dns: ${terminal.sim.dns}
  • ip: ${terminal.sim.ip}
  • port: ${terminal.sim.port}
  • terminal id: random
  • management system id: 08000000002 or 08900000002 for browser wake-up, random for cloud wake-up
  • access protocol: OPI_NL
  • operatingEnvironment: SEMI_UNATTENDED or ATTENDED
  • merchantLanguage: ENG, NLD, FRA, DEU
Amount Simulator response VPOS status
4 An error with code TERMINAL_ALREADY_IN_USE with http status code 500 failed with failure code rejected
5 failure failed with failure code processing_error
8 unknown manualintervention
9 success after 10 seconds success
10 failure after 10 seconds failed
11 unknown after 10 seconds manualintervention
12 success with no callback success after status update
13 success after VPOS performs status check success after status update TAS callback
14 success after VPOS performs multiple status checks success after status update TAS callback
15 success after 10 seconds and not responding to abort attempt success
16 failed after 10 seconds and not responding to abort attempt failed
17 success after 10 seconds when abort is not attempted, failed after 10 seconds when abort is attempted success / failed
18 An error with code MISSING_QUERY_STRING_URL_PARAMETER with http status code 400 failed with failure code rejected
other success success

Method Payconiq

For Payconiq transactions you can pass specific amounts:

Amount Simulator response VPOS status
6.00 canceled failed with failure code cancelled and cancelled by consumer
7.00 expired failed with failure code expired
9.00 failed failed with failure code processing_error
other completed success

For Payconiq transactions you can also call the cancel url, and the simulator will respond with the following behavior:

Amount Simulator response VPOS status
8.00 not allowed pending
other allowed failed with failure code cancelled with cancelled by merchant

Method Gift

For testing Gift you must take into account that a gift card value may be lower than, equal to or higher than the payment request amount. The test server only supports euro at this moment. The giftCode used indicates the value it holds in the last 3 digits. For example ‘CCV0000000_004’ will have a value of 4. A giftCode with other non-numeric characters will default to 30. For Gift you can also pass fixed giftCard codes:

GiftCard code Simulator response VPOS failed
CCV000000000A bad request failed with failure code processing_error
CCV000000000B not found, gift not found failed with failure code card_refused
CCV000000000C ok, gift locked failed with failure code card_refused
CCV000000000D ok, gift expired failed with failure code card_refused
CCV000000000E ok, gift currency gbp failed with failure code card_refused
other ok success for payment request with amount equal to or less than indicated in the last 3 digits of the used giftCode, or default 30

Method SoftPos

For SoftPos transactions you can pass specific amounts:

Amount Simulator response VPOS status
9 no response - client timeout after 10s failed with failure code processing_error
10 bad request failed with failure code processing_error
11 created pending
12 created - failed after get pending after status check failed
13 time out failed with failure code processing_error after timeout occurs
14 success success
15 created - success after 30 seconds pending after status check success
16 created - failed after 30 seconds pending after status check failed
other created - success after get pending after status check success

Method Apple Pay

For Apple Pay the following amounts can trigger test behavior. All other amounts should lead to a successful transaction.

Amount Simulator Response VPOS status
8.01 failed failed with failure code insufficient_funds
8.02 failed failed with failure code card_refused
9.00 failed failed
81.00 failed failed with failure code insufficient_funds
82.00 failed failed with failure code card_refused
other success success

Method Google Pay

You can test your Google Pay integration by using test cards along with different payment amounts. This allows you to simulate various payment scenarios and influence the resulting payment status.

Google Pay test card behavior

The Google Pay payment method expects a card to be coupled to your Google wallet. This can either be a real card or a collection of CCV test cards.

  • In case a real card is used, the Google Pay test environment returns a test card encrypted token that matches the card brand used. Your real card will never be charged and the card info is protected by Google’s automatic encryption.
  • The other preferred option is to make use of the CCV test cards, this can be done by enrolling your wallet in Google’s test card suite.

Depending on the Card number (PAN) used during testing, you can trigger various payment flows.

  • For device PAN (DPAN) test cards, the Google Pay API response includes a CRYPTOGRAM_3DS authentication method token, simulating payment credentials linked to an Android device. Google handles the authentication for these cards, eliminating the need for additional 3D Secure authentication. The payment proceeds without further customer interaction.
  • Conversely, when using an FPAN test card, the Google API responds with a PAN_ONLY authentication method token, requiring 3DS authentication from the customer. Based on the test PAN number, you can decide whether authentication should be frictionless or involve a challenge.

Note

API key considerations

When using a test API key on our test environment, the entered encrypted token is not validated or used for further processing of the payment. Instead, a dummy CRYPTOGRAM_3DS authentication method token is used by default, that always results in an immediate processing of the payment without requiring 3DS authentication. Only using a live API key on our test environment will result in validation and usage of the Google Pay encrypted token!

You can test the PAN_ONLY authentication method flow and use a frictionless or challenge authentication flow, by adding googlePayTestEncryptedTokenMode to the initial details. See the payment request page for more information.

Determine payment result

For Google Pay the following amounts influence the payment result. All other amounts should lead to a successful transaction.

Amount Simulator Response VPOS status
8.01 failed failed with failure code insufficient_funds
8.02 failed failed with failure code card_refused
9.00 failed failed
81.00 failed failed with failure code insufficient_funds
82.00 failed failed with failure code card_refused
other success success

Fraud detection

All the payments are screened for fraud. The following amounts are applicable for all payment methods.

Amount Simulator Response VPOS status
66.00 reject failed with failure code fraud_detected
Other accept Depending on the chosen method

Go to

Home
Documentation




Cookies Privacy Statement