[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:
@@ -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`
|
||||
@@ -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',
|
||||
|
||||
@@ -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`
|
||||
@@ -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',
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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`
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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`
|
||||
@@ -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',
|
||||
|
||||
@@ -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.
|
||||
@@ -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',
|
||||
|
||||
@@ -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.
|
||||
@@ -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',
|
||||
|
||||
@@ -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.
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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`
|
||||
@@ -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'],
|
||||
|
||||
@@ -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.
|
||||
@@ -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',
|
||||
|
||||
@@ -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/.
|
||||
@@ -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',
|
||||
|
||||
@@ -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
|
||||
@@ -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',
|
||||
|
||||
@@ -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`
|
||||
@@ -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',
|
||||
|
||||
@@ -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`
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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`
|
||||
@@ -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',
|
||||
|
||||
@@ -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
|
||||
@@ -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',
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user