A Payment Provider, shorter name for Payments Services Provider, represents any entity which provides all the necessary resources and infrastructure for merchants and consumers to execute Transactions between them. This entities could be any of the following:
- Aggregator
- Acquirer
- Gateway
Payments companies have many different and sometimes complex features which add value to the purchase experience, mainly providing multiple payments options and simpler checkout flows. They also provide merchants with tools to make better management of their Transactions as well as their incomes.
In our platform, a Payment Provider is created for a specific store
.
Note: This endpoint is for the exclusive use of payment apps.
Note: To create a Payments App you need to create an App in the Partners Portal and request our Partner Support Team (partners@nuvemshop.com.br/partners@tiendanube.com) to enable your app to access our Payments APIs.
Field | Type | Description |
---|---|---|
id |
String | [Read-only] Unique identifier of the Payment Provider object. |
store_id |
Integer | [Read-only] Id of the store to which the Payment Provider belongs. |
app_id |
String | [Read-only] Id of the app to which the Payment Provider belongs. |
name |
String | Name to be displayed to merchants at the store admin tool. |
public_name |
String | [Optional] Name to be displayed to consumers at the storefront. If not specified, the same value as name is used. |
description |
String | Short paragraph which provides merchants with a description of the Payment Provider. |
logo_urls |
Object | Object containing key:value pair for each version of the logos for the frontend. Only supports HTTPS URLs. See Logos. |
supported_currencies |
Array(String) | ISO.4217 currency codes supported by the Payment Provider. See Currency Codes. |
supported_payment_methods |
Array(Object) | List of available payment methods for each payment method type. See Payment Methods. |
checkout_js_url |
String | HTTPS URL of the JavaScript file to be included in the checkout frontend. See Checkout. |
checkout_payment_options |
Array(Object) | Object containing the available payment options for the checkout frontend. See Checkout Payment Options. |
configuration_url |
String | [Optional] HTTPS URL of the Payment Provider configuration UI. |
support_url |
String | [Optional] Payment Provider support site HTTPS URL. |
rates |
Array(Object) | [Optional] List of rates definitions for merchants by payment method type. See Rates. |
rates_url |
String | [Optional] HTTPS URL of the Payment Provider's rate information site. |
features |
Array(String) | [Optional] List of features offered by the Payment Provider. See Features. |
enabled |
Boolean | [Optional] Indicates whether the Payment Provider is activated or deactivated in the store. Defaults to true . |
Note: All URLs must be secure URLs (https).
Note: Read-only properties will only appear in our responses, which means that should not be part of the requests.
At the moment, our platform requires two versions of the Payment Provider logo. Each image must be sent as a key:value
pair, being the key the dimension of the image and the value, the HTTPS URL of its content.
Dimension | URL Content Description |
---|---|
400x120 |
PNG file with Transparent Brackground. Dimensions not greater than 400px (width) x 120px (height). (As of 01/01/2019). |
160x100 |
PNG file with White Background. Dimensions must be 160px (width) x 100px (height). (As of 01/01/2019). |
Every amount value needs to be complemented by a currency. Supported currency codes must be specified according to ISO 4217. The currencies currently supported on our platform are:
ARS
: Argentine PesoBRL
: Brazilian RealCLP
: Chilean PesoCOP
: Colombian PesoEUR
: EuroMXN
: Mexican PesoPEN
: Peruvian SolUSD
: US DollarUYU
: Uruguayan Peso
There are many companies providing payment methods of different types. Currently, our platform supports the following payment methods types.
Payment Method Type | Description |
---|---|
bank_debit |
Transaction in which the consumer uses bank debit as payment method. |
boleto |
Transaction in which the consumer uses a Boleto Bancário as payment method. Boleto is a Brazilian payment method based on cash. |
cash |
Transaction in which the consumer uses cash as payment method. |
credit_card |
Transaction in which the consumer uses a credit card as payment method (E.g. VISA, Mastercard, AMEX). |
debit_card |
Transaction in which the consumer uses a debit card as payment method (E.g. VISA Debit, Maestro). |
pix |
Transaction in which the consumer uses PIX as payment method. PIX is a Brazilian payment method based on transfers between financial institutions. |
ticket |
Transaction in which the consumer uses a ticket as payment method. This ticket can be paid through a non-bank collection channel (E.g. Rapipago, Pago Fácil, OXXO). |
wallet |
Transaction in which the consumer uses a wallet as payment method. A wallet is an application that allows you to transfer money. |
wire_transfer |
Transaction in which the consumer uses a wire transfer as payment method. |
Depending on the kind of Payment Provider (Aggregator, Acquirer, Gateway), they may integrate to our platform one or many payment methods for each payment method type.
If applicable, the installments data supported by the payment method type is detailed here.
Field | Type | Description |
---|---|---|
payment_method_type |
String | One of the available Payment Method Types. |
payment_methods |
Array(String) | The list of supported payments method IDs by the given payment method type. See Supported Payment Methods by Payment Method Type. |
installments |
Object | [Optional] Object containing the installments available to consumers. See Installments. |
Most Payment Providers provide different installment based payments options.
Note: At the moment, installments are only allowed for credit_card
payment method type.
Field | Type | Description |
---|---|---|
specification |
Array(Object) | Check Specification section below for a description of this field. |
min_installment_value |
Array(Object) | [Optional] List of minimum installment values accepted by each currency. See Money for items format. |
Note: An example for
min_installment_value
would be"currency": "BRL
and"amount": "5"
. For instance, if the total amount to be payed is50 BRL
, then the consumer can choose to make the payment in up to 10 installments because the value of each of them would be50 / 10 = 5
. However, the consumer won't be able to choose to spread the payment into 12 installments because50 / 12 = 4.17
and4.17 < 5
.
The specification field allows the use of specific business rules. This specification is intended to support future business rules as well, so expect this feature to support more fields in the future. Therefore, feel free to discuss more functionalities with Tiendanube's Platform Team.
Field | Type | Description |
---|---|---|
installments |
Integer | Number of installments. E.g. 3 . |
interest_rate |
String | Rate to be applied to the total amount for this installments option. E.g. "0.015" . |
applies_to |
Array(String) | [Optional] List of supported values (banks, card brands, etc.) to which this installments option applies. |
Note: Interest rates are percentages expressed in fractions of 1 in
String
format for better decimal precision handling. For instance, an interest rate of6.5%
would be expressed as6.5 / 100 = 0.065
, which stringified would be "0.065".
Payment Providers may charge merchants with different rates per Transaction depending on the payment method type and the time the merchant chooses to withdraw the money. Hence, for each payment method type there would be a list of rates depending on the withdrawal time specified in days.
Field | Type | Description |
---|---|---|
payment_method_type |
String | Payment method type to which the rates definition refer. See Payment Method Types. |
rates_definition |
Array(Object) | Object containing the rates details. See Rates Definition section bellow. |
Field | Type | Description |
---|---|---|
percent_fee |
String | Percentage fee charged per payment. E.g. "1.250" . |
days_to_withdraw_money |
Integer | Days since Transaction creation until de merchant can withdraw the money. |
flat_fee |
Object | [Optional] Object containing the flat fee charged per payment. See Money. |
plus_tax |
Boolean | [Optional] Indicates whether VAT will be added to the specified rates. |
Payment Providers can specify the list of functionalities of the service that they offer to the merchant. This will be displayed in the list of available payment applications together with the description of the Payment Provider in order to provide more detail about the application's features.
Field | Type | Description |
---|---|---|
features |
Array(String) | List of payment provider's features. See Supported Feature Values below. |
Feature | Description |
---|---|
special_rates |
The payment provider offers exclusive rates for Tiendanube customers. |
transparent_checkout |
The payment provider offers transparent payment options (without leaving the store checkout). |
supports_international_payments |
The payment provider allows payments from foreign countries. |
gateway |
The payment provider offers gateway services. |
This object contains the data that the Checkout's frontend needs to render the available payment options for the consumer.
Payment Providers can implement multiple payment options to display at the store checkout. To do this, apps must specify the configuration of their Checkout Payment Options through our REST API. The event handlers for each Checkout Payment Option must be defined in the JavaScript file indicated in the checkout_js_url
field (check out the Checkout Resource for more details on implementing this script).
Field | Type | Description |
---|---|---|
id |
String | Payment option UUID. It must be unique between payment providers of the same app and match the ID indicated in the chechkout_js_url file. |
name |
String | Payment option name to be displayed in the store checkout. |
description |
String | [Optional] Payment option description to be displayed in the store checkout. |
logo_url |
String | [Optional] HTTPS URL of the Payment Provider logo. |
supported_billing_countries |
Array(String) | List of ISO_3166-1 country codes where the payment option will be available. |
supported_payment_method_types |
Array(String) | Payment method types supported by the payment option. See Payment Method Types. |
integration_type |
String | The integration type of the payment option. One of these values: redirect or transparent . |
Sums of money will be represented by a value and its respective currency.
Field | Type | Description |
---|---|---|
value |
String | Amount of money as a string. E.g. "49.99" |
currency |
String | ISO 4217 code for the currency, such as ARS, BRL, USD, etc. |
Note: Decimal numbers will be represented as string format for better decimal precision handling. It must contain two decimal places and use a point as decimal separator.
Create a Payment Provider for a given store.
Request
E.g.
{
"name": "My Payments",
"public_name": "Pay with My Payments",
"description": "Some short description for merchants.",
"logo_urls": {
"400x120": "https://mypayments.com/logo1.png",
"160x100": "https://mypayments.com/logo2.png"
},
"configuration_url": "https://mypayments.com/configuration",
"support_url": "https://mypayments.com/support",
"rates_url": "https://mypayments.com/rates",
"checkout_js_url": "https://mypayments.com/checkout.min.js",
"supported_currencies": ["ARS", "BRL"],
"supported_payment_methods": [
{
"payment_method_type": "credit_card",
"payment_methods": ["visa", "mastercard", "amex", "diners"],
"installments": {
"min_installment_value": [
{
"currency": "ARS",
"value": "100.00"
}
],
"specification": [
{
"installments": 1,
"interest_rate": "0.00",
"applies_to": ["bbva", "itau", "santander", "galicia", "icbc"]
},
{
"installments": 3,
"interest_rate": "0.00",
"applies_to": ["bbva", "itau"]
},
{
"installments": 6,
"interest_rate": "0.045",
"applies_to": ["santander", "galicia"]
},
{
"installments": 12,
"interest_rate": "0.15",
"applies_to": ["icbc"]
}
]
}
},
{
"payment_method_type": "debit_card",
"payment_methods": ["visa_debit", "maestro"]
},
{
"payment_method_type": "boleto",
"payment_methods": ["boleto", "banco_do_brasil", "bradesco", "caixa"]
}
],
"rates": [
{
"payment_method_type": "credit_card",
"rates_definition": [
{
"percent_fee": "2.25",
"flat_fee": {
"value": "1.00",
"currency": "ARS"
},
"plus_tax": true,
"days_to_withdraw_money": 10
},
{
"percent_fee": "3.99",
"flat_fee": {
"value": "2.50",
"currency": "BRL"
},
"plus_tax": false,
"days_to_withdraw_money": 5
}
]
}
],
"checkout_payment_options": [
{
"id": "mypayments_transparent_card",
"name": "My Payments Card",
"description": "Some description for transparent card option",
"logo_url": "https://cdn.mypayments.com/apps/tiendanube/logo.png",
"supported_billing_countries": ["AR"],
"supported_payment_method_types": ["credit_card", "debit_card"],
"integration_type": "transparent"
},
{
"id": "mypayments_transparent_offline",
"name": "My Payments Boleto",
"description": "Some description for transparent offline option",
"logo_url": "https://cdn.mypayments.com/apps/tiendanube/logo.png",
"supported_billing_countries": ["BR"],
"supported_payment_method_types": ["boleto"],
"integration_type": "transparent"
},
{
"id": "mypayments_redirect",
"name": "My Payments External",
"description": "Some description for external option",
"logo_url": "https://cdn.mypayments.com/apps/tiendanube/logo.png",
"supported_billing_countries": ["AR", "BR"],
"supported_payment_method_types": [
"credit_card",
"wire_transfer",
"wallet"
],
"integration_type": "redirect"
}
],
"features": ["special_rates", "transparent_checkout", "gateway"],
"enabled": true
}
Response
HTTP/1.1 201 Created
E.g.
{
"id": "6e760b6e-e4f3-42ba-8a2d-afddf44e6cf1"
}
Unique identifier of the created Payment Provider.
Update a Payment Provider for a given store. This is especially useful to update the installments specs.
Request
Response
HTTP/1.1 204 No Content
- the request was successful but there is no representation to return (i.e. the response is empty).
Get all Payment Providers for a given store.
Request
{}
Get a specific Payment Provider for a given store.
Request
{}
Delete a Payment Provider for a given store.
Request
{}
Response
HTTP/1.1 204 No Content
- the request was successful but there is no representation to return (i.e. the response is empty).
- 400 Bad Request - the request could not be understood or was missing required parameters.
- 401 Unauthorized - authentication failed or user doesn't have permissions for requested operation.
- 403 Forbidden - access denied.
- 404 Not Found - resource was not found.
- 405 Method Not Allowed - requested method is not supported for resource.
The following is the list of payment method IDs by payment method type currently supported by our platform.
Payment Method Type | Payment Method ID |
---|---|
bank_debit |
See the Supported Bank list. |
boleto |
See the Supported Bank list. Use the default value boleto if no issuer is specified. |
cash |
cash |
credit_card |
amex , argencard , aura , cabal , cencosud , cordial , cordobesa , diners , discover , elo , falabella , hiper , hipercard , hsbc_access_now , magna , mastercard , nativa , oi_paggo , provencred , rebanking , tarjeta_naranja , tarjeta_saenz , tarjeta_shopping , tarjeta_walmart , visa |
debit_card |
cabal_debit , maestro , visa_debit , vr-beneficios , sodexo , alelo |
pix |
pix |
ticket |
efecty , oxxo , pagofacil , rapipago , servipag , seven_eleven , via_baloto |
wallet |
wallet |
wire_transfer |
banelco , link , provincia_net , pse |
banamex
, banco_chaco
, banco_chubut
, banco_ciudad
, banco_coinag
, banco_columbia
, banco_comafi
, banco_comercio
, banco_do_brasil
, banco_do_nordeste
, banco_entre_rios
, banco_hipotecario
, banco_industrial
, banco_la_pampa
, banco_municipal
, banco_nacion
, banco_patagonia
, banco_provincia
, banco_san_juan
, banco_santa_cruz
, banco_santa_fe
, banco_tierra_del_fuego
, banco_tucuman
, banrisul
, bbva
, bica
, bradesco
, caixa
, citi
, galicia
, hsbc
, icbc
, itau
, macro
, santander
, scotiabank
, sicoob
, sicredi
, supervielle