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_less 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
          • Sequence Info
          • 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
            • European Accessibility Act
            • 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
    • Android App Requirements
    • 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
        • Partial Approval - Android SDK
        • Refund - Android SDK
        • Request Transaction Information - Android SDK
        • Voucher Transactions - 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
    • expand_more Cloud Connect EVC
      • expand_more General
        • Release Notes
    • 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
      • 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 expand_more
      • Sequence Info
      • 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
        • European Accessibility Act
        • 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

  • Partial Payments
    • Using the CCV Landing Page
    • Custom Merchant Implementation
      • Customer adds gifts using CCV gift payment page
      • Customer remains on merchant’s page
  • Requirements
    • Gift Card Brands
  • Payout process
  • Detailed Use Cases
    • Partial Payment using the CCV Landing Page
Online Payments / Payment Features / Partial Payment

Partial Payments

In the most common use case, the merchant creates a payment that the customer uses to pay for the order in full, using a single payment method.

Partial payments allows the customer to pay for the order in full by using a combination of:

  • one or more gift cards, and
  • a single non-gift payment method, such as card, to pay for the remaining amount.

With this approach, fulfillment of the to-be-paid amount can be divided over multiple transactions, i.e., one or more gift card transaction(s), and one transaction for the remaining amount using one of the other available payment methods.

Support for partial payments is available on our landing page. Alternatively, merchants can modify their own payment page to add partial payments support.

Using the CCV Landing Page

CCV takes care of the entire partial payment process on the landing page:

  • Allowing the customer to add/remove one or more gift cards.
  • Performing the corresponding validation and informing the customer of the result.
  • Showing the remaining amount to be paid after adding each gift card.
  • Allowing the customer to select a payment method to pay for the remaining amount if not yet fully covered by gift card(s).
  • Claiming the added gift card(s) after payment of the remaining amount.

Furthermore, we also implement measures to meet the legal requirements regarding gift cards, as mandated by the Anti-Money Laundering Authority (AMLA).

See the screenshots below for an impression on the landing page with partial payment support.

Custom Merchant Implementation

If a merchant does not want to use the CCV landing page, they can modify their own payment page to add support for partial payments. Note that this requires the merchant to implement the logic otherwise handled by the landing page, such as adding/removing gift cards, validation, claiming, remaining amount calculation, and AMLA compliance.

The following two sections offer a high-level explanation on two possible approaches on how a merchant’s own payment page can be integrated with our partial payment process, without using the CCV landing page.

Customer adds gifts using CCV gift payment page

  1. Merchant creates a new payment of type gift with the requested amount.
  2. Merchant redirects the customer to the payUrl of the created payment.
  3. Customer can then select a gift card brand, enter the code, and (partially) pay using the added gift card. The actual approved amount will be returned to the merchant in the details of the transaction.
  4. Merchant can then choose to, either:
    1. Create a new payment of, for example, type card with the remaining amount to be paid.
    2. Allow the customer to add another gift card to further reduce the remaining amount.

Customer remains on merchant’s page

  1. Customer inputs gift code on the merchant’s payment page.
  2. Merchant sends a gift payment validate request, including the total payment amount, gift card code, and a by CCV supported gift card acquirer.
  3. Merchant receives a response including the approved amount.
  4. Merchant can then choose to:
    1. Create a new payment of, for example, type card with the remaining amount to be paid.
    2. Allow the customer to add another gift card to further reduce the remaining amount.

Claiming the gift card(s) can be done whenever the merchant wishes to do so during the payment process, by sending a gift payment request, including the gift code and the corresponding approved gift amount as received earlier in the response to the validate request. Note that doing so will immediately result in the remaining amount on the gift card being reduced accordingly.

Requirements

  • The merchant must be enrolled for the brand of gift card with the gift acquirer (for example CONNECT).
  • The merchant has an active and correctly configured gift config.
  • The merchant gift method config has partial payments enabled.
  • To use the landing page: the merchant has enabled method landingpage, which serves as a nexus for payment method selection but also for partial payments.

Gift Card Brands

In order for a customer to know which gift cards can be used, we display the name and a corresponding image (if present) of the brand(s) on the gift payment or landing page. A customer must select a gift card brand before proceeding to claim a gift card.

A merchant who wishes to make use of gift cards must be enrolled for these brands with a gift acquirer supported by CCV. This is then configured and these subscribed brands can then be retrieved via /method. A merchant can thereby also display all supported brands by name and as images on a webshop page, before optionally redirecting the customer to one of the CCV payment pages.

Payout process

Payment method Gift is not a “collecting” payment method. This means that the amount will not be paid out by CCV, but directly by the issuer of the card to the merchant. However, the method selected to cover the remaining amount can be “collecting”. For example, for a transaction using the CCV landing page when a customer chooses to:

  • pay via credit card, there is no choice but to pay for the whole amount, and that amount is collected and paid out.
  • pay via PayPal, there is no choice but to pay for the whole amount, and that amount is not collected or paid out as PayPal is not a collecting method.
  • add a gift card with a value equal to or higher than the request amount, the whole amount is covered and none is collected or paid out by CCV, but by the issuer.
  • add one or more gift cards with a combined value lower than the request amount, and then uses a collecting credit card brand to pay for the remaining amount, only the remaining amount is collected and paid out.
  • add one or more gift cards with a combined value lower than the request amount, and then uses iDeal to pay for the remaining amount, only the remaining amount is collected and paid out.

Detailed Use Cases

Partial Payment using the CCV Landing Page

This example is based on a landing page payment. The customer will use a gift card to partially pay the requested amount, and iDeal to pay the remaining amount.

  1. You initiate a new payment of type landingpage

    {
        "amount": 34.56,
        "currency" : "eur",
        "method" : "landingpage",
        "returnUrl" : "https://shop.merchant.com/return?order=123456",
        "merchantOrderReference" : "123456",
        "description" : "Order 123456",
        "language" : "nld",
        "billingAddress": "Westvoortsedijk",
        "billingCity": "Arnhem",
        "billingState": "GE",
        "billingPostalCode" :"6827 AT",
        "billingCountry": "NL",
        "billingHouseNumber": "55"
    }
    
  2. CCV Pay responds with a generated transaction containing a unique payUrl.

     {
         "language": "nld",
         "method": "landingpage",
         "currency": "eur",
         "billingAddress": "Westvoortsedijk",
         "billingPostalCode": "6827 AT",
         "billingCity": "Arnhem",
         "billingState": "GE",
         "billingCountry": "NL",
         "created": 1610111865939,
         "merchantOrderReference": "123456",
         "lastUpdate": 1610111865939,
         "returnUrl": "https://shop.merchant.com/return?order=123456",
         "reference": "L210108141745898CB87E182.2",
         "billingHouseNumber": "55",
         "cancelUrl": "${baseUrl}/card/cancel/merchant?reference=L210108141745898CB87E182.2",
         "amount": 23.45,
         "payUrl": "${baseUrl}/landingpage/payment.html?reference=L210108141745898CB87E182.2",
         "description": "Order 123456",
         "status": "pending",
         "type": "sale"
     }
    
  3. You redirect the customer to the payUrl, which results in the landing page. Here the option to use a gift card is shown.

Landing page with Gift Partial Payment

  1. The customer selects the option to use a gift card to pay for part of or the whole payment amount. The balance will be subtracted after the gift card is validated and its current balance is retrieved.
Customer selects Gift Card for Partial Payment

  1. The customer selects the brand of the gift card and enters the code. Depending on the brand, the code might be subjected to format validation. The customer can then submit the code and claim the gift card in order to subtract its remaining balance from the payment amount.
Customer selects Gift Card Brand and enters the code

  1. If the gift card was applied successfully, the customer either will be:
    1. redirected to the returnUrl if the balance of the gift card was equal to or higher than the payment amount, or
    2. shown the updated remaining amount to be paid, with the option to add another gift card or select a payment method to pay for the remaining amount.
Customer claims gift card for balance EUR 10

If the gift card cannot be applied (locked, expired, having no remaining balance, ...) or cannot be applied for the full remaining amount on the gift card (AMLA restriction), a corresponding message will be shown to the customer, and the remaining payment amount will not be reduced in case of the former, or only partially in case of the latter.

  1. Assuming the payment was not fully fulfilled using the gift card, the customer finalises the payment by selecting a payment method for the remaining amount shown.
Customer selected payment method to complete payment

  1. The customer is redirected to the payment form of the selected payment method, where after completion the customer is redirected to the returnUrl.

  2. You can check the status of the payment by Reading the Transaction. If the payment succeeds, the transaction is updated with status success.

    {
      "language": "nld",
      "method": "landingpage",
      "currency": "eur",
      "billingAddress": "Westvoortsedijk",
      "billingPostalCode": "6827 AT",
      "billingCity": "Arnhem",
      "billingState": "GE",
      "billingCountry": "NL",
      "created": 1610111865939,
      "methodTransactionId": "test-e1ebc659-1d60-492c-a8ca-93f79327e4fe",
      "paidout": "no",
      "merchantOrderReference": "123456",
      "lastUpdate": 1610111919539,
      "returnUrl": "https://shop.merchant.com/return?order=123456",
      "reference": "L210108141745898CB87E182.2",
      "billingHouseNumber": "55",
      "entryMode": "ecom",
      "amount": 23.45,
      "description": "Order 123456",
      "status": "success",
      "type": "sale"
    }
    

Go to

Home
Documentation




Cookies Privacy Statement