[IMP] payment, *: document technical details in README files

Each payment acquirer has its own implementation specificities: some
implement a 'payment with redirection' flow and others a 'direct payment
flow'; sometimes the 'payment with redirection' flow is even implemented
as a 'direct payment' flow through an iframe; one payment acquirer could
support webhooks while another does not and relies on another mechanism
to fetch payment status updates...

It can be tricky to guess where to look in the code to determine how a
payment acquirer is implemented.

On top of that, the online payments ecosystem evolves at a fast pace due
to competition, buyouts, and legislation enforcement. Acquirers are thus
frequently migrated to new APIs that might differ in implementation from
the previous API.

To help figure out the *which*, *why*, *how*, and *when* of payment API
implementations, a README.md file is added to the main directory of all
payment acquirer modules. They can be browsed in human-readable format
on GitHub.

task-2374916

closes odoo/odoo#156084

X-original-commit: 4c19f26df3d39394cce2f183d6df15c5b89c7d27
Related: odoo/enterprise#57921
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
This commit is contained in:
Antoine Vandevenne (anv)
2024-03-04 15:15:54 +00:00
parent e05e727c9e
commit 6858d5ca49
38 changed files with 715 additions and 135 deletions
+87
View File
@@ -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`
+1
View File
@@ -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',
+35
View File
@@ -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`
+1
View File
@@ -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',
+23 -16
View File
@@ -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
https://paymentservices.amazon.com/docs/EN/12.html
### VISA
**Card Number**: `4111111111111111`
**Expiry Date**: any date in the future
**CVC Code**: any
+1
View File
@@ -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',
+33 -23
View File
@@ -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`
+1
View File
@@ -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',
+68
View File
@@ -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`
+1
View File
@@ -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',
+27
View File
@@ -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.
+1
View File
@@ -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',
+29
View File
@@ -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.
+1
View File
@@ -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',
+35
View File
@@ -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.
+1
View File
@@ -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',
+27 -20
View File
@@ -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
https://developer.flutterwave.com/docs/integration-guides/testing-helpers
### MasterCard
**Card Number**: `5531886652142950`
**Expiry Date**: `09/32`
**CVC Code**: `564`
**OPT**: `12345`
@@ -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',
+30 -29
View File
@@ -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`
@@ -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',
+36
View File
@@ -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`
+1
View File
@@ -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'],
+42
View File
@@ -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.
+1
View File
@@ -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',
+32
View File
@@ -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/.
+1
View File
@@ -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',
+20
View File
@@ -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
+1
View File
@@ -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',
+31
View File
@@ -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`
+1
View File
@@ -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',
+32 -26
View File
@@ -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`
+1
View File
@@ -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',
+31
View File
@@ -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_)
<!-- https://documentation.sips.worldline.com/en/WLSIPS.316-UG-Sips-Paypage-JSON.html = 404 -->
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`
+1
View File
@@ -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',
+65
View File
@@ -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
+1
View File
@@ -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',
+13 -21
View File
@@ -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
https://developers.xendit.co/api-reference/#test-scenarios
+1
View File
@@ -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',