mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-28 04:04:55 +08:00
817 lines
49 KiB
TOML
817 lines
49 KiB
TOML
# This is a sample config file whose sole purpose is to enumerate
|
|
# all the available configuration options, and is intended to be used
|
|
# solely as a reference. Please copy this file to create a config.
|
|
|
|
# Server configuration
|
|
[server]
|
|
port = 8080
|
|
host = "127.0.0.1"
|
|
# This is the grace time (in seconds) given to the actix-server to stop the execution
|
|
# For more details: https://actix.rs/docs/server/#graceful-shutdown
|
|
shutdown_timeout = 30
|
|
# HTTP Request body limit. Defaults to 32kB
|
|
request_body_limit = 32_768
|
|
|
|
# HTTPS Server Configuration
|
|
# Self-signed Private Key and Certificate can be generated with mkcert for local development
|
|
[server.tls]
|
|
port = 8081
|
|
host = "127.0.0.1"
|
|
private_key = "/path/to/private_key.pem"
|
|
certificate = "/path/to/certificate.pem"
|
|
|
|
# Proxy server configuration for connecting to payment gateways.
|
|
# Don't define the fields if a Proxy isn't needed. Empty strings will cause failure.
|
|
[proxy]
|
|
# http_url = "http proxy url" # Proxy all HTTP traffic via this proxy
|
|
# https_url = "https proxy url" # Proxy all HTTPS traffic via this proxy
|
|
idle_pool_connection_timeout = 90 # Timeout for idle pool connections (defaults to 90s)
|
|
bypass_proxy_urls = [] # A list of URLs that should bypass the proxy
|
|
|
|
|
|
# Configuration for the Key Manager Service
|
|
[key_manager]
|
|
url = "http://localhost:5000" # URL of the encryption service
|
|
|
|
# Main SQL data store credentials
|
|
[master_database]
|
|
username = "db_user" # DB Username
|
|
password = "db_pass" # DB Password. Use base-64 encoded kms encrypted value here when kms is enabled
|
|
host = "localhost" # DB Host
|
|
port = 5432 # DB Port
|
|
dbname = "hyperswitch_db" # Name of Database
|
|
pool_size = 5 # Number of connections to keep open
|
|
connection_timeout = 10 # Timeout for database connection in seconds
|
|
queue_strategy = "Fifo" # Add the queue strategy used by the database bb8 client
|
|
|
|
# Replica SQL data store credentials
|
|
[replica_database]
|
|
username = "replica_user" # DB Username
|
|
password = "db_pass" # DB Password. Use base-64 encoded kms encrypted value here when kms is enabled
|
|
host = "localhost" # DB Host
|
|
port = 5432 # DB Port
|
|
dbname = "hyperswitch_db" # Name of Database
|
|
pool_size = 5 # Number of connections to keep open
|
|
connection_timeout = 10 # Timeout for database connection in seconds
|
|
queue_strategy = "Fifo" # Add the queue strategy used by the database bb8 client
|
|
|
|
# Redis credentials
|
|
[redis]
|
|
host = "127.0.0.1"
|
|
port = 6379
|
|
pool_size = 5 # Number of connections to keep open
|
|
reconnect_max_attempts = 5 # Maximum number of reconnection attempts to make before failing. Set to 0 to retry forever.
|
|
reconnect_delay = 5 # Delay between reconnection attempts, in milliseconds
|
|
default_ttl = 300 # Default TTL for entries, in seconds
|
|
default_hash_ttl = 900 # Default TTL for hashes entries, in seconds
|
|
use_legacy_version = false # Resp protocol for fred crate (set this to true if using RESPv2 or redis version < 6)
|
|
stream_read_count = 1 # Default number of entries to read from stream if not provided in stream read options
|
|
auto_pipeline = true # Whether or not the client should automatically pipeline commands across tasks when possible.
|
|
disable_auto_backpressure = false # Whether or not to disable the automatic backpressure features when pipelining is enabled.
|
|
max_in_flight_commands = 5000 # The maximum number of in-flight commands (per connection) before backpressure will be applied.
|
|
default_command_timeout = 30 # An optional timeout to apply to all commands. In seconds
|
|
unresponsive_timeout = 10 # An optional timeout for Unresponsive commands in seconds. This should be less than default_command_timeout.
|
|
max_feed_count = 200 # The maximum number of frames that will be fed to a socket before flushing.
|
|
|
|
# This section provides configs for currency conversion api
|
|
[forex_api]
|
|
call_delay = 21600 # Api calls are made after every 6 hrs
|
|
local_fetch_retry_count = 5 # Fetch from Local cache has retry count as 5
|
|
local_fetch_retry_delay = 1000 # Retry delay for checking write condition
|
|
api_timeout = 20000 # Api timeouts once it crosses 20000 ms
|
|
api_key = "YOUR API KEY HERE" # Api key for making request to foreign exchange Api
|
|
fallback_api_key = "YOUR API KEY" # Api key for the fallback service
|
|
redis_lock_timeout = 26000 # Redis remains write locked for 26000 ms once the acquire_redis_lock is called
|
|
|
|
# Logging configuration. Logging can be either to file or console or both.
|
|
|
|
# Logging configuration for file logging
|
|
[log.file]
|
|
enabled = false # Toggle [true or false]
|
|
path = "logs" # specify the directory to create log files
|
|
file_name = "debug.log" # base name for log files.
|
|
# levels can be "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF"
|
|
# defaults to "WARN"
|
|
level = "WARN"
|
|
# sets the log level for one or more crates
|
|
filtering_directive = "WARN,router=INFO,reqwest=INFO"
|
|
# ^^^^ ^^^^---------^^^^-- sets the log level for the
|
|
# | router and reqwest crates to INFO.
|
|
# |
|
|
# |______________________________ sets the log level for all
|
|
# other crates to WARN.
|
|
|
|
# Logging configuration for console logging
|
|
[log.console]
|
|
enabled = true # boolean [true or false]
|
|
log_format = "default" # Log format. "default" or "json"
|
|
# levels can be "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF"
|
|
# defaults to "WARN"
|
|
level = "DEBUG"
|
|
# sets the log level for one or more crates
|
|
filtering_directive = "WARN,router=INFO,reqwest=INFO"
|
|
# ^^^^ ^^^^---------^^^^-- sets the log level for the
|
|
# | router and reqwest crates to INFO.
|
|
# |
|
|
# |______________________________ sets the log level for all
|
|
# other crates to WARN.
|
|
|
|
# Telemetry configuration for metrics and traces
|
|
[log.telemetry]
|
|
traces_enabled = false # boolean [true or false], whether traces are enabled
|
|
metrics_enabled = false # boolean [true or false], whether metrics are enabled
|
|
ignore_errors = false # boolean [true or false], whether to ignore errors during traces or metrics pipeline setup
|
|
sampling_rate = 0.1 # decimal rate between 0.0 - 1.0
|
|
otel_exporter_otlp_endpoint = "http://localhost:4317" # endpoint to send metrics and traces to, can include port number
|
|
otel_exporter_otlp_timeout = 5000 # timeout (in milliseconds) for sending metrics and traces
|
|
use_xray_generator = false # Set this to true for AWS X-ray compatible traces
|
|
route_to_trace = ["*/confirm"]
|
|
bg_metrics_collection_interval_in_secs = 15 # Interval for collecting the metrics in background thread
|
|
|
|
# This section provides some secret values.
|
|
[secrets]
|
|
master_enc_key = "sample_key" # Master Encryption key used to encrypt merchant wise encryption key. Should be 32-byte long.
|
|
admin_api_key = "test_admin" # admin API key for admin authentication.
|
|
jwt_secret = "secret" # JWT secret used for user authentication.
|
|
|
|
# Locker settings contain details for accessing a card locker, a
|
|
# PCI Compliant storage entity which stores payment method information
|
|
# like card details
|
|
[locker]
|
|
host = "" # Locker host
|
|
host_rs = "" # Rust Locker host
|
|
mock_locker = true # Emulate a locker locally using Postgres
|
|
locker_signing_key_id = "1" # Key_id to sign basilisk hs locker
|
|
locker_enabled = true # Boolean to enable or disable saving cards in locker
|
|
ttl_for_storage_in_secs = 220752000 # Time to live for storage entries in locker
|
|
|
|
[delayed_session_response]
|
|
connectors_with_delayed_session_response = "trustpay,payme" # List of connectors which has delayed session response
|
|
|
|
[webhook_source_verification_call]
|
|
connectors_with_webhook_source_verification_call = "paypal" # List of connectors which has additional source verification api-call
|
|
|
|
[jwekey] # 4 priv/pub key pair
|
|
vault_encryption_key = "" # public key in pem format, corresponding private key in basilisk-hs
|
|
rust_locker_encryption_key = "" # public key in pem format, corresponding private key in rust locker
|
|
vault_private_key = "" # private key in pem format, corresponding public key in basilisk-hs
|
|
|
|
# Refund configuration
|
|
[refund]
|
|
max_attempts = 10 # Number of refund attempts allowed
|
|
max_age = 365 # Max age of a refund in days.
|
|
|
|
[webhooks]
|
|
outgoing_enabled = true
|
|
|
|
# Validity of an Ephemeral Key in Hours
|
|
[eph_key]
|
|
validity = 1
|
|
|
|
[api_keys]
|
|
# Hex-encoded 32-byte long (64 characters long when hex-encoded) key used for calculating hashes of API keys
|
|
hash_key = "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
|
|
|
# Connector configuration, provided attributes will be used to fulfill API requests.
|
|
# Examples provided here are sandbox/test base urls, can be replaced by live or mock
|
|
# base urls based on your need.
|
|
# Note: These are not optional attributes. hyperswitch request can fail due to invalid/empty values.
|
|
[connectors]
|
|
aci.base_url = "https://eu-test.oppwa.com/"
|
|
adyen.base_url = "https://checkout-test.adyen.com/"
|
|
adyen.payout_base_url = "https://pal-test.adyen.com/"
|
|
adyen.dispute_base_url = "https://ca-test.adyen.com/"
|
|
adyenplatform.base_url = "https://balanceplatform-api-test.adyen.com/"
|
|
airwallex.base_url = "https://api-demo.airwallex.com/"
|
|
amazonpay.base_url = "https://pay-api.amazon.com/v2"
|
|
applepay.base_url = "https://apple-pay-gateway.apple.com/"
|
|
authorizedotnet.base_url = "https://apitest.authorize.net/xml/v1/request.api"
|
|
bambora.base_url = "https://api.na.bambora.com"
|
|
bamboraapac.base_url = "https://demo.ippayments.com.au/interface/api"
|
|
bankofamerica.base_url = "https://apitest.merchant-services.bankofamerica.com/"
|
|
billwerk.base_url = "https://api.reepay.com/"
|
|
billwerk.secondary_base_url = "https://card.reepay.com/"
|
|
bitpay.base_url = "https://test.bitpay.com"
|
|
bluesnap.base_url = "https://sandbox.bluesnap.com/"
|
|
bluesnap.secondary_base_url = "https://sandpay.bluesnap.com/"
|
|
boku.base_url = "https://$-api4-stage.boku.com"
|
|
braintree.base_url = "https://payments.sandbox.braintree-api.com/graphql"
|
|
cashtocode.base_url = "https://cluster05.api-test.cashtocode.com"
|
|
checkout.base_url = "https://api.sandbox.checkout.com/"
|
|
coinbase.base_url = "https://api.commerce.coinbase.com"
|
|
cryptopay.base_url = "https://business-sandbox.cryptopay.me"
|
|
cybersource.base_url = "https://apitest.cybersource.com/"
|
|
datatrans.base_url = "https://api.sandbox.datatrans.com/"
|
|
deutschebank.base_url = "https://testmerch.directpos.de/rest-api"
|
|
digitalvirgo.base_url = "https://dcb-integration-service-sandbox-external.staging.digitalvirgo.pl"
|
|
dlocal.base_url = "https://sandbox.dlocal.com/"
|
|
dummyconnector.base_url = "http://localhost:8080/dummy-connector"
|
|
ebanx.base_url = "https://sandbox.ebanxpay.com/"
|
|
elavon.base_url = "https://api.demo.convergepay.com/VirtualMerchantDemo/"
|
|
fiserv.base_url = "https://cert.api.fiservapps.com/"
|
|
fiservemea.base_url = "https://prod.emea.api.fiservapps.com/sandbox"
|
|
fiuu.base_url = "https://sandbox.merchant.razer.com/"
|
|
fiuu.secondary_base_url="https://sandbox.merchant.razer.com/"
|
|
fiuu.third_base_url="https://api.merchant.razer.com/"
|
|
forte.base_url = "https://sandbox.forte.net/api/v3"
|
|
globalpay.base_url = "https://apis.sandbox.globalpay.com/ucp/"
|
|
globepay.base_url = "https://pay.globepay.co/"
|
|
gocardless.base_url = "https://api-sandbox.gocardless.com"
|
|
gpayments.base_url = "https://{{merchant_endpoint_prefix}}-test.api.as1.gpayments.net"
|
|
helcim.base_url = "https://api.helcim.com/"
|
|
iatapay.base_url = "https://sandbox.iata-pay.iata.org/api/v1"
|
|
inespay.base_url = "https://apiflow.inespay.com/san/v21"
|
|
itaubank.base_url = "https://sandbox.devportal.itau.com.br/"
|
|
jpmorgan.base_url = "https://api-mock.payments.jpmorgan.com/api/v2"
|
|
klarna.base_url = "https://api{{klarna_region}}.playground.klarna.com/"
|
|
mifinity.base_url = "https://demo.mifinity.com/"
|
|
mollie.base_url = "https://api.mollie.com/v2/"
|
|
mollie.secondary_base_url = "https://api.cc.mollie.com/v1/"
|
|
multisafepay.base_url = "https://testapi.multisafepay.com/"
|
|
netcetera.base_url = "https://{{merchant_endpoint_prefix}}.3ds-server.prev.netcetera-cloud-payment.ch"
|
|
nexinets.base_url = "https://apitest.payengine.de/v1"
|
|
nexixpay.base_url = "https://xpaysandbox.nexigroup.com/api/phoenix-0.0/psp/api/v1"
|
|
nmi.base_url = "https://secure.nmi.com/"
|
|
nomupay.base_url = "https://payout-api.sandbox.nomupay.com"
|
|
noon.base_url = "https://api-test.noonpayments.com/"
|
|
novalnet.base_url = "https://payport.novalnet.de/v2"
|
|
noon.key_mode = "Test"
|
|
nuvei.base_url = "https://ppp-test.nuvei.com/"
|
|
opayo.base_url = "https://pi-test.sagepay.com/"
|
|
opennode.base_url = "https://dev-api.opennode.com"
|
|
paybox.base_url = "https://preprod-ppps.paybox.com/PPPS.php"
|
|
paybox.secondary_base_url="https://preprod-tpeweb.paybox.com/"
|
|
payeezy.base_url = "https://api-cert.payeezy.com/"
|
|
payme.base_url = "https://sandbox.payme.io/"
|
|
payone.base_url = "https://payment.preprod.payone.com/"
|
|
paypal.base_url = "https://api-m.sandbox.paypal.com/"
|
|
payu.base_url = "https://secure.snd.payu.com/"
|
|
placetopay.base_url = "https://test.placetopay.com/rest/gateway"
|
|
plaid.base_url = "https://sandbox.plaid.com"
|
|
powertranz.base_url = "https://staging.ptranz.com/api/"
|
|
prophetpay.base_url = "https://ccm-thirdparty.cps.golf/"
|
|
rapyd.base_url = "https://sandboxapi.rapyd.net"
|
|
razorpay.base_url = "https://sandbox.juspay.in/"
|
|
redsys.base_url = "https://sis-t.redsys.es:25443/sis/realizarPago"
|
|
riskified.base_url = "https://sandbox.riskified.com/api"
|
|
shift4.base_url = "https://api.shift4.com/"
|
|
signifyd.base_url = "https://api.signifyd.com/"
|
|
square.base_url = "https://connect.squareupsandbox.com/"
|
|
square.secondary_base_url = "https://pci-connect.squareupsandbox.com/"
|
|
stax.base_url = "https://apiprod.fattlabs.com/"
|
|
stripe.base_url = "https://api.stripe.com/"
|
|
taxjar.base_url = "https://api.sandbox.taxjar.com/v2/"
|
|
threedsecureio.base_url = "https://service.sandbox.3dsecure.io"
|
|
thunes.base_url = "https://api.limonetikqualif.com/"
|
|
stripe.base_url_file_upload = "https://files.stripe.com/"
|
|
trustpay.base_url = "https://test-tpgw.trustpay.eu/"
|
|
trustpay.base_url_bank_redirects = "https://aapi.trustpay.eu/"
|
|
tsys.base_url = "https://stagegw.transnox.com/"
|
|
unified_authentication_service.base_url = "http://localhost:8000"
|
|
volt.base_url = "https://api.sandbox.volt.io/"
|
|
wellsfargo.base_url = "https://apitest.cybersource.com/"
|
|
wellsfargopayout.base_url = "https://api-sandbox.wellsfargo.com/"
|
|
wise.base_url = "https://api.sandbox.transferwise.tech/"
|
|
worldline.base_url = "https://eu.sandbox.api-ingenico.com/"
|
|
worldpay.base_url = "https://try.access.worldpay.com/"
|
|
xendit.base_url = "https://api.xendit.co"
|
|
zsl.base_url = "https://api.sitoffalb.net/"
|
|
zen.base_url = "https://api.zen-test.com/"
|
|
zen.secondary_base_url = "https://secure.zen-test.com/"
|
|
|
|
#Payment Method Filters Based on Country and Currency
|
|
[pm_filters.default]
|
|
apple_pay = { country = "AU,CN,HK,JP,MO,MY,NZ,SG,TW,AM,AT,AZ,BY,BE,BG,HR,CY,CZ,DK,EE,FO,FI,FR,GE,DE,GR,GL,GG,HU,IS,IE,IM,IT,KZ,JE,LV,LI,LT,LU,MT,MD,MC,ME,NL,NO,PL,PT,RO,SM,RS,SK,SI,ES,SE,CH,UA,GB,AR,CO,CR,BR,MX,PE,BH,IL,JO,KW,PS,QA,SA,AE,CA,UM,US,KR,VN,MA,ZA,VA,CL,SV,GT,HN,PA", currency = "AED,AUD,CHF,CAD,EUR,GBP,HKD,SGD,USD" }
|
|
|
|
# Bank redirect configs for allowed banks through online_banking_czech_republic payment method
|
|
[bank_config.online_banking_czech_republic]
|
|
adyen = { banks = "ceska_sporitelna,komercni_banka,platnosc_online_karta_platnicza" }
|
|
|
|
# Bank redirect configs for allowed banks through online_banking_slovakia payment method
|
|
[bank_config.online_banking_slovakia]
|
|
adyen = { banks = "e_platby_vub,postova_banka,sporo_pay,tatra_pay,viamo" }
|
|
|
|
# Bank redirect configs for allowed banks through online_banking_poland payment method
|
|
[bank_config.online_banking_poland]
|
|
adyen = { banks = "blik_psp,place_zipko,m_bank,pay_with_ing,santander_przelew24,bank_pekaosa,bank_millennium,pay_with_alior_bank,banki_spoldzielcze,pay_with_inteligo,bnp_paribas_poland,bank_nowy_sa,credit_agricole,pay_with_bos,pay_with_citi_handlowy,pay_with_plus_bank,toyota_bank,velo_bank,e_transfer_pocztowy24" }
|
|
|
|
# Bank redirect configs for allowed banks through open_banking_uk payment method
|
|
[bank_config.open_banking_uk]
|
|
adyen = { banks = "aib,bank_of_scotland,danske_bank,first_direct,first_trust,halifax,lloyds,monzo,nat_west,nationwide_bank,royal_bank_of_scotland,starling,tsb_bank,tesco_bank,ulster_bank,barclays,hsbc_bank,revolut,santander_przelew24,open_bank_success,open_bank_failure,open_bank_cancelled" }
|
|
|
|
# Bank redirect configs for allowed banks through przelewy24 payment method
|
|
[bank_config.przelewy24]
|
|
stripe = { banks = "alior_bank,bank_millennium,bank_nowy_bfg_sa,bank_pekao_sa,banki_spbdzielcze,blik,bnp_paribas,boz,citi,credit_agricole,e_transfer_pocztowy24,getin_bank,idea_bank,inteligo,mbank_mtransfer,nest_przelew,noble_pay,pbac_z_ipko,plus_bank,santander_przelew24,toyota_bank,volkswagen_bank" }
|
|
|
|
# This data is used to call respective connectors for wallets and cards
|
|
[connectors.supported]
|
|
wallets = ["klarna", "mifinity", "braintree", "applepay"]
|
|
rewards = ["cashtocode", "zen"]
|
|
cards = [
|
|
"adyen",
|
|
"adyenplatform",
|
|
"authorizedotnet",
|
|
"coinbase",
|
|
"cryptopay",
|
|
"braintree",
|
|
"checkout",
|
|
"cybersource",
|
|
"datatrans",
|
|
"deutschebank",
|
|
"digitalvirgo",
|
|
"globalpay",
|
|
"globepay",
|
|
"gocardless",
|
|
"gpayments",
|
|
"helcim",
|
|
"mollie",
|
|
"paypal",
|
|
"shift4",
|
|
"square",
|
|
"stax",
|
|
"stripe",
|
|
"threedsecureio",
|
|
"thunes",
|
|
"worldpay",
|
|
"xendit",
|
|
"zen",
|
|
"zsl",
|
|
]
|
|
|
|
# Scheduler settings provides a point to modify the behaviour of scheduler flow.
|
|
# It defines the streams/queues name and configuration as well as event selection variables
|
|
[scheduler]
|
|
stream = "SCHEDULER_STREAM"
|
|
graceful_shutdown_interval = 60000 # Specifies how much time to wait while re-attempting shutdown for a service (in milliseconds)
|
|
loop_interval = 5000 # Specifies how much time to wait before starting the defined behaviour of producer or consumer (in milliseconds)
|
|
|
|
[scheduler.consumer]
|
|
consumer_group = "SCHEDULER_GROUP"
|
|
disabled = false # This flag decides if the consumer should actively consume task
|
|
|
|
[scheduler.producer]
|
|
upper_fetch_limit = 0 # Upper limit for fetching entries from the redis queue (in seconds)
|
|
lower_fetch_limit = 1800 # Lower limit for fetching entries from redis queue (in seconds)
|
|
lock_key = "PRODUCER_LOCKING_KEY" # The following keys defines the producer lock that is created in redis with
|
|
lock_ttl = 160 # the ttl being the expiry (in seconds)
|
|
|
|
# Scheduler server configuration
|
|
[scheduler.server]
|
|
port = 3000 # Port on which the server will listen for incoming requests
|
|
host = "127.0.0.1" # Host IP address to bind the server to
|
|
workers = 1 # Number of actix workers to handle incoming requests concurrently
|
|
|
|
batch_size = 200 # Specifies the batch size the producer will push under a single entry in the redis queue
|
|
|
|
# Drainer configuration, which handles draining raw SQL queries from Redis streams to the SQL database
|
|
[drainer]
|
|
stream_name = "DRAINER_STREAM" # Specifies the stream name to be used by the drainer
|
|
num_partitions = 64 # Specifies the number of partitions the stream will be divided into
|
|
max_read_count = 100 # Specifies the maximum number of entries that would be read from redis stream in one call
|
|
shutdown_interval = 1000 # Specifies how much time to wait, while waiting for threads to complete execution (in milliseconds)
|
|
loop_interval = 500 # Specifies how much time to wait after checking all the possible streams in completed (in milliseconds)
|
|
|
|
# Filtration logic for list payment method, allowing use to limit payment methods based on the requirement country and currency
|
|
[pm_filters.stripe]
|
|
# ^--- This can be any connector (can be multiple)
|
|
paypal = { currency = "USD,INR", country = "US" }
|
|
# ^ ^------- comma-separated values
|
|
# ^------------------------------- any valid payment method type (can be multiple) (for cards this should be card_network)
|
|
# If either currency or country isn't provided then, all possible values are accepted
|
|
|
|
[cors]
|
|
max_age = 30 # Maximum time (in seconds) for which this CORS request may be cached.
|
|
origins = "http://localhost:8080" # List of origins that are allowed to make requests.
|
|
allowed_methods = "GET,POST,PUT,DELETE" # List of methods that are allowed
|
|
wildcard_origin = false # If true, allows any origin to make requests
|
|
|
|
# EmailClient configuration. Only applicable when the `email` feature flag is enabled.
|
|
[email]
|
|
sender_email = "example@example.com" # Sender email
|
|
aws_region = "" # AWS region used by AWS SES
|
|
allowed_unverified_days = 1 # Number of days the api calls ( with jwt token ) can be made without verifying the email
|
|
active_email_client = "SES" # The currently active email client
|
|
recon_recipient_email = "recon@example.com" # Recipient email for recon request email
|
|
prod_intent_recipient_email = "business@example.com" # Recipient email for prod intent email
|
|
|
|
# Configuration for aws ses, applicable when the active email client is SES
|
|
[email.aws_ses]
|
|
email_role_arn = "" # The amazon resource name ( arn ) of the role which has permission to send emails
|
|
sts_role_session_name = "" # An identifier for the assumed role session, used to uniquely identify a session.
|
|
|
|
[user]
|
|
password_validity_in_days = 90 # Number of days after which password should be updated
|
|
two_factor_auth_expiry_in_secs = 300 # Number of seconds after which 2FA should be done again if doing update/change from inside
|
|
totp_issuer_name = "Hyperswitch" # Name of the issuer for TOTP
|
|
base_url = "" # Base url used for user specific redirects and emails
|
|
force_two_factor_auth = false # Whether to force two factor authentication for all users
|
|
force_cookies = true # Whether to use only cookies for JWT extraction and authentication
|
|
|
|
#tokenization configuration which describe token lifetime and payment method for specific connector
|
|
[tokenization]
|
|
stripe = { long_lived_token = false, payment_method = "wallet", payment_method_type = { type = "disable_only", list = "google_pay" } }
|
|
checkout = { long_lived_token = false, payment_method = "wallet", apple_pay_pre_decrypt_flow = "network_tokenization" }
|
|
mollie = { long_lived_token = false, payment_method = "card" }
|
|
stax = { long_lived_token = true, payment_method = "card,bank_debit" }
|
|
square = { long_lived_token = false, payment_method = "card" }
|
|
braintree = { long_lived_token = false, payment_method = "card" }
|
|
gocardless = { long_lived_token = true, payment_method = "bank_debit" }
|
|
billwerk = { long_lived_token = false, payment_method = "card" }
|
|
|
|
[temp_locker_enable_config]
|
|
stripe = { payment_method = "bank_transfer" }
|
|
nuvei = { payment_method = "card" }
|
|
shift4 = { payment_method = "card" }
|
|
bluesnap = { payment_method = "card" }
|
|
bankofamerica = { payment_method = "card" }
|
|
cybersource = { payment_method = "card" }
|
|
nmi = { payment_method = "card" }
|
|
payme = { payment_method = "card" }
|
|
deutschebank = { payment_method = "bank_debit" }
|
|
paybox = { payment_method = "card" }
|
|
nexixpay = { payment_method = "card" }
|
|
|
|
[dummy_connector]
|
|
enabled = true # Whether dummy connector is enabled or not
|
|
payment_ttl = 172800 # Time to live for dummy connector payment in redis
|
|
payment_duration = 1000 # Fake delay duration for dummy connector payment
|
|
payment_tolerance = 100 # Fake delay tolerance for dummy connector payment
|
|
payment_retrieve_duration = 500 # Fake delay duration for dummy connector payment sync
|
|
payment_retrieve_tolerance = 100 # Fake delay tolerance for dummy connector payment sync
|
|
payment_complete_duration = 500 # Fake delay duration for dummy connector payment complete
|
|
payment_complete_tolerance = 100 # Fake delay tolerance for dummy connector payment complete
|
|
refund_ttl = 172800 # Time to live for dummy connector refund in redis
|
|
refund_duration = 1000 # Fake delay duration for dummy connector refund
|
|
refund_tolerance = 100 # Fake delay tolerance for dummy connector refund
|
|
refund_retrieve_duration = 500 # Fake delay duration for dummy connector refund sync
|
|
refund_retrieve_tolerance = 100 # Fake delay tolerance for dummy connector refund sync
|
|
authorize_ttl = 36000 # Time to live for dummy connector authorize request in redis
|
|
assets_base_url = "https://www.example.com/" # Base url for dummy connector assets
|
|
default_return_url = "https://www.example.com/" # Default return url when no return url is passed while payment
|
|
slack_invite_url = "https://www.example.com/" # Slack invite url for hyperswitch
|
|
discord_invite_url = "https://www.example.com/" # Discord invite url for hyperswitch
|
|
|
|
[mandates.supported_payment_methods]
|
|
card.credit = { connector_list = "stripe,adyen,cybersource,bankofamerica" } # Mandate supported payment method type and connector for card
|
|
wallet.paypal = { connector_list = "adyen" } # Mandate supported payment method type and connector for wallets
|
|
pay_later.klarna = { connector_list = "adyen" } # Mandate supported payment method type and connector for pay_later
|
|
bank_debit.ach = { connector_list = "gocardless,adyen" } # Mandate supported payment method type and connector for bank_debit
|
|
bank_debit.becs = { connector_list = "gocardless" } # Mandate supported payment method type and connector for bank_debit
|
|
bank_debit.bacs = { connector_list = "adyen" } # Mandate supported payment method type and connector for bank_debit
|
|
bank_debit.sepa = { connector_list = "gocardless,adyen" } # Mandate supported payment method type and connector for bank_debit
|
|
bank_redirect.ideal = { connector_list = "stripe,adyen,globalpay" } # Mandate supported payment method type and connector for bank_redirect
|
|
bank_redirect.sofort = { connector_list = "stripe,adyen,globalpay" }
|
|
wallet.apple_pay = { connector_list = "stripe,adyen,cybersource,noon,bankofamerica" }
|
|
wallet.google_pay = { connector_list = "bankofamerica" }
|
|
bank_redirect.giropay = { connector_list = "adyen,globalpay" }
|
|
|
|
|
|
[mandates.update_mandate_supported]
|
|
card.credit = { connector_list = "cybersource" } # Update Mandate supported payment method type and connector for card
|
|
card.debit = { connector_list = "cybersource" } # Update Mandate supported payment method type and connector for card
|
|
|
|
# Required fields info used while listing the payment_method_data
|
|
[required_fields.pay_later] # payment_method = "pay_later"
|
|
afterpay_clearpay = { fields = { stripe = [ # payment_method_type = afterpay_clearpay, connector = "stripe"
|
|
# Required fields vector with its respective display name in front-end and field_type
|
|
{ required_field = "shipping.address.first_name", display_name = "first_name", field_type = "text" },
|
|
{ required_field = "shipping.address.last_name", display_name = "last_name", field_type = "text" },
|
|
{ required_field = "shipping.address.country", display_name = "country", field_type = { drop_down = { options = [
|
|
"US",
|
|
"IN",
|
|
] } } },
|
|
] } }
|
|
|
|
[payouts]
|
|
payout_eligibility = true # Defaults the eligibility of a payout method to true in case connector does not provide checks for payout eligibility
|
|
|
|
[pm_filters.adyen]
|
|
sofort = { country = "AT,BE,DE,ES,CH,NL", currency = "CHF,EUR" }
|
|
paypal = { country = "AU,NZ,CN,JP,HK,MY,TH,KR,PH,ID,AE,KW,BR,ES,GB,SE,NO,SK,AT,NL,DE,HU,CY,LU,CH,BE,FR,DK,FI,RO,HR,UA,MT,SI,GI,PT,IE,CZ,EE,LT,LV,IT,PL,IS,CA,US", currency = "AUD,BRL,CAD,CZK,DKK,EUR,HKD,HUF,INR,JPY,MYR,MXN,NZD,NOK,PHP,PLN,RUB,GBP,SGD,SEK,CHF,THB,USD" }
|
|
klarna = { country = "AU,AT,BE,CA,CZ,DK,FI,FR,DE,GR,IE,IT,NO,PL,PT,RO,ES,SE,CH,NL,GB,US", currency = "AUD,EUR,CAD,CZK,DKK,NOK,PLN,RON,SEK,CHF,GBP,USD" }
|
|
ideal = { country = "NL", currency = "EUR" }
|
|
online_banking_fpx = { country = "MY", currency = "MYR" }
|
|
online_banking_thailand = { country = "TH", currency = "THB" }
|
|
touch_n_go = { country = "MY", currency = "MYR" }
|
|
atome = { country = "MY,SG", currency = "MYR,SGD" }
|
|
swish = { country = "SE", currency = "SEK" }
|
|
permata_bank_transfer = { country = "ID", currency = "IDR" }
|
|
bca_bank_transfer = { country = "ID", currency = "IDR" }
|
|
bni_va = { country = "ID", currency = "IDR" }
|
|
bri_va = { country = "ID", currency = "IDR" }
|
|
cimb_va = { country = "ID", currency = "IDR" }
|
|
danamon_va = { country = "ID", currency = "IDR" }
|
|
mandiri_va = { country = "ID", currency = "IDR" }
|
|
alfamart = { country = "ID", currency = "IDR" }
|
|
indomaret = { country = "ID", currency = "IDR" }
|
|
open_banking_uk = { country = "GB", currency = "GBP" }
|
|
oxxo = { country = "MX", currency = "MXN" }
|
|
pay_safe_card = { country = "AT,AU,BE,BR,BE,CA,HR,CY,CZ,DK,FI,FR,GE,DE,GI,HU,IS,IE,KW,LV,IE,LI,LT,LU,MT,MX,MD,ME,NL,NZ,NO,PY,PE,PL,PT,RO,SA,RS,SK,SI,ES,SE,CH,TR,AE,GB,US,UY", currency = "EUR,AUD,BRL,CAD,CZK,DKK,GEL,GIP,HUF,KWD,CHF,MXN,MDL,NZD,NOK,PYG,PEN,PLN,RON,SAR,RSD,SEK,TRY,AED,GBP,USD,UYU" }
|
|
seven_eleven = { country = "JP", currency = "JPY" }
|
|
lawson = { country = "JP", currency = "JPY" }
|
|
mini_stop = { country = "JP", currency = "JPY" }
|
|
family_mart = { country = "JP", currency = "JPY" }
|
|
seicomart = { country = "JP", currency = "JPY" }
|
|
pay_easy = { country = "JP", currency = "JPY" }
|
|
boleto = { country = "BR", currency = "BRL" }
|
|
|
|
[pm_filters.volt]
|
|
open_banking_uk = { country = "DE,GB,AT,BE,CY,EE,ES,FI,FR,GR,HR,IE,IT,LT,LU,LV,MT,NL,PT,SI,SK,BG,CZ,DK,HU,NO,PL,RO,SE,AU,BR", currency = "EUR,GBP,DKK,NOK,PLN,SEK,AUD,BRL" }
|
|
|
|
[pm_filters.razorpay]
|
|
upi_collect = { country = "IN", currency = "INR" }
|
|
|
|
[pm_filters.plaid]
|
|
open_banking_pis = {currency = "EUR,GBP"}
|
|
|
|
[pm_filters.zen]
|
|
credit = { not_available_flows = { capture_method = "manual" } }
|
|
debit = { not_available_flows = { capture_method = "manual" } }
|
|
boleto = { country = "BR", currency = "BRL" }
|
|
efecty = { country = "CO", currency = "COP" }
|
|
multibanco = { country = "PT", currency = "EUR" }
|
|
pago_efectivo = { country = "PE", currency = "PEN" }
|
|
pse = { country = "CO", currency = "COP" }
|
|
pix = { country = "BR", currency = "BRL" }
|
|
red_compra = { country = "CL", currency = "CLP" }
|
|
red_pagos = { country = "UY", currency = "UYU" }
|
|
|
|
[pm_filters.zsl]
|
|
local_bank_transfer = { country = "CN", currency = "CNY" }
|
|
|
|
[pm_filters.bankofamerica]
|
|
credit = { currency = "USD" }
|
|
debit = { currency = "USD" }
|
|
apple_pay = { currency = "USD" }
|
|
google_pay = { currency = "USD" }
|
|
|
|
[pm_filters.cybersource]
|
|
credit = { currency = "USD,GBP,EUR,PLN" }
|
|
debit = { currency = "USD,GBP,EUR,PLN" }
|
|
apple_pay = { currency = "USD,GBP,EUR,PLN" }
|
|
google_pay = { currency = "USD,GBP,EUR,PLN" }
|
|
samsung_pay = { currency = "USD,GBP,EUR" }
|
|
paze = { currency = "USD" }
|
|
|
|
[pm_filters.stax]
|
|
credit = { currency = "USD" }
|
|
debit = { currency = "USD" }
|
|
ach = { currency = "USD" }
|
|
|
|
[pm_filters.prophetpay]
|
|
card_redirect = { currency = "USD" }
|
|
|
|
[pm_filters.helcim]
|
|
credit = { currency = "USD" }
|
|
debit = { currency = "USD" }
|
|
|
|
[pm_filters.klarna]
|
|
klarna = { country = "AU,AT,BE,CA,CZ,DK,FI,FR,DE,GR,IE,IT,NL,NZ,NO,PL,PT,ES,SE,CH,GB,US", currency = "CHF,DKK,EUR,GBP,NOK,PLN,SEK,USD,AUD,NZD,CAD" }
|
|
|
|
[pm_filters.nexixpay]
|
|
credit = { country = "AT,BE,CY,EE,FI,FR,DE,GR,IE,IT,LV,LT,LU,MT,NL,PT,SK,SI,ES,BG,HR,DK,GB,NO,PL,CZ,RO,SE,CH,HU", currency = "ARS,AUD,BHD,CAD,CLP,CNY,COP,HRK,CZK,DKK,HKD,HUF,INR,JPY,KZT,JOD,KRW,KWD,MYR,MXN,NGN,NOK,PHP,QAR,RUB,SAR,SGD,VND,ZAR,SEK,CHF,THB,AED,EGP,GBP,USD,TWD,BYN,RSD,AZN,RON,TRY,AOA,BGN,EUR,UAH,PLN,BRL" }
|
|
debit = { country = "AT,BE,CY,EE,FI,FR,DE,GR,IE,IT,LV,LT,LU,MT,NL,PT,SK,SI,ES,BG,HR,DK,GB,NO,PL,CZ,RO,SE,CH,HU", currency = "ARS,AUD,BHD,CAD,CLP,CNY,COP,HRK,CZK,DKK,HKD,HUF,INR,JPY,KZT,JOD,KRW,KWD,MYR,MXN,NGN,NOK,PHP,QAR,RUB,SAR,SGD,VND,ZAR,SEK,CHF,THB,AED,EGP,GBP,USD,TWD,BYN,RSD,AZN,RON,TRY,AOA,BGN,EUR,UAH,PLN,BRL" }
|
|
|
|
[pm_filters.novalnet]
|
|
credit = { country = "AD,AE,AL,AM,AR,AT,AU,AZ,BA,BB,BD,BE,BG,BH,BI,BM,BN,BO,BR,BS,BW,BY,BZ,CA,CD,CH,CL,CN,CO,CR,CU,CY,CZ,DE,DJ,DK,DO,DZ,EE,EG,ET,ES,FI,FJ,FR,GB,GE,GH,GI,GM,GR,GT,GY,HK,HN,HR,HU,ID,IE,IL,IN,IS,IT,JM,JO,JP,KE,KH,KR,KW,KY,KZ,LB,LK,LT,LV,LY,MA,MC,MD,ME,MG,MK,MN,MO,MT,MV,MW,MX,MY,NG,NI,NO,NP,NL,NZ,OM,PA,PE,PG,PH,PK,PL,PT,PY,QA,RO,RS,RU,RW,SA,SB,SC,SE,SG,SH,SI,SK,SL,SO,SM,SR,ST,SV,SY,TH,TJ,TN,TO,TR,TW,TZ,UA,UG,US,UY,UZ,VE,VA,VN,VU,WS,CF,AG,DM,GD,KN,LC,VC,YE,ZA,ZM", currency = "AED,ALL,AMD,ARS,AUD,AZN,BAM,BBD,BDT,BGN,BHD,BIF,BMD,BND,BOB,BRL,BSD,BWP,BYN,BZD,CAD,CDF,CHF,CLP,CNY,COP,CRC,CUP,CZK,DJF,DKK,DOP,DZD,EGP,ETB,EUR,FJD,GBP,GEL,GHS,GIP,GMD,GTQ,GYD,HKD,HNL,HRK,HUF,IDR,ILS,INR,ISK,JMD,JOD,JPY,KES,KHR,KRW,KWD,KYD,KZT,LBP,LKR,LYD,MAD,MDL,MGA,MKD,MNT,MOP,MVR,MWK,MXN,MYR,NGN,NIO,NOK,NPR,NZD,OMR,PAB,PEN,PGK,PHP,PKR,PLN,PYG,QAR,RON,RSD,RUB,RWF,SAR,SBD,SCR,SEK,SGD,SHP,SLL,SOS,SRD,STN,SVC,SYP,THB,TJS,TND,TOP,TRY,TWD,TZS,UAH,UGX,USD,UYU,UZS,VES,VND,VUV,WST,XAF,XCD,YER,ZAR,ZMW"}
|
|
debit = { country = "AD,AE,AL,AM,AR,AT,AU,AZ,BA,BB,BD,BE,BG,BH,BI,BM,BN,BO,BR,BS,BW,BY,BZ,CA,CD,CH,CL,CN,CO,CR,CU,CY,CZ,DE,DJ,DK,DO,DZ,EE,EG,ET,ES,FI,FJ,FR,GB,GE,GH,GI,GM,GR,GT,GY,HK,HN,HR,HU,ID,IE,IL,IN,IS,IT,JM,JO,JP,KE,KH,KR,KW,KY,KZ,LB,LK,LT,LV,LY,MA,MC,MD,ME,MG,MK,MN,MO,MT,MV,MW,MX,MY,NG,NI,NO,NP,NL,NZ,OM,PA,PE,PG,PH,PK,PL,PT,PY,QA,RO,RS,RU,RW,SA,SB,SC,SE,SG,SH,SI,SK,SL,SO,SM,SR,ST,SV,SY,TH,TJ,TN,TO,TR,TW,TZ,UA,UG,US,UY,UZ,VE,VA,VN,VU,WS,CF,AG,DM,GD,KN,LC,VC,YE,ZA,ZM", currency = "AED,ALL,AMD,ARS,AUD,AZN,BAM,BBD,BDT,BGN,BHD,BIF,BMD,BND,BOB,BRL,BSD,BWP,BYN,BZD,CAD,CDF,CHF,CLP,CNY,COP,CRC,CUP,CZK,DJF,DKK,DOP,DZD,EGP,ETB,EUR,FJD,GBP,GEL,GHS,GIP,GMD,GTQ,GYD,HKD,HNL,HRK,HUF,IDR,ILS,INR,ISK,JMD,JOD,JPY,KES,KHR,KRW,KWD,KYD,KZT,LBP,LKR,LYD,MAD,MDL,MGA,MKD,MNT,MOP,MVR,MWK,MXN,MYR,NGN,NIO,NOK,NPR,NZD,OMR,PAB,PEN,PGK,PHP,PKR,PLN,PYG,QAR,RON,RSD,RUB,RWF,SAR,SBD,SCR,SEK,SGD,SHP,SLL,SOS,SRD,STN,SVC,SYP,THB,TJS,TND,TOP,TRY,TWD,TZS,UAH,UGX,USD,UYU,UZS,VES,VND,VUV,WST,XAF,XCD,YER,ZAR,ZMW"}
|
|
apple_pay = { country = "AD,AE,AL,AM,AR,AT,AU,AZ,BA,BB,BD,BE,BG,BH,BI,BM,BN,BO,BR,BS,BW,BY,BZ,CA,CD,CH,CL,CN,CO,CR,CU,CY,CZ,DE,DJ,DK,DO,DZ,EE,EG,ET,ES,FI,FJ,FR,GB,GE,GH,GI,GM,GR,GT,GY,HK,HN,HR,HU,ID,IE,IL,IN,IS,IT,JM,JO,JP,KE,KH,KR,KW,KY,KZ,LB,LK,LT,LV,LY,MA,MC,MD,ME,MG,MK,MN,MO,MT,MV,MW,MX,MY,NG,NI,NO,NP,NL,NZ,OM,PA,PE,PG,PH,PK,PL,PT,PY,QA,RO,RS,RU,RW,SA,SB,SC,SE,SG,SH,SI,SK,SL,SO,SM,SR,ST,SV,SY,TH,TJ,TN,TO,TR,TW,TZ,UA,UG,US,UY,UZ,VE,VA,VN,VU,WS,CF,AG,DM,GD,KN,LC,VC,YE,ZA,ZM", currency = "AED,ALL,AMD,ARS,AUD,AZN,BAM,BBD,BDT,BGN,BHD,BIF,BMD,BND,BOB,BRL,BSD,BWP,BYN,BZD,CAD,CDF,CHF,CLP,CNY,COP,CRC,CUP,CZK,DJF,DKK,DOP,DZD,EGP,ETB,EUR,FJD,GBP,GEL,GHS,GIP,GMD,GTQ,GYD,HKD,HNL,HRK,HUF,IDR,ILS,INR,ISK,JMD,JOD,JPY,KES,KHR,KRW,KWD,KYD,KZT,LBP,LKR,LYD,MAD,MDL,MGA,MKD,MNT,MOP,MVR,MWK,MXN,MYR,NGN,NIO,NOK,NPR,NZD,OMR,PAB,PEN,PGK,PHP,PKR,PLN,PYG,QAR,RON,RSD,RUB,RWF,SAR,SBD,SCR,SEK,SGD,SHP,SLL,SOS,SRD,STN,SVC,SYP,THB,TJS,TND,TOP,TRY,TWD,TZS,UAH,UGX,USD,UYU,UZS,VES,VND,VUV,WST,XAF,XCD,YER,ZAR,ZMW"}
|
|
google_pay = { country = "AD,AE,AL,AM,AR,AT,AU,AZ,BA,BB,BD,BE,BG,BH,BI,BM,BN,BO,BR,BS,BW,BY,BZ,CA,CD,CH,CL,CN,CO,CR,CU,CY,CZ,DE,DJ,DK,DO,DZ,EE,EG,ET,ES,FI,FJ,FR,GB,GE,GH,GI,GM,GR,GT,GY,HK,HN,HR,HU,ID,IE,IL,IN,IS,IT,JM,JO,JP,KE,KH,KR,KW,KY,KZ,LB,LK,LT,LV,LY,MA,MC,MD,ME,MG,MK,MN,MO,MT,MV,MW,MX,MY,NG,NI,NO,NP,NL,NZ,OM,PA,PE,PG,PH,PK,PL,PT,PY,QA,RO,RS,RU,RW,SA,SB,SC,SE,SG,SH,SI,SK,SL,SO,SM,SR,ST,SV,SY,TH,TJ,TN,TO,TR,TW,TZ,UA,UG,US,UY,UZ,VE,VA,VN,VU,WS,CF,AG,DM,GD,KN,LC,VC,YE,ZA,ZM", currency = "AED,ALL,AMD,ARS,AUD,AZN,BAM,BBD,BDT,BGN,BHD,BIF,BMD,BND,BOB,BRL,BSD,BWP,BYN,BZD,CAD,CDF,CHF,CLP,CNY,COP,CRC,CUP,CZK,DJF,DKK,DOP,DZD,EGP,ETB,EUR,FJD,GBP,GEL,GHS,GIP,GMD,GTQ,GYD,HKD,HNL,HRK,HUF,IDR,ILS,INR,ISK,JMD,JOD,JPY,KES,KHR,KRW,KWD,KYD,KZT,LBP,LKR,LYD,MAD,MDL,MGA,MKD,MNT,MOP,MVR,MWK,MXN,MYR,NGN,NIO,NOK,NPR,NZD,OMR,PAB,PEN,PGK,PHP,PKR,PLN,PYG,QAR,RON,RSD,RUB,RWF,SAR,SBD,SCR,SEK,SGD,SHP,SLL,SOS,SRD,STN,SVC,SYP,THB,TJS,TND,TOP,TRY,TWD,TZS,UAH,UGX,USD,UYU,UZS,VES,VND,VUV,WST,XAF,XCD,YER,ZAR,ZMW"}
|
|
paypal = { country = "AD,AE,AL,AM,AR,AT,AU,AZ,BA,BB,BD,BE,BG,BH,BI,BM,BN,BO,BR,BS,BW,BY,BZ,CA,CD,CH,CL,CN,CO,CR,CU,CY,CZ,DE,DJ,DK,DO,DZ,EE,EG,ET,ES,FI,FJ,FR,GB,GE,GH,GI,GM,GR,GT,GY,HK,HN,HR,HU,ID,IE,IL,IN,IS,IT,JM,JO,JP,KE,KH,KR,KW,KY,KZ,LB,LK,LT,LV,LY,MA,MC,MD,ME,MG,MK,MN,MO,MT,MV,MW,MX,MY,NG,NI,NO,NP,NL,NZ,OM,PA,PE,PG,PH,PK,PL,PT,PY,QA,RO,RS,RU,RW,SA,SB,SC,SE,SG,SH,SI,SK,SL,SO,SM,SR,ST,SV,SY,TH,TJ,TN,TO,TR,TW,TZ,UA,UG,US,UY,UZ,VE,VA,VN,VU,WS,CF,AG,DM,GD,KN,LC,VC,YE,ZA,ZM", currency = "AED,ALL,AMD,ARS,AUD,AZN,BAM,BBD,BDT,BGN,BHD,BIF,BMD,BND,BOB,BRL,BSD,BWP,BYN,BZD,CAD,CDF,CHF,CLP,CNY,COP,CRC,CUP,CZK,DJF,DKK,DOP,DZD,EGP,ETB,EUR,FJD,GBP,GEL,GHS,GIP,GMD,GTQ,GYD,HKD,HNL,HRK,HUF,IDR,ILS,INR,ISK,JMD,JOD,JPY,KES,KHR,KRW,KWD,KYD,KZT,LBP,LKR,LYD,MAD,MDL,MGA,MKD,MNT,MOP,MVR,MWK,MXN,MYR,NGN,NIO,NOK,NPR,NZD,OMR,PAB,PEN,PGK,PHP,PKR,PLN,PYG,QAR,RON,RSD,RUB,RWF,SAR,SBD,SCR,SEK,SGD,SHP,SLL,SOS,SRD,STN,SVC,SYP,THB,TJS,TND,TOP,TRY,TWD,TZS,UAH,UGX,USD,UYU,UZS,VES,VND,VUV,WST,XAF,XCD,YER,ZAR,ZMW"}
|
|
|
|
[pm_filters.mifinity]
|
|
mifinity = { country = "BR,CN,SG,MY,DE,CH,DK,GB,ES,AD,GI,FI,FR,GR,HR,IT,JP,MX,AR,CO,CL,PE,VE,UY,PY,BO,EC,GT,HN,SV,NI,CR,PA,DO,CU,PR,NL,NO,PL,PT,SE,RU,TR,TW,HK,MO,AX,AL,DZ,AS,AO,AI,AG,AM,AW,AU,AT,AZ,BS,BH,BD,BB,BE,BZ,BJ,BM,BT,BQ,BA,BW,IO,BN,BG,BF,BI,KH,CM,CA,CV,KY,CF,TD,CX,CC,KM,CG,CK,CI,CW,CY,CZ,DJ,DM,EG,GQ,ER,EE,ET,FK,FO,FJ,GF,PF,TF,GA,GM,GE,GH,GL,GD,GP,GU,GG,GN,GW,GY,HT,HM,VA,IS,IN,ID,IE,IM,IL,JE,JO,KZ,KE,KI,KW,KG,LA,LV,LB,LS,LI,LT,LU,MK,MG,MW,MV,ML,MT,MH,MQ,MR,MU,YT,FM,MD,MC,MN,ME,MS,MA,MZ,NA,NR,NP,NC,NZ,NE,NG,NU,NF,MP,OM,PK,PW,PS,PG,PH,PN,QA,RE,RO,RW,BL,SH,KN,LC,MF,PM,VC,WS,SM,ST,SA,SN,RS,SC,SL,SX,SK,SI,SB,SO,ZA,GS,KR,LK,SR,SJ,SZ,TH,TL,TG,TK,TO,TT,TN,TM,TC,TV,UG,UA,AE,UZ,VU,VN,VG,VI,WF,EH,ZM", currency = "AUD,CAD,CHF,CNY,CZK,DKK,EUR,GBP,INR,JPY,NOK,NZD,PLN,RUB,SEK,ZAR,USD,EGP,UYU,UZS" }
|
|
|
|
[connector_customer]
|
|
connector_list = "gocardless,stax,stripe"
|
|
payout_connector_list = "stripe,wise"
|
|
|
|
[bank_config.online_banking_fpx]
|
|
adyen.banks = "affin_bank,agro_bank,alliance_bank,am_bank,bank_islam,bank_muamalat,bank_rakyat,bank_simpanan_nasional,cimb_bank,hong_leong_bank,hsbc_bank,kuwait_finance_house,maybank,ocbc_bank,public_bank,rhb_bank,standard_chartered_bank,uob_bank"
|
|
fiuu.banks = "affin_bank,agro_bank,alliance_bank,am_bank,bank_of_china,bank_islam,bank_muamalat,bank_rakyat,bank_simpanan_nasional,cimb_bank,hong_leong_bank,hsbc_bank,kuwait_finance_house,maybank,ocbc_bank,public_bank,rhb_bank,standard_chartered_bank,uob_bank"
|
|
|
|
[bank_config.online_banking_thailand]
|
|
adyen.banks = "bangkok_bank,krungsri_bank,krung_thai_bank,the_siam_commercial_bank,kasikorn_bank"
|
|
|
|
|
|
[applepay_decrypt_keys]
|
|
apple_pay_ppc = "APPLE_PAY_PAYMENT_PROCESSING_CERTIFICATE" # Payment Processing Certificate provided by Apple Pay (https://developer.apple.com/) Certificates, Identifiers & Profiles > Apple Pay Payment Processing Certificate
|
|
apple_pay_ppc_key = "APPLE_PAY_PAYMENT_PROCESSING_CERTIFICATE_KEY" # Private key generated by Elliptic-curve prime256v1 curve. You can use `openssl ecparam -out private.key -name prime256v1 -genkey` to generate the private key
|
|
apple_pay_merchant_cert = "APPLE_PAY_MERCHNAT_CERTIFICATE" # Merchant Certificate provided by Apple Pay (https://developer.apple.com/) Certificates, Identifiers & Profiles > Apple Pay Merchant Identity Certificate
|
|
apple_pay_merchant_cert_key = "APPLE_PAY_MERCHNAT_CERTIFICATE_KEY" # Private key generated by RSA:2048 algorithm. Refer Hyperswitch Docs (https://docs.hyperswitch.io/hyperswitch-cloud/payment-methods-setup/wallets/apple-pay/ios-application/) to generate the private key
|
|
|
|
[paze_decrypt_keys]
|
|
paze_private_key = "PAZE_PRIVATE_KEY" # Base 64 Encoded Private Key File cakey.pem generated for Paze -> Command to create private key: openssl req -newkey rsa:2048 -x509 -keyout cakey.pem -out cacert.pem -days 365
|
|
paze_private_key_passphrase = "PAZE_PRIVATE_KEY_PASSPHRASE" # PEM Passphrase used for generating Private Key File cakey.pem
|
|
|
|
[applepay_merchant_configs]
|
|
# Run below command to get common merchant identifier for applepay in shell
|
|
#
|
|
# CERT_PATH="path/to/certificate.pem"
|
|
# MERCHANT_ID=$(openssl x509 -in "$CERT_PATH" -noout -text |
|
|
# awk -v oid="1.2.840.113635.100.6.32" '
|
|
# BEGIN { RS = "\n\n" }
|
|
# /X509v3 extensions/ { in_extension=1 }
|
|
# in_extension && /'"$oid"'/ { print $0; exit }' |
|
|
# grep -oE '\.@[A-F0-9]+' | sed 's/^\.@//'
|
|
# )
|
|
# echo "Merchant ID: $MERCHANT_ID"
|
|
common_merchant_identifier = "APPLE_PAY_COMMON_MERCHANT_IDENTIFIER" # This can be obtained by decrypting the apple_pay_ppc_key as shown above in comments
|
|
merchant_cert = "APPLE_PAY_MERCHANT_CERTIFICATE" # Merchant Certificate provided by Apple Pay (https://developer.apple.com/) Certificates, Identifiers & Profiles > Apple Pay Merchant Identity Certificate
|
|
merchant_cert_key = "APPLE_PAY_MERCHANT_CERTIFICATE_KEY" # Private key generate by RSA:2048 algorithm. Refer Hyperswitch Docs (https://docs.hyperswitch.io/hyperswitch-cloud/payment-methods-setup/wallets/apple-pay/ios-application/) to generate the private key
|
|
applepay_endpoint = "https://apple-pay-gateway.apple.com/paymentservices/registerMerchant" # Apple pay gateway merchant endpoint
|
|
|
|
[generic_link]
|
|
[generic_link.payment_method_collect]
|
|
sdk_url = "http://localhost:9090/0.16.7/v0/HyperLoader.js"
|
|
expiry = 900
|
|
[generic_link.payment_method_collect.ui_config]
|
|
theme = "#1A1A1A"
|
|
logo = "https://app.hyperswitch.io/HyperswitchFavicon.png"
|
|
merchant_name = "HyperSwitch"
|
|
[generic_link.payment_method_collect.enabled_payment_methods]
|
|
card = "credit,debit"
|
|
bank_transfer = "ach,bacs,sepa"
|
|
wallet = "paypal,pix,venmo"
|
|
|
|
[generic_link.payout_link]
|
|
sdk_url = "http://localhost:9090/0.16.7/v0/HyperLoader.js"
|
|
expiry = 900
|
|
[generic_link.payout_link.ui_config]
|
|
theme = "#1A1A1A"
|
|
logo = "https://app.hyperswitch.io/HyperswitchFavicon.png"
|
|
merchant_name = "HyperSwitch"
|
|
[generic_link.payout_link.enabled_payment_methods]
|
|
card = "credit,debit"
|
|
|
|
#Payout Method Filters Based on Country and Currency
|
|
[payout_method_filters.adyenplatform]
|
|
sepa = { country = "ES,SK,AT,NL,DE,BE,FR,FI,PT,IE,EE,LT,LV,IT,CZ,DE,HU,NO,PL,SE,GB,CH", currency = "EUR,CZK,DKK,HUF,NOK,PLN,SEK,GBP,CHF" }
|
|
|
|
[payout_method_filters.stripe]
|
|
ach = { country = "US", currency = "USD" }
|
|
|
|
[payment_link]
|
|
sdk_url = "http://localhost:9090/0.16.7/v0/HyperLoader.js"
|
|
|
|
[payment_method_auth]
|
|
redis_expiry = 900
|
|
pm_auth_key = "Some_pm_auth_key"
|
|
|
|
# Analytics configuration.
|
|
[analytics]
|
|
source = "sqlx" # The Analytics source/strategy to be used
|
|
forex_enabled = false # Enable or disable forex conversion for analytics
|
|
|
|
[analytics.clickhouse]
|
|
username = "" # Clickhouse username
|
|
password = "" # Clickhouse password (optional)
|
|
host = "" # Clickhouse host in http(s)://<URL>:<PORT> format
|
|
database_name = "" # Clickhouse database name
|
|
|
|
[analytics.sqlx]
|
|
username = "db_user" # Analytics DB Username
|
|
password = "db_pass" # Analytics DB Password
|
|
host = "localhost" # Analytics DB Host
|
|
port = 5432 # Analytics DB Port
|
|
dbname = "hyperswitch_db" # Name of Database
|
|
pool_size = 5 # Number of connections to keep open
|
|
connection_timeout = 10 # Timeout for database connection in seconds
|
|
queue_strategy = "Fifo" # Add the queue strategy used by the database bb8 client
|
|
|
|
# Config for KV setup
|
|
[kv_config]
|
|
# TTL for KV in seconds
|
|
ttl = 900
|
|
|
|
[frm]
|
|
enabled = true
|
|
|
|
[paypal_onboarding]
|
|
client_id = "paypal_client_id" # Client ID for PayPal onboarding
|
|
client_secret = "paypal_secret_key" # Secret key for PayPal onboarding
|
|
partner_id = "paypal_partner_id" # Partner ID for PayPal onboarding
|
|
enabled = true # Switch to enable or disable PayPal onboarding
|
|
|
|
[events]
|
|
source = "logs" # The event sink to push events supports kafka or logs (stdout)
|
|
|
|
[events.kafka]
|
|
brokers = [] # Kafka broker urls for bootstrapping the client
|
|
fraud_check_analytics_topic = "topic" # Kafka topic to be used for FraudCheck events
|
|
intent_analytics_topic = "topic" # Kafka topic to be used for PaymentIntent events
|
|
attempt_analytics_topic = "topic" # Kafka topic to be used for PaymentAttempt events
|
|
refund_analytics_topic = "topic" # Kafka topic to be used for Refund events
|
|
api_logs_topic = "topic" # Kafka topic to be used for incoming api events
|
|
connector_logs_topic = "topic" # Kafka topic to be used for connector api events
|
|
outgoing_webhook_logs_topic = "topic" # Kafka topic to be used for outgoing webhook events
|
|
dispute_analytics_topic = "topic" # Kafka topic to be used for Dispute events
|
|
audit_events_topic = "topic" # Kafka topic to be used for Payment Audit events
|
|
payout_analytics_topic = "topic" # Kafka topic to be used for Payouts and PayoutAttempt events
|
|
consolidated_events_topic = "topic" # Kafka topic to be used for Consolidated events
|
|
authentication_analytics_topic = "topic" # Kafka topic to be used for Authentication events
|
|
|
|
# File storage configuration
|
|
[file_storage]
|
|
file_storage_backend = "aws_s3" # File storage backend to be used
|
|
|
|
[file_storage.aws_s3]
|
|
region = "us-east-1" # The AWS region used by the AWS S3 for file storage
|
|
bucket_name = "bucket1" # The AWS S3 bucket name for file storage
|
|
|
|
[secrets_management]
|
|
secrets_manager = "aws_kms" # Secrets manager client to be used
|
|
|
|
[secrets_management.aws_kms]
|
|
key_id = "kms_key_id" # The AWS key ID used by the KMS SDK for decrypting data.
|
|
region = "kms_region" # The AWS region used by the KMS SDK for decrypting data.
|
|
|
|
[encryption_management]
|
|
encryption_manager = "aws_kms" # Encryption manager client to be used
|
|
|
|
[encryption_management.aws_kms]
|
|
key_id = "kms_key_id" # The AWS key ID used by the KMS SDK for decrypting data.
|
|
region = "kms_region" # The AWS region used by the KMS SDK for decrypting data.
|
|
|
|
[opensearch]
|
|
host = "https://localhost:9200"
|
|
|
|
[opensearch.auth]
|
|
auth = "basic"
|
|
username = "admin"
|
|
password = "admin"
|
|
region = "eu-central-1"
|
|
|
|
[opensearch.indexes]
|
|
payment_attempts = "hyperswitch-payment-attempt-events"
|
|
payment_intents = "hyperswitch-payment-intent-events"
|
|
refunds = "hyperswitch-refund-events"
|
|
disputes = "hyperswitch-dispute-events"
|
|
sessionizer_payment_attempts = "sessionizer-payment-attempt-events"
|
|
sessionizer_payment_intents = "sessionizer-payment-intent-events"
|
|
sessionizer_refunds = "sessionizer-refund-events"
|
|
sessionizer_disputes = "sessionizer-dispute-events"
|
|
|
|
[saved_payment_methods]
|
|
sdk_eligible_payment_methods = "card"
|
|
|
|
[multitenancy]
|
|
enabled = false
|
|
global_tenant = { schema = "public", redis_key_prefix = "", clickhouse_database = "default"}
|
|
|
|
[multitenancy.tenants.public]
|
|
base_url = "http://localhost:8080" # URL of the tenant
|
|
schema = "public" # Postgres db schema
|
|
redis_key_prefix = "" # Redis key distinguisher
|
|
clickhouse_database = "default" # Clickhouse database
|
|
|
|
[multitenancy.tenants.public.user]
|
|
control_center_url = "http://localhost:9000" # Control center URL
|
|
|
|
|
|
[user_auth_methods]
|
|
encryption_key = "" # Encryption key used for encrypting data in user_authentication_methods table
|
|
|
|
[locker_based_open_banking_connectors]
|
|
connector_list = ""
|
|
|
|
[recipient_emails]
|
|
recon = "test@example.com"
|
|
|
|
[cell_information]
|
|
id = "12345" # Default CellID for Global Cell Information
|
|
|
|
[network_tokenization_supported_card_networks]
|
|
card_networks = "Visa, AmericanExpress, Mastercard" # Supported card networks for network tokenization
|
|
|
|
[network_tokenization_service] # Network Tokenization Service Configuration
|
|
generate_token_url= "" # base url to generate token
|
|
fetch_token_url= "" # base url to fetch token
|
|
token_service_api_key= "" # api key for token service
|
|
public_key= "" # public key to encrypt data for token service
|
|
private_key= "" # private key to decrypt response payload from token service
|
|
key_id= "" # key id to encrypt data for token service
|
|
delete_token_url= "" # base url to delete token from token service
|
|
check_token_status_url= "" # base url to check token status from token service
|
|
|
|
[network_tokenization_supported_connectors]
|
|
connector_list = "cybersource" # Supported connectors for network tokenization
|
|
|
|
[network_transaction_id_supported_connectors]
|
|
connector_list = "stripe,adyen,cybersource" # Supported connectors for network transaction id
|
|
|
|
[grpc_client.dynamic_routing_client] # Dynamic Routing Client Configuration
|
|
host = "localhost" # Client Host
|
|
port = 7000 # Client Port
|
|
service = "dynamo" # Service name
|
|
|
|
[theme.storage]
|
|
file_storage_backend = "file_system" # Theme storage backend to be used
|
|
|
|
[theme.email_config]
|
|
entity_name = "Hyperswitch" # Name of the entity to be showed in emails
|
|
entity_logo_url = "https://example.com/logo.svg" # Logo URL of the entity to be used in emails
|
|
foreground_color = "#000000" # Foreground color of email text
|
|
primary_color = "#006DF9" # Primary color of email body
|
|
background_color = "#FFFFFF" # Background color of email body
|