LogoLogo
BlogLogin
English
English
  • An Introduction to Saferpay
    • Licensing
      • Legacy licensing
    • Reconciliation
    • Acquirers & Payment Methods
    • Web Shop Plugins and certified partners
      • ePages Beyond
      • ePages NOW
      • Magento 2
      • Odoo
      • PrestaShop
        • PrestaShop User Guide
      • Salesforce Commerce Cloud
      • SAP Commerce Cloud
      • Shopware 6
        • Shopware 6 User Guide - German
        • Shopware 6 User Guide - English
      • WordPress WooCommerce
      • Shopify
      • Oxid eShop
    • Supported Languages
    • Common Saferpay terms - Glossary
  • News
    • Changes for transactions without customer presence
    • Changes for the Saferpay Hosted Forms, Fields and Payment Page
  • Quick Links
    • Web Shop Plugins and certified partners
    • Secure PayGate
    • User Administration
    • Payment Page Configuration
    • Risk Management
    • API Authentication
  • Interfaces
    • Payment API (aka JSON API)
    • Management API
    • Backoffice
      • The Home screen
      • Batch Processing
      • Transactions
        • Transaction Details
        • Batch Close
        • Declined transactions
        • Pending authorizations
        • Analytics
        • SEPA Refunds Export
        • Authorization & Payment
        • Credit
      • Risk Management
      • Secure PayGate / Payment Links
      • Secure Card Data
        • Secure Card Data Details
      • Settings
        • JSON API basic/Client Certificate authentication
        • User Administration
        • Payment Page Configuration
      • Online Support
      • User Profile
    • Saferpay OnSite
    • Feedback
  • Integration Guide
    • Integrating Saferpay
    • General Information
      • Data Security and PCI DSS
      • Versioning
      • 3-D Secure
      • Payment Service Directive 2 - PSD2
      • Dynamic Currency Conversion
      • Iframe Integration and CSS
    • Ways of integration
      • Payment Page
        • Payment Page checklist
      • Transaction Interface
        • Recurring Payments
        • Refunds
          • SEPA Refunds
      • Capture and Daily Closing
        • Partial Captures
          • Marketplace
      • Secure Card Data - Tokenization
      • Saferpay Fields
      • Inquire Interfaces
      • Mobile Integration
      • Omni-Channel
      • Fraud Intelligence
        • Silver
        • Fraud Intelligence Integration
      • Mail Phone Order
      • Error Handling
      • API Health Check
      • Saferpay API Specification
    • Payment Methods & Wallets
      • General and special cases
      • Account-to-Account Payments
      • Alipay+
      • Apple Pay
      • American Express
      • Bancontact
      • Billie
      • blik
      • Click to Pay
      • Diners Club International & Discover Card
      • eps
      • giropay
      • Google Pay
      • iDEAL 2.0
      • JCB
      • Klarna Payments
      • Maestro International
      • Mastercard
      • paydirekt
      • PayPal
      • PostFinance Pay
      • Przelewy24
      • Reka
      • SEPA Direct Debit
      • Sofort by Klarna
      • TWINT
      • UnionPay
      • Visa & V PAY
      • WeChat Pay
      • WL Crypto Payments
    • Testing
    • Go-Live
    • Frequently Asked Questions
    • Saferpay Demo
      • Saferpay Demo Environment
      • Saferpay Demo Shop
    • Support
    • Changelog
Powered by GitBook
On this page
  • Requirements
  • Submerchants
  • Executing a Multipart Capture with a Submerchant
  • Applying Fees
  • Refund fees

Was this helpful?

  1. Integration Guide
  2. Ways of integration
  3. Capture and Daily Closing
  4. Partial Captures

Marketplace

PreviousPartial CapturesNextSecure Card Data - Tokenization

Last updated 10 months ago

Was this helpful?

In order to understand the Saferpay marketplace-solution, one must first grasp the concept of partial- or Multipart Captures, for they are the very foundation, on which the marketplace-solution is built upon.

Please make sure, that you read the Multipart Captures Chapter first.

Requirements

  1. If you want to use the Submerchant and Fee-features, your live merchant-account needs to be configured, in order to support Multipart Captures, or the request will fail!

  2. The marketplace-feature is only available for Worldline Acquiring contracts and payment methods.

    1. Thusly, 3rd party payment methods, that do support partial captures, like PayPal, do not support the marketplace-solution.

As mentioned in the beginning, a special setup is necessary to acces the following features. Once this setup has been done, you will be unable to execute normal Captures (Exception being Refunds!) and Captures inside the Saferpay Backoffice won't be possible anymore! Please keep that in mind, during implementation!

Refunds on a marketplace transaction must be executed via API.

Refunds via the Backoffice are not possible for these transactions.

Submerchants

Please read this chapter completely, INCLUDING the chapter about Applying Fees!

In some cases, a merchant, or marketplace-operator, needs to be able to split the authorized amounts do different contracts, bank accounts and/or submerchants. Saferpay does offer this option through Multipart Captures.

The general money-flow may look like this:

Now in order for this to work, the following requirements have to be met:

  1. Each Submerchant you want to cover, needs an acquiring-contract with Worldline, so the money can be directly transfered to their bank-account! Make sure to specifically request these contracts for the marketplace-solution, since those need a special setup!

  2. Each submerchant will get their own Id (Sometimes also refered to as Contract-Number or VP-Number!), which has to be submitted with each Multipart Capture, to define the merchant, who is getting the money!

Executing a Multipart Capture with a Submerchant

A Multipart Capture request with a submerchant requires you, to correctly fill the Marketplace.SubmerchantId parameter, with the corresponding Id. A request then may look like this:

{
   "RequestHeader": {
     "SpecVersion": "[CURRENT SPEC_VERSION]",
     "CustomerId": "[your customer id]",
     "RequestId": "[unique request identifier]",
     "RetryIndicator": 0
   },
   "TransactionReference": {
       "TransactionId": "723n4MAjMdhjSAhAKEUdA8jtl9jb"
   },
   "Amount": {
       "Value": 1000,
       "CurrencyCode": "CHF"
   },
   "Type": "PARTIAL",
   "OderPartId": "123456789",
   "Marketplace": {
       "SubmerchantId": "17312345"
   }
}

This request will transfer 10 CHF to the merchant with the Id 17312345!

Applying Fees

Especially for marketplace providers, it is not unusual to charge a small fee for each transaction, that is handled through the marketplace, from the respective merchant. Saferpay also offers options to charge these fees, through Multipart Captures.

For that, it is necessary to correctly set the Marketplace.Fee container, within a Multipart Capture request, which may look like this then:

{
   "RequestHeader": {
     "SpecVersion": "[CURRENT SPEC_VERSION]",
     "CustomerId": "[your customer id]",
     "RequestId": "[unique request identifier]",
     "RetryIndicator": 0
   },
   "TransactionReference": {
       "TransactionId": "723n4MAjMdhjSAhAKEUdA8jtl9jb"
   },
   "Amount": {
       "Value": 1000,
       "CurrencyCode": "CHF"
   },
   "Type": "PARTIAL",
   "OrderPartId": "123456789",
   "Marketplace": {
       "SubmerchantId": "17312345",
       "Fee": {
           "Value": 100,
           "CurrencyCode": "CHF"
       }
   }
}

This request will transfer 10 CHF to the merchant account 17312345, but will also charge a 1 CHF for said transaction. So effectively the merchant will get 9 CHF transferred, not including the acquiring-costs, since that can vary from merchant to merchant and even contract!

Refund fees

But, what if you want to refund said transaction, including the transaction fee? For that, the Capture request also offers the option, to submit a fee, but note, that the container is named FeeRefund this time. A request then may look like this:

Note, that we are talking about the normal Capture in case of Refunds and not Multipart Capture!

{
  "RequestHeader": {
    "SpecVersion": "[CURRENT SPEC_VERSION]",
    "CustomerId": "[your customer id]",
    "RequestId": "[your request id]",
    "RetryIndicator": 0
  },
  "Amount": {
    "Value": 1000,
    "CurrencyCode": "CHF"
  },
  "CaptureReference": {
    "CaptureId": "723n4MAjMdhjSAhAKEUdA8jtl9jb_c"
  },
  "Marketplace": {
    "SubmerchantId": "17312345",
    "FeeRefund": {
      "Value": 100,
      "CurrencyCode": "CHF"
    }
  }
}

This request will capture a refund and transfer 10 CHF (Please keep track of this!) from the merchant account 17312345, to the card holder! The fee then will be taken from the marketplace and transfered to the submerchant. So the full amount will be refunded first from the submerchant-account and then they will recieve the fee back from the marketplace!

(click to enlarge)