diff --git a/addons/payment_adyen/README.md b/addons/payment_adyen/README.md new file mode 100644 index 00000000000..11f361f804f --- /dev/null +++ b/addons/payment_adyen/README.md @@ -0,0 +1,87 @@ +# Adyen + +## Technical details + +SDK: [Web Components](https://docs.adyen.com/online-payments/build-your-integration/?platform=Web&integration=Components) +version `5.39.0` + +APIs: + +- [Checkout API](https://docs.adyen.com/api-explorer/Checkout/) version `70` +- [Recurring API](https://docs.adyen.com/api-explorer/Recurring/) version `68` + +This module relies on the Web Components SDK to render payment methods and their payment detail +inputs on the payment form. The JS and CSS assets of the SDK are loaded directly from +the `__manifest__.py` file. + +When a Web Component needs to fetch/push information from/to Adyen or when a payment operation +(e.g., refund, offline payment) is executed from the backend, a server-to-server API call is made to +the appropriate API endpoint. + +This combined solution allows the implementation of a good-quality direct payment flow whilst +keeping the front-end development efforts low. The 3DS support is also entirely delegated to Adyen. + +This is achieved by following Web Components' +"[Advanced flow](https://docs.adyen.com/online-payments/build-your-integration/additional-use-cases/advanced-flow-integration)". +It is preferred over the recommended "Sessions flow" that only requires dealing with the `/sessions` +endpoint instead of three `/payment/*` endpoints because two of those are still required to +implement tokenization and handle 3DS redirects. + +## Supported features + +- Direct payment flow +- Webhook notifications +- Tokenization with or without payment +- Full and partial manual capture +- Full and partial refunds + +## Not implemented features + +- Express checkout + +## Module history + +- `17.0` + - The Web Drop-in SDK is replaced by the Web Components SDK (version 5.39.0); the Checkout and + Recurring APIs are updated to versions 70 and 68. odoo/odoo#120446 + - The 'Checkout API URL' and 'Recurring API URL' fields are replaced by the 'API URL Prefix' + field. odoo/odoo#126831 +- `16.4` + - The responses of webhook notifications are sent with the proper HTTP code. odoo/odoo#117940 +- `16.2` + - The support for partial manual capture is added. odoo/odoo#87251 +- `16.0` + - Archiving a token no longer deactivates the related payment method on Adyen. odoo/odoo#93774 +- `15.3` + - The support for manual capture is added. odoo/odoo#70591 +- `15.2` + - An HTTP 404 "Forbidden" error is raised instead of a Validation error when the authenticity of + the webhook notification cannot be verified. odoo/odoo#81607 +- `15.0` + - The support for both full and partial refunds is added. odoo/odoo#70881 + - The Web Drop-in SDK is migrated to version 4.7.3 and the Checkout API to version 67 to switch + from relying on origin keys and use client keys instead. odoo/odoo#74827 +- `14.3` + - The previous Hosted Payment Pages API that allowed for redirect payments is replaced by a + combination of the Web Drop-in SDK (version 3.9.4) and the Checkout (version 53) and Recurring + (version 49) APIs. odoo/odoo#141661 + +## Testing instructions + +https://docs.adyen.com/development-resources/testing/test-card-numbers/ + +### VISA + +**Card Number**: `4111111145551142` + +**Expiry Date**: `03/30` + +**CVC Code**: `737` + +### 3D Secure 2 + +**Card Number**: `5454545454545454` + +**Expiry Date**: `03/30` + +**CVC Code**: `737` diff --git a/addons/payment_adyen/__manifest__.py b/addons/payment_adyen/__manifest__.py index 1d243d24b0c..f4ba7999dbe 100644 --- a/addons/payment_adyen/__manifest__.py +++ b/addons/payment_adyen/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "A Dutch payment provider covering Europe and the US.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_adyen_templates.xml', diff --git a/addons/payment_alipay/README.md b/addons/payment_alipay/README.md new file mode 100644 index 00000000000..7028a3e68d5 --- /dev/null +++ b/addons/payment_alipay/README.md @@ -0,0 +1,35 @@ +# Alipay + +## Technical details + +API: [Global API](https://global.alipay.com/docs/ac/global/create_forex_trade) that is part of the +[cross-border website payment solution](https://global.alipay.com/docs/ac/web/integration) + +This module integrates Alipay using the generic payment with redirection flow based on form +submission provided by the `payment` module. + +## Supported features + +- Payment with redirection flow +- Webhook notifications + +## Module history + +- `17.0` + - The support for customer fees is removed as it is no longer supported by the `payment` module. + odoo/odoo#132104 +- `16.0` + - The module is deprecated and can no longer be installed from the web client. odoo/odoo#99025 +- `15.2` + - Webhook notifications that cannot be processed are discarded to prevent automatic disabling of + the webhook. odoo/odoo#81607 + +## Testing instructions + +https://docs.smart2pay.com/s2p_testdata_24/ + +**Buyer Account**: `cnbuyer_8292@alitest.com` + +**Login password**: `111111` + +**Payment password**: `111111` diff --git a/addons/payment_alipay/__manifest__.py b/addons/payment_alipay/__manifest__.py index 278c8e3ad98..f1af185f8e4 100644 --- a/addons/payment_alipay/__manifest__.py +++ b/addons/payment_alipay/__manifest__.py @@ -6,6 +6,7 @@ 'version': '2.0', 'sequence': 350, 'summary': "This module is deprecated.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_alipay_templates.xml', diff --git a/addons/payment_aps/README.md b/addons/payment_aps/README.md index d5e659311a2..6bfa1ef7975 100644 --- a/addons/payment_aps/README.md +++ b/addons/payment_aps/README.md @@ -1,27 +1,34 @@ -# Amazon payment Services +# Amazon Payment Services -## Implementation details +## Technical details -### Supported features +API: [Redirection API](https://paymentservices-reference.payfort.com/docs/api/build/index.html#redirection) + +This module integrates Amazon Payment Services using the generic payment with redirection flow based +on form submission provided by the `payment` module. + +## Supported features - Payment with redirection flow -- Payment by several global and local credit - [cards](https://paymentservices.amazon.com/docs/EN/24a.html). -- [Webhook](https://paymentservices-reference.payfort.com/docs/api/build/index.html#transaction-feedback) +- Webhook notifications -### API and gateway +## Not implemented features -We choose to integrate with the -[Redirection](https://paymentservices-reference.payfort.com/docs/api/build/index.html#redirection) -API as it is the gateway that covers the best our needs, out of the three that Amazon Payment -Services offers as of July 2022. See the task's dev notes for the details on the other gateways. +- [Tokenization with or without payment](https://paymentservices-reference.payfort.com/docs/api/build/index.html#safe-tokenization) -## Merge details +## Module history -The first version of the module was specified in task -[2802678](https://www.odoo.com/web#id=2802678&model=project.task) and merged with PR odoo/odoo#95860 -in `saas-15.5`. +- `16.0` + - The first version of the module is merged. odoo/odoo#95860 ## Testing instructions -https://paymentservices.amazon.com/docs/EN/12.html \ No newline at end of file +https://paymentservices.amazon.com/docs/EN/12.html + +### VISA + +**Card Number**: `4111111111111111` + +**Expiry Date**: any date in the future + +**CVC Code**: any diff --git a/addons/payment_aps/__manifest__.py b/addons/payment_aps/__manifest__.py index 88e05e5ae4e..c190ff8bb34 100644 --- a/addons/payment_aps/__manifest__.py +++ b/addons/payment_aps/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "An Amazon payment provider covering the MENA region.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_aps_templates.xml', diff --git a/addons/payment_asiapay/README.md b/addons/payment_asiapay/README.md index a6c0cb5544d..2e0f0ffc0bc 100644 --- a/addons/payment_asiapay/README.md +++ b/addons/payment_asiapay/README.md @@ -1,37 +1,47 @@ # AsiaPay -## Implementation details +## Technical details -### Supported features +API: Client Post Through Browser version `3.67` -- Payment with redirection flow. -- Webhook. -- Several payment methods including credit cards, chinese payment methods such as Alipay, and - [others](https://www.asiapay.com/payment.html#option). +This module integrates AsiaPay using the generic payment with redirection flow based on form +submission provided by the `payment` module. -In addition, AsiaPay also allows to implement manual capture, refunds, express checkout, and -multi-currency processing. +The entire API reference and the integration guide can be found on the +[Integration Guide](https://www.paydollar.com/pdf/op/enpdintguide.pdf). -### API and gateway +## Supported features -We choose to integrate with the Client Post Through Browser gateway which covers the best our needs, -out of the three that AsiaPay offers as of August 2022. +- Payment with redirection flow +- Webhook notifications -The entire API reference and the integration guides can be found on the [Integration Guide] -(https://www.paydollar.com/pdf/op/enpdintguide.pdf). +## Not implemented features -The version of the API implemented by this module is v3.67. +- Manual capture +- Refunds +- Express checkout +- Multi-currency processing -## Merge details +## Module history -The first version of the module was specified in task -[2845428](https://www.odoo.com/web#id=2845428&model=project.task) and merged with PR -odoo/odoo#98441 in `saas-15.5`. +- `16.2` + - The field "AsiaPay Brand" is added to select the API to use. odoo/odoo#110357 +- `16.1` + - The "AsiaPay Currency" field is replaced by the generic "Currencies" field of `payment`. + odoo/odoo#101018 +- `16.0` + - The first version of the module is merged. odoo/odoo#98441 ## Testing instructions -Card Number: `4335900000140045` -Expiry Date: `07/2030` -Name: `testing card` -CVC: `123` -3DS Password: `password` +### VISA + +**Card Number**: `4335900000140045` + +**Expiry Date**: `07/2030` + +**CVC Code**: `123` + +**Name**: `testing card` + +**3DS Password**: `password` diff --git a/addons/payment_asiapay/__manifest__.py b/addons/payment_asiapay/__manifest__.py index 8794073b603..84c274ed4cf 100644 --- a/addons/payment_asiapay/__manifest__.py +++ b/addons/payment_asiapay/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "An payment provider based in Hong Kong covering most Asian countries.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_asiapay_templates.xml', diff --git a/addons/payment_authorize/README.md b/addons/payment_authorize/README.md new file mode 100644 index 00000000000..f78f846954a --- /dev/null +++ b/addons/payment_authorize/README.md @@ -0,0 +1,68 @@ +# Authorize.net + +## Technical details + +SDK: [Accept.js](https://developer.authorize.net/api/reference/features/acceptjs.html) version `1` + +API: [Accept suite API](https://developer.authorize.net/api/reference/index.html) version `1` + +This module renders a self-hosted payment form with regular (non iframe) inputs and relies on the +Accept.js SDK to send the payment details to Authorize.net through a secure connection. The JS +assets are loaded in JavaScript when the payment form is submitted. + +Other communications with Authorize.net are performed via server-to-server API calls. + +This combined solution allows the implementation of a simple direct payment flow whilst keeping the +front-end development efforts low. As payment details are retrieved in clear but are immediately +passed to the Accept.js SDK, the solution qualifies for SAQ A-EP. + +## Supported features + +- Direct payment flow +- Tokenization with or without payment +- Full manual capture +- Full refunds + +## Missing features + +- Partial manual capture +- Webhook notifications: not available + +## Module history + +- `16.1` + - The "Authorize Currency" field is replaced by the generic "Currencies" field of `payment`. + odoo/odoo#101018 +- `16.0` + - Archiving a token no longer deactivates the related payment method on Authorize. odoo/odoo#93774 +- `15.4` + - The support for full refunds is added. odoo/odoo#92279 +- `15.0` + - Support for ACH payments is added. odoo/odoo#75289 +- `14.3` + - The payment with redirection flow that existed alongside the direct payment flow is dropped. + odoo/odoo#141661 + +## Testing instructions + +An HTTPS connection is required. + +https://developer.authorize.net/hello_world/testing_guide.html + +## VISA + +**Card Number**: `4111111111111111` + +## MasterCard + +**Card Number**: `5424000000000015` + +## eCheck + +**Bank Name**: whatever + +**Name On Account**: whatever + +**Account Number**: `123456` + +**ABA Routing Number**: `121122676` diff --git a/addons/payment_authorize/__manifest__.py b/addons/payment_authorize/__manifest__.py index ea22e4c9e73..0389c69ea4e 100644 --- a/addons/payment_authorize/__manifest__.py +++ b/addons/payment_authorize/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "An payment provider covering the US, Australia, and Canada.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_authorize_templates.xml', diff --git a/addons/payment_buckaroo/README.md b/addons/payment_buckaroo/README.md new file mode 100644 index 00000000000..5626bb7b283 --- /dev/null +++ b/addons/payment_buckaroo/README.md @@ -0,0 +1,27 @@ +# Buckaroo + +## Technical details + +API: [Buckaroo Payment Engine](https://www.pronamic.nl/wp-content/uploads/2013/04/BPE-3.0-Gateway-HTML.1.02.pdf) +version `3.0` + +This module integrates Buckaroo using the generic payment with redirection flow based on form +submission provided by the `payment` module. + +## Supported features + +- Payment with redirection flow + +## Not implemented features + +- Webhook notifications + +## Module history + +- `15.2` + - The support for webhook notifications is added. odoo/odoo#82922 + +## Testing instructions + +Buckaroo's hosted payment page allows to simulate payments and select the outcome without any +payment details when selecting the payment method PayPal. diff --git a/addons/payment_buckaroo/__manifest__.py b/addons/payment_buckaroo/__manifest__.py index 3ceb25ec7ad..0e3d9ec7898 100644 --- a/addons/payment_buckaroo/__manifest__.py +++ b/addons/payment_buckaroo/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "A Dutch payment provider covering several countries in Europe.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_buckaroo_templates.xml', diff --git a/addons/payment_custom/README.md b/addons/payment_custom/README.md new file mode 100644 index 00000000000..f8ba2b3aad2 --- /dev/null +++ b/addons/payment_custom/README.md @@ -0,0 +1,29 @@ +# Custom Payment Modes + +## Technical details + +This module does not integrate with an API and, instead, offers a base for implementing payment +providers with custom payment flows relying on payment instructions being displayed to the customer. +This is done by immediately marking transactions as 'pending' to display their 'pending message'. + +It defines a base Wire Transfer payment provider that allows making payments by bank transfer. + +## Supported features + +- Direct payment flow + +## Module history + +- `16.1` + - The default payment instructions message of Wire Transfer can be recomputed at any time after + installation of the module. odoo/odoo#103903 +- `16.0` + - The `custom_mode` field is added to distinguish custom payment modes from other payment + providers and to allow duplicating the base Wire Transfer provider in multi-company databases. + odoo/odoo#99400 + - The module is no longer automatically installed with the `payment` module. odoo/odoo#99400 + - The module is renamed from `payment_transfer` to `payment_custom`. odoo/odoo#99400 + +## Testing instructions + +Wire Transfer can be tested indifferently in test or live mode as it does not make API requests. diff --git a/addons/payment_custom/__manifest__.py b/addons/payment_custom/__manifest__.py index 77319640fcd..114856d0aa8 100644 --- a/addons/payment_custom/__manifest__.py +++ b/addons/payment_custom/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "A payment provider for custom flows like wire transfers.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_custom_templates.xml', diff --git a/addons/payment_demo/README.md b/addons/payment_demo/README.md new file mode 100644 index 00000000000..46362b1c4dd --- /dev/null +++ b/addons/payment_demo/README.md @@ -0,0 +1,35 @@ +# Demo + +## Technical details + +This module does not integrate with an API and, instead, allows for fake payments that can be made +to test applications' payment flows without API credentials nor payment method details. + +## Supported features + +- Direct payment flow +- Tokenization with our without payment +- Full and partial manual capture +- Full and partial refunds +- Express checkout +- Select the outcome of the payment + +## Module history + +- `17.0` + - The support for express checkout is added. odoo/odoo#113644 + - The support for customer fees is removed as it is no longer supported by the `payment` module. + odoo/odoo#132104 +- `16.3` + - The support for partial manual capture is added. odoo/odoo#117356 +- `16.0` + - The module is renamed from `payment_test` to `payment_demo`. odoo/odoo#99397 + - The support for manual capture, full and partial refunds, customer fees, and the selection of + the payment outcome are added. odoo/odoo#78083 + +## Testing instructions + +The Demo payment provider can only be used in test mode. + +No payment method details are required and the outcome of payments can be chosen. If provided, the +"Payment Details" are used as display name for the created payment tokens. diff --git a/addons/payment_demo/__manifest__.py b/addons/payment_demo/__manifest__.py index fd91f1e8956..47372672154 100644 --- a/addons/payment_demo/__manifest__.py +++ b/addons/payment_demo/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Hidden', 'sequence': 350, 'summary': "A payment provider for running fake payment flows for demo purposes.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_demo_templates.xml', diff --git a/addons/payment_flutterwave/README.md b/addons/payment_flutterwave/README.md index a67b38b6472..59a0aac8226 100644 --- a/addons/payment_flutterwave/README.md +++ b/addons/payment_flutterwave/README.md @@ -1,32 +1,39 @@ # Flutterwave -## Implementation details +## Technical details -### Supported features +API: [Flutterwave standard](https://developer.flutterwave.com/docs/collecting-payments/standard/) +version `3` + +This module integrates Flutterwave using the generic payment with redirection flow based on form +submission provided by the `payment` module. + +## Supported features - Payment with redirection flow -- [Tokenization](https://developer.flutterwave.com/reference/endpoints/tokenized-charge/) -- Several payment methods such as credit cards, M-Pesa, and - [others](https://developer.flutterwave.com/docs/collecting-payments/payment-methods/). -- [Webhook](https://developer.flutterwave.com/docs/integration-guides/webhooks/). +- Webhook notifications +- Tokenization with payment -In addition, Flutterwave also allows to implement refunds and pre-authorizations. +## Not implemented features -### API and gateway +- Manual capture +- Refunds -We choose to integrate with -[Flutterwave standard](https://developer.flutterwave.com/docs/collecting-payments/standard/) as it -is the gateway that covers the best our needs, out of the three that Flutterwave offers as of -May 2022. See the task's dev notes for the details on the other gateways. +## Module history -The version of the API implemented by this module is v3. - -## Merge details - -The first version of the module was specified in task -[2759117](https://www.odoo.com/web#id=2759117&model=project.task) and merged with PR -odoo/odoo#84820 in `saas-15.4`. +- `15.4` + - The first version of the module is merged. odoo/odoo#85514 ## Testing instructions -https://developer.flutterwave.com/docs/integration-guides/testing-helpers \ No newline at end of file +https://developer.flutterwave.com/docs/integration-guides/testing-helpers + +### MasterCard + +**Card Number**: `5531886652142950` + +**Expiry Date**: `09/32` + +**CVC Code**: `564` + +**OPT**: `12345` diff --git a/addons/payment_flutterwave/__manifest__.py b/addons/payment_flutterwave/__manifest__.py index 579f58a3a74..6c3cf713f17 100644 --- a/addons/payment_flutterwave/__manifest__.py +++ b/addons/payment_flutterwave/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "A Nigerian payment provider covering several African countries.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_flutterwave_templates.xml', diff --git a/addons/payment_mercado_pago/README.md b/addons/payment_mercado_pago/README.md index acff702d5d4..309ce22bd2f 100644 --- a/addons/payment_mercado_pago/README.md +++ b/addons/payment_mercado_pago/README.md @@ -1,41 +1,42 @@ # Mercado Pago -## Implementation details +## Technical details -### Supported features +APIs: +- [Checkout Pro](https://www.mercadopago.com.mx/developers/en/docs/checkout-pro/landing) +- [Checkout API](https://www.mercadopago.com.mx/developers/en/docs/checkout-api/landing) + +This module integrates Mercado Pago using a combination of "Checkout Pro" and "Checkout API". The +generic payment with redirection flow based on form submission provided by the `payment` module is +used to initiate the payment with the same request payload as Checkout Pro's JavaScript SDK would. +The remaining API calls are made to the Checkout API. It was not possible to only integrate with +Checkout Pro as it only allows redirecting customers to the payment page, nor with only the Checkout +API only as it requires building a custom payment form to accept direct payments from the merchant's +website. + +## Supported features - Payment with redirection flow -- Several payment methods such as credit cards, debit cards, and - [others](https://www.mercadopago.com.mx/developers/en/docs/checkout-api/payment-methods/other-payment-methods). -- [Webhook](https://www.mercadopago.com.mx/developers/en/docs/notifications/webhooks/webhooks) - notifications. +- Webhook notifications -### Not implemented features +## Not implemented features -- [Manual capture](https://www.mercadopago.com.mx/developers/en/docs/checkout-api/payment-management/capture-authorized-payment). -- [Partial refunds](https://www.mercadopago.com.mx/developers/en/docs/checkout-api/payment-management/cancellations-and-refunds). +- [Manual capture](https://www.mercadopago.com.mx/developers/en/docs/checkout-api/payment-management/capture-authorized-payment) +- [Full and partial refunds](https://www.mercadopago.com.mx/developers/en/docs/checkout-api/payment-management/cancellations-and-refunds) -### API and gateway +## Module history -We choose to integrate with a combination of the -[Checkout Pro](https://www.mercadopago.com.mx/developers/en/docs/checkout-pro/landing) and -[Checkout API](https://www.mercadopago.com.mx/developers/en/docs/checkout-api/landing) solutions: -The payment with redirection flow is initiated by sending a client HTTP request with a form-encoded -payload like Checkout Pro's JavaScript SDK does under the hood. The remaining API calls are made -according to the Checkout API's documentation. It was not possible to integrate with Checkout Pro -only as it only allows redirecting customers to the payment page, nor with the Checkout API only as -it requires building a custom payment form to accept direct payments from the merchant's website. - -The other gateways were ruled out. See the task's dev notes for the details on the other gateways. - -The API implemented by this module is not versioned. - -## Merge details - -The first version of the module was specified in task -[2704764](https://www.odoo.com/web#id=2704764&model=project.task) and merged with PR -odoo/odoo#83957 in `saas-15.5`. +- `16.0` + - The first version of the module is merged. odoo/odoo#83957 ## Testing instructions -https://www.mercadopago.com.mx/developers/en/docs/checkout-api/integration-test/test-cards +https://www.mercadopago.com.mx/developers/en/docs/checkout-api/additional-content/your-integrations/test/cards + +### VISA + +**Card Number**: `4075595715555555` + +**Expiry Date**: `11/25` + +**Security Code**: `123` diff --git a/addons/payment_mercado_pago/__manifest__.py b/addons/payment_mercado_pago/__manifest__.py index 126976d1306..7fd6d51d4f2 100644 --- a/addons/payment_mercado_pago/__manifest__.py +++ b/addons/payment_mercado_pago/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "A payment provider covering several countries in Latin America.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_mercado_pago_templates.xml', diff --git a/addons/payment_mollie/README.md b/addons/payment_mollie/README.md new file mode 100644 index 00000000000..2a50f486b18 --- /dev/null +++ b/addons/payment_mollie/README.md @@ -0,0 +1,36 @@ +# Mollie + +## Technical details + +API: [Payments API](https://docs.mollie.com/reference/v2/payments-api/create-payment) version `2` + +This module integrates Mollie using the generic payment with redirection flow based on form +submission provided by the `payment` module. + +## Supported features + +- Payment with redirection flow +- Webhook notifications + +## Not implemented features + +- Tokenization +- Manual capture +- Refunds + +## Module history + +- `15.0` + - The first version of the module is merged. odoo/odoo#74136 + +## Testing instructions + +An HTTPS connection is required. + +https://docs.mollie.com/overview/testing + +**Card Number**: `4111111111111111` + +**Expiry Date**: `123` + +**CVC Code**: `123` diff --git a/addons/payment_mollie/__manifest__.py b/addons/payment_mollie/__manifest__.py index 492ac012381..3da3a110cda 100755 --- a/addons/payment_mollie/__manifest__.py +++ b/addons/payment_mollie/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "A Dutch payment provider covering several European countries.", + 'description': " ", # Non-empty string to avoid loading the README file. 'author': 'Odoo S.A., Applix BV, Droggol Infotech Pvt. Ltd.', 'website': 'https://www.mollie.com', 'depends': ['payment'], diff --git a/addons/payment_ogone/README.md b/addons/payment_ogone/README.md new file mode 100644 index 00000000000..1bf6196ac58 --- /dev/null +++ b/addons/payment_ogone/README.md @@ -0,0 +1,42 @@ +# Ogone + +## Technical details + +APIs: + +- [Hosted Payment Page](https://support.legacy.worldline-solutions.com/integration-solutions/integrations/hosted-payment-page?com.dotmarketing.htmlpage.language=1&skiprules=true&com.dotmarketing.htmlpage.language=1&skiprules=true) +- [Direct Link](https://support.legacy.worldline-solutions.com/integration-solutions/integrations/directlink?com.dotmarketing.htmlpage.language=1&skiprules=true&com.dotmarketing.htmlpage.language=1&skiprules=true) + +This module relies on a combination of two APIs to implement a payment with redirection flow that +allows for tokenization. The Hosted Payment Page API is integrated using the generic payment with +redirection flow based on form submission provided by the `payment` module. The Direct Link API +is used for token payments. + +## Supported features + +- Payment with redirection flow +- Webhook notifications +- Tokenization with payment + +## Not implemented features + +- Tokenization without payment + +## Module history + +- `16.0` + - The module is deprecated and can no longer be installed from the web client. odoo/odoo#99025 +- `15.2` + - Webhook notifications that cannot be processed are discarded to prevent automatic disabling of + the webhook. odoo/odoo#81607 +- `14.3` + - The FlexCheckout API is removed and with it the support for payment method validations. + odoo/odoo#72624 + - The FlexCheckout API is introduced to handle payment method validations that were performed in + a non-secure way through the Hosted Payment Page API. odoo/odoo#56187 + - The module is renamed from `payment_ingenico` to `payment_ogone`. odoo/odoo#56187 + +## Testing instructions + +Test card numbers are specific to the Ogone account. From Ogone's Backoffice, find them in +Configuration > Technical information > Test info. diff --git a/addons/payment_ogone/__manifest__.py b/addons/payment_ogone/__manifest__.py index 4e93260ca80..d6cf2dc218b 100644 --- a/addons/payment_ogone/__manifest__.py +++ b/addons/payment_ogone/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "This module is deprecated.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_ogone_templates.xml', diff --git a/addons/payment_paypal/README.md b/addons/payment_paypal/README.md new file mode 100644 index 00000000000..c1353d9c3e4 --- /dev/null +++ b/addons/payment_paypal/README.md @@ -0,0 +1,32 @@ +# PayPal + +## Technical details + +API: [PayPal Payments Standard](https://developer.paypal.com/api/nvp-soap/paypal-payments-standard/integration-guide/formbasics/) + +This module integrates PayPal using the generic payment with redirection flow based on form +submission provided by the `payment` module. + +## Supported features + +- Payment with redirection flow +- Webhook notifications + +## Module history + +- `17.0` + - The support for customer fees is removed as it is no longer supported by the `payment` module. + odoo/odoo#132104 +- `16.2` + - The "Merchant Account ID" and "Use IPN" fields are removed. odoo/odoo#104974 +- `16.1` + - Customer fees are converted into the currency of the payment transaction. odoo/odoo#100156 +- `15.2` + - An HTTP 404 "Forbidden" error is raised instead of a Validation error when the authenticity of + the webhook notification cannot be verified. odoo/odoo#81607 + +## Testing instructions + +Payments must be made using a separate [sandbox account](https://www.sandbox.paypal.com/myaccount/). + +Read more at https://developer.paypal.com/tools/sandbox/. diff --git a/addons/payment_paypal/__manifest__.py b/addons/payment_paypal/__manifest__.py index 7a310a375a8..ffbf78d763d 100644 --- a/addons/payment_paypal/__manifest__.py +++ b/addons/payment_paypal/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "An American payment provider for online payments all over the world.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_paypal_templates.xml', diff --git a/addons/payment_payulatam/README.md b/addons/payment_payulatam/README.md new file mode 100644 index 00000000000..2e073696020 --- /dev/null +++ b/addons/payment_payulatam/README.md @@ -0,0 +1,20 @@ +# PayU Latam + +## Technical details + +API: [WebCheckout](https://developers.payulatam.com/latam/en/docs/integrations/webcheckout-integration.html) + +This module integrates PayU Latam using the generic payment with redirection flow based on form +submission provided by the `payment` module. + +## Supported features + +- Payment with redirection flow +- Webhook notifications + +## Module history + +- `16.0` + - The module is deprecated and can no longer be installed from the web client. odoo/odoo#99025 +- `15.0` + - The support for webhook notifications is added. odoo/odoo#84069 diff --git a/addons/payment_payulatam/__manifest__.py b/addons/payment_payulatam/__manifest__.py index dcbde61edac..bff26269ba7 100644 --- a/addons/payment_payulatam/__manifest__.py +++ b/addons/payment_payulatam/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "This module is deprecated.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_payulatam_templates.xml', diff --git a/addons/payment_payumoney/README.md b/addons/payment_payumoney/README.md new file mode 100644 index 00000000000..4e09cf2a61b --- /dev/null +++ b/addons/payment_payumoney/README.md @@ -0,0 +1,31 @@ +# PayUmoney + +## Technical details + +API: [PayUMoney Payment Gateway](https://www.payumoney.com/pdf/PayUMoney-Technical-Integration-Document.pdf) + +This module integrates PayUmoney using the generic payment with redirection flow based on form +submission provided by the `payment` module. + +## Supported features + +- Payment with redirection flow + +## Module history + +- `16.0` + - The module is deprecated and can no longer be installed from the web client. odoo/odoo#99025 + +## Testing instructions + +**Phone**: `123456` + +**Email**: `test@example.com` + +**Card Number**: `4012001037141112` + +**Expiry**: any date in the future + +**CVV**: `123` + +**TOTP**: `123456` \ No newline at end of file diff --git a/addons/payment_payumoney/__manifest__.py b/addons/payment_payumoney/__manifest__.py index 3aff8d6a561..f93baf89c88 100644 --- a/addons/payment_payumoney/__manifest__.py +++ b/addons/payment_payumoney/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "This module is deprecated.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_payumoney_templates.xml', diff --git a/addons/payment_razorpay/README.md b/addons/payment_razorpay/README.md index c032c47cdbb..f1e012efaaa 100644 --- a/addons/payment_razorpay/README.md +++ b/addons/payment_razorpay/README.md @@ -1,41 +1,47 @@ # Razorpay -## Implementation details +## Technical details -### Supported features +API: [Recurring Payments API](https://razorpay.com/docs/api/payments/recurring-payments/) +version `1` + +## Supported features - Direct payment flow -- Tokenization -- Manual capture +- Webhook notifications +- Full manual capture - Partial refunds -- Several payment methods such as debit/credit cards, netbanking, UPI, and - [others](https://razorpay.com/docs/payments/payment-methods/). -- [Webhook](https://razorpay.com/docs/webhooks). -### API and gateway +## Not implemented features -We choose to integrate with -[Razorpay Recurring Payments](https://razorpay.com/docs/api/payments/recurring-payments/), which is -more complex to handle than -[Razorpay Hosted Checkout](https://razorpay.com/docs/payments/payment-gateway/web-integration/hosted) -because it works as a direct payment flow, because it allows for tokenization. The other gateways -were ruled out; see the original task's dev notes for the details on the other gateways. - -The version of the API implemented by this module is v1. +- Partial manual capture ## Module history -- The first version of the module was specified in task - [2800823](https://www.odoo.com/web#id=2800823&model=project.task) and merged with PR - odoo/odoo#92848 in `saas-15.5`. -- The API was changed to the Recurring Payments API to support tokenization with PR odoo/odoo#143525 - in `17.0`. +- `17.0` + - The previous Hosted Checkout API that allowed for redirect payments is replaced by the Recurring + Payments API that supports direct payments and tokenization. odoo/odoo#143525 +- `16.0` + - The first version of the module is merged. odoo/odoo#92848 ## Testing instructions -- The partner's phone number must be a valid Indian phone number. Example: +911234567890 -- The partner's country must be India and the payment currency INR to enable India-based payment - methods. +https://razorpay.com/docs/payments/payments/test-card-upi-details/ -See https://razorpay.com/docs/payments/payments/test-card-upi-details/ and -https://razorpay.com/docs/payments/payments/test-upi-details/ for the list of test payment details. +https://razorpay.com/docs/payments/payments/test-upi-details/ + +A valid Indian phone number must be set on the partner. Example: `+91123456789` + +### VISA + +**Card Number**: `4111111111111111` + +**Expiry Date**: any future date + +**Card Secret**: any + +**OTP**: `1111` + +### UPI + +**UPI ID**: `success@razorpay` or `failure@razorpay` diff --git a/addons/payment_razorpay/__manifest__.py b/addons/payment_razorpay/__manifest__.py index 2a4f76178fa..767a3d804c0 100644 --- a/addons/payment_razorpay/__manifest__.py +++ b/addons/payment_razorpay/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "A payment provider covering India.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_provider_views.xml', diff --git a/addons/payment_sips/README.md b/addons/payment_sips/README.md new file mode 100644 index 00000000000..029b1c9be2e --- /dev/null +++ b/addons/payment_sips/README.md @@ -0,0 +1,31 @@ +# SIPS + +## Technical details + +API: [SIPS Paypage](https://docs.sips.worldline-solutions.com/en/WLSIPS.317-UG-Sips-Paypage-POST.html#Data-field-element-syntax_) + + + +This module integrates SIPS using the generic payment with redirection flow based on form +submission provided by the `payment` module. + +## Supported features + +- Payment with redirection flow +- Webhook notifications + +## Module history + +- `15.2` + - An HTTP 404 "Forbidden" error is raised instead of a Validation error when the authenticity of + the webhook notification cannot be verified. odoo/odoo#81607 + +## Testing instructions + +### VISA + +**Card Number**: `4100000000000000` + +### MasterCard + +**Card Number**: `5100000000000000` \ No newline at end of file diff --git a/addons/payment_sips/__manifest__.py b/addons/payment_sips/__manifest__.py index 40f19baa250..90f0a6152e5 100644 --- a/addons/payment_sips/__manifest__.py +++ b/addons/payment_sips/__manifest__.py @@ -7,6 +7,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "A French payment provider for online payments all over the world.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_provider_views.xml', diff --git a/addons/payment_stripe/README.md b/addons/payment_stripe/README.md new file mode 100644 index 00000000000..83b0bb674ae --- /dev/null +++ b/addons/payment_stripe/README.md @@ -0,0 +1,65 @@ +# Stripe + +## Technical details + +SDK: [Stripe.js](https://stripe.com/docs/js) version `3` + +API: [Stripe API](https://stripe.com/docs/api) version `2019-05-16` + +This module integrates Stripe using a custom implementation of the payment with redirection flow: no +redirect form is rendered and, instead, a Checkout Session object is created from the server before +the customer is redirected to the session's payment page from the front-end. This is achieved by +following the [Stripe-hosted page](https://stripe.com/docs/checkout/quickstart) guide. + +The module also offers a quick onboarding thanks to the Stripe Connect platform solution. + +## Supported features + +- Payment with redirection flow +- Webhook notifications +- Tokenization with or without payment +- Full manual capture +- Full and partial refunds +- Express checkout + +## Not implemented features + +- Partial manual capture + +## Module history + +- `16.4` + - The previous Checkout API that allowed for redirect payments is replaced by the Payment Intents + API that supports direct payments. odoo/odoo#123573 + - The support for eMandates for recurring payments is added. odoo/odoo#123573 + - The responses of webhook notifications are sent with the proper HTTP code. odoo/odoo#117940 +- `16.0` + - Stripe uses the payment methods set up on the account when none are assigned to the payment + provider in Odoo, instead of only offering the "Card" payment method. odoo/odoo#107647 + - The support for express checkout is added. odoo/odoo#88374 +- `15.4` + - The support for full and partial refunds is added. odoo/odoo#92235 +- `15.3` + - Webhook notifications accept three new events based on the PaymentIntent and SetupIntent objects + in place of the `checkout.session.completed` event to handle async payment status updates. + odoo/odoo#84150 + - The support for manual capture is added. odoo/odoo#69598 +- `15.2` + - An HTTP 404 "Forbidden" error is raised instead of a Validation error when the authenticity of + the webhook notification cannot be verified. odoo/odoo#81607 +- `15.0` + - A new button is added to create a webhook automatically. odoo/odoo#79621 + - The support for the Stripe Connect onboarding flow is added. odoo/odoo#79621 +- `14.3` + - The previous direct payment flow that was supported by the SetupIntent API is replaced by a + payment with redirection flow using the Checkout API. odoo/odoo#141661 + +## Testing instructions + +https://stripe.com/docs/testing + +**Card Number**: `4111111111111111` + +**Expiry Date**: any future date + +**CVC Code**: any diff --git a/addons/payment_stripe/__manifest__.py b/addons/payment_stripe/__manifest__.py index 66b7a3b9f98..c4761975fd7 100644 --- a/addons/payment_stripe/__manifest__.py +++ b/addons/payment_stripe/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "An Irish-American payment provider covering the US and many others.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_provider_views.xml', diff --git a/addons/payment_xendit/README.md b/addons/payment_xendit/README.md index 7ce60571f04..ab75217628e 100644 --- a/addons/payment_xendit/README.md +++ b/addons/payment_xendit/README.md @@ -1,34 +1,26 @@ # Xendit -## Implementation details +## Technical details -### Supported features +API: [Invoices API](https://developers.xendit.co/api-reference/#create-invoice) version `2` -- [Payment with redirection flow](https://developers.xendit.co/api-reference/#create-invoice) -- Several payment methods such as credit cards, bank transfers, eWallets, pay later, and - [others](https://docs.xendit.co/payment-link/payment-channels). -- [Webhook](https://developers.xendit.co/api-reference/#invoice-callback). +This module integrates Xendit using the generic payment with redirection flow based on form +submission provided by the `payment` module. -In addition, Xendit also allows to implement tokenization. +## Supported features -### API and gateway +- Payment with redirection flow +- Webhook notifications -We choose to integrate with the -[Invoices API](https://developer.flutterwave.com/docs/collecting-payments/standard/) as it -is the gateway that covers the best our needs: it is a payment with redirection flow and is -compatible with `payment`'s form-based implementation of that flow. +## Not implemented features -The [Payments API](https://developers.xendit.co/api-reference/#payments-api) was considered too, but -it requires implementing a more complex direct payment flow and linking the customer account. +- Tokenization -The version of the API implemented by this module is v2. +## Module history -## Merge details - -The first version of the module was specified in task -[2946329](https://www.odoo.com/web#id=2759117&model=project.task) and merged with PR -odoo/odoo#141661 in branch `17.0`. +- `17.0` + - The first version of the module is merged. odoo/odoo#141661 ## Testing instructions -https://developers.xendit.co/api-reference/#test-scenarios \ No newline at end of file +https://developers.xendit.co/api-reference/#test-scenarios diff --git a/addons/payment_xendit/__manifest__.py b/addons/payment_xendit/__manifest__.py index b7b259560ce..ad74fd731cd 100644 --- a/addons/payment_xendit/__manifest__.py +++ b/addons/payment_xendit/__manifest__.py @@ -6,6 +6,7 @@ 'category': 'Accounting/Payment Providers', 'sequence': 350, 'summary': "A payment provider for Indonesian and the Philippines.", + 'description': " ", # Non-empty string to avoid loading the README file. 'depends': ['payment'], 'data': [ 'views/payment_provider_views.xml',