{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars/payment_api_2_0_sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"CCD2 with Payment API 2.0 | Ratepay","description":"The specifications of Ratepay's APIs for easy payment transactions.","siteUrl":"https://docs.ratepay.com","keywords":"Ratepay developer portal, Ratepay api portal, Ratepay api reference docs","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"ccd2-with-payment-api-20","__idx":0},"children":["CCD2 with Payment API 2.0"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"badges-container"},"children":[{"$$mdtype":"Tag","name":"div","attributes":{"className":"reading-time-badge"},"children":["⏱ 2 min"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"author-badge"},"children":["👤 Merchant Onboarding Team (Marcel K.)"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use this guide if you integrated Ratepay directly through ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Payment API 2.0"]}," and there is the need to be CCD2 compliant with Ratepay payment methods."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Before you start:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["New to CCD2? Read ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/legal/a_legal_requirements_for_the_integration/ccd2/what_is_ccd2"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["What is CCD2?"]}]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Check whether CCD2 applies to you: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/legal/a_legal_requirements_for_the_integration/ccd2/do_i_need_to_take_action"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Do I need to take action?"]}]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["See who does what: ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/legal/a_legal_requirements_for_the_integration/ccd2/responsibilities/direct_api"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Direct API: Your CCD2 responsibilities"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The SECCI steps applies only to affected ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["B2C purchases"]},". If your checkout supports both consumers and businesses, determine the customer type before starting the CCD2 flow."," ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/legal/a_legal_requirements_for_the_integration/ccd2/responsibilities/direct_api"},"children":["See what you do and what Ratepay does"]}," for the ownership split."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"key-api-terms","__idx":1},"children":["Key API terms"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Term"},"children":["Term"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Meaning"},"children":["Meaning"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/compliance/openapi/compliance_api/other/generatesecci"},"children":["SECCI generation"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["New ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v2/compliance/secci"]}," request. Ratepay generates and provides the pre-contractual Standard European Consumer Credit Information (SECCI)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["x-attestation-token"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Response header returned after a successful SECCI request. It proves that the SECCI document has been provided to the buyer. Store its value for the order attempt (Authorize transaction request) after providing the SECCI document. The token is valid for 7 days."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Authorize transaction"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your existing ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v2/transactions"]}," call. For an affected purchase, add the stored token as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["compliance_details.attestation_token"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"sequence-in-a-nutshell","__idx":2},"children":["Sequence in a nutshell"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/developer/api_integration/payment_2.0/ccd2/integration-details#1-present-payment-methods"},"children":["Present available payment methods fairly"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/developer/api_integration/payment_2.0/ccd2/integration-details#2-inform-the-buyer-about-the-secci"},"children":["Inform the affected buyer about SECCI"]},".",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Online shop:"]}," Show the notice before or after payment-method selection."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["MOTO:"]}," Staff explain SECCI and confirm the buyer's email address."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["POS:"]}," Staff explain SECCI before providing the document."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/developer/api_integration/payment_2.0/ccd2/integration-details#3-generate-and-provide-secci"},"children":["Call the SECCI endpoint with the selected method and matching basket. This request is used to provide the SECCI document to the buyer"]},".",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Online shop:"]}," Send by email and offer a PDF download, or let the buyer choose email or PDF."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["MOTO:"]}," Send it by email, if email is available. Else, provide it via your customer portal - or via postal service/within your delivery in time."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["POS:"]}," Request a printable PDF and hand it to the buyer; email can be an alternative."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/developer/api_integration/payment_2.0/ccd2/integration-details#4-handle-the-secci-response"},"children":["Check the response and store the value of the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["x-attestation-token"]}," header against the order attempt"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/developer/api_integration/payment_2.0/ccd2/integration-details#5-submit-payment"},"children":["Submit the existing Authorize transaction request with the new ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["compliance_details.attestation_token"]},". The basket, payment method and relevant credit terms must match with the data provided in the SECCI request"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/developer/api_integration/payment_2.0/ccd2/integration-details#6-handle-credit-declines"},"children":["Evaluate the returned transaction result and show the actual Ratepay message and links for a credit decline"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Enforce the SECCI-before-authorization sequence in your backend. If the basket, selected method or relevant credit terms change, generate and provide a new document and use its new token. If the token expires before authorization, repeat the SECCI delivery."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/developer/api_integration/payment_2.0/ccd2/integration-details"},"children":["Integration Details"]}," shows both notice variants, complete SECCI request examples, the response formats and the CCD2 addition to your existing authorization request."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The example below shows Variant 1: the notice appears before payment-method selection and names the address used for automatic email delivery."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/secci-notice-before-checkout.cdc74dee270693326d7979e56be8e25c1616f545048f71264c69d35fb68b3735.9a51d86e.png","alt":"Example SECCI notice above the payment methods for Payment API 2.0."},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"sales-channels","__idx":3},"children":["Sales channels"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The API sequence is the same across online shop, MOTO and POS. The buyer or staff interface and delivery action differ. See the channel notes in ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/docs/developer/api_integration/payment_2.0/ccd2/integration-details"},"children":["Integration Details"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://ccd2-showcase.ratepay.com/en/checkout"},"children":["online-shop showcase"]}," and ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://ccd2-showcase.ratepay.com/en/checkout?channel=moto"},"children":["MOTO showcase"]}," illustrate buyer journeys. They are examples, not binding UI specifications."]}]},"headings":[{"value":"CCD2 with Payment API 2.0","id":"ccd2-with-payment-api-20","depth":1},{"value":"Key API terms","id":"key-api-terms","depth":2},{"value":"Sequence in a nutshell","id":"sequence-in-a-nutshell","depth":2},{"value":"Sales channels","id":"sales-channels","depth":2}],"frontmatter":{"seo":{"title":"CCD2 with Payment API 2.0 | Ratepay"},"markdown":{"toc":{"hide":false,"depth":2}}},"lastModified":"2026-10-19T12:00:58.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/developer/api_integration/payment_2.0/ccd2/overview","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}