pronamic / wp-pronamic-pay

The Pronamic Pay plugin allows you to easily accept payments with payment methods like credit card, iDEAL, Bancontact and Sofort through a variety of payment providers on your WordPress website.
https://pronamicpay.com
35 stars 14 forks source link

Mark payment as B2B or B2C #150

Open remcotolsma opened 3 years ago

remcotolsma commented 3 years ago

From 1 July 2021, the VAT rules on cross-border business-to-consumer (B2C) e-commerce activities will change. The rationale for these changes is to overcome the barriers to cross-border online sales and address challenges arising from the VAT regimes for distance sales of goods and for the importation of low value consignments.

For VAT regulations it may be useful to make this distinction, but it also affects the buyer's rights:

https://europa.eu/youreurope/citizens/consumers/shopping/shopping-consumer-rights/

De Wet Koop op Afstand geldt alleen bij consumentenkoop, oftewel een koop tussen een zakelijke verkoper (winkelier) en een consument. Een consument is iemand die per definitie niet handelt vanuit beroep of bedrijf. Iemand die een bestelling plaatst uit naam van een bedrijf, kan zich dus niet beroepen op het consumentenrecht.

Source: https://www.ictrecht.nl/blog/geldt-de-wet-koop-op-afstand-ook-bij-bestellingen-op-de-zaak

This is probably why many online stores also ask whether you buy as a private person or business:

Schermafbeelding 2021-06-17 om 16 41 30 Schermafbeelding 2021-06-17 om 16 40 54

As soon as a VAT number is provided, you know that there is a company behind it.

I don't know if PSP like AfterPay wants to know if they are dealing with a private person or business.

Links

remcotolsma commented 3 years ago

Zorg dat in het bestelproces de opties voor het invoeren van bedrijfsgegevens aanwezig zijn, zodat er niet enkel om een naam en privé-adresgegevens worden gevraagd. Vult de klant bedrijfsgegevens in, dan kunt u er van uitgaan dat dit een zakelijke klant is.

https://www.ictrecht.nl/blog/hoe-weet-je-of-een-klant-een-zakelijke-klant-is

remcotolsma commented 3 years ago

https://mip.afterpay.nl/en/api-documentation/

Payment Methods

Currently, AfterPay supports these payment methods:

Method Description
B2C invoice NL AfterPay for Dutch consumers
B2C invoice BE AfterPay for Belgium consumers
B2B invoice NL AfterPay for Dutch companies
B2C direct debit NL AfterPay for Dutch consumers (Direct Debit)

I know that Rabobank OmniKassa 2.0 supports the AfterPay payment method, but it doesn't seem that they have specific fields for B2C or B2B payments.

Mollie has an organizationName field in the billing order address details: https://docs.mollie.com/reference/v2/orders-api/create-order#order-address-details

Stripe has an business_type attribute (individual, company, non_profit, government_entity) in the account object, but don't think is directly related to orders/payments: https://stripe.com/docs/api/accounts/object

Adyen has an company object parameter in a payment request object: https://docs.adyen.com/api-explorer/#/CheckoutService/v67/post/payments__reqParam_company

PayPal has an business_name and business_type parameter / property: https://developer.paypal.com/docs/api/orders/v2/#definition-business_type

reachdigital-screencast-companyswitcher

https://www.reachdigital.nl/blog/gratis-magento-2-module-optimaal-zakelijk-bestellen-in-het-magento-afrekenproces

remcotolsma commented 3 years ago

In the case of distance selling within the EU, the buyer must be a private individual (final consumer – B2C). The regulation therefore does not apply to entrepreneurs (B2B) who purchase the goods for their business. It also does not apply to legal persons holding a VAT identification number, VAT ID no. (e.g. local authorities or associations).

Distance selling within the EU, where the buyer of the goods is a private person or the item is purchased for private consumption (B2C/Business to Consumer), is not the same as supplying goods to an entrepreneur within the EU (B2B/Business to Business). The resulting VAT obligations differ significantly. Therefore, the correct classification of the transaction type (B2B or B2C) is essential for determining the right VAT consequences.

https://eclear.com/article/this-changes-for-intra-community-distance-selling-as-of-1-july-2021/

rvdsteege commented 3 years ago

@remcotolsma Can we use the existing company_name and vat_number properties in the Customer class, to determine B2C/B2B and flag the payment appropriately?

remcotolsma commented 2 years ago

I think i prefer a specific property to make this distinction, maybe customer_type with option private or company. It seems common for a customer to indicate whether he/she orders for business or private purposes.