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

  • Refund
    • Refund object
      • Payout instruction refund object
    • Refund request
      • Method Refund Details
      • Payout Instruction Refund Request Details
    • Refund response
API Reference / Refund

Refund

Refunds are allowed for all existing payment methods, except LandingPage, Token and Vault.

  • Full refunds and partial refunds are supported
  • For some payment methods, refunds above the original amount may be accepted
  • For some payment methods, we apply balance calculations per day. This allows you to refund as much as you earned that day. If your balance is insufficient, the transaction is denied with failure code UNSUFFICIENT_BALANCE

Refund object

Name Description
type Fixed value: refund
amount The refund amount
currency Echo from the Payment
status Possible values: Transaction Status
paidout A boolean value that indicates if this transaction has been paid out. Only available for collecting protocols. Possible values: yes or no
paidoutDate The date when the payment to the customer was done. Only valid for collecting protocols.
merchantOrderReference Echo from the Payment
description A description of the transaction
language Echo from the Payment
method Echo from the Payment
brand Echo from the Payment
metadata Echo from the Payment
reference A unique reference for the refund transaction
originalReference The unique reference for the payment transaction this payment is attempting to refund.
unstructuredReference The unstructured reference used when performing the payout to the merchant. Only valid for collecting protocols
paidoutReference The reference used when performing the payout to the customer. This can be used to look up transactions related to that payout. Only valid for collecting protocols
created The local server datetime the refund was created, epoch timestamp
lastUpdate The local server datetime the refund was updated, epoch timestamp
statusFinalDate The local server datetime the refund reached a final status, epoch timestamp
failureCode An error code indication what caused the failure. Possible values: Failure Codes
payUrl To complete the payment the customer should be redirected to this unique URL. Only valid for Terminal
returnUrl After the payment is completed (successfully or otherwise) the customer is redirected to this URL. Only valid for Terminal
payoutInstructions Optional list of Payout Instruction set by the refund initiator to indicate which merchants of the original payment were eligible for a refund. See Split Payout for more info.

Payout instruction refund object

A payout instruction can be used to provide a custom structured reference and facilitate Split Payouts. Multiple Payout Instructions can only be used when boarded for Split Payout.

Name Description
externalReference This is the reference to the sub merchant for this payout instruction.
amount The amount to withhold for pay out to the sub merchant.
paidout A boolean value that indicates that the payout instruction’s amount is withheld from a pay out to the sub merchant. Possible values: yes or no
paidoutDate An epoch timestamp of the payout to the sub merchant where this payout instruction is withheld from.
unstructuredReference The message used in the payout to the sub merchant.
paidoutReference The reference to the payout to the sub merchant.

Example

{
  "externalReference" : "0001606469162213",
  "amount" : 5.00,
  "paidout" : "yes",
  "paidoutDate": 1605258439475,
  "unstructuredReference": "579fd569 AFREK. CCV PAY DAT. 20201113/0318 AANT. 3 MREF. Lamp Shop",
  "paidoutReference": "579fd569"
}

Refund request

  • Resource: /api/v1/refund
  • Method: POST
  • Content-Type: application/json
  • Authentication: basic auth
  • Supports idempotency
  • Parameters
Name Required Description Max Length
reference Yes The unique reference of the payment to refund 255
description No The description of the refund. If not provided we use the original payment description 255
amount No The amount to refund. If not provided we use the original payment amount. The currency used will be the currency of the original payment and the format must be the same 12 digits in total, of which maximum 2 decimal digits
webhookUrl No The webhook URL invoked for transaction changes. This overrides the merchant webhook if one is present. We do not validate this url 2000
returnUrl No The customer is redirected to this URL after the payment is completed (successfully or otherwise). If provided it must include a scheme to be usable for browser redirection or Android/iOs app usage. We do not validate the provided URL. Only valid for Terminal. 2000
notificationRequests No An object which is used to request Notifications for specific events related to this refund. n/a
payoutInstructions No Optional list of Payout Instruction to indicate which merchants of the original payment were eligible for a refund. See Split Payout for more info. n/a
details No An object which includes method specific details. Possible values: Method Refund Details. n/a
merchantOrderReference No A reference, maximum of 255 characters, of the order associated with this refund. If not provided we use the merchantOrderReference of the original payment 255

Example

{
  "reference": "C1505181754007360.1",
  "description": "API Refund Description"
}

Method Refund Details

  • Terminal Refund Details
  • SoftPos Refund Details

Terminal Refund Details

These details are required when refunding a payment which was made using the method terminal.

Name Required Description Max Length
terminalId Yes The terminal id as assigned by CCV 50
managementSystemId Yes The management system id of this terminal as assigned by CCV 50
accessProtocol Yes The communication protocol between the terminal and access server 20
operatingEnvironment No The environment in which the terminal is operating. Possible values: ATTENDED and SEMI_UNATTENDED. Defaults to SEMI_UNATTENDED when empty. 20
merchantLanguage Yes/No The language of the merchant, used to change the language in which the intermediate page is displayed in ATTENDED operatingEnvironments. Required when operatingEnvironment is ATTENDED, not required otherwise. 3

Example

{
  "reference": "T1505181754007760.Y",
  "description": "API Refund Description for Terminal Transaction",
  "details" : {
    "managementSystemId" : "000103030",
    "terminalId" : "1234536",
    "accessProtocol" : "OPI_NL",
    "operatingEnvironment" : "ATTENDED",
    "merchantLanguage" : "NLD"
  }
}

SoftPos Refund Details

These details are required when refunding a payment which was made using the method softpos.

Name Required Description Max Length
terminalId No The terminal id as assigned by CCV. If not present, defaults to the terminalId of the sale. 20
cardPresent No Specify whether the customer’s card has to be present to perform the reversal. Possible values: true or false. Defaults to true.

Example

{
  "reference": "T1505181754007760.Y",
  "description": "API Refund Description for SoftPos Transaction",
  "details" : {
    "terminalId" : "1234536",
    "cardPresent" : "false"
  }
}

Payout Instruction Refund Request Details

A payout instruction can be used to provide a custom structured reference and facilitate Split Payouts. Multiple Payout Instructions can only be used when boarded for Split Payout.

Requirements:

  • Payout instructions are required when the original payment contains payout instructions
  • The sum of all payout instructions must match the refund amount
  • The refund amount for each payout instruction is required
  • Partial refunds on payout instructions are allowed
Name Description
externalReference This is the reference to the merchant for this payout instruction. Present when the payment requires multiple payout instructions to identify different merchants.
amount The amount to be withheld for pay out to the referenced merchant.

Example

{
  "externalReference" : "0001606469162213",
  "amount" : 5.00
}

Refund response

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

Example

{
  "type" : "refund",
  "amount" : 316.35,
  "currency" : "eur",
  "status" : "PENDING",
  "merchantOrderReference" : "8cdbb73f-6537-4b7f-a6de-6ddab6c283e1",
  "description" : "API Refund Description",
  "language" : "eng",
  "method" : "card",
  "metadata" : "my custom metadata",
  "reference" : "C1505181613078800.1",
  "brand" : "visa",
  "created" : 1431958387914,
  "lastUpdate" : 1431958387914,
  "statusFinalDate" : 1431958387914
}

Go to

Home
Documentation




Cookies Privacy Statement