1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
API_VERSION = '2019-05-16' # The API version of Stripe implemented in this module
# Stripe proxy URL
PROXY_URL = 'https://stripe.api.odoo.com/api/stripe/'
# The codes of the payment methods to activate when Stripe is activated.
DEFAULT_PAYMENT_METHOD_CODES = {
# Primary payment methods.
'card',
'bancontact',
'eps',
'giropay',
'ideal',
'p24',
# Brand payment methods.
'visa',
'mastercard',
'amex',
'discover',
}
# Mapping of payment method codes to Stripe codes.
PAYMENT_METHODS_MAPPING = {
'ach_direct_debit': 'us_bank_account',
'bacs_direct_debit': 'bacs_debit',
'becs_direct_debit': 'au_becs_debit',
'sepa_direct_debit': 'sepa_debit',
'afterpay': 'afterpay_clearpay',
'clearpay': 'afterpay_clearpay',
'cash_app_pay': 'cashapp',
'mobile_pay': 'mobilepay',
'unknown': 'card', # For express checkout.
}
INDIAN_MANDATES_SUPPORTED_CURRENCIES = [
'USD',
'EUR',
'GBP',
'SGD',
'CAD',
'CHF',
'SEK',
'AED',
'JPY',
'NOK',
'MYR',
'HKD',
]
# Mapping of transaction states to Stripe objects ({Payment,Setup}Intent, Refund) statuses.
# For each object's exhaustive status list, see:
# https://stripe.com/docs/api/payment_intents/object#payment_intent_object-status
# https://stripe.com/docs/api/setup_intents/object#setup_intent_object-status
# https://stripe.com/docs/api/refunds/object#refund_object-status
STATUS_MAPPING = {
'draft': ('requires_confirmation', 'requires_action'),
'pending': ('processing', 'pending'),
'authorized': ('requires_capture',),
'done': ('succeeded',),
'cancel': ('canceled',),
'error': ('requires_payment_method', 'failed',),
}
# Events which are handled by the webhook
HANDLED_WEBHOOK_EVENTS = [
'payment_intent.processing',
'payment_intent.amount_capturable_updated',
'payment_intent.succeeded',
'payment_intent.payment_failed',
'payment_intent.canceled',
'setup_intent.succeeded',
'charge.refunded', # A refund has been issued.
'charge.refund.updated', # The refund status has changed, possibly from succeeded to failed.
]
# The countries supported by Stripe. See https://stripe.com/global page.
SUPPORTED_COUNTRIES = {
'AE',
'AT',
'AU',
'BE',
'BG',
'BR',
'CA',
'CH',
'CY',
'CZ',
'DE',
'DK',
'EE',
'ES',
'FI',
'FR',
'GB',
'GI', # Beta
'GR',
'HK',
'HR', # Beta
'HU',
'ID', # Beta
'IE',
'IT',
'JP',
'LI', # Beta
'LT',
'LU',
'LV',
'MT',
'MX',
'MY',
'NL',
'NO',
'NZ',
'PH', # Beta
'PL',
'PT',
'RO',
'SE',
'SG',
'SI',
'SK',
'TH', # Beta
'US',
}
# Businesses in supported outlying territories should register for a Stripe account with the parent
# territory selected as the Country.
# See https://support.stripe.com/questions/stripe-availability-for-outlying-territories-of-supported-countries.
COUNTRY_MAPPING = {
'MQ': 'FR', # Martinique
'GP': 'FR', # Guadeloupe
'GF': 'FR', # French Guiana
'RE': 'FR', # Réunion
'YT': 'FR', # Mayotte
'MF': 'FR', # Saint-Martin
}
|