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_more 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_more 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

  • Payment
  • Transaction Query
  • Balance
  • Cancel
  • Refund
  • Payout
  • Capture
  • Mandate
  • Method
  • Release
  • Reversal
  • SoftPOS
  • Status
  • Token
  • Transaction Confirm
  • Transaction Export
  • Transaction Update
  • Vault
  • Void

What's on this page

  • Method
    • Supported Methods
      • Landing Page
    • Method request
    • Method response
      • Card
      • iDEAL
      • PayPal
      • LandingPage
      • BankTransfer
      • Terminal
      • Payconiq
      • Klarna
      • Gift
      • Apple Pay
API Reference / Method

Method

Supported Methods

We support the following payment methods:

  • Cards (Debit or Credit)
  • iDEAL
  • PayPal
  • BankTransfer
  • Terminal
  • Payconiq
  • Klarna
  • Sepa Direct Debit
  • Gift
  • Apple Pay

Warning

Method Gift is a work in progress not yet available for usage by merchants.

Additionally our landing page method allows the customer to select a method of choice.

The keys for these are respectively card, ideal, paypal, banktransfer, terminal, payconiq, klarna, gift, applepay and landingpage.

Landing Page

A payment method where we provide the payment method selection for you.

After you create a landing page transaction, a customer can create a child transaction via the landing page form (where a method can be selected). This transaction can be retrieved using the childReferenceId value. A landing page transaction can have multiple attempts which may result in a child transaction. When a child transaction reaches a final transaction status such as success or manualintervention, the landing page (parent) transaction will be updated with the same status.

Typical Landing Page payment flow

The general flow will be:

  1. You create a landingpage payment.
  2. The customer reaches the landing page, chooses a payment method, makes the payment and returns to your shop.
  3. We give feedback about status changes using Webhooks.

When the payment of the chosen method fails within 30 seconds, the customer can retry again using possibly another method.

The default expiration duration is P2M, which means:

  • The customer will be redirected to your shop after this duration. For example, when he opens the payment link again.
  • We start marking the payment as expired one day later. You will be notified with a webhook when the payment eventually expired.

Method preselection

It’s possible to preselect a payment method for landing page usage. This will attempt to create a new payment for this method when the customer accesses the landingpage via the payurl. The customer will be redirected to the method payment page right away without selecting a method. If the method is invalid, not available to the merchant or not allowed, the value will be disregarded and the landing page is displayed with all available methods.

Methods that do not support preselection:

  • BankTransfer
  • Klarna

Example of a landingpage payment request with a method preselection

{
  "amount" : 100.00,
  "currency" : "eur",
  "method" : "landingpage",
  "returnUrl" : "http://shop/?order=8cdbb73f-6537-4b7f-a6de-6ddab6c283e1",
  "metadata" : "my custom metadata",
  "merchantOrderReference" : "8cdbb73f-6537-4b7f-a6de-6ddab6c283e1",
  "description" : "API Payment description with method preselection ideal",
  "language" : "eng",
  "details" : {
   "expirationDuration" : "P0Y2M1DT0H0M0.000S",
   "preselectedMethod" : "ideal"
  }
}

Allowed Payment Methods

As a merchant can have multiple payment methods enabled for landing page use, the merchant can optimize the list by limiting the payment methods shown, or changing the default order.

Each method name must be correct, and at least one from the list must match an enabled payment method. The PSP ignores payment methods that are not available to the merchant.

Klarna is not supported If the merchant requests Klarna, it is ignored and not visible on the customers’ payment page.

Example of a landingpage payment request with a list of allowed payment methods

{
  "amount" : 20.00,
  "currency" : "eur",
  "method" : "landingpage",
  "returnUrl" : "http://shop/?order=8cdbb73f-6537-4b7f-a6de-6ddab6c283e1",
  "metadata" : "my custom metadata",
  "merchantOrderReference" : "8cdbb73f-6537-4b7f-a6de-6ddab6c283e1",
  "description" : "API Payment description with a list of methods to ",
  "language" : "eng",
  "details" : {
   "allowedPaymentMethods" : ["ideal", "gift"]
  }
}

Method request

The method request is used to return a list of available payment methods for the merchant. The list is a JSON array containing an item per method. Each item contains the method name and method specific options.

  • Resource: /api/v1/method
  • Method: GET
  • Authentication: basic auth

Method response

  • Status Code: 200
  • Content Type: application/json

Example

curl https://api.psp.ccv.eu/api/v1/method -u apikey:
[
    {
        "method": "card",
        "options": [
            {
                "brand": "visa"
            },
            {
                "brand": "mastercard"
            },
            {
                "brand": "maestro"
            },
            {
                "brand": "bcmc"
            }
        ]
    },
    {
        "method": "ideal",
        "options": [
            {
                "group": "Nederland",
                "grouptype": "country",
                "issuerdescription": "Issuer Simulation V3 - ING",
                "issuerid": "INGBNL2A"
            },
            {
                "group": "Nederland",
                "grouptype": "country",
                "issuerdescription": "Issuer Simulation V3 - RABO",
                "issuerid": "RABONL2U"
            }
        ]
    },
    {
        "method": "paypal"
    },
    {
        "method": "landingpage"
    },
    {
        "method": "banktransfer"
    },
    {
     "method": "payconiq",
     "options": [
            {
              "qr" : "true"
            }
        ]
    },
    {
    "method": "gift",
        "options": [
            {
                "giftacquirer" : "connect",
                "giftbrand" : "City Loyalty Deluxe"
            },
            {
                "giftacquirer" : "connect",
                "giftbrand" : "CCV Thanks Gift Card",
                "imageurl" : "http://ccvthanksbrand/imageurl.png"
            }
        ]
    },
    {
     "method": "klarna",
     "options": [
      {
       "qr" : "true"
      }
     ]
    },
  {
    "method": "applepay"
  }
]

Card

Name Description
method Fixed value: card
options An array of specific options for the card method
options[x].brand Possible values: Supported Brands
options[x].qr If payment via QR code is possible. Only shown as true when possible.

Supported Brands

Name API name
Visa visa
MasterCard mastercard
Maestro maestro
Bancontact bcmc
American Express amex

iDEAL

iDEAL 1.0 specifications require you to group the issuers. You should group the items with the same group, as required by the iDEAL 1.0 specification (version 3.3.1). This is currently by country.

Name Description
method Fixed value: ideal
options An array of specific options for the iDEAL method
options[x].group Contains the group specifier, such as for example the country names in the official languages of the country, separated by a ‘/’ (e.g. ‘BelgiĆ«/Belgique’)
options[x].grouptype Specifies the type of group, currently fixed value: country
options[x].issuerdescription The description of the issuer (as this should be displayed to the customer in the merchant’s issuer list, e.g. ‘ABN AMRO’)
options[x].issuerid Unique identifier of the issuer used within iDEAL

For iDEAL 2.0 the issuer selection is moved to the iDEAL environment. This means the method response no longer contains any issuer information.

Name Description
method Fixed value: ideal

!INFO The use of iDEAL 2.0 depends on your payment method configuration. Please contact ecommerce@ccv.eu for more information regarding iDEAL 2.0.

PayPal

Name Description
method Fixed value: paypal

PayPal currently has no options.

LandingPage

Name Description
method Fixed value: landingpage

LandingPage currently has no options.

BankTransfer

Name Description
method Fixed value: banktransfer

BankTransfer currently has no options. |

Terminal

Name Description
method Fixed value: terminal

Terminal currently has no options.

Payconiq

Name Description
method Fixed value: payconiq
qr If payment via QR code is possible. Only shown as true when possible.

Klarna

Name Description
method Fixed value: klarna
qr If payment via QR code is possible. Only shown as true when possible.

Gift

Name Description
method Fixed value: gift
options An array of brands specific for the gift method
options[x].giftbrand Specifies one of the gift brands available to the merchant
options[x].giftacquirer Contains the acquirer for the gift brand
options[x].imageurl Contains an image url for the gift brand if present

Apple Pay

Name Description
method Fixed value: applepay

Apple Pay currently has no options.

Go to

Home
Documentation




Cookies Privacy Statement