From 7887fc3f95cd98d65ee904429b34a77465dbf87a Mon Sep 17 00:00:00 2001 From: Heitor Galdino Date: Tue, 21 Jan 2025 11:52:57 -0300 Subject: [PATCH 01/20] 1 --- .../brand-brick/default-rendering.en.md | 2 +- .../brand-brick/default-rendering.es.md | 2 +- .../brand-brick/default-rendering.pt.md | 2 +- .../card-payment-brick/default-rendering.en.md | 2 +- .../card-payment-brick/default-rendering.es.md | 2 +- .../card-payment-brick/default-rendering.pt.md | 2 +- .../checkout-bricks/common-initialization.en.md | 15 +++++++++++++++ .../checkout-bricks/common-initialization.es.md | 15 +++++++++++++++ .../checkout-bricks/common-initialization.pt.md | 15 +++++++++++++++ .../status-screen-brick/default-rendering.en.md | 2 +- .../status-screen-brick/default-rendering.es.md | 2 +- .../status-screen-brick/default-rendering.pt.md | 2 +- .../hide-processing-details.en.md | 14 ++++---------- .../hide-processing-details.es.md | 14 ++++---------- .../hide-processing-details.pt.md | 14 ++++---------- 15 files changed, 66 insertions(+), 39 deletions(-) diff --git a/guides/checkout-bricks/brand-brick/default-rendering.en.md b/guides/checkout-bricks/brand-brick/default-rendering.en.md index e40d6572b6..9120f3198c 100644 --- a/guides/checkout-bricks/brand-brick/default-rendering.en.md +++ b/guides/checkout-bricks/brand-brick/default-rendering.en.md @@ -6,7 +6,7 @@ Before rendering the Brand Brick, first execute the [initialization steps](/deve > > Note > -> To consult the types and specifications of the parameters and responses of the Brick functions, refer to the [technical documentation](https://github.com/mercadopago/sdk-js/blob/main/API/bricks/brand.md). +> To consult the types and specifications of the parameters and responses of the Brick functions, refer to the [technical documentation](https://github.com/mercadopago/sdk-js/blob/main/docs/bricks/brand.md). ## Configure the Brick diff --git a/guides/checkout-bricks/brand-brick/default-rendering.es.md b/guides/checkout-bricks/brand-brick/default-rendering.es.md index 0e6d06d219..c32c6b2305 100644 --- a/guides/checkout-bricks/brand-brick/default-rendering.es.md +++ b/guides/checkout-bricks/brand-brick/default-rendering.es.md @@ -6,7 +6,7 @@ Antes de realizar la renderización del Brand Brick, primero ejecute los [pasos > > Nota > -> Para consultar los tipos y especificaciones de los parámetros y respuestas de las funciones del Brick, consulte la [documentación técnica](https://github.com/mercadopago/sdk-js/blob/main/API/bricks/brand.md). +> Para consultar los tipos y especificaciones de los parámetros y respuestas de las funciones del Brick, consulte la [documentación técnica](https://github.com/mercadopago/sdk-js/blob/main/docs/bricks/brand.md). ## Configurar el Brick diff --git a/guides/checkout-bricks/brand-brick/default-rendering.pt.md b/guides/checkout-bricks/brand-brick/default-rendering.pt.md index e891ee8276..f940382519 100644 --- a/guides/checkout-bricks/brand-brick/default-rendering.pt.md +++ b/guides/checkout-bricks/brand-brick/default-rendering.pt.md @@ -6,7 +6,7 @@ Antes de realizar a renderização do Brand Brick, primeiro execute os [passos d > > Nota > -> Para consultar tipagens e especificações dos parâmetros e respostas de funções do Brick, consulte a [documentação técnica](https://github.com/mercadopago/sdk-js/blob/main/API/bricks/brand.md). +> Para consultar tipagens e especificações dos parâmetros e respostas de funções do Brick, consulte a [documentação técnica](https://github.com/mercadopago/sdk-js/blob/main/docs/bricks/brand.md). ## Configurar o Brick diff --git a/guides/checkout-bricks/card-payment-brick/default-rendering.en.md b/guides/checkout-bricks/card-payment-brick/default-rendering.en.md index c595272215..014db8c3b8 100644 --- a/guides/checkout-bricks/card-payment-brick/default-rendering.en.md +++ b/guides/checkout-bricks/card-payment-brick/default-rendering.en.md @@ -6,7 +6,7 @@ Before rendering the Card Payment Brick, first execute the [initialization steps > > Note > -> To consult the types and specifications of the parameters and responses of the Brick functions, refer to the [technical documentation](https://github.com/mercadopago/sdk-js/blob/main/API/bricks/card-payment.md). +> To consult the types and specifications of the parameters and responses of the Brick functions, refer to the [technical documentation](https://github.com/mercadopago/sdk-js/blob/main/docs/bricks/card-payment.md). ## Configure the Brick diff --git a/guides/checkout-bricks/card-payment-brick/default-rendering.es.md b/guides/checkout-bricks/card-payment-brick/default-rendering.es.md index c18f8ac65a..28abbd49d1 100644 --- a/guides/checkout-bricks/card-payment-brick/default-rendering.es.md +++ b/guides/checkout-bricks/card-payment-brick/default-rendering.es.md @@ -6,7 +6,7 @@ Antes de realizar la renderización del Card Payment Brick, primero ejecute los > > Nota > -> Para consultar los tipos y especificaciones de los parámetros y respuestas de las funciones del Brick, consulte la [documentación técnica](https://github.com/mercadopago/sdk-js/blob/main/API/bricks/card-payment.md). +> Para consultar los tipos y especificaciones de los parámetros y respuestas de las funciones del Brick, consulte la [documentación técnica](https://github.com/mercadopago/sdk-js/blob/main/docs/bricks/card-payment.md). ## Configurar el Brick diff --git a/guides/checkout-bricks/card-payment-brick/default-rendering.pt.md b/guides/checkout-bricks/card-payment-brick/default-rendering.pt.md index db6088bd69..f778f97522 100644 --- a/guides/checkout-bricks/card-payment-brick/default-rendering.pt.md +++ b/guides/checkout-bricks/card-payment-brick/default-rendering.pt.md @@ -6,7 +6,7 @@ Antes de realizar a renderização do Card Payment Brick, primeiro execute os [p > > Nota > -> Para consultar tipagens e especificações dos parâmetros e respostas de funções do Brick, consulte a [documentação técnica](https://github.com/mercadopago/sdk-js/blob/main/API/bricks/card-payment.md). +> Para consultar tipagens e especificações dos parâmetros e respostas de funções do Brick, consulte a [documentação técnica](https://github.com/mercadopago/sdk-js/blob/main/docs/bricks/card-payment.md). ## Configurar o Brick diff --git a/guides/checkout-bricks/common-initialization.en.md b/guides/checkout-bricks/common-initialization.en.md index 0fa359a20a..bc3dd5f849 100644 --- a/guides/checkout-bricks/common-initialization.en.md +++ b/guides/checkout-bricks/common-initialization.en.md @@ -10,6 +10,19 @@ To set up Brick integrations and have a responsive, optimized, and configurable Use our official libraries to access Mercado Pago's features safely from your frontend. +----[mlc]---- +[[[ +```html +// The JS code can be included in a < script > tag or a separate JS file. + +``` +```bash +npm install @mercadopago/sdk-react @0.0.23 +``` +]]] + +------------ +----[mla, mlm, mlb, mpe, mco, mlu]---- [[[ ```html // The JS code can be included in a < script > tag or a separate JS file. @@ -20,6 +33,8 @@ npm install @mercadopago/sdk-react ``` ]]] +------------ + ## Initialize Mercado Pago library Then, initialize the Mercado Pago library to use Checkout Bricks. diff --git a/guides/checkout-bricks/common-initialization.es.md b/guides/checkout-bricks/common-initialization.es.md index 719bfb9b90..5f7e6f8843 100644 --- a/guides/checkout-bricks/common-initialization.es.md +++ b/guides/checkout-bricks/common-initialization.es.md @@ -10,6 +10,19 @@ Para configurar la integración de Bricks y tener un pago receptivo, optimizado Utiliza nuestras bibliotecas oficiales para acceder a las funcionalidades de Mercado Pago de forma segura desde tu frontend. +----[mlc]---- +[[[ +```html +// El código JS se puede incluir en una etiqueta < script > o en un archivo JS separado. + +``` +```bash +npm install @mercadopago/sdk-react @0.0.23 +``` +]]] + +------------ +----[mla, mlm, mlb, mpe, mco, mlu]---- [[[ ```html // El código JS se puede incluir en una etiqueta < script > o en un archivo JS separado. @@ -20,6 +33,8 @@ npm install @mercadopago/sdk-react ``` ]]] +------------ + ## Inicializar biblioteca de Mercado Pago A continuación, inicialice la biblioteca de Mercado Pago para utilizar Checkout Bricks. diff --git a/guides/checkout-bricks/common-initialization.pt.md b/guides/checkout-bricks/common-initialization.pt.md index 8ea9f81764..b909f0b52c 100644 --- a/guides/checkout-bricks/common-initialization.pt.md +++ b/guides/checkout-bricks/common-initialization.pt.md @@ -10,6 +10,19 @@ Para configurar a integração dos Bricks e ter um checkout responsivo, otimizad Utilize as nossas bibliotecas oficiais para acessar as funcionalidades do Mercado Pago com segurança desde seu frontend. +----[mlc]---- +[[[ +```html +// O código JS pode ser incluído em uma tag < script > ou um arquivo JS separado. + +``` +```bash +npm install @mercadopago/sdk-react @0.0.23 +``` +]]] + +------------ +----[mla, mlm, mlb, mpe, mco, mlu]---- [[[ ```html // O código JS pode ser incluído em uma tag < script > ou um arquivo JS separado. @@ -20,6 +33,8 @@ npm install @mercadopago/sdk-react ``` ]]] +------------ + ## Inicializar biblioteca Mercado Pago Em seguida, inicialize a biblioteca Mercado Pago para utilizar Checkout Bricks. diff --git a/guides/checkout-bricks/status-screen-brick/default-rendering.en.md b/guides/checkout-bricks/status-screen-brick/default-rendering.en.md index b315c35d84..c95072ef97 100644 --- a/guides/checkout-bricks/status-screen-brick/default-rendering.en.md +++ b/guides/checkout-bricks/status-screen-brick/default-rendering.en.md @@ -6,7 +6,7 @@ Before rendering the Status Screen Brick, first execute the [initialization step > > Note > -> To consult the types and specifications of the parameters and responses of the Brick functions, refer to the [technical documentation](https://github.com/mercadopago/sdk-js/blob/main/API/bricks/status-screen.md). +> To consult the types and specifications of the parameters and responses of the Brick functions, refer to the [technical documentation](https://github.com/mercadopago/sdk-js/blob/main/docs/bricks/status-screen.md). ## Configure the Brick diff --git a/guides/checkout-bricks/status-screen-brick/default-rendering.es.md b/guides/checkout-bricks/status-screen-brick/default-rendering.es.md index 66809a0743..145bf0f955 100644 --- a/guides/checkout-bricks/status-screen-brick/default-rendering.es.md +++ b/guides/checkout-bricks/status-screen-brick/default-rendering.es.md @@ -6,7 +6,7 @@ Antes de realizar la renderización del Status Screen Brick, primero ejecute los > > Nota > -> Para consultar los tipos y especificaciones de los parámetros y respuestas de las funciones del Brick, consulte la [documentación técnica](https://github.com/mercadopago/sdk-js/blob/main/API/bricks/status-screen.md). +> Para consultar los tipos y especificaciones de los parámetros y respuestas de las funciones del Brick, consulte la [documentación técnica](https://github.com/mercadopago/sdk-js/blob/main/docs/bricks/status-screen.md). ## Configurar el Brick diff --git a/guides/checkout-bricks/status-screen-brick/default-rendering.pt.md b/guides/checkout-bricks/status-screen-brick/default-rendering.pt.md index e589ffd919..437632ff97 100644 --- a/guides/checkout-bricks/status-screen-brick/default-rendering.pt.md +++ b/guides/checkout-bricks/status-screen-brick/default-rendering.pt.md @@ -6,7 +6,7 @@ Antes de realizar a renderização do Status Screen Brick, primeiro execute os [ > > Nota > -> Para consultar tipagens e especificações dos parâmetros e respostas de funções do Brick, consulte a [documentação técnica](https://github.com/mercadopago/sdk-js/blob/main/API/bricks/status-screen.md). +> Para consultar tipagens e especificações dos parâmetros e respostas de funções do Brick, consulte a [documentação técnica](https://github.com/mercadopago/sdk-js/blob/main/docs/bricks/status-screen.md). ## Configurar o Brick diff --git a/guides/checkout-bricks/status-screen-brick/hide-processing-details.en.md b/guides/checkout-bricks/status-screen-brick/hide-processing-details.en.md index 2d74a9f27e..cb291b97d6 100644 --- a/guides/checkout-bricks/status-screen-brick/hide-processing-details.en.md +++ b/guides/checkout-bricks/status-screen-brick/hide-processing-details.en.md @@ -36,17 +36,11 @@ const customization = { ``` ]]] -----[mlb]---- -![status-screen-brick-hide-processing-details](checkout-bricks/status-screen-brick-hide-processing-details-mlb-en.jpg) - ------------- -----[mpe]---- - -![status-screen-brick-hide-processing-details](checkout-bricks/status-screen-brick-hide-processing-details-mpe-en.jpg) +----[mlc]---- +![status-screen-brick-hide-processing-details](checkout-bricks/status-screen-brick-hide-processing-details-all-en.jpg) ------------ -----[mlm, mla, mco, mlu, mlc]---- - -![status-screen-brick-hide-processing-details](checkout-bricks/status-screen-brick-hide-processing-details-all-en.jpg) +----[mlb, mlm, mla, mpe, mco, mlu]---- +![status-screen-brick-hide-processing-details](checkout-bricks/status-screen-brick-hide-processing-details-en.jpg) ------------ \ No newline at end of file diff --git a/guides/checkout-bricks/status-screen-brick/hide-processing-details.es.md b/guides/checkout-bricks/status-screen-brick/hide-processing-details.es.md index 65c15912fd..03fd31f842 100644 --- a/guides/checkout-bricks/status-screen-brick/hide-processing-details.es.md +++ b/guides/checkout-bricks/status-screen-brick/hide-processing-details.es.md @@ -36,17 +36,11 @@ const customization = { ``` ]]] -----[mlb]---- -![status-screen-brick-hide-processing-details](checkout-bricks/status-screen-brick-hide-processing-details-mlb-es.jpg) - ------------- -----[mpe]---- - -![status-screen-brick-hide-processing-details](checkout-bricks/status-screen-brick-hide-processing-details-mpe-es.jpg) +----[mlc]---- +![status-screen-brick-hide-processing-details](checkout-bricks/status-screen-brick-hide-processing-details-all-es.jpg) ------------ -----[mlm, mla, mco, mlu, mlc]---- - -![status-screen-brick-hide-processing-details](checkout-bricks/status-screen-brick-hide-processing-details-all-es.jpg) +----[mlb, mlm, mla, mpe, mco, mlu]---- +![status-screen-brick-hide-processing-details](checkout-bricks/status-screen-brick-hide-processing-details-es.jpg) ------------ \ No newline at end of file diff --git a/guides/checkout-bricks/status-screen-brick/hide-processing-details.pt.md b/guides/checkout-bricks/status-screen-brick/hide-processing-details.pt.md index dbc6a20544..d8ce265238 100644 --- a/guides/checkout-bricks/status-screen-brick/hide-processing-details.pt.md +++ b/guides/checkout-bricks/status-screen-brick/hide-processing-details.pt.md @@ -36,17 +36,11 @@ const customization = { ``` ]]] -----[mlb]---- -![status-screen-brick-hide-processing-details](checkout-bricks/status-screen-brick-hide-processing-details-mlb-pt.jpg) - ------------- -----[mpe]---- - -![status-screen-brick-hide-processing-details](checkout-bricks/status-screen-brick-hide-processing-details-mpe-pt.jpg) +----[mlc]---- +![status-screen-brick-hide-processing-details](checkout-bricks/status-screen-brick-hide-processing-details-all-pt.jpg) ------------ -----[mlm, mla, mco, mlu, mlc]---- - -![status-screen-brick-hide-processing-details](checkout-bricks/status-screen-brick-hide-processing-details-all-pt.jpg) +----[mlb, mlm, mla, mpe, mco, mlu]---- +![status-screen-brick-hide-processing-details](checkout-bricks/status-screen-brick-hide-processing-details-pt.jpg) ------------ \ No newline at end of file From a2a9822a12752094a5786b3ca86327abd6f6c4e3 Mon Sep 17 00:00:00 2001 From: Heitor Galdino Date: Tue, 21 Jan 2025 14:53:27 -0300 Subject: [PATCH 02/20] 2 --- .../wallet-brick/default-rendering.en.md | 11 +++++++++++ .../wallet-brick/default-rendering.es.md | 11 +++++++++++ .../wallet-brick/default-rendering.pt.md | 11 +++++++++++ 3 files changed, 33 insertions(+) diff --git a/guides/checkout-bricks/wallet-brick/default-rendering.en.md b/guides/checkout-bricks/wallet-brick/default-rendering.en.md index a0916e6669..2d71de499c 100644 --- a/guides/checkout-bricks/wallet-brick/default-rendering.en.md +++ b/guides/checkout-bricks/wallet-brick/default-rendering.en.md @@ -2,12 +2,23 @@ Before rendering the Wallet Brick, first execute the [initialization steps](/developers/en/docs/checkout-bricks/common-initialization) shared among all Bricks. From there, see below the necessary information to configure and render the Wallet Brick. +----[mlc]---- > NOTE > > Note > > To consult the types and specifications of the parameters and responses of the Brick functions, refer to the [technical documentation](https://github.com/mercadopago/sdk-js/blob/main/docs/bricks/wallet.md). +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- +> NOTE +> +> Note +> +> To consult the types and specifications of the parameters and responses of the Brick functions, refer to the [technical documentation](https://github.com/mercadopago/sdk-js/blob/main/docs/bricks/legacy/wallet.md). + +------------ + ## Configure the Brick Create Brick's startup configuration. diff --git a/guides/checkout-bricks/wallet-brick/default-rendering.es.md b/guides/checkout-bricks/wallet-brick/default-rendering.es.md index 3ad55d5855..8a95ea0bad 100644 --- a/guides/checkout-bricks/wallet-brick/default-rendering.es.md +++ b/guides/checkout-bricks/wallet-brick/default-rendering.es.md @@ -2,12 +2,23 @@ Antes de realizar la renderización del Wallet Brick, primero ejecute los [pasos de inicialización](/developers/es/docs/checkout-bricks/common-initialization) compartidos entre todos los Bricks. A partir de esto, a continuación se presentan las informaciones necesarias para que configures y renderices el Wallet Brick. +----[mlc]---- > NOTE > > Nota > > Para consultar los tipos y especificaciones de los parámetros y respuestas de las funciones del Brick, consulte la [documentación técnica](https://github.com/mercadopago/sdk-js/blob/main/docs/bricks/wallet.md). +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- +> NOTE +> +> Nota +> +> Para consultar los tipos y especificaciones de los parámetros y respuestas de las funciones del Brick, consulte la [documentación técnica](https://github.com/mercadopago/sdk-js/blob/main/docs/bricks/legacy/wallet.md). + +------------ + ## Configurar el Brick Crea la configuración de inicio de Brick diff --git a/guides/checkout-bricks/wallet-brick/default-rendering.pt.md b/guides/checkout-bricks/wallet-brick/default-rendering.pt.md index ef1ff1987b..5673b3d194 100644 --- a/guides/checkout-bricks/wallet-brick/default-rendering.pt.md +++ b/guides/checkout-bricks/wallet-brick/default-rendering.pt.md @@ -2,12 +2,23 @@ Antes de realizar a renderização do Wallet Brick, primeiro execute os [passos de inicialização](/developers/pt/docs/checkout-bricks/common-initialization) compartilhados entre todos os Bricks. A partir disso, veja abaixo as informações necessárias para você configurar e renderizar o Wallet Brick. +----[mlc]---- > NOTE > > Nota > > Para consultar tipagens e especificações dos parâmetros e respostas de funções do Brick, consulte a [documentação técnica](https://github.com/mercadopago/sdk-js/blob/main/docs/bricks/wallet.md). +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- +> NOTE +> +> Nota +> +> Para consultar tipagens e especificações dos parâmetros e respostas de funções do Brick, consulte a [documentação técnica](https://github.com/mercadopago/sdk-js/blob/main/docs/bricks/legacy/wallet.md). + +------------ + ## Configurar o Brick Crie a configuração de inicialização do Brick. From 587121a03838b0ca5b1a15cfc6ad8e608050f6eb Mon Sep 17 00:00:00 2001 From: Heitor Galdino Date: Tue, 21 Jan 2025 18:25:00 -0300 Subject: [PATCH 03/20] bricks --- guides/checkout-bricks/modify-variables.en.md | 9 ++ guides/checkout-bricks/modify-variables.es.md | 9 ++ guides/checkout-bricks/modify-variables.pt.md | 9 ++ .../wallet-brick/change-appearance.en.md | 82 +++++++++++++++++- .../wallet-brick/change-appearance.es.md | 84 ++++++++++++++++++- .../wallet-brick/change-appearance.pt.md | 84 ++++++++++++++++++- .../wallet-brick/change-texts.en.md | 52 +++++++++++- .../wallet-brick/change-texts.es.md | 60 +++++++++++-- .../wallet-brick/change-texts.pt.md | 52 +++++++++++- .../wallet-brick/default-rendering.en.md | 52 ++++++++++++ .../wallet-brick/default-rendering.es.md | 60 ++++++++++++- .../wallet-brick/default-rendering.pt.md | 52 ++++++++++++ 12 files changed, 577 insertions(+), 28 deletions(-) diff --git a/guides/checkout-bricks/modify-variables.en.md b/guides/checkout-bricks/modify-variables.en.md index 0bbc17eff9..0457c85590 100644 --- a/guides/checkout-bricks/modify-variables.en.md +++ b/guides/checkout-bricks/modify-variables.en.md @@ -4,6 +4,13 @@ > > Modify CSS variables +----[mlc]---- +| Key | Available options | +| --- | --- | +| Property | customization.visual.style.customVariables.{textPrimaryColor, textSecondaryColor, inputBackgroundColor, formBackgroundColor, baseColor, baseColorFirstVariant, baseColorSecondVariant, errorColor, successColor, successSecondaryColor, outlinePrimaryColor, outlineSecondaryColor, buttonTextColor, fontSizeExtraExtraSmall, fontSizeExtraSmall, fontSizeSmall, fontSizeMedium, fontSizeLarge, fontSizeExtraLarge, fontWeightNormal, fontWeightSemiBold, formInputsTextTransform, inputVerticalPadding, inputHorizontalPadding, inputFocusedBoxShadow, inputErrorFocusedBoxShadow, inputBorderWidth, inputFocusedBorderWidth, borderRadiusSmall, borderRadiusMedium, borderRadiusLarge, formPadding} | + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- | - | Brick | | --- | --- | | Customization moment | When rendering Brick | @@ -11,6 +18,8 @@ | Type | string | | Comments | Size values ​​such as fontSize and padding accept values ​​in px, rem, em, and %. These settings change the CSS variables that control the theme. | +------------ + [[[ ```Javascript const settings = { diff --git a/guides/checkout-bricks/modify-variables.es.md b/guides/checkout-bricks/modify-variables.es.md index a44fa83c42..aae0454504 100644 --- a/guides/checkout-bricks/modify-variables.es.md +++ b/guides/checkout-bricks/modify-variables.es.md @@ -4,6 +4,13 @@ > > Cambiar variables CSS +----[mlc]---- +| Clave | Opciones disponibles | +| --- | --- | +| Propiedad | customization.visual.style.customVariables.{textPrimaryColor, textSecondaryColor, inputBackgroundColor, formBackgroundColor, baseColor, baseColorFirstVariant, baseColorSecondVariant, errorColor, successColor, successSecondaryColor, outlinePrimaryColor, outlineSecondaryColor, buttonTextColor, fontSizeExtraExtraSmall, fontSizeExtraSmall, fontSizeSmall, fontSizeMedium, fontSizeLarge, fontSizeExtraLarge, fontWeightNormal, fontWeightSemiBold, formInputsTextTransform, inputVerticalPadding, inputHorizontalPadding, inputFocusedBoxShadow, inputErrorFocusedBoxShadow, inputBorderWidth, inputFocusedBorderWidth, borderRadiusSmall, borderRadiusMedium, borderRadiusLarge, formPadding} | + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- | - | Brick | | --- | --- | | Momento de personalización | Al renderizar Brick | @@ -11,6 +18,8 @@ | Tipo | string | | Observaciones | Los valores de tamaño como fontSize y padding aceptan valores en px, rem, em y %. Estos ajustes cambian las variables CSS que controlan el tema. | +------------ + [[[ ```Javascript const settings = { diff --git a/guides/checkout-bricks/modify-variables.pt.md b/guides/checkout-bricks/modify-variables.pt.md index 1f80aa577a..b2ca48eb23 100644 --- a/guides/checkout-bricks/modify-variables.pt.md +++ b/guides/checkout-bricks/modify-variables.pt.md @@ -4,6 +4,13 @@ > > Alterar variáveis CSS +----[mlc]---- +| Chave | Opções disponíveis | +| --- | --- | +| Propriedade | customization.visual.style.customVariables.{textPrimaryColor, textSecondaryColor, inputBackgroundColor, formBackgroundColor, baseColor, baseColorFirstVariant, baseColorSecondVariant, errorColor, successColor, successSecondaryColor, outlinePrimaryColor, outlineSecondaryColor, buttonTextColor, fontSizeExtraExtraSmall, fontSizeExtraSmall, fontSizeSmall, fontSizeMedium, fontSizeLarge, fontSizeExtraLarge, fontWeightNormal, fontWeightSemiBold, formInputsTextTransform, inputVerticalPadding, inputHorizontalPadding, inputFocusedBoxShadow, inputErrorFocusedBoxShadow, inputBorderWidth, inputFocusedBorderWidth, borderRadiusSmall, borderRadiusMedium, borderRadiusLarge, formPadding} | + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- | - | Brick | | --- | --- | | Momento da customização | Ao renderizar Brick | @@ -11,6 +18,8 @@ | Tipo | string | | Observações | Os valores de tamanho, como fontSize e padding, aceitam valores em px, rem, em e %. Essas configurações alteram as variáveis CSS que controlam o tema. | +------------ + [[[ ```Javascript const settings = { diff --git a/guides/checkout-bricks/wallet-brick/change-appearance.en.md b/guides/checkout-bricks/wallet-brick/change-appearance.en.md index 41473a49a8..456da9ef3f 100644 --- a/guides/checkout-bricks/wallet-brick/change-appearance.en.md +++ b/guides/checkout-bricks/wallet-brick/change-appearance.en.md @@ -4,6 +4,52 @@ > > Change appearance +----[mlc]---- +Wallet Brick allows for some visual customizations listed in the table below, all of which are optional and of the `string` type. + +If the provided property is empty, the screen will display the appearance defined by the default layout. On the other hand, sending an alternative value will replace the default value. + +| Key | Available options | Default | +|--- |--- | --- | --- | +| theme | default ou black | default | +| customStyle.valuePropColor | For the **default** theme, `valuePropColor` can be **blue or white**, while for the **dark** theme, valuePropColor`` can be **dark**. | For the **default** theme, the **default is blu**e, while for the **dark** theme, the **default is black**. | +| customStyle.buttonHeight | Minimum: 48px.
Maximum: free choice. | 48px | +| customStyle.borderRadius | Minimum: livre escolha.
Maximum: free choice. | 6px | +| customStyle.verticalPadding | Minimum: 8px.
Maximum: free choice. | 8px | +| customStyle.horizontalPadding | Minimum: 0px.
Maximum: free choice. | 0px | + +[[[ +```javascript +const settings = { + ..., + customization: { + theme:'dark', + customStyle: { + valueProp: 'practicality', + valuePropColor: 'black', + borderRadius: '10px', + verticalPadding: '10px', + horizontalPadding: '10px', + } + } +} +``` +```react-jsx +const customization = { + theme:'dark', + customStyle: { + valueProp: 'practicality', + valuePropColor: 'black', + borderRadius: '10px', + verticalPadding: '10px', + horizontalPadding: '10px', + } +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- ## Style properties | - | Description | @@ -41,12 +87,40 @@ const customization = { borderRadius: '16px', } }; - ``` ]]] -## Hide value proposition text +------------ +## Hide value proposition (valueProp) text + +----[mlc]---- +It is also possible to hide the value proposition text by passing the value `boolean true` to the property `customStyle.hideValueProp`. The **default value** is `false`. + +[[[ +```javascript +const settings = { + ..., + customization: { + theme: 'default', + customStyle: { + hideValueProp: true, + } + } +} +``` +```react-jsx +const customization = { + theme: 'default', + customStyle: { + hideValueProp: true, + } +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- | - | Description | | --- | --- | | Customization moment | When rendering the Brick | @@ -72,4 +146,6 @@ const customization = { } }; ``` -]]] \ No newline at end of file +]]] + +------------ \ No newline at end of file diff --git a/guides/checkout-bricks/wallet-brick/change-appearance.es.md b/guides/checkout-bricks/wallet-brick/change-appearance.es.md index 6573cb4d7e..04261aa31d 100644 --- a/guides/checkout-bricks/wallet-brick/change-appearance.es.md +++ b/guides/checkout-bricks/wallet-brick/change-appearance.es.md @@ -4,6 +4,52 @@ > > Cambiar de aspecto +----[mlc]---- +Wallet Brick permite algunas personalizaciones visuales listadas en la tabla abajo, todas opcionales y del tipo `string`. + +Si la propiedad enviada está vacía, la pantalla mostrará el diseño definido por el *layout* predeterminado. Por otro lado, al enviar un valor alternativo, este reemplazará el valor predeterminado. + +| Clave | Opciones disponibles | Predeterminado | +|--- |--- | --- | --- | +| theme | default ou black | default | +| customStyle.valuePropColor | Para el tema **default**, `valuePropColor` puede ser **blue ou white**, mientras que para el tema **dark**, `valuePropColor` puede ser **black**. | Para el tema **default**, el **predeterminado es blue**, mientras que para el tema **dark**, el **predeterminado es black**. | +| customStyle.buttonHeight | Mínimo: 48px.
Máximo: libre elección. | 48px | +| customStyle.borderRadius | Mínimo: livre escolha.
Máximo: libre elección. | 6px | +| customStyle.verticalPadding | Mínimo: 8px.
Máximo: libre elección. | 8px | +| customStyle.horizontalPadding | Mínimo: 0px.
Máximo: libre elección. | 0px | + +[[[ +```javascript +const settings = { + ..., + customization: { + theme:'dark', + customStyle: { + valueProp: 'practicality', + valuePropColor: 'black', + borderRadius: '10px', + verticalPadding: '10px', + horizontalPadding: '10px', + } + } +} +``` +```react-jsx +const customization = { + theme:'dark', + customStyle: { + valueProp: 'practicality', + valuePropColor: 'black', + borderRadius: '10px', + verticalPadding: '10px', + horizontalPadding: '10px', + } +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- ## Propiedades de estilo | - | Descripción | @@ -11,7 +57,7 @@ | Momento de personalización | Al renderizar el Brick | | Propiedad | customization.visual.{buttonBackground, buttonHeight, borderRadius, valuePropColor, verticalPadding, horizontalPadding} | | Tipo | String | -| Observaciones | Al enviar una propiedad vacía, la pantalla presentará el aspecto definido por el layout predeterminado que se muestra después de la [renderización del Brick](/developers/es/docs/checkout-bricks/wallet-brick/default-rendering#bookmark_renderizar_o_brick). Por otro lado, al enviar un valor alternativo, reemplazará el valor predeterminado. Para comprobar cuáles son los valores por defecto, consulta la tabla a continuación. | +| Observaciones | Al enviar una propiedad vacía, la pantalla presentará el aspecto definido por el *layout* predeterminado que se muestra después de la [renderización del Brick](/developers/es/docs/checkout-bricks/wallet-brick/default-rendering#bookmark_renderizar_o_brick). Por otro lado, al enviar un valor alternativo, reemplazará el valor predeterminado. Para comprobar cuáles son los valores por defecto, consulta la tabla a continuación. | | Clave | Opciones disponibles | Predeterminado | Observaciones | |--- |--- | --- | --- | @@ -41,12 +87,40 @@ const customization = { borderRadius: '16px', } }; - ``` ]]] -## Ocultar texto de propuesta de valor +------------ +## Ocultar texto de propuesta de valor (valueProp) + +----[mlc]---- +También es posible ocultar el texto de la propuesta de valor pasando el valor `boolean true` a la propiedad `customStyle.hideValueProp`. El **valor predeterminado** es `false`. + +[[[ +```javascript +const settings = { + ..., + customization: { + theme: 'default', + customStyle: { + hideValueProp: true, + } + } +} +``` +```react-jsx +const customization = { + theme: 'default', + customStyle: { + hideValueProp: true, + } +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- | - | Descripción | | --- | --- | | Momento de personalización | Al renderizar el Brick | @@ -73,4 +147,6 @@ const customization = { }; ``` -]]] \ No newline at end of file +]]] + +------------ \ No newline at end of file diff --git a/guides/checkout-bricks/wallet-brick/change-appearance.pt.md b/guides/checkout-bricks/wallet-brick/change-appearance.pt.md index d3508110f3..50f8df76bd 100644 --- a/guides/checkout-bricks/wallet-brick/change-appearance.pt.md +++ b/guides/checkout-bricks/wallet-brick/change-appearance.pt.md @@ -4,6 +4,52 @@ > > Alterar visual +----[mlc]---- +Wallet Brick permite algumas customizações visuais listadas na tabela abaixo, todas opcionais e do tipo `string`. + +Caso a propriedade enviada esteja vazia, a tela apresentará o visual definido pelo *layout* padrão. Por outro lado, ao enviar um valor alternativo, este substituirá o valor padrão. + +| Chave | Opções disponíveis | Padrão | +|--- |--- | --- | --- | +| theme | default ou black | default | +| customStyle.valuePropColor | Para o tema **default**, `valuePropColor` pode ser **blue ou white**, enquanto que para o tema **dark**, `valuePropColor` pode ser **black**. | Para o tema **default**, o **padrão é blue**, enquanto que para o tema **dark**, o **padrão é black**. | +| customStyle.buttonHeight | Mínimo: 48px.
Máximo: livre escolha. | 48px | +| customStyle.borderRadius | Mínimo: livre escolha.
Máximo: livre escolha. | 6px | +| customStyle.verticalPadding | Mínimo: 8px.
Máximo: livre escolha. | 8px | +| customStyle.horizontalPadding | Mínimo: 0px.
Máximo: livre escolha. | 0px | + +[[[ +```javascript +const settings = { + ..., + customization: { + theme:'dark', + customStyle: { + valueProp: 'practicality', + valuePropColor: 'black', + borderRadius: '10px', + verticalPadding: '10px', + horizontalPadding: '10px', + } + } +} +``` +```react-jsx +const customization = { + theme:'dark', + customStyle: { + valueProp: 'practicality', + valuePropColor: 'black', + borderRadius: '10px', + verticalPadding: '10px', + horizontalPadding: '10px', + } +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- ## Propriedades de estilo | - | Descrição | @@ -11,7 +57,7 @@ | Momento de customização | Ao renderizar Brick | | Propriedade | customization.visual.{buttonBackground, buttonHeight, borderRadius, valuePropColor, verticalPadding, horizontalPadding} | | Tipo | String | -| Observações | Ao enviar uma propriedade vazia, a tela apresentará o visual definido pelo layout padrão exibido após a [rendereização do Brick](/developers/pt/docs/checkout-bricks/wallet-brick/default-rendering#bookmark_renderizar_o_brick). Por outro lado, ao se enviar um valor alternativo, este substituirá o valor padrão. Para verificar quais são os valores alternativos, veja a tabela a seguir.| +| Observações | Ao enviar uma propriedade vazia, a tela apresentará o visual definido pelo *layout* padrão exibido após a [rendereização do Brick](/developers/pt/docs/checkout-bricks/wallet-brick/default-rendering#bookmark_renderizar_o_brick). Por outro lado, ao se enviar um valor alternativo, este substituirá o valor padrão. Para verificar quais são os valores alternativos, veja a tabela a seguir.| | Chave | Opções disponíveis | Padrão | Observações | |--- |--- | --- | --- | @@ -41,12 +87,40 @@ const customization = { borderRadius: '16px', } }; - ``` ]]] -## Ocultar texto da proposta de valor +------------ +## Ocultar texto da proposta de valor (valueProp) + +----[mlc]---- +Também é possível ocultar o texto da proposta de valor passando o valor `boolean true` para a propriedade `customStyle.hideValueProp`. O **valor padrão** é `false`. + +[[[ +```javascript +const settings = { + ..., + customization: { + theme: 'default', + customStyle: { + hideValueProp: true, + } + } +} +``` +```react-jsx +const customization = { + theme: 'default', + customStyle: { + hideValueProp: true, + } +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- | - | Descrição | |--- |--- | | Momento de customização | Ao renderizar Brick | @@ -73,4 +147,6 @@ const customization = { }; ``` -]]] \ No newline at end of file +]]] + +------------ \ No newline at end of file diff --git a/guides/checkout-bricks/wallet-brick/change-texts.en.md b/guides/checkout-bricks/wallet-brick/change-texts.en.md index 9f711c47fa..f6943de3fc 100644 --- a/guides/checkout-bricks/wallet-brick/change-texts.en.md +++ b/guides/checkout-bricks/wallet-brick/change-texts.en.md @@ -4,10 +4,19 @@ > > Change texts -Wallet Brick offers two reading levels: the **call to action (button)** and the **value proposition (Value Prop)**. In both cases, the text can be customized according to the options provided by Mercado Pago. +----[mlc]---- +Wallet Brick is **composed of the button and the value proposition** (`valueProp`), which can be customized according to the options provided by Mercado Pago. + +There are two themes available: the **default** (also used when no configuration is specified) and **dark**. Choosing a theme affects the background color of the button, the value proposition, and the color of the images inside the button. + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- +Wallet Brick offers two reading levels: the **call to action (button)** and the **value proposition** (`valueProp`). In both cases, the text can be customized according to the options provided by Mercado Pago. The "call to action" is divided into two parts: the action, determined by the `Action` property, and the complement of the action, determined by the `Action Complement` property. +------------ + > WARNING > > Attention @@ -25,12 +34,23 @@ Check below the available texts for modification, how they are organized in the ![wallet-brick-actioncomplement](checkout-bricks/wallet-brick-actioncomplement-en.png) +----[mlb, mlm, mlb]---- | Key | Available options | Default | |--- |--- | --- | | action | pay, buy | pay | | actionComplement |brand, amount | brand | | valueProp | practicality, convenience_all, security_details, security_safety, smart_option, convenience_credits, payment_methods_logos | security_safety | +------------ +----[mpe, mco, mlu, mlc]---- +| Key | Available options | Default | +|--- |--- | --- | +| action | pay, buy | pay | +| actionComplement |brand, amount | brand | +| valueProp | practicality, security_details, security_safety, smart_option, payment_methods_logos | security_safety | + +------------ + See the texts related to each option: ----[mlb, mla, mlm]---- @@ -57,7 +77,6 @@ See the texts related to each option: |actionComplement |brand | with Mercado Pago | |actionComplement |amount | Purchase amount obtained through preference, in the currency format of the payment. | |valueProp |practicality | Use saved cards or your account balance | -|valueProp |convenience_all | Installment with or without card | |valueProp |security_details | Protection for your data | |valueProp |security_safety | Pay securely | |valueProp |smart_option| The text will be chosen automatically by Wallet Brick to increase the chances of sale according to the characteristics of the purchase. | @@ -98,6 +117,31 @@ When testing your integration, make sure that the `action`, `actionComplement`, ------------ +----[mlc]---- +[[[ +```javascript +const settings = { + ..., + customization: { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } + } +} +``` +```react-jsx +const customization = { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- [[[ ```javascript const settings = { @@ -123,4 +167,6 @@ const customization = { } }; ``` -]]] \ No newline at end of file +]]] + +------------ \ No newline at end of file diff --git a/guides/checkout-bricks/wallet-brick/change-texts.es.md b/guides/checkout-bricks/wallet-brick/change-texts.es.md index bd7d9852ee..fdc3d557c2 100644 --- a/guides/checkout-bricks/wallet-brick/change-texts.es.md +++ b/guides/checkout-bricks/wallet-brick/change-texts.es.md @@ -4,10 +4,19 @@ > > Cambiar textos -Wallet Brick ofrece dos niveles de lectura: el **call to action (botón)** y la **propuesta de valor (Value Prop)**. En ambos casos, el texto se puede personalizar de acuerdo a las opciones brindadas por Mercado Pago. +----[mlc]---- +Wallet Brick está **compuesto por el botón y la propuesta de valor** (`valueProp`), que puede ser personalizada de acuerdo con las opciones disponibles en Mercado Pago. + +Hay dos temas disponibles: el **default** (también utilizado cuando no se especifica ninguna configuración) y el **dark**. La elección del tema impacta el color de fondo del botón, de la propuesta de valor y el color de las imágenes dentro del botón. + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- +Wallet Brick ofrece dos niveles de lectura: el **call to action (botón)** y la **propuesta de valor** (`valueProp`). En ambos casos, el texto se puede personalizar de acuerdo a las opciones brindadas por Mercado Pago. El _call to action_ se divide en dos partes: la acción, determinada por la propiedad `Action`, y el complemento de la acción, determinado por la propiedad `Action Complement`. +------------ + > WARNING > > Atención @@ -23,21 +32,32 @@ El _call to action_ se divide en dos partes: la acción, determinada por la prop Consulta a continuación los textos disponibles para cambiar, cómo se organizan en la pantalla y un ejemplo de código. -----[mla]---- -![wallet-brick-actioncomplement](checkout-bricks/wallet-brick-actioncomplement-es-mla.png) +----[mlc]---- +![wallet-brick-actioncomplement](checkout-bricks/wallet-brick-actioncomplement-es-all.png) ------------ -----[mlb, mlm, mpe, mco, mlu, mlc]---- -![wallet-brick-actioncomplement](checkout-bricks/wallet-brick-actioncomplement-es-all.png) +----[mlb, mla, mlm, mpe, mco, mlu]---- +![wallet-brick-actioncomplement](checkout-bricks/wallet-brick-actioncomplement-es.png) ------------ +----[mlb, mlm, mlb]---- | Clave | Opciones disponibles | Predeterminado | |--- |--- | --- | | action | pay, buy | pay | | actionComplement |brand, amount | brand | | valueProp | practicality, convenience_all, security_details, security_safety, smart_option, convenience_credits, payment_methods_logos | security_safety | +------------ +----[mpe, mco, mlu, mlc]---- +| Clave | Opciones disponibles | Predeterminado | +|--- |--- | --- | +| action | pay, buy | pay | +| actionComplement |brand, amount | brand | +| valueProp | practicality, security_details, security_safety, smart_option, payment_methods_logos | security_safety | + +------------ + Consulta los textos relacionados con cada opción: ----[mlm]---- @@ -80,7 +100,6 @@ Consulta los textos relacionados con cada opción: |actionComplement |brand | con Mercado Pago | |actionComplement |amount | Monto de la compra obtenido a través de la preferencia, en el formato de la moneda del pago. | |valueProp |practicality | Usá tarjetas guardadas o dinero en cuenta | -|valueProp |convenience_all | Cuotas con o sin tarjeta | |valueProp |security_details | Todos tus datos protegidos | |valueProp |security_safety | Pagá de forma segura | |valueProp |smart_option| El texto será elegido automáticamente por Wallet Brick para aumentar las posibilidades de venta según las características de la compra. | @@ -121,6 +140,31 @@ Al probar tu integración, asegúrate de que la `action`, `actionComplement` y ` ------------ +----[mlc]---- +[[[ +```javascript +const settings = { + ..., + customization: { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } + } +} +``` +```react-jsx +const customization = { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- [[[ ```javascript const settings = { @@ -146,4 +190,6 @@ const customization = { } }; ``` -]]] \ No newline at end of file +]]] + +------------ \ No newline at end of file diff --git a/guides/checkout-bricks/wallet-brick/change-texts.pt.md b/guides/checkout-bricks/wallet-brick/change-texts.pt.md index 33c00118fe..bb15fb1f1d 100644 --- a/guides/checkout-bricks/wallet-brick/change-texts.pt.md +++ b/guides/checkout-bricks/wallet-brick/change-texts.pt.md @@ -4,10 +4,19 @@ > > Alterar textos -O Wallet Brick oferece dois níveis de leitura: o **call to action (botão)** e a **proposta de valor (Value Prop)**. Em ambos os casos, o texto pode ser customizado de acordo com as opções disponibilizadas pelo Mercado Pago. +----[mlc]---- +O Wallet Brick é **composto pelo botão e a proposta de valor** (`valueProp`), que pode ser customizada de acordo com as opções disponibilizadas pelo Mercado Pago. + +Há dois temas disponíveis: o **default** (também usado quando nenhuma configuração for especificada) e o **dark**. A escolha do tema impacta a cor de fundo do botão, da proposta de valor e a cor das imagens de dentro do botão. + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- +O Wallet Brick oferece dois níveis de leitura: o **call to action (botão)** e a **proposta de valor** (`valueProp`). Em ambos os casos, o texto pode ser customizado de acordo com as opções disponibilizadas pelo Mercado Pago. O _call to action_ é separado em duas partes: a ação, determinada pela propriedade `Action`, e o complemento da ação, determinado pela propriedade `Action Complement`. +------------ + > WARNING > > Atenção @@ -25,12 +34,23 @@ Confira abaixo os textos disponíveis para alteração, como eles se organizam n ![wallet-brick-actioncomplement](checkout-bricks/wallet-brick-actioncomplement-pt.png) +----[mlb, mlm, mlb]---- | Chave | Opções disponíveis | Padrão | |--- |--- | --- | | action | pay, buy | pay | | actionComplement |brand, amount | brand | | valueProp | practicality, convenience_all, security_details, security_safety, smart_option, convenience_credits, payment_methods_logos | security_safety | +------------ +----[mpe, mco, mlu, mlc]---- +| Chave | Opções disponíveis | Padrão | +|--- |--- | --- | +| action | pay, buy | pay | +| actionComplement |brand, amount | brand | +| valueProp | practicality, security_details, security_safety, smart_option, payment_methods_logos | security_safety | + +------------ + Veja quais são os textos relacionados a cada opção: ----[mlb, mla, mlm]---- @@ -57,7 +77,6 @@ Veja quais são os textos relacionados a cada opção: |actionComplement |brand | com Mercado Pago | |actionComplement |amount | Valor da compra obtido através da preferência, no formato da moeda do pagamento. | |valueProp |practicality | Use cartões salvos ou seu saldo em conta | -|valueProp |convenience_all | Parcelamento com ou sem cartão | |valueProp |security_details | Proteção para seus dados | |valueProp |security_safety | Pague com segurança | |valueProp |smart_option| O texto será escolhido automaticamente pelo Wallet Brick para aumentar as chances de venda de acordo com as características da compra. | @@ -98,6 +117,31 @@ Ao testar sua integração verifique se a `action`, o `actionComplement` e a `va ------------ +----[mlc]---- +[[[ +```javascript +const settings = { + ..., + customization: { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } + } +} +``` +```react-jsx +const customization = { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- [[[ ```javascript const settings = { @@ -123,4 +167,6 @@ const customization = { } }; ``` -]]] \ No newline at end of file +]]] + +------------ \ No newline at end of file diff --git a/guides/checkout-bricks/wallet-brick/default-rendering.en.md b/guides/checkout-bricks/wallet-brick/default-rendering.en.md index 2d71de499c..bcc028a722 100644 --- a/guides/checkout-bricks/wallet-brick/default-rendering.en.md +++ b/guides/checkout-bricks/wallet-brick/default-rendering.en.md @@ -23,6 +23,56 @@ Before rendering the Wallet Brick, first execute the [initialization steps](/dev Create Brick's startup configuration. +----[mlc]---- +[[[ +```Javascript +const renderWalletBrick = async (bricksBuilder) => { + await bricksBuilder.create("wallet", "walletBrick_container", { + initialization: { + preferenceId: "", + }, + customization: { + theme: "default", + customStyle: { + valueProp: "practicality", + valuePropColor: "white", + }, + }, + }); +}; + +renderWalletBrick(bricksBuilder); +``` +```react-jsx +const initialization = { + preferenceId: '', +} + +const customization = { + texts: { + valueProp: 'smart_option', + }, +} + +const onSubmit = async (formData) => { + // callback called when clicking on Wallet Brick + // this is possible because Brick is a button +}; + +const onError = async (error) => { + // callback called for all Brick error cases + console.log(error); +}; + +const onReady = async () => { + // Callback called when Brick is ready. + // Here, you can hide loadings on your website, for example. +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- [[[ ```Javascript const renderWalletBrick = async (bricksBuilder) => { @@ -69,6 +119,8 @@ const onReady = async () => { ``` ]]] +------------ + > WARNING > > Attention diff --git a/guides/checkout-bricks/wallet-brick/default-rendering.es.md b/guides/checkout-bricks/wallet-brick/default-rendering.es.md index 8a95ea0bad..e7289f1403 100644 --- a/guides/checkout-bricks/wallet-brick/default-rendering.es.md +++ b/guides/checkout-bricks/wallet-brick/default-rendering.es.md @@ -23,6 +23,56 @@ Antes de realizar la renderización del Wallet Brick, primero ejecute los [pasos Crea la configuración de inicio de Brick +----[mlc]---- +[[[ +```Javascript +const renderWalletBrick = async (bricksBuilder) => { + await bricksBuilder.create("wallet", "walletBrick_container", { + initialization: { + preferenceId: "", + }, + customization: { + theme: "default", + customStyle: { + valueProp: "practicality", + valuePropColor: "white", + }, + }, + }); +}; + +renderWalletBrick(bricksBuilder); +``` +```react-jsx +const initialization = { + preferenceId: '', +} + +const customization = { + texts: { + valueProp: 'smart_option', + }, +} + +const onSubmit = async (formData) => { + // callback llamado al hacer clic en Wallet Brick + // esto es posible porque Brick es un botón +}; + +const onError = async (error) => { + // callback llamado para todos los casos de error de Brick + console.log(error); +}; + +const onReady = async () => { + // Callback llamado cuando Brick esté listo. + // Aquí puedes ocultar loadings en tu sitio, por ejemplo. +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- [[[ ```Javascript const renderWalletBrick = async (bricksBuilder) => { @@ -69,6 +119,8 @@ const onReady = async () => { ``` ]]] +------------ + > WARNING > > Atención @@ -107,12 +159,12 @@ import { Wallet } from '@mercadopago/sdk-react'; El resultado de renderizar el Brick debe ser como se muestra en la imagen a continuación, presentando un texto y un aspecto predeterminado. -----[mla]---- -![wallet-brick-render](checkout-bricks/wallet-brick-render-es-mla.png) +----[mlc]---- +![wallet-brick-render](checkout-bricks/wallet-brick-render-es-all.png) ------------ -----[mlb, mlm, mlu, mlc, mco, mpe]---- -![wallet-brick-render](checkout-bricks/wallet-brick-render-es-all.png) +----[mlb, mlm, mla, mlu, mco, mpe]---- +![wallet-brick-render](checkout-bricks/wallet-brick-render-es.png) ------------ diff --git a/guides/checkout-bricks/wallet-brick/default-rendering.pt.md b/guides/checkout-bricks/wallet-brick/default-rendering.pt.md index 5673b3d194..42731f40c0 100644 --- a/guides/checkout-bricks/wallet-brick/default-rendering.pt.md +++ b/guides/checkout-bricks/wallet-brick/default-rendering.pt.md @@ -23,6 +23,56 @@ Antes de realizar a renderização do Wallet Brick, primeiro execute os [passos Crie a configuração de inicialização do Brick. +----[mlc]---- +[[[ +```Javascript +const renderWalletBrick = async (bricksBuilder) => { + await bricksBuilder.create("wallet", "walletBrick_container", { + initialization: { + preferenceId: "", + }, + customization: { + theme: "default", + customStyle: { + valueProp: "practicality", + valuePropColor: "white", + }, + }, + }); +}; + +renderWalletBrick(bricksBuilder); +``` +```react-jsx +const initialization = { + preferenceId: '', +} + +const customization = { + texts: { + valueProp: 'smart_option', + }, +} + +const onSubmit = async (formData) => { + // callback chamado ao clicar no Wallet Brick + // isso é possível porque o Brick é um botão +}; + +const onError = async (error) => { + // callback chamado para todos os casos de erro do Brick + console.log(error); +}; + +const onReady = async () => { + // Callback chamado quando o Brick estiver pronto. + // Aqui você pode ocultar loadings do seu site, por exemplo. +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- [[[ ```Javascript const renderWalletBrick = async (bricksBuilder) => { @@ -69,6 +119,8 @@ const onReady = async () => { ``` ]]] +------------ + > WARNING > > Atenção From 3a61a4c08a980e3bdfea7dc3276ea75335ceff6e Mon Sep 17 00:00:00 2001 From: Heitor Galdino Date: Wed, 22 Jan 2025 16:29:56 -0300 Subject: [PATCH 04/20] 4 --- .../checkout-pro/integrate-chopro-web.en.md | 49 +++++++++++++++++- .../checkout-pro/integrate-chopro-web.es.md | 51 +++++++++++++++++-- .../checkout-pro/integrate-chopro-web.pt.md | 51 +++++++++++++++++-- 3 files changed, 143 insertions(+), 8 deletions(-) diff --git a/guides/checkout-pro/integrate-chopro-web.en.md b/guides/checkout-pro/integrate-chopro-web.en.md index d7ff3be8f1..f6285afa21 100644 --- a/guides/checkout-pro/integrate-chopro-web.en.md +++ b/guides/checkout-pro/integrate-chopro-web.en.md @@ -6,8 +6,15 @@ First, make sure you have **created the [preference in your backend](/developers/en/docs/checkout-pro/integrate-preferences)**. +----[mlc]---- +Then, install the frontend (`Javascript`) SDK from Mercado Pago, which is used to securely access Mercado Pago's features and add the payment button to your project. + +------------ +----[mla, mlm, mlb, mco, mpe, mlu]---- Then, you will need to install the Mercado Pago frontend SDK in your project to add the payment button. +------------ + The installation is basically done in **two steps**: 1. [Add the Mercado Pago SDK to the project with your configured credentials](/developers/en/docs/checkout-pro/integrate-checkout-pro/web#bookmark_add_the_mercado_pago_sdk_to_the_project_with_your_configured_credentials) @@ -19,7 +26,8 @@ The installation is basically done in **two steps**: > > Add the Mercado Pago SDK to the project with your configured credentials -To include the Mercado Pago.js SDK, add the code below to the project's HTML or install the library for ReactJs. +----[mlc]---- +To include the Javascript SDK from Mercado Pago, add the following code to your project's HTML or install the library for ReactJS. [[[ ```html @@ -31,6 +39,22 @@ npm install @mercadopago/sdk-react ``` ]]] +------------ +----[mla, mlm, mlb, mco, mpe, mlu]---- +To include the Mercado Pago.js SDK, add the code below to the project's HTML or install the library for ReactJs. + +[[[ +```html +// SDK MercadoPago.js + +``` +```node +npm install @mercadopago/sdk-react @0.0.23 +``` +]]] + +------------ + Then, initialize the integration by setting your [public key](/developers/en/docs/checkout-pro/additional-content/your-integrations/credentials) using the following JavaScript code. [[[ @@ -66,6 +90,25 @@ For JavaScript/HTML integrations, via CDN, you will still need to create an iden At the end of the previous step, **initialize your checkout using the ID of the previously created preference with the identifier of the element where the button should be displayed**, if you are using the `Javascript/HTML` integration, or by instantiating the component, in the case from the `React` library, as shown in the examples below. +----[mlc]---- +[[[ +```Javascript +mp.bricks().create("wallet", "wallet_container", { + initialization: { + preferenceId: "", + }, + customization: { + theme: 'default', + } +}); +``` +```react-jsx +npm install @mercadopago/sdk-react +``` +]]] + +------------ +----[mla, mlb, mlm, mco, mpe, mlu]---- [[[ ```Javascript mp.bricks().create("wallet", "wallet_container", { @@ -80,10 +123,12 @@ customization: { }); ``` ```react-jsx -' }} customization={{ texts:{ valueProp: 'smart_option'}}} /> +npm install @mercadopago/sdk-react @0.0.23 ``` ]]] +------------ + You will then be able to observe the payment button rendered on your page. ![wallet-render](cow/cow-render-wallet-en.png) diff --git a/guides/checkout-pro/integrate-chopro-web.es.md b/guides/checkout-pro/integrate-chopro-web.es.md index 6b116fa171..860248a504 100644 --- a/guides/checkout-pro/integrate-chopro-web.es.md +++ b/guides/checkout-pro/integrate-chopro-web.es.md @@ -6,7 +6,14 @@ Primero, asegúrate de haber **creado la [preferencia en tu backend](/developers/es/docs/checkout-pro/integrate-preferences)**. -Luego, deberás instalar el SDK de frontend de Mercado Pago en tu proyecto para agregar el botón de pago. +----[mlc]---- +A continuación, instala el SDK de **frontend** (`Javascript`) de Mercado Pago, que se utiliza para acceder de forma segura a las funcionalidades de Mercado Pago y añadir el botón de pago a tu proyecto. + +------------ +----[mla, mlm, mlb, mco, mpe, mlu]---- +Luego, deberás instalar el SDK de **frontend** de Mercado Pago en tu proyecto para agregar el botón de pago. + +------------ La instalación se realiza, básicamente, en **dos pasos**: @@ -19,7 +26,8 @@ La instalación se realiza, básicamente, en **dos pasos**: > > Agregar el SDK de Mercado Pago al proyecto -Para incluir el SDK de Mercado Pago.js, agrega el siguiente código al HTML del proyecto o instala la biblioteca para ReactJs. +----[mlc]---- +Para incluir el SDK de Javascript de Mercado Pago, agrega el siguiente código al HTML de tu proyecto o instala la biblioteca para ReactJS. [[[ ```html @@ -31,6 +39,22 @@ npm install @mercadopago/sdk-react ``` ]]] +------------ +----[mla, mlm, mlb, mco, mpe, mlu]---- +Para incluir el SDK de Mercado Pago.js, agrega el siguiente código al HTML del proyecto o instala la biblioteca para ReactJs. + +[[[ +```html +// SDK MercadoPago.js + +``` +```node +npm install @mercadopago/sdk-react @0.0.23 +``` +]]] + +------------ + Luego, inicializa la integración configurando tu [clave pública](/developers/es/docs/checkout-pro/additional-content/your-integrations/credentials) usando el siguiente código JavaScript. [[[ @@ -64,6 +88,25 @@ Para las integraciones de JavaScript/HTML, a través de CDN, deberás crear un c Al finalizar el paso anterior, **inicializa tu checkout usando el ID de la preferencia previamente creada con el identificador del elemento donde se debe mostrar el botón**, si estás usando la integración `Javascript/HTML`, o instanciando el componente, en el caso de la biblioteca `React`, como se muestra en los ejemplos a continuación. +----[mlc]---- +[[[ +```Javascript +mp.bricks().create("wallet", "wallet_container", { + initialization: { + preferenceId: "", + }, + customization: { + theme: 'default', + } +}); +``` +```react-jsx +npm install @mercadopago/sdk-react +``` +]]] + +------------ +----[mla, mlb, mlm, mco, mpe, mlu]---- [[[ ```Javascript mp.bricks().create("wallet", "wallet_container", { @@ -78,10 +121,12 @@ customization: { }); ``` ```react-jsx -' }} customization={{ texts:{ valueProp: 'smart_option'}}} /> +npm install @mercadopago/sdk-react @0.0.23 ``` ]]] +------------ + A continuación, encontrarás el botón de pago que se muestra en tu página. ![wallet-render](cow/cow-render-wallet-es.png) diff --git a/guides/checkout-pro/integrate-chopro-web.pt.md b/guides/checkout-pro/integrate-chopro-web.pt.md index 9a33d0fdc8..87e8c24035 100644 --- a/guides/checkout-pro/integrate-chopro-web.pt.md +++ b/guides/checkout-pro/integrate-chopro-web.pt.md @@ -6,7 +6,14 @@ Primeiro, certifique-se de ter **criado a [preferência no seu backend](/developers/pt/docs/checkout-pro/integrate-preferences)**. -Em seguida, instale o SDK de frontend do Mercado Pago no seu projeto para adicionar o botão de pagamento. +----[mlc]---- +Em seguida, instale o SDK de **frontend** (`Javascript`) do Mercado Pago, usado para acessar as funcionalidades do Mercado Pago com segurança e adicionar o botão de pagamento no seu projeto. + +------------ +----[mla, mlm, mlb, mco, mpe, mlu]---- +Em seguida, instale o SDK de **frontend** do Mercado Pago no seu projeto para adicionar o botão de pagamento. + +------------ A instalação é feita em **duas etapas**: @@ -19,7 +26,8 @@ A instalação é feita em **duas etapas**: > > Adicionar o SDK do Mercado Pago ao projeto -Para incluir o SDK do Mercado Pago.js, adicione o seguinte código ao HTML do seu projeto ou instale a biblioteca para ReactJs. +----[mlc]---- +Para incluir o SDK Javascript do Mercado Pago, adicione o seguinte código ao HTML do seu projeto ou instale a biblioteca para ReactJS. [[[ ```html @@ -31,6 +39,22 @@ npm install @mercadopago/sdk-react ``` ]]] +------------ +----[mla, mlm, mlb, mco, mpe, mlu]---- +Para incluir o SDK do Mercado Pago.js, adicione o seguinte código ao HTML do seu projeto ou instale a biblioteca para ReactJs. + +[[[ +```html +// SDK MercadoPago.js + +``` +```node +npm install @mercadopago/sdk-react @0.0.23 +``` +]]] + +------------ + Em seguida, inicie a integração configurando sua [chave pública](/developers/pt/docs/checkout-pro/additional-content/your-integrations/credentials) usando o seguinte código JavaScript. [[[ @@ -64,6 +88,25 @@ Para integrações JavaScript/HTML, via CDN, você vai precisar ainda criar um c Ao finalizar a etapa anterior, **inicialize seu checkout utilizando o ID da preferência previamente criada com o identificador do elemento onde o botão deverá ser exibido**, caso esteja utilizando a integração `Javascript/HTML`, ou instanciando o componente, no caso da biblioteca `React`, conforme os exemplos abaixo. +----[mlc]---- +[[[ +```Javascript +mp.bricks().create("wallet", "wallet_container", { + initialization: { + preferenceId: "", + }, + customization: { + theme: 'default', + } +}); +``` +```react-jsx +npm install @mercadopago/sdk-react +``` +]]] + +------------ +----[mla, mlb, mlm, mco, mpe, mlu]---- [[[ ```Javascript mp.bricks().create("wallet", "wallet_container", { @@ -78,10 +121,12 @@ customization: { }); ``` ```react-jsx -' }} customization={{ texts:{ valueProp: 'smart_option'}}} /> +npm install @mercadopago/sdk-react @0.0.23 ``` ]]] +------------ + Em seguida, observe o botão de pagamento renderizado em sua página. ![wallet-render](cow/cow-render-wallet-pt.png) From 15523ae00e3d40201b801449048ae3c40885cdbc Mon Sep 17 00:00:00 2001 From: Heitor Galdino Date: Thu, 23 Jan 2025 17:45:11 -0300 Subject: [PATCH 05/20] final --- guides/checkout-bricks/introduction.en.md | 2 +- guides/checkout-bricks/introduction.es.md | 2 +- guides/checkout-bricks/introduction.pt.md | 2 +- guides/checkout-pro/integrate-chopro-web.en.md | 2 +- guides/checkout-pro/integrate-chopro-web.es.md | 2 +- guides/checkout-pro/integrate-chopro-web.pt.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/guides/checkout-bricks/introduction.en.md b/guides/checkout-bricks/introduction.en.md index 461c3c10d1..cd02b3e47b 100644 --- a/guides/checkout-bricks/introduction.en.md +++ b/guides/checkout-bricks/introduction.en.md @@ -12,7 +12,7 @@ The Brick has responsive capabilities in terms of the size within the screen. Th ----[mlc]---- -![responsiveness-mlb](checkout-bricks/responsiveness-mlc-en.png) +![responsiveness-mlc](checkout-bricks/responsiveness-all-en.png) ------------ ----[mlb]---- diff --git a/guides/checkout-bricks/introduction.es.md b/guides/checkout-bricks/introduction.es.md index c7959f7e9a..675b605ec6 100644 --- a/guides/checkout-bricks/introduction.es.md +++ b/guides/checkout-bricks/introduction.es.md @@ -12,7 +12,7 @@ El Brick posee capacidades responsivas en términos del tamaño del espacio en l ----[mlc]---- -![responsiveness-mlb](checkout-bricks/responsiveness-mlc-es.png) +![responsiveness-mlc](checkout-bricks/responsiveness-all-es.png) ------------ ----[mlb]---- diff --git a/guides/checkout-bricks/introduction.pt.md b/guides/checkout-bricks/introduction.pt.md index 5b990f6358..2d1f7c14c6 100644 --- a/guides/checkout-bricks/introduction.pt.md +++ b/guides/checkout-bricks/introduction.pt.md @@ -12,7 +12,7 @@ O Brick possui capacidades responsivas no que tange o tamanho do espaço em tela ----[mlc]---- -![responsiveness-mlb](checkout-bricks/responsiveness-mlc-pt.png) +![responsiveness-mlc](checkout-bricks/responsiveness-all-pt.png) ------------ ----[mlb]---- diff --git a/guides/checkout-pro/integrate-chopro-web.en.md b/guides/checkout-pro/integrate-chopro-web.en.md index f6285afa21..eb4c4712ed 100644 --- a/guides/checkout-pro/integrate-chopro-web.en.md +++ b/guides/checkout-pro/integrate-chopro-web.en.md @@ -129,7 +129,7 @@ npm install @mercadopago/sdk-react @0.0.23 ------------ -You will then be able to observe the payment button rendered on your page. +You will then be able to observe the payment button rendered on your page. If you want to make changes to the text or a visual change, please visit the sections on [Change texts](/developers/en/docs/checkout-bricks/wallet-brick/visual-customizations/change-texts) and [Change appearance](/developers/en/docs/checkout-bricks/wallet-brick/visual-customizations/change-appearance). ![wallet-render](cow/cow-render-wallet-en.png) diff --git a/guides/checkout-pro/integrate-chopro-web.es.md b/guides/checkout-pro/integrate-chopro-web.es.md index 860248a504..a1ba5bb78c 100644 --- a/guides/checkout-pro/integrate-chopro-web.es.md +++ b/guides/checkout-pro/integrate-chopro-web.es.md @@ -127,7 +127,7 @@ npm install @mercadopago/sdk-react @0.0.23 ------------ -A continuación, encontrarás el botón de pago que se muestra en tu página. +A continuación, encontrarás el botón de pago que se muestra en tu página. Si desea hacer **cambios en los textos o un cambio visual**, acceda a las secciones de [Cambiar textos](/developers/es/docs/checkout-bricks/wallet-brick/visual-customizations/change-texts) y [Cambiar de aspecto](/developers/es/docs/checkout-bricks/wallet-brick/visual-customizations/change-appearance). ![wallet-render](cow/cow-render-wallet-es.png) diff --git a/guides/checkout-pro/integrate-chopro-web.pt.md b/guides/checkout-pro/integrate-chopro-web.pt.md index 87e8c24035..963ef1eec6 100644 --- a/guides/checkout-pro/integrate-chopro-web.pt.md +++ b/guides/checkout-pro/integrate-chopro-web.pt.md @@ -127,7 +127,7 @@ npm install @mercadopago/sdk-react @0.0.23 ------------ -Em seguida, observe o botão de pagamento renderizado em sua página. +Em seguida, observe o botão de pagamento renderizado em sua página. Caso queira fazer **alterações nos textos ou uma alteração visual**, acesse as seções de [Alterar textos](/developers/pt/docs/checkout-bricks/wallet-brick/visual-customizations/change-texts) e [Alterar visual](/developers/pt/docs/checkout-bricks/wallet-brick/visual-customizations/change-appearance). ![wallet-render](cow/cow-render-wallet-pt.png) From 16c664951d08ca9e2662861b882545ddc98e00ac Mon Sep 17 00:00:00 2001 From: Heitor Galdino Date: Thu, 23 Jan 2025 19:48:56 -0300 Subject: [PATCH 06/20] livedemo --- guides/checkout-pro/integrate-preferences.en.md | 2 +- guides/checkout-pro/integrate-preferences.es.md | 2 +- guides/checkout-pro/integrate-preferences.pt.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/guides/checkout-pro/integrate-preferences.en.md b/guides/checkout-pro/integrate-preferences.en.md index 817878145c..1fe47f1e64 100644 --- a/guides/checkout-pro/integrate-preferences.en.md +++ b/guides/checkout-pro/integrate-preferences.en.md @@ -9,7 +9,7 @@ live_demo_code_action: - title: Try our Checkout Pro - description: Build the Checkout Pro visual experience in real-time. When you are all set, download or copy the generated code to add it to your website or share it with a developer. - link: /developers/en/live-demo/checkout-pro - - image:https://http2.mlstatic.com/storage/dx-devsite/docs-assets/custom-upload/2023/9/6/1696615115358-Group34359.png + - image: /images/cow/live-demo-cho-pro.png - linkName: Demo - buttonDescription: Build your Checkout Pro --- diff --git a/guides/checkout-pro/integrate-preferences.es.md b/guides/checkout-pro/integrate-preferences.es.md index c23217c0d9..7c6faa9ca6 100644 --- a/guides/checkout-pro/integrate-preferences.es.md +++ b/guides/checkout-pro/integrate-preferences.es.md @@ -9,7 +9,7 @@ live_demo_code_action: - title: Prueba nuestro Checkout Pro - description: Construye la experiencia visual de Checkout Pro en tiempo real. Cuando esté todo listo, descarga o copia el código generado para agregarlo a tu sitio o compartirlo con un desarrollador. - link: /developers/es/live-demo/checkout-pro - - image:https://http2.mlstatic.com/storage/dx-devsite/docs-assets/custom-upload/2023/9/6/1696615115358-Group34359.png + - image: /images/cow/live-demo-cho-pro.png - linkName: Demo - buttonDescription: Construir tu Checkout Pro --- diff --git a/guides/checkout-pro/integrate-preferences.pt.md b/guides/checkout-pro/integrate-preferences.pt.md index e2b0b7de5b..8a43e42579 100644 --- a/guides/checkout-pro/integrate-preferences.pt.md +++ b/guides/checkout-pro/integrate-preferences.pt.md @@ -9,7 +9,7 @@ live_demo_code_action: - title: Experimente nosso Checkout Pro - description: Construa a experiência visual do Checkout Pro em tempo real. Quando estiver tudo pronto, baixe ou copie o código gerado para adicionar no seu site ou compartilhar com um desenvolvedor. - link: /developers/pt/live-demo/checkout-pro - - image:https://http2.mlstatic.com/storage/dx-devsite/docs-assets/custom-upload/2023/9/6/1696615115358-Group34359.png + - image: /images/cow/live-demo-cho-pro.png - linkName: Demo - buttonDescription: Construir seu Checkout Pro --- From bc59c862324e9fe9e135d3fe3c49aa72e6d395b5 Mon Sep 17 00:00:00 2001 From: Heitor Galdino Date: Fri, 31 Jan 2025 15:40:18 -0300 Subject: [PATCH 07/20] retirada json exemplo de casos de uso --- reference/api-json/use-case-example.json | 7431 ---------------------- 1 file changed, 7431 deletions(-) delete mode 100644 reference/api-json/use-case-example.json diff --git a/reference/api-json/use-case-example.json b/reference/api-json/use-case-example.json deleted file mode 100644 index 7d596376d5..0000000000 --- a/reference/api-json/use-case-example.json +++ /dev/null @@ -1,7431 +0,0 @@ -{ - "url": "https://api.mercadopago.com", - "paths": { - "/v1/payments": { - "post": { - "tags": [ - "checkout-pro", - "subscriptions", - "checkout-api", - "checkout-bricks" - ], - "description": { - "en": "Create a payment and add all the information you need. Remember to add the payment details and the payer's information", - "pt": "Crie um pagamento e acrescente todas as informações que você precisa. Certifique-se de acrescentar os detalhes do pagamento e os detalhes do cliente", - "es": "Realiza la creación de un pago y agrega toda la información que necesites. Ten en cuenta de sumar el detalle del pago y los datos del pagador" - }, - "parameters": [ - { - "in": "header", - "name": "X-Idempotency-Key", - "required": false, - "schema": { - "type": "string", - "example": "0d5020ed-1af6-469c-ae06-c3bec19954bb" - }, - "description": { - "en": "This feature allows you to safely retry requests without the risk of accidentally performing the same action more than once. This is useful for avoiding errors, such as creating two identical payments, for example. To ensure that each request is unique, it's important to use an exclusive value in the header of your request. We suggest using a UUID V4 or random strings. It is important to note that, starting from 01/01, sending this parameter will become mandatory in all requests.", - "pt": "Esta função permite repetir solicitações de forma segura, sem o risco de realizar a mesma ação mais de uma vez por engano. Isso é útil para evitar erros, como a criação de dois pagamentos idênticos, por exemplo. Para garantir que cada solicitação seja única, é importante usar um valor exclusivo no header da sua solicitação. Sugerimos o uso de um UUID V4 ou strings randômicas. É importante salientar que, a partir de 01/01, o envio deste parâmetro passará a ser obrigatório em todas as requisições.", - "es": "Esta función permite repetir solicitudes de manera segura, sin el riesgo de realizar la misma acción más de una vez por error. Esto es útil para evitar errores, como la creación de dos pagos idénticos, por ejemplo. Para garantizar que cada solicitud sea única, es importante utilizar un valor exclusivo en el header de su solicitud. Sugerimos el uso de un UUID V4 o strings aleatorias. Es importante destacar que, a partir del 01/01, el envío de este parámetro se volverá obligatorio en todas las solicitudes." - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "additional_info": { - "type": "object", - "description": { - "en": "At Payments level, it's only data, and we only forward that information to other APIs like Risk, to perform scoring and prevent fraud, or to Tax, to determine them for international payments.", - "pt": "No nível de Pagamentos, são apenas dados e apenas encaminhamos essas informações para outras APIS, como Risco, para realizar pontuação e prevenir fraudes, para Impostos para determiná-los para pagamentos internacionais.", - "es": "En el nivel de Pagos, son solo datos y únicamente reenviamos esa información a otras API, como Riesgo, para realizar puntajes y prevenir fraudes, o a Impuestos, para determinarlos para pagos internacionales." - }, - "properties": { - "ip_address": { - "type": "string", - "description": { - "en": "Internal protocol (IP) that comes from the request (for bank transfer only).", - "pt": "Protocolo interno (IP) que provém do request (apenas para transferência bancária).", - "es": "Protocolo interno (IP) que proviene del request (solo para transferencia bancaria)." - } - }, - "items": { - "type": "array", - "description": { - "en": "List of items to be paid.", - "pt": "Lista de itens a pagar.", - "es": "Lista de ítems a pagar." - }, - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": { - "en": "It is the purchased product ad identifier. For example - “MLB2907679857”.", - "pt": "É o identificador do anúncio do produto comprado. Por exemplo - “MLB2907679857”.", - "es": "Es el identificador del anuncio del producto adquirido. Por ejemplo - “MLB2907679857”." - }, - "example": "MLB2907679857" - }, - "title": { - "type": "string", - "description": { - "en": "Item name.", - "pt": "Nome do item", - "es": "Nombre de ítem" - }, - "example": "Point Mini" - }, - "description": { - "type": "string", - "description": { - "en": "Long item description.", - "pt": "Descrição do artigo.", - "es": "Descripción de item." - }, - "example": "Point product for card payments via Bluetooth." - }, - "picture_url": { - "type": "string", - "description": { - "en": "Image URL.", - "pt": "URL da imagem.", - "es": "URL de imagen." - }, - "example": "https://http2.mlstatic.com/resources/frontend/statics/growth-sellers-landings/device-mlb-point-i_medium2x.png" - }, - "category_id": { - "type": "string", - "description": { - "en": "It is the category of the purchased item. It is possible to mention two main forms of category_id - categories inserted through a code, such as “MLB189908”, or those that are a tag, such as “phone”.", - "pt": "É a categoria do item que foi comprado. É possível citar duas formas principais de category_id - as categorias inseridas por meio de um código, como “MLB189908”, ou as que são uma tag, como “phone”.", - "es": "Es la categoría del ítem que se compró. Es posible citar dos formas principales de category_id - categorías insertadas a través de un código, como “MLB189908”, o aquellas que son una tag, como “phone”." - }, - "example": "electronics" - }, - "quantity": { - "type": "number", - "description": { - "en": "Item quantity. This parameter will return as an String.", - "pt": "Quantidade do produto. Este parâmetro será retornado como uma String.", - "es": "Cantidad de producto. Te devolveremos este parámetro como una String." - }, - "example": 1 - }, - "unit_price": { - "type": "number", - "description": { - "en": "Unit price of the purchased item. This parameter will return as an String.", - "pt": "Preço unitário do item comprado. Este parâmetro será retornado como uma String.", - "es": "Precio unitario del ítem comprado. Te devolveremos este parámetro como una String." - }, - "example": 58.8 - }, - "type": { - "type": "string", - "description": { - "en": "Type of item being sold", - "pt": "Tipo de item sendo vendido", - "es": "Tipo de ítem que se está vendiendo" - }, - "example": "electronics" - }, - "event_date": { - "type": "string", - "description": { - "en": "Event Date - Use the standard ISO 8601 format to input the date and time of the event. The format should be \"yyyy-MM-ddTHH:mm:ss.sssZ\". For example, to schedule an event for December 31, 2023, at 9:37:52 AM in the UTC-4 timezone, you would enter \"2023-12-31T09:37:52.000-04:00\".", - "pt": "Data do Evento - Utilize o formato padrão ISO 8601 para inserir a data e o horário do evento. O formato deve ser \"yyyy-MM-ddTHH:mm:ss.sssZ\". Por exemplo, para marcar um evento para o dia 31 de dezembro de 2023, às 9:37:52 AM, no fuso horário UTC-4, você deverá inserir - \"2023-12-31T09:37:52.000-04:00\".", - "es": "Fecha del Evento - Por favor, utilice el formato estándar ISO 8601 para introducir la fecha y hora del evento. El formato debe ser \"yyyy-MM-ddTHH:mm:ss.sssZ\". Por ejemplo, para programar un evento para el 31 de diciembre de 2023 a las 9:37:52 AM en la zona horaria UTC-4, deberá ingresar \"2023-12-31T09:37:52.000-04:00\"." - }, - "example": "2023-12-31T09:37:52.000-04:00" - }, - "warranty": { - "type": "boolean", - "description": { - "en": "Indicates if the product has warranty or not. True if it does, false if it doesn't.", - "pt": "Indica se o produto tem garantia ou não. True se tiver, false se não.", - "es": "Indica si el producto tiene garantía o no. True si tiene, false si no." - } - }, - "category_descriptor": { - "type": "object", - "properties": { - "passenger": { - "type": "object", - "properties": { - "first_name": { - "type": "string", - "description": { - "en": "Passenger's first name.", - "pt": "Primeiro nome do passageiro", - "es": "Nombre del pasajero" - } - }, - "last_name": { - "type": "string", - "description": { - "en": "Passenger's last name.", - "pt": "Sobrenome do passageiro", - "es": "Apellido del pasajero" - } - } - } - }, - "route": { - "type": "object", - "properties": { - "departure": { - "type": "string", - "description": { - "en": "Departure city.", - "pt": "Cidade de partida", - "es": "Ciudad de salida" - } - }, - "destination": { - "type": "string", - "description": { - "en": "Destination city.", - "pt": "Cidade de destino", - "es": "Ciudad de destino" - } - }, - "departure_date_time": { - "type": "string", - "description": { - "en": "Departure date and time. Valid format is as follows - \"yyyy-MM-ddTHH:mm:ss.sssZ\". Example - 2023-12-31T09:37:52.000-04:00.", - "pt": "Data e hora de partida. O formato válido é o seguinte - \"yyyy-MM-ddTHH:mm:ss.sssZ\". Exemplo - 2023-12-31T09:37:52.000-04:00.", - "es": "Fecha y hora de salida. El formato válido es el siguiente - \"yyyy-MM-ddTHH:mm:ss.sssZ\". Ejemplo - 2023-12-31T09:37:52.000-04:00." - } - }, - "arrival_date_time": { - "type": "string", - "description": { - "en": "Arrival date and time. Valid format is as follows - \"yyyy-MM-ddTHH:mm:ss.sssZ\". Example - 2023-12-31T09:37:52.000-04:00.", - "pt": "Data e hora de chegada. O formato válido é o seguinte - \"yyyy-MM-ddTHH:mm:ss.sssZ\". Exemplo - 2023-12-31T09:37:52.000-04:00.", - "es": "Fecha y hora de llegada. El formato válido es el siguiente - \"yyyy-MM-ddTHH:mm:ss.sssZ\". Ejemplo - 2023-12-31T09:37:52.000-04:00." - } - }, - "company": { - "type": "string", - "description": { - "en": "Company name.", - "pt": "Nome da empresa", - "es": "Nombre de la empresa" - } - } - } - } - } - } - } - } - }, - "payer": { - "type": "object", - "description": { - "en": "The payer is the one who makes the payment. This field is an object that has the payer's information.", - "pt": "O payer é aquele que faz o pagamento. Este campo é um objeto que possui as informações do pagador.", - "es": "El payer es quien realiza el pago. Este campo es un objeto que tiene la información del pagador." - }, - "required": true, - "properties": { - "first_name": { - "type": "string", - "description": { - "en": "Buyer's name.", - "pt": "Nome do comprador", - "es": "Nombre del comprador" - }, - "example": "Test" - }, - "last_name": { - "type": "string", - "description": { - "en": "It's the buyer's last name field.", - "pt": "É o campo do sobrenome do comprador.", - "es": "Es el campo de apellido del comprador." - }, - "example": "Test" - }, - "phone": { - "type": "object", - "description": { - "en": "Buyer's phone.", - "pt": "Telefone do comprador", - "es": "Teléfono del comprador" - }, - "properties": { - "area_code": { - "type": "string", - "description": { - "en": "Area code where the buyer resides.", - "pt": "Código de área onde reside o comprador.", - "es": "Código de área donde reside el comprador." - }, - "example": 11 - }, - "number": { - "type": "string", - "description": { - "en": "Buyer's fone number", - "pt": "Número de telefone do comprador.", - "es": "Número telefónico del comprador." - }, - "example": "987654321" - } - } - }, - "address": { - "type": "object", - "description": { - "en": "Buyer's address.", - "pt": "Endereço do comprador.", - "es": "Dirección del comprador." - }, - "properties": { - "zip_code": { - "type": "string", - "description": { - "en": "Buyer's zip code.", - "pt": "Código postal do comprador.", - "es": "Código postal del comprador." - } - }, - "street_name": { - "type": "string", - "description": { - "en": "Street where the buyer lives.", - "pt": "Rua onde mora o comprador.", - "es": "Calle donde vive el comprador." - } - }, - "street_number": { - "type": "number", - "description": { - "en": "Number of the property where the buyer lives.", - "pt": "Número do imóvel onde mora o comprador.", - "es": "Número de la propiedad donde vive el comprador." - } - } - } - }, - "registration_date": { - "type": "string", - "format": "date", - "description": { - "en": "Date of registration of the buyer (payer) on your website. The valid format of the attribute is as follows - \"yyyy-MM-dd'T'HH:mm:ssz\". Ex - 2021-06-15T19:22:41.001-03:00.", - "pt": "Data de cadastro do comprador (payer) em seu site. O formato válido do atributo é o seguinte - \"yyyy-MM-dd'T'HH:mm:ssz\". Ex - 2021-06-15T19:22:41.001-03:00.", - "es": "Fecha de registro del comprador (payer) en tu sitio web. El formato válido del atributo es el siguiente - \"yyyy-MM-dd'T'HH:mm:ssz\". Ej - 2021-06-15T19:22:41.001-03:00." - } - }, - "is_prime_user": { - "type": "string", - "description": { - "en": "Indicates if the payer is a premium user. Valid values are as follows - \"1\" if it is, \"0\" if it isn't.", - "pt": "Indica se o pagador é um usuário premium. Os valores válidos são os seguintes - \"1\" se for, \"0\" se não for.", - "es": "Indica si el pagador es un usuario premium. Los valores válidos son los siguientes - \"1\" si lo es, \"0\" si no lo es." - } - }, - "is_first_purchase_online": { - "type": "string", - "description": { - "en": "Indicates if the payer has made a purchase on your website before. Valid values are as follows - \"1\" if it is, \"0\" if it isn't.", - "pt": "Indica se o pagador já realizou uma compra em seu site anteriormente. Os valores válidos são os seguintes - \"1\" se for, \"0\" se não for.", - "es": "Indica si el pagador ha realizado una compra en tu sitio web anteriormente. Los valores válidos son los siguientes - \"1\" si lo es, \"0\" si no lo es." - } - }, - "last_purchase": { - "type": "string", - "description": { - "en": "Date of the last purchase made by the payer on your website. The valid format of the attribute is as follows - \"yyyy-MM-dd'T'HH:mm:ssz\". Ex - 2021-06-15T19:22:41.001-03:00.", - "pt": "Data da última compra realizada pelo pagador em seu site. O formato válido do atributo é o seguinte - \"yyyy-MM-dd'T'HH:mm:ssz\". Ex - 2021-06-15T19:22:41.001-03:00.", - "es": "Fecha de la última compra realizada por el pagador en tu sitio web. El formato válido del atributo es el siguiente - \"yyyy-MM-dd'T'HH:mm:ssz\". Ej - 2021-06-15T19:22:41.001-03:00." - } - }, - "authentication_type": { - "type": "string", - "description": { - "en": "Type of authentication used by payer", - "pt": "Tipo de autenticação utilizada pelo pagador", - "es": "Tipo de autenticación utilizada por el pagador" - }, - "enum": [ - { - "title": "Gmail", - "description": { - "en": "Authentication via Gmail", - "es": "Authentication via Gmail", - "pt": "Authentication via Gmail" - } - }, - { - "title": "Facebook", - "description": { - "en": "Authentication via Facebook login", - "es": "Authentication via Facebook login", - "pt": "Authentication via Facebook login" - } - }, - { - "title": "Native web", - "description": { - "en": "Authentication via web application", - "es": "Authentication via web application", - "pt": "Authentication via web application" - } - }, - { - "title": "Other", - "description": { - "en": "Other type of identification", - "es": "Other type of identification", - "pt": "Other type of identification" - } - } - ] - } - } - }, - "shipments": { - "type": "object", - "description": { - "en": "Object containing all the information for shipping the customer's purchase.", - "pt": "Objeto que compreende todas as informações para o envio da compra do cliente.", - "es": "Objeto que comprende toda la información para el envío de la compra del cliente." - }, - "properties": { - "receiver_address": { - "type": "object", - "description": { - "en": "Object comprising the address of the receiver of the purchase.", - "pt": "Objeto que compreende o endereço do destinatário da compra.", - "es": "Objeto que comprende la dirección del destinatario de la compra." - }, - "properties": { - "zip_code": { - "type": "string", - "description": { - "en": "Zip code.", - "pt": "Código postal", - "es": "Código postal" - }, - "example": "12312-123" - }, - "state_name": { - "type": "string", - "description": { - "en": "State.", - "pt": "Província", - "es": "Provincia" - }, - "example": "Rio de Janeiro" - }, - "city_name": { - "type": "string", - "description": { - "en": "City Name.", - "pt": "Cidade", - "es": "Ciudad" - }, - "example": "Buzios" - }, - "street_name": { - "type": "string", - "description": { - "en": "Street name.", - "pt": "Rua", - "es": "Calle" - }, - "example": "Av das Nacoes Unidas" - }, - "street_number": { - "type": "number", - "description": { - "en": "Number.", - "pt": "Número", - "es": "Número" - }, - "example": 3003 - }, - "floor": { - "type": "string", - "description": { - "en": "Delivery address floor.", - "pt": "Andar do endereço de entrega.", - "es": "Piso de la dirección de entrega" - } - }, - "apartment": { - "type": "string", - "description": { - "en": "Delivery address apartment number.", - "pt": "Número do apartamento do endereço de entrega.", - "es": "Número de departamento de la dirección de entrega." - } - } - } - }, - "width": { - "type": "number", - "description": { - "en": "Width of barcode.", - "pt": "Largura do código de barras", - "es": "Ancho del código de barras" - } - }, - "height": { - "type": "number", - "description": { - "en": "Height of barcode.", - "pt": "Altura do código de barras", - "es": "Altura del código de barras" - } - }, - "express_shipment": { - "type": "string", - "description": { - "en": "Indicates if the shipment is express or not. Valid values are as follows - \"1\" if it is, \"0\" if it isn't.", - "pt": "Indica se o envio é expresso ou não. Os valores válidos são os seguintes - \"1\" se for, \"0\" se não for.", - "es": "Indica si el envío es express o no. Los valores válidos son los siguientes - \"1\" si lo es, \"0\" si no lo es." - } - }, - "pick_up_on_seller": { - "type": "string", - "description": { - "en": "Indicates if the customer will pick up the product at the seller's address. Valid values are as follows - \"1\" if it is, \"0\" if it isn't.", - "pt": "Indica se o cliente irá retirar o produto no endereço do vendedor. Os valores válidos são os seguintes - \"1\" se for, \"0\" se não for.", - "es": "Indica si el cliente recogerá el producto en la dirección del vendedor. Los valores válidos son los siguientes - \"1\" si lo es, \"0\" si no lo es." - } - } - } - } - } - }, - "application_fee": { - "type": "number", - "description": { - "en": "Commission (fee) that third parties (integrators) charge their customers, in this case, sellers, for using the marketplace platform and other services. This is a value in reais to be defined by the integrator to the seller.", - "pt": "Comissão (taxa) que terceiros (integradores) cobram de seus clientes, neste caso, vendedores, pelo uso da plataforma do marketplace e de outros serviços. Esse é um valor em reais a ser definido pelo integrador ao vendedor.", - "es": "Comisión (fee) que los terceros (integradores) cobran a sus clientes, en este caso vendedores, por utilizar la plataforma del marketplace y otros servicios. Este es un valor en reales que será definido por el integrador para el vendedor." - } - }, - "binary_mode": { - "type": "boolean", - "description": { - "en": "When set to TRUE, payments can only be approved or rejected. Otherwise they can also result in_process.", - "pt": "Quando definido como TRUE, os pagamentos só podem ser aprovados ou rejeitados. Caso contrário, eles também podem resultar in_process.", - "es": "Cuando se configura como TRUE los pagos sólo pueden resultar aprobados o rechazados. Caso contrario también pueden resultar in_process." - } - }, - "callback_url": { - "type": "string", - "description": { - "en": "URL where mercadopago does the final redirect (only for bank transfers).", - "pt": "URL para a qual o Mercado Pago faz o redirecionamento final (apenas para transferência bancária).", - "es": "URL a la cual Mercado Pago hace la redirección final (sólo para transferencia bancaria)." - } - }, - "campaign_id": { - "type": "number", - "description": { - "en": "It is the identifier of the entity that models the nature of discounts. All coupons come from a single campaign. The campaign configures, among other things, the available budget balance, dates between which coupons can be used, rules for coupon application. It's the discount promise.", - "pt": "É o identificador da entidade que modela a natureza dos descontos. Todos os cupons vêm de uma única campanha. A campanha configura, entre outras coisas, o saldo orçamentário disponível, datas entre as quais os cupons podem ser utilizados, regras para aplicação de cupom, entre outros. É a promessa de desconto.", - "es": "Es el identificador de la entidad que modela la fuente de los descuentos. Todos los cupones provienen de una sola campaña. La campaña configura, entre otras cosas, el saldo presupuestario disponible, fechas entre las cuales se pueden utilizar los cupones, reglas para la aplicación de los mismos, etc. Es la promesa de descuento." - } - }, - "capture": { - "type": "boolean", - "description": { - "en": "It is a boolean field found in two-step payments (like debit card). In this type of payment, which is carried out asynchronously, the purchase value is first reserved (capture = false). This amount is captured and not debited from the account instantly. When the money is actually transferred to the collector (who receives the payment) the amount is captured (capture = true).", - "pt": "É um campo booleano existente em pagamentos de duas etapas (como o cartão de débito). Nesse tipo de pagamento, que é realizado de modo assíncrono, primeiro é feito a reserva do valor da compra (capture = false). Esse valor é capturado e não é debitado da conta instantaneamente. Quando o dinheiro é de fato transferido ao collector (quem recebe o pagamento) a captura do montante é feita (capture = true).", - "es": "Es un campo booleano que se encuentra en pagos de dos pasos (como tarjeta de débito). En este tipo de pago, que se realiza de forma asíncrona, primero se reserva el valor de la compra (capture = false). Esta cantidad se captura y no se debita de la cuenta al instante. Cuando el dinero se transfiere realmente al cobrador (que recibe el pago), se captura la cantidad (capture = true)." - } - }, - "coupon_amount": { - "type": "number", - "description": { - "en": "It is the value of the discount coupon. E.g. - BRL 14.50. The attribute's type is BigDecimal.", - "pt": "É o valor do cupom de desconto. Por exemplo - R$14,50. O tipo do atributo é BigDecimal.", - "es": "Es el valor del cupón de descuento. Por ejemplo - BRL 14,50. El tipo del atributo es BigDecimal." - } - }, - "coupon_code": { - "type": "string", - "description": { - "en": "Discount campaign with a specific code.", - "pt": "Campanha de desconto com um código específico", - "es": "Campaña de descuento con un código específico" - } - }, - "description": { - "type": "string", - "description": { - "en": "Purchased product’s description, the reason for payment. E.g. - \"Xiaomi Redmi Note 11S mobile phone 128gb 6gb Ram Original Global Blue Version\" (description of a product in the marketplace).", - "pt": "Descrição do produto comprado, a razão de pagamento. Por exemplo - \"Celular Xiaomi Redmi Note 11S 128gb 6gb Ram Versão Global Original azul\" (descrição de um produto no marketplace).", - "es": "Descripción del producto adquirido, el motivo del pago. Ej. - \"Celular Xiaomi Redmi Note 11S 128gb 6gb Ram Original Global Blue Version\" (descripción de un producto en el marketplace)." - }, - "example": "Payment for product", - "required": true - }, - "differential_pricing_id": { - "type": "number", - "description": { - "en": "Attribute that commonly contains an agreement on how much the user will be charged (generally, this field is more relevant for Marketplace payments). Pricing and fees are calculated based on this identifier.", - "pt": "Atributo que comumente contém um acordo de quanto vai ser cobrado do usuário (geralmente, este campo é mais relevante para pagamentos do Marketplace). A precificação e as taxas são calculadas com base nesse identificador.", - "es": "Atributo que comúnmente contiene un acuerdo sobre cuánto se le cobrará al usuario (generalmente, este campo es más relevante para los pagos de Marketplace). Los precios y las tarifas se calculan en función de este identificador." - } - }, - "date_of_expiration": { - "type": "string", - "format": "date", - "description": { - "en": "Payment’s expiration date. The valid format of the attribute is as follows - \"yyyy-MM-dd'T'HH:mm:ssz\". Ex - 2022-11-17T09:37:52.000-04:00.", - "pt": "Data de expiração do pagamento. O formato válido do atributo é o seguinte - \"yyyy-MM-dd'T'HH:mm:ssz\". Por exemplo - 2022-11-17T09:37:52.000-04:00.", - "es": "Fecha de vencimiento del pago. El formato válido del atributo es el siguiente - \"yyyy-MM-dd'T'HH:mm:ssz\". Ej - 2022-11-17T09:37:52.000-04:00." - } - }, - "external_reference": { - "type": "string", - "description": { - "en": "It is a payment external reference. It could be, for example, a hashcode from the Central Bank, working as a transaction origin identifier.", - "pt": "É uma referência externa do pagamento. Pode ser, por exemplo, um hashcode do Banco Central, funcionando como identificador de origem da transação.", - "es": "Es una referencia de pago externa. Podría ser, por ejemplo, un hashcode del Banco Central, funcionando como identificador del origen de la transacción." - }, - "example": "MP0001" - }, - "installments": { - "type": "number", - "description": { - "en": "Number of installments selected.", - "pt": "Número de parcelas selecionado", - "es": "Cantidad seleccionada de cuotas" - }, - "required": true, - "example": 1 - }, - "issuer_id": { - "type": "string", - "description": { - "en": "It is the identifier of the card issuer being used in a credit or debit card payment.", - "pt": "É o identificador do emissor do cartão que está sendo utilizado em um pagamento com cartão de crédito ou débito.", - "es": "Es el identificador del emisor de la tarjeta que se utiliza en un pago con tarjeta de crédito o débito." - }, - "required": true - }, - "metadata": { - "type": "object", - "description": { - "en": "This is an optional key-value object where the customer can add additional information that needs to be recorded at checkout. Ex - {\"payments_group_size\":1,\"payments_group_timestamp\":\"2022-11-18T15:01:44Z\",\"payments_group_uuid\":\"96cfd2a4-0b06-4dea-b25f-c5accb02ba10\"}", - "pt": "Este é um objeto opcional do tipo chave-valor no qual o cliente pode adicionar informações adicionais que precisam ser registradas no pagamento. Ex - {\"payments_group_size\":1,\"payments_group_timestamp\":\"2022-11-18T15:01:44Z\",\"payments_group_uuid\":\"96cfd2a4-0b06-4dea-b25f-c5accb02ba10\"}", - "es": "Este es un objeto clave-valor opcional en el que el cliente puede agregar información adicional que debe registrarse al finalizar la compra. Por ejemplo - {\"payments_group_size\":1,\"payments_group_timestamp\":\"2022-11-18T15:01:44Z\",\"payments_group_uuid\":\"96cfd2a4-0b06-4dea-b25f-c5accb02ba10\"}" - } - }, - "notification_url": { - "type": "string", - "description": { - "en": "Notifications URL available to receive notifications of events related to Payment. The maximum number of characters allowed for submission in this parameter is 248 characters.", - "pt": "URL de notificações disponível para receber notificações de eventos relacionados ao Pagamento. A quantidade máxima de caracteres permitidos para envio neste parâmetro é de 248 caracteres.", - "es": "URL de Notificaciones disponibilizada para recibir las notificaciones de los eventos relacionados al Pago. La cantidad máxima de caracteres permitidos para enviar en este parámetro es de 248 caracteres." - } - }, - "payer": { - "type": "object", - "description": { - "en": "Identifies the buyer.", - "pt": "Id do pagador", - "es": "Identificador del pagador" - }, - "required": true, - "properties": { - "entity_type": { - "$ref": "#/components/schemas/entity_type" - }, - "type": { - "$ref": "#/components/schemas/payer_type" - }, - "id": { - "type": "string", - "description": { - "en": "Identification of the associated payer.", - "pt": "Identificação do pagador associado", - "es": "Identificación del pagador asociado" - } - }, - "email": { - "type": "string", - "description": { - "en": "Email associated with the payer. This value will only return a response when status=approved, status=refunded, or status=charged_back.", - "pt": "Email associado ao payer. Este valor só retornará uma resposta quando status=approved, status=refunded ou status=charged_back.", - "es": "Correo electrónico asociado al payer. Este valor sólo devolverá una respuesta cuando status=approved, status=refunded o status=charged_back." - }, - "example": "test_user_123@testuser.com", - "required": true - }, - "identification": { - "type": "object", - "description": { - "en": "User's personal identification. As an example, in Brazil, there is the CPF (Individual Taxpayer Registry) and the CNPJ (National Corporate Taxpayer Registry), for companies. Other possible identification codes are CURP (Mexico), CUIL (Argentina). This object will only return a response when status=approved, status=refunded or status=charged_back.", - "pt": "Identificação pessoal do usuário. Como exemplo, a nível Brasil, temos o CPF (Cadastro de Pessoa Física) e o CNPJ (Cadastro Nacional de Pessoas Jurídicas), para empresas. Outros códigos de identificação possíveis são o CURP (México), CUIL (Argentina), Este objeto só retornará uma response quando status=approved, status=refunded or status=charged_back.", - "es": "Identificación personal del usuario. Como ejemplo, en Brasil, existe el CPF (Registro de Contribuyentes Individuales) y el CNPJ (Registro Nacional de Personas Jurídicas) para empresas. Otros posibles códigos de identificación son CURP (México), CUIL (Argentina). Este objeto sólo devolverá una respuesta cuando status=approved, status=refunded or status=charged_back." - }, - "properties": { - "type": { - "type": "string", - "description": { - "en": "Refers to the type of identification. It can be one of the following types.", - "pt": "Refere-se ao tipo de identificação. Pode ser dos seguintes tipos.", - "es": "Se refiere al tipo de identificación. Puede ser de los siguientes tipos." - }, - "enum": [ - { - "title": "CPF", - "description": { - "en": "Individual Taxpayer Registration, Brazil.", - "es": "Individual Taxpayer Registration, Brazil.", - "pt": "Individual Taxpayer Registration, Brazil." - } - }, - { - "title": "CNPJ", - "description": { - "en": "National Register of Legal Entities, Brazil.", - "es": "National Register of Legal Entities, Brazil.", - "pt": "National Register of Legal Entities, Brazil." - } - }, - { - "title": "CUIT", - "description": { - "en": "Unique Tax Identification Code, Argentina.", - "es": "Unique Tax Identification Code, Argentina.", - "pt": "Unique Tax Identification Code, Argentina." - } - }, - { - "title": "CUIL", - "description": { - "en": "Unique Labor Identification Code, Argentina.", - "es": "Unique Labor Identification Code, Argentina.", - "pt": "Unique Labor Identification Code, Argentina." - } - }, - { - "title": "DNI", - "description": { - "en": "National Identity Document, Argentina.", - "es": "National Identity Document, Argentina.", - "pt": "National Identity Document, Argentina." - } - }, - { - "title": "CURP", - "description": { - "en": "Single Population Registration Code, Mexico.", - "es": "Single Population Registration Code, Mexico.", - "pt": "Single Population Registration Code, Mexico." - } - }, - { - "title": "RFC", - "description": { - "en": "Federal Registry of Taxpayers, Mexico.", - "es": "Federal Registry of Taxpayers, Mexico.", - "pt": "Federal Registry of Taxpayers, Mexico." - } - }, - { - "title": "CC", - "description": { - "en": "Citizenship Card, Colombia.", - "es": "Citizenship Card, Colombia.", - "pt": "Citizenship Card, Colombia." - } - }, - { - "title": "RUT", - "description": { - "en": "Single Tax List, Chile.", - "es": "Single Tax List, Chile.", - "pt": "Single Tax List, Chile." - } - }, - { - "title": "CI", - "description": { - "en": "Identity Card, Uruguay.", - "es": "Identity Card, Uruguay.", - "pt": "Identity Card, Uruguay." - } - } - ], - "example": "CPF" - }, - "number": { - "type": "string", - "description": { - "en": "The number refers to the identifier of the user in question. If it is a CPF, for example, it will have 11 numbers.", - "pt": "O número se refere ao identificador do usuário em questão. Se for um CPF, por exemplo, terá 11 números.", - "es": "El número hace referencia al identificador del usuario en cuestión. Si es un CPF, por ejemplo, tendrá 11 números." - }, - "example": "95749019047" - } - } - }, - "first_name": { - "type": "string", - "description": { - "en": "First name of the associated payer.", - "pt": "Nome do pagador associado", - "es": "Nombre del pagador asociado" - } - }, - "last_name": { - "type": "string", - "description": { - "en": "Last name of the associated payer.", - "pt": "Sobrenome do pagante associado", - "es": "Apellido del pagador asociado" - } - } - } - }, - "payment_method_id": { - "type": "string", - "description": { - "en": "It indicates the identifier of the payment method selected to make the transaction. Here are some examples. Get all available payment methods by consulting the 'Get payment Methods API'.", - "pt": "Indica o identificador do meio de pagamento selecionado para efetuar o pagamento. A seguir, apresentamos alguns exemplos. Obtenha todos os meios de pagamento disponíveis consultando a API de 'Obter meios de pagamento'.", - "es": "Identificador del medio de pago. Indica el ID del medio de pago seleccionado para realizar el pago. A continuación presentamos algunos ejemplos. Obtén todos los métodos de pago disponibles consultando la API de 'Obtener métodos de pago'." - }, - "enum": [ - { - "title": "Pix", - "description": { - "en": "Instant digital payment method used in Brazil.", - "es": "Instant digital payment method used in Brazil.", - "pt": "Instant digital payment method used in Brazil." - } - }, - { - "title": "Account_money", - "description": { - "en": "When the payment is debited directly from a Mercado Pago account.", - "es": "When the payment is debited directly from a Mercado Pago account.", - "pt": "When the payment is debited directly from a Mercado Pago account." - } - }, - { - "title": "Debin_transfer", - "description": { - "en": "Digital payment method used in Argentina that immediately debits an amount from an account, requesting prior authorization.", - "es": "Digital payment method used in Argentina that immediately debits an amount from an account, requesting prior authorization.", - "pt": "Digital payment method used in Argentina that immediately debits an amount from an account, requesting prior authorization." - } - }, - { - "title": "Ted", - "description": { - "en": "It is the Electronic Transfer Available payment, used in Brazil, that has fees to be used. The payment is made the same day of the transaction, but for this it is necessary to make the transfer within the stipulated period;", - "es": "It is the Electronic Transfer Available payment, used in Brazil, that has fees to be used. The payment is made the same day of the transaction, but for this it is necessary to make the transfer within the stipulated period;", - "pt": "It is the Electronic Transfer Available payment, used in Brazil, that has fees to be used. The payment is made the same day of the transaction, but for this it is necessary to make the transfer within the stipulated period;" - } - }, - { - "title": "Cvu", - "description": { - "en": "Payment method used in Argentina.", - "es": "Payment method used in Argentina.", - "pt": "Payment method used in Argentina." - } - } - ], - "required": true, - "example": "master" - }, - "statement_descriptor": { - "type": "string", - "description": { - "en": "Description that the payment will appear with in the card statement (eg MERCADOPAGO)", - "pt": "Descrição com a qual o pagamento aparecerá no resumo do cartão (ex. MERCADOPAGO)", - "es": "Descripción con la que aparecerá el pago en el resumen de tarjeta (ej. MERCADOPAGO)" - } - }, - "token": { - "type": "string", - "description": { - "en": "Token card identifier (mandatory for credit card). The card token is created from the card's own information, increasing security during the payment flow. In addition, once the token is used in a given purchase, it is discarded, requiring the creation of a new token for future purchases.", - "pt": "Identificador de token card (obrigatório para cartão de crédito). O token do cartão é criado a partir das próprias informações do cartão, aumentando a segurança durante o fluxo do pagamento. Além disso, uma vez que o token é utilizado em determinada compra, ele é descartado, sendo necessária a criação de um novo token para compras futuras.", - "es": "Identificador del token card. (obligatorio para tarjeta de crédito). El token de la tarjeta se crea a partir de la información de la propia tarjeta, aumentando la seguridad durante el flujo de pago. Además, una vez que el token se usa en una compra determinada, se descarta, lo que requiere la creación de un nuevo token para futuras compras." - }, - "required": true, - "example": "ff8080814c11e237014c1ff593b57b4d" - }, - "transaction_amount": { - "type": "number", - "description": { - "en": "Product’s cost. Example - The sale of a product for R$100.00 will have a transactionAmount = 100.", - "pt": "Custo do produto. Exemplo - A venda de um produto por R$100,00 terá um transactionAmount = 100.", - "es": "Costo del producto. Ejemplo - La venta de un producto por R$ 100,00 tendrá un transactionAmount = 100." - }, - "required": true, - "example": 58.8 - } - } - } - } - } - }, - "responses": { - "200": { - "description": { - "es": "Success", - "pt": "Success", - "en": "Success" - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "id": { - "type": "number", - "example": 20359978, - "description": { - "en": "Unique Payment Identifier, automatically generated by Mercado Pago", - "pt": "Identificador único de pagamento, gerado automaticamente pelo Mercado Pago", - "es": "Identificador único del pago, generado automáticamente por Mercado Pago" - } - }, - "date_created": { - "type": "string", - "example": "2019-07-10T14:47:58.000Z", - "description": { - "en": "Payment creation date.", - "pt": "Data de criação do pagamento.", - "es": "Fecha de creación del Pago." - } - }, - "date_approved": { - "type": "string", - "example": "2019-07-10T14:47:58.000Z", - "description": { - "en": "Payment approval date. A payment can be generated in an intermediate state and then approved, so the creation date will not always coincide with the Approval Date.", - "pt": "Data de aprovação do pagamento. Um pagamento pode ser gerado em um estado intermediário e depois aprovado, portanto, a data de criação nem sempre coincidirá com a Data de Aprovação.", - "es": "Fecha de aprobación del Pago. Un pago puede generarse en un estado intermedio y luego ser aprobado, por tanto la fecha de creación no siempre coincidirá con la Fecha de Aprobación." - } - }, - "date_last_updated": { - "type": "string", - "example": "2019-07-10T14:47:58.000Z", - "description": { - "en": "Date on which the last payment event was recorded.", - "pt": "Data em que o último evento de pagamento foi registrado.", - "es": "Fecha en la que se registró el ultimo evento sobre el pago." - } - }, - "date_of_expiration": { - "type": "string", - "format": "nullable", - "description": { - "en": "Payment’s expiration date. The attribute’s valid format is as follows - \"yyyy-MM-dd'T'HH:mm:ssz\". Ex. - 2022-11-17T09:37:52.000-04:00.", - "pt": "Data de expiração do pagamento. O formato válido do atributo é o seguinte - \"yyyy-MM-dd'T'HH:mm:ssz\". Ex. - 2022-11-17T09:37:52.000-04:00.", - "es": "Fecha de vencimiento del pago. El formato válido del atributo es el siguiente - \"yyyy-MM-dd'T'HH:mm:ssz\". Ej. - 2022-11-17T09:37:52.000-04:00." - } - }, - "money_release_date": { - "type": "string", - "example": "2019-07-24T14:47:58.000Z", - "description": { - "en": "Date on which the payment is settled and the money is made available in the Mercado Pago account of the Collector (the one who receives the payment). The field can take on the values “pending” or “released”, where the first indicates that the payment has not yet been released (money held for a period) and “released” means that the money has already been released to the user's available balance.", - "pt": "Data em que o pagamento é liquidado e o dinheiro é disponibilizado na conta Mercado Pago do Collector (aquele que recebe o pagamento). O campo pode assumir os valores “pending” ou “released”, sendo que o primeiro indica que o pagamento ainda não foi liberado (dinheiro retido por tempo) e “released” significa que o dinheiro já foi liberado para o saldo disponível do usuário.", - "es": "Fecha en que se liquida el pago y se pone a disposición el dinero en la cuenta de Mercado Pago del Collector (el que recibe el pago). El campo puede tomar los valores “pending” o “released”, siendo que el primero indica que el pago todavía no fue liberado (dinero retenido por tiempo) y “released” significa que el dinero ya fue liberado al disponible del usuario." - } - }, - "operation_type": { - "$ref": "#/components/schemas/operation_type" - }, - "issuer_id": { - "type": "string", - "example": 25, - "description": { - "en": "It is the identifier of the card issuer that’s being used in a credit or debit card payment.", - "pt": "É o identificador do emissor do cartão que está sendo utilizado em um pagamento com cartão de crédito ou débito.", - "es": "Es el identificador del emisor de la tarjeta que se utiliza en un pago con tarjeta de crédito o débito." - } - }, - "payment_method_id": { - "type": "string", - "example": "visa", - "description": { - "en": "Payment method identifier. Indicates the ID of the payment method selected to make the payment.", - "pt": "Id do meio de pagamento. Indica o ID do meio de pagamento selecionado para efetuar o pagamento.", - "es": "Identificador del medio de pago. Indica el ID del medio de pago seleccionado para realizar el pago." - } - }, - "payment_type_id": { - "$ref": "#/components/schemas/payment_type_id" - }, - "status": { - "$ref": "#/components/schemas/status" - }, - "status_detail": { - "type": "string", - "example": "accredited", - "description": { - "en": "Detail in which the Collection resulted", - "pt": "Detalhe em que resultou a Coleção", - "es": "Detalle en el que resultó el Cobro" - }, - "enum": [ - { - "title": "Accredited", - "description": { - "en": "credited payment.", - "es": "credited payment.", - "pt": "credited payment." - } - }, - { - "title": "pending_contingency", - "description": { - "en": "the payment is being processed.", - "es": "the payment is being processed.", - "pt": "the payment is being processed." - } - }, - { - "title": "pending_review_manual", - "description": { - "en": "the payment is under review to determine its approval or rejection.", - "es": "the payment is under review to determine its approval or rejection.", - "pt": "the payment is under review to determine its approval or rejection." - } - }, - { - "title": "cc_rejected_bad_filled_date", - "description": { - "en": "incorrect expiration date.", - "es": "incorrect expiration date.", - "pt": "incorrect expiration date." - } - }, - { - "title": "cc_rejected_bad_filled_other", - "description": { - "en": "incorrect card details.", - "es": "incorrect card details.", - "pt": "incorrect card details." - } - }, - { - "title": "cc_rejected_bad_filled_security_code", - "description": { - "en": "incorrect CVV.", - "es": "incorrect CVV.", - "pt": "incorrect CVV." - } - }, - { - "title": "cc_rejected_blacklist", - "description": { - "en": "the card is on a black list for theft/complaints/fraud.", - "es": "the card is on a black list for theft/complaints/fraud.", - "pt": "the card is on a black list for theft/complaints/fraud." - } - }, - { - "title": "cc_rejected_call_for_authorize", - "description": { - "en": "the means of payment requires prior authorization of the amount of the operation.", - "es": "the means of payment requires prior authorization of the amount of the operation.", - "pt": "the means of payment requires prior authorization of the amount of the operation." - } - }, - { - "title": "cc_rejected_card_disabled", - "description": { - "en": "the card is inactive.", - "es": "the card is inactive.", - "pt": "the card is inactive." - } - }, - { - "title": "cc_rejected_duplicated_payment", - "description": { - "en": "transacción duplicada.", - "es": "transacción duplicada.", - "pt": "transacción duplicada." - } - }, - { - "title": "cc_rejected_high_risk", - "description": { - "en": "rechazo por Prevención de Fraude.", - "es": "rechazo por Prevención de Fraude.", - "pt": "rechazo por Prevención de Fraude." - } - }, - { - "title": "cc_rejected_insufficient_amount", - "description": { - "en": "insufficient amount.", - "es": "insufficient amount.", - "pt": "insufficient amount." - } - }, - { - "title": "cc_rejected_invalid_installments", - "description": { - "en": "invalid number of installments.", - "es": "invalid number of installments.", - "pt": "invalid number of installments." - } - }, - { - "title": "cc_rejected_max_attempts", - "description": { - "en": "exceeded maximum number of attempts.", - "es": "exceeded maximum number of attempts.", - "pt": "exceeded maximum number of attempts." - } - }, - { - "title": "cc_rejected_other_reason", - "description": { - "en": "generic error.", - "es": "generic error.", - "pt": "generic error." - } - } - ] - }, - "currency_id": { - "$ref": "#/components/schemas/currency_id" - }, - "description": { - "type": "string", - "example": "Point Mini a maquininha que dá o dinheiro de suas vendas na hora.", - "description": { - "en": "Description sent in the payment creation request. Ex. - In a pix payment, the description is “Payment of Installments without card”. In another cases, such as a purchase in a physical store where the customer uses the machine to pay, we can find the description “Sale in person”. In marketplace purchases, the purchase description usually corresponds to a purchased product - “Pendrive Multilaser Twist Pd590 64gb 2.0 Black And Silver + 1 product”.", - "pt": "Descrição enviada na solicitação de criação de pagamento. Por exemplo - Em um pagamento pix, há a descrição “Pagamento de parcelas de Linha de Crédito”. Em outro caso, uma compra em loja física onde o cliente utiliza a maquininha para pagar, podemos encontrar a descrição - “Venda presencial”. Já em compras do marketplace, a descrição da compra geralmente corresponde a um produto comprado - “ Pendrive Multilaser Twist Pd590 64gb 2.0 Preto E Prateado + 1 produto”.", - "es": "Descripción enviada en el request de creación de pago. Por ejemplo - En un pago con pix, se encuentra la descripción “Pagos sin Tarjeta”. En otro caso, una compra en una tienda física donde el cliente utiliza la máquina para pagar, podemos encontrar la descripción “Venta en persona”. En las compras en marketplace, la descripción de compra suele corresponder a un producto comprado - “Pendrive Multilaser Twist Pd590 64gb 2.0 Negro Y Plata + 1 producto”." - } - }, - "live_mode": { - "type": "boolean", - "description": { - "en": "Indicates whether the Payment was made in a production environment or in a Test environment. If TRUE, then the chargeback will be processed in production mode. If FALSE, then the chargeback will be processed in sandbox mode.", - "pt": "Indica se o Pagamento foi feito em ambiente de produção ou em ambiente de Teste. Se TRUE, o estorno será processado em modo de produção. Se FALSE, o estorno será processado no modo sandbox.", - "es": "Indica si el Pago se realizó en ambiente productivo o en un ambiente de Test. Si es TRUE, el contracargo se procesará en modo de producción. Si es FALSE, el contracargo se procesará en modo sandbox." - } - }, - "sponsor_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "This field is deprecated and no longer in use.", - "pt": "Este campo está deprecado e não é mais utilizado.", - "es": "Este campo está deprecado y ya no se usa." - } - }, - "authorization_code": { - "type": "string", - "format": "nullable", - "description": { - "en": "Transaction’s authorization code for payments with “payment_method_type” of type “credit_card” (credit card), “debit_card” (debit card) and “voucher_card” (voucher card for benefits, such as Alelo). In summary, this code is used for card transactions. The code is numerical and has 6 digits.", - "pt": "Código de autorização de transação para pagamentos com “payment_method_type” do tipo “credit_card” (cartão de crédito), “debit_card” (cartão de crédito) e “voucher_card” (cartão de voucher para benefícios, como Alelo). Em síntese, este código é utilizado para transações com cartão. O código é numérico e possui 6 dígitos.", - "es": "Código de autorización de transacción para pagos con “payment_method_type” de tipo “credit_card” (tarjeta de crédito), “debit_card” (tarjeta de débito) y “voucher_card” (tarjeta de bono para beneficios, como Alelo). En resumen, este código se utiliza para transacciones con tarjeta. Es numérico y tiene 6 dígitos." - } - }, - "money_release_schema": { - "type": "string", - "format": "nullable", - "description": { - "en": "This field is used to identify whether a payment is PNF (Payment in Flow). Payment in flow is a form of cash release in which the installments received by a seller are released over the months (which corresponds to the number of installments). Possible values ​​for this field are “null” or “payment_in_flow”.", - "pt": "Esse campo é usado para identificar se um pagamento é PNF (pagamento no fluxo). Pagamento no fluxo é uma forma de liberação de dinheiro em que as parcelas recebidas por um vendedor são liberadas com o passar dos meses (que corresponde ao número de parcelas). Os valores possíveis para este campo são “null” ou “payment_in_flow”.", - "es": "Este campo se utiliza para identificar si un pago es PNF (Pay in Flow). El pago en flujo es una forma de liberación de dinero en la que las cuotas recibidas por un vendedor se van liberando a lo largo de los meses (lo que corresponde al número de cuotas). Los valores posibles para este campo son \"null\" o \"payment_in_flow\"." - } - }, - "taxes_amount": { - "type": "number", - "example": 0, - "description": { - "en": "Corresponds to the tax values ​​calculated for the payment.", - "pt": "Corresponde aos valores dos impostos calculados para o pagamento.", - "es": "Corresponde a los valores de impuestos calculados para el pago." - } - }, - "counter_currency": { - "type": "string", - "format": "nullable", - "description": { - "en": "Basically, it is an object that will allow you to convert payments of CBT type (Cross Border Trade) into dollars, which are international payments made in a foreign currency.", - "pt": "Basicamente, é um objeto que permitirá converter em dólares pagamentos do tipo CBT (Cross Border Trade), que são pagamentos internacionais, feitos em moeda estrangeira.", - "es": "Básicamente, es un objeto que te permitirá convertir pagos del tipo CBT (Cross Border Trade) en dólares, que son pagos internacionales realizados en moneda extranjera." - } - }, - "shipping_amount": { - "type": "number", - "example": 0, - "description": { - "en": "Amount of charge for shipping the purchase. It is of type BigDecimal.", - "pt": "Valor da cobrança de envio da compra. É do tipo BigDecimal.", - "es": "Importe del cargo por el envío de la compra. Es de tipo BigDecimal." - } - }, - "pos_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Point of Sale (POS) digital identifier. They are physical points of sale that use a card machine for sales.", - "pt": "Identificador digital do ponto de vendas (PDV). São pontos de vendas físicos que utilizam maquininha de cartão para vendas.", - "es": "Identificador digital de Punto de Venta (PDV). Son puntos de venta físicos que utilizan una máquina de tarjetas para la venta." - } - }, - "store_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Store identifier to which the point of sale belongs.", - "pt": "Identificador da loja à qual o caixa pertence", - "es": "Identificador de la sucursal a la que pertenece el Punto de Venta" - } - }, - "collector_id": { - "type": "number", - "example": 448876418, - "description": { - "en": "It is the user who receives the money. Ex - A user (payer) buys a cell phone through the marketplace. The identifier of the store/seller to receive the payment is the collector_id.", - "pt": "É o usuário que recebe o dinheiro. Por exemplo - Um usuário (payer) compra um celular pelo marketplace. O identificador da loja/vendedor a receber o pagamento é o collector_id.", - "es": "Es el usuario quien recibe el dinero. Por ejemplo - Un usuario (payer) compra un celular a través del marketplace. El identificador de la tienda/vendedor para recibir el pago es el collector_id." - } - }, - "payer": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "nullable", - "example": 123, - "description": { - "en": "Payer identifier generated by Mercado Pago.", - "pt": "Identificador de pagador gerado pelo Mercado Pago.", - "es": "Identificador del Payer generado por Mercado Pago." - }, - "required": true - }, - "email": { - "type": "string", - "required": true, - "example": "test_user_80507629@testuser.com", - "description": { - "en": "Email associated with the payer. This value will only return a response when status=approved, status=refunded, or status=charged_back.", - "pt": "Email associado ao payer. Este valor só retornará uma resposta quando status=approved, status=refunded ou status=charged_back.", - "es": "Correo electrónico asociado al payer. Este valor sólo devolverá una respuesta cuando el status=approved, status=refunded o status=charged_back." - } - }, - "identification": { - "type": "object", - "properties": { - "number": { - "type": "string", - "example": 19119119100, - "description": { - "en": "The number refers to the user’s identifier. If it is a CPF, for example, it will have 11 numbers.", - "pt": "O número se refere ao identificador do usuário em questão. Se for um CPF, por exemplo, terá 11 números.", - "es": "El número hace referencia al identificador del usuario en cuestión. Si es un CPF, por ejemplo, tendrá 11 números." - } - }, - "type": { - "type": "string", - "example": "CPF", - "description": { - "en": "Identification type.", - "pt": "Tipo de identificação", - "es": "Tipo de identificación" - } - } - }, - "description": { - "es": "Personal identification. This value will only return a response when status=approved, status=refunded or status=charged_back", - "pt": "Personal identification. This value will only return a response when status=approved, status=refunded or status=charged_back", - "en": "Personal identification. This value will only return a response when status=approved, status=refunded or status=charged_back" - } - }, - "type": { - "$ref": "#/components/schemas/payer_type" - } - }, - "description": { - "en": "Payer data - ID (identifying number), email address, identification (type and number of id)", - "pt": "Dados do pagador - ID (número de identificação), e-mail, identificação (tipo e número de documento)", - "es": "Datos del pagador - ID (número identificador), dirección de email, identificación (tipo y número de documento)" - } - }, - "metadata": { - "type": "object", - "description": { - "en": "This is an optional key-value object where the customer can add additional information that needs to be recorded at checkout. Ex - {\"payments_group_size\":1,\"payments_group_timestamp\":\"2022-11-18T15:01:44Z\",\"payments_group_uuid\":\"96cfd2a4-0b06-4dea-b25f-c5accb02ba10\"}.", - "pt": "Este é um objeto opcional do tipo chave-valor no qual o cliente pode adicionar informações adicionais que precisam ser registradas no pagamento. Por exemplo - {\"payments_group_size\":1,\"payments_group_timestamp\":\"2022-11-18T15:01:44Z\",\"payments_group_uuid\":\"96cfd2a4-0b06-4dea-b25f-c5accb02ba10\"}.", - "es": "Este es un objeto clave-valor opcional en el que el cliente puede agregar información adicional que debe registrarse al finalizar la compra. Por ejemplo - {\"payments_group_size\":1,\"payments_group_timestamp\":\"2022-11-18T15:01:44Z\",\"payments_group_uuid\":\"96cfd2a4-0b06-4dea-b25f-c5accb02ba10\"}." - } - }, - "additional_info": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "example": "PR0001", - "description": { - "en": "It is the purchased product ad identifier. Ex - “MLB2907679857”", - "pt": "É o identificador do anúncio do produto comprado. Por exemplo - “MLB2907679857”.", - "es": "Es el identificador del anuncio del producto adquirido. Por ejemplo - “MLB2907679857”." - } - }, - "title": { - "type": "string", - "example": "Point Mini", - "description": { - "en": "Item name.", - "pt": "Nome do item", - "es": "Nombre de ítem" - } - }, - "description": { - "type": "string", - "example": "Producto Point para cobros con tarjetas mediante bluetooth", - "description": { - "en": "Long item description.", - "pt": "Descrição do artigo", - "es": "Descripción de item" - } - }, - "picture_url": { - "type": "string", - "example": "https://http2.mlstatic.com/resources/frontend/statics/growth-sellers-landings/device-mlb-point-i_medium2x.png", - "description": { - "en": "Image URL.", - "pt": "URL da imagem", - "es": "URL de imagen" - } - }, - "category_id": { - "type": "string", - "example": "electronics", - "description": { - "en": "Category of the item.", - "pt": "Categoria do item", - "es": "Categoría del ítem" - } - }, - "quantity": { - "type": "number", - "example": 1, - "description": { - "en": "Item quantity.", - "pt": "Quantidade do produto", - "es": "Cantidad de producto" - } - }, - "unit_price": { - "type": "number", - "example": 58.8, - "description": { - "es": "Unit price.", - "pt": "Unit price.", - "en": "Unit price." - } - } - } - }, - "description": { - "en": "List of items to be paid.", - "pt": "Lista de itens a pagar", - "es": "Lista de ítems a pagar" - } - }, - "payer": { - "type": "object", - "properties": { - "registration_date": { - "type": "string", - "example": "2019-01-01T15:01:01.000Z", - "description": { - "en": "Date of registration of the buyer on your site.", - "pt": "Data de cadastro do comprador em seu site", - "es": "Fecha de registración del comprador en tu sitio" - } - } - }, - "description": { - "en": "Payer details.", - "pt": "Detalhes do pagador.", - "es": "Detalles del pagador." - } - }, - "shipments": { - "type": "object", - "properties": { - "receiver_address": { - "type": "object", - "properties": { - "street_name": { - "type": "string", - "example": "Av das Nacoes Unidas", - "description": { - "en": "Street name.", - "pt": "Rua", - "es": "Calle" - } - }, - "street_number": { - "type": "number", - "example": 3003, - "description": { - "en": "Number.", - "pt": "Número", - "es": "Número" - } - }, - "zip_code": { - "type": "string", - "example": 6233200, - "description": { - "en": "Zip code.", - "pt": "Código postal", - "es": "Código postal" - } - }, - "city_name": { - "type": "string", - "example": "Buzios", - "description": { - "en": "City Name.", - "pt": "Cidade", - "es": "Ciudad" - } - }, - "state_name": { - "type": "string", - "example": "Rio de Janeiro", - "description": { - "en": "State.", - "pt": "Província", - "es": "Provincia" - } - } - }, - "description": { - "en": "Buyer's address.", - "pt": "Endereço do comprador", - "es": "Dirección del comprador" - } - } - }, - "description": { - "en": "Shipping information.", - "pt": "Informações de envio", - "es": "Información de envío" - } - } - }, - "description": { - "en": "Additional information.", - "pt": "Informações adicionais", - "es": "Información adicional" - } - }, - "external_reference": { - "type": "string", - "example": "MP0001", - "description": { - "en": "It is a payment external reference. It could be, for example, a hashcode from the Central Bank, working as a transaction origin identifier.", - "pt": "É uma referência externa do pagamento. Pode ser, por exemplo, um hashcode do Banco Central, funcionando como identificador de origem da transação.", - "es": "Es una referencia de pago externa. Podría ser, por ejemplo, un hashcode del Banco Central, funcionando como identificador del origen de la transacción." - } - }, - "transaction_amount": { - "type": "number", - "example": 58.8, - "description": { - "en": "Product’s cost. Example - The sale of a product for R$100.00 will have a transactionAmount = 100.", - "pt": "Custo do produto. Exemplo - A venda de um produto por R$100,00 terá um transactionAmount = 100.", - "es": "Costo del producto. Ejemplo - La venta de un producto por R$ 100,00 tendrá un transactionAmount = 100." - } - }, - "transaction_amount_refunded": { - "type": "number", - "example": 0, - "description": { - "en": "Transaction amount refunded", - "pt": "Valor reembolsado da transação", - "es": "Monto reembolsado de transacción" - } - }, - "coupon_amount": { - "type": "number", - "example": 0, - "description": { - "en": "It is the value of the discount coupon. E.g. - BRL 14.50. The attribute's type is BigDecimal.", - "pt": "É o valor do cupom de desconto. Ex. - R$14,50. O tipo do atributo é BigDecimal.", - "es": "Es el valor del cupón de descuento. Por ejemplo - BRL 14,50. El tipo del atributo es BigDecimal." - } - }, - "differential_pricing_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Attribute that commonly contains an agreement on how much the user will be charged (generally, this field is more relevant for Marketplace payments). Pricing and fees are calculated based on this identifier.", - "pt": "Atributo que comumente contém um acordo de quanto vai ser cobrado do usuário (geralmente, este campo é mais relevante para pagamentos do Marketplace). A precificação e as taxas são calculadas com base nesse identificador.", - "es": "Atributo que comúnmente contiene un acuerdo sobre cuánto se le cobrará al usuario (generalmente, este campo es más relevante para los pagos de Marketplace). Los precios y las tarifas se calculan en función de este identificador." - } - }, - "deduction_schema": { - "type": "string", - "format": "nullable", - "description": { - "en": "Pricing Scheme applied by Mercado Pago. It is a field that represents the information of a type of financing (installment). Ex - “ahora12” is a schema that indicates that the payment is divided into 12 installments. In addition, financing may have an additional cost, such cost being included in that same answer and pointed out to whom this applies (payer/collector).", - "pt": "Esquema de Pricing aplicado pelo Mercado Pago. É um campo que representa as informações de um tipo de financiamento (parcelamento). Ex. - “ahora12” é um schema que indica que o pagamento está parcelado em 12 vezes. Em adição, o financiamento pode ter um custo adicional, sendo tal custo incluído nessa mesma resposta e apontado a quem se aplica isso (payer/collector).", - "es": "Esquema de precios aplicado por Mercado Pago. Es un campo que representa la información de un tipo de financiamiento (cuota). Ej - “ahora12” es un esquema que indica que el pago se divide en 12 cuotas. Además, el financiamiento puede tener un costo adicional, siendo incluido dicho costo en esa misma respuesta y señalándose a quién aplica (payer/collector)." - } - }, - "transaction_details": { - "type": "object", - "properties": { - "payment_method_reference_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Unique identifier of the payment method", - "pt": "Identificador único do meio de pagamento", - "es": "Identificador único del método de pago" - } - }, - "net_received_amount": { - "type": "number", - "example": 56.16, - "description": { - "en": "Net amount received", - "pt": "Valor líquido recebido", - "es": "Monto neto recibido" - } - }, - "total_paid_amount": { - "type": "number", - "example": 58.8, - "description": { - "en": "Total amount charged to the payer", - "pt": "Valor total cobrado ao pagador", - "es": "Monto total cobrado al payer" - } - }, - "overpaid_amount": { - "type": "number", - "example": 0, - "description": { - "en": "Overpaid amount", - "pt": "Valor pago a mais", - "es": "Monto pagado en exceso" - } - }, - "external_resource_url": { - "type": "string", - "format": "nullable", - "description": { - "en": "External resource url", - "pt": "URL de recurso externo", - "es": "URL de recurso externo" - } - }, - "installment_amount": { - "type": "number", - "example": 58.8, - "description": { - "en": "Amount of the chosen financing fee.", - "pt": "Valor da taxa de financiamento escolhida.", - "es": "Monto de la cuota de financiación elegida." - } - }, - "financial_institution": { - "type": "string", - "format": "nullable", - "description": { - "en": "Financial institution", - "pt": "Instituição financeira", - "es": "Institución financiera" - } - }, - "payable_deferral_period": { - "type": "string", - "format": "nullable", - "description": { - "en": "Payment deferral period", - "pt": "Período de diferimento de pagamento", - "es": "Período de diferimiento del pago" - } - }, - "acquirer_reference": { - "type": "string", - "format": "nullable", - "description": { - "en": "Acquirer reference", - "pt": "Referência do adquirente", - "es": "Referencia de adquirente" - } - } - }, - "description": { - "en": "Transaction details", - "pt": "Detalhes da transação", - "es": "Detalles de la transacción" - } - }, - "fee_details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/fee_details_type" - }, - "amount": { - "type": "number", - "example": 2.64, - "description": { - "en": "Fee amount.", - "pt": "Valor da comissão", - "es": "Monto de la comisión" - } - }, - "fee_payer": { - "$ref": "#/components/schemas/fee_payer" - } - } - }, - "description": { - "en": "Fee detail.", - "pt": "Detalhe de comissão", - "es": "Detalle de comisión" - } - }, - "captured": { - "type": "boolean", - "description": { - "en": "Indicates if the payment amount was captured or is pending capture.", - "pt": "Indica se o valor do pagamento foi capturado ou está com captura pendente.", - "es": "Indica si el monto del pago fue capturado o se encuentra pendiente de captura." - } - }, - "binary_mode": { - "type": "boolean", - "description": { - "en": "When set to TRUE, payments can only be approved or rejected. Otherwise they can also result in_process.", - "pt": "Quando definido como TRUE, os pagamentos só podem ser aprovados ou rejeitados. Caso contrário, eles também podem resultar in_process.", - "es": "Cuando se configura como TRUE los pagos sólo pueden resultar aprobados o rechazados. Caso contrario también pueden resultar in_process." - } - }, - "call_for_authorize_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Identifier that is provided to the issuing bank so that payments can be authorized.", - "pt": "Identificador que é fornecido ao banco emissor para que os pagamentos possam ser autorizados.", - "es": "Identificador que se proporciona al banco emisor para que se pueda autorizar los pagos." - } - }, - "statement_descriptor": { - "type": "string", - "example": "MercadoPago", - "description": { - "en": "Description that the payment will appear with in the card statement (eg MERCADOPAGO)", - "pt": "Descrição com a qual o pagamento aparecerá no resumo do cartão (ex. MERCADOPAGO)", - "es": "Descripción con la que aparecerá el pago en el resumen de tarjeta (ej. MERCADOPAGO)" - } - }, - "installments": { - "type": "number", - "example": 1, - "description": { - "en": "Number of installments selected.", - "pt": "Número de parcelas selecionado", - "es": "Cantidad seleccionada de cuotas" - } - }, - "card": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Card ID.", - "pt": "Identificador de cartão", - "es": "Identificador de tarjeta" - } - }, - "first_six_digits": { - "type": "string", - "example": 423564, - "description": { - "en": "Card Bin", - "pt": "Bin do cartão", - "es": "Bin de la tarjeta" - } - }, - "last_four_digits": { - "type": "string", - "example": 5682, - "description": { - "en": "last 4 digits of the card", - "pt": "últimos 4 dígitos do cartão", - "es": "últimos 4 digitos de la tarjeta" - } - }, - "expiration_month": { - "type": "number", - "example": 6, - "description": { - "en": "Card's expiration month.", - "pt": "Mês de validade do cartão", - "es": "Mes de expiración de la tarjeta" - } - }, - "expiration_year": { - "type": "number", - "example": 2023, - "description": { - "en": "Card's expiration year.", - "pt": "Ano de validade do cartão", - "es": "Año de expiración de la tarjeta" - } - }, - "date_created": { - "type": "string", - "example": "2019-07-10T14:47:58.000Z", - "description": { - "en": "Card registration date.", - "pt": "Data de registro do cartão.", - "es": "Fecha de registro de la tarjeta." - } - }, - "date_last_updated": { - "type": "string", - "example": "2019-07-10T14:47:58.000Z", - "description": { - "en": "Date on which the last payment event was recorded.", - "pt": "Data em que o último evento de pagamento foi registrado.", - "es": "Fecha en la que se registró el ultimo evento sobre el pago." - } - }, - "cardholder": { - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "APRO", - "description": { - "es": "name", - "pt": "name", - "en": "name" - } - }, - "identification": { - "type": "object", - "properties": { - "number": { - "type": "string", - "example": 19119119100, - "description": { - "en": "The number refers to the user’s identifier. If it is a CPF, for example, it will have 11 numbers.", - "pt": "O número se refere ao identificador do usuário em questão. Se for um CPF, por exemplo, terá 11 números.", - "es": "El número hace referencia al identificador del usuario en cuestión. Si es un CPF, por ejemplo, tendrá 11 números." - } - }, - "type": { - "type": "string", - "example": "CPF", - "description": { - "en": "Identification type.", - "pt": "Tipo de identificação", - "es": "Tipo de identificación" - } - } - }, - "description": { - "es": "Personal identification.", - "pt": "Personal identification.", - "en": "Personal identification." - } - } - }, - "description": { - "en": "Cardholder details.", - "pt": "Detalhes do titular do cartão.", - "es": "Detalles del titular de la tarjeta." - } - } - }, - "description": { - "en": "Card details.", - "pt": "Informações do cartão.", - "es": "Detalles de la tarjeta." - } - }, - "notification_url": { - "type": "string", - "example": "https://www.suaurl.com/notificacoes/", - "description": { - "en": "Notifications URL available to receive notifications of events related to Payment. The maximum number of characters allowed for submission in this parameter is 248 characters.", - "pt": "URL de notificações disponível para receber notificações de eventos relacionados ao Pagamento. A quantidade máxima de caracteres permitidos para envio neste parâmetro é de 248 caracteres.", - "es": "URL de Notificaciones disponibilizada para recibir las notificaciones de los eventos relacionados al Pago. La cantidad máxima de caracteres permitidos para enviar en este parámetro es de 248 caracteres." - } - }, - "processing_mode": { - "type": "string", - "example": "aggregator", - "description": { - "en": "Processing mode. There are two types.", - "pt": "Modo de processamento. Existem dois tipos.", - "es": "Modo de procesamiento. Existen dos tipos." - }, - "enum": [ - { - "title": "Aggregator", - "description": { - "en": "The merchant will use the Mercado Pago merchant codes and will take advantage of the financial advantages that we offer.", - "es": "The merchant will use the Mercado Pago merchant codes and will take advantage of the financial advantages that we offer.", - "pt": "The merchant will use the Mercado Pago merchant codes and will take advantage of the financial advantages that we offer." - } - }, - { - "title": "Gateway", - "description": { - "en": "For the merchant it is necessary to have their own merchant codes for online sales and to have an agreement with each of the desired means of payment.", - "es": "For the merchant it is necessary to have their own merchant codes for online sales and to have an agreement with each of the desired means of payment.", - "pt": "For the merchant it is necessary to have their own merchant codes for online sales and to have an agreement with each of the desired means of payment." - } - } - ] - }, - "merchant_account_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Merchant store code identifier. Applies only to the gateway model (since the delivery of money to the merchant does not go through the Mercado Pago system).", - "pt": "Identificador do código da loja comerciante. Aplica-se somente ao modelo gateway (porque a entrega de dinheiro ao comerciante não passa pelo sistema do Mercado Pago).", - "es": "Identificador del código de la tienda del merchant. Aplica solo para el modelo de gateway (ya que la entrega de dinero al comercio no pasa por el sistema de Mercado Pago)." - } - }, - "acquirer": { - "type": "string", - "format": "nullable", - "description": { - "en": "Acquirer.", - "pt": "Adquirente.", - "es": "Adquirente." - } - }, - "merchant_number": { - "type": "string", - "format": "nullable", - "description": { - "en": "Merchant number (Applies to gateway model).", - "pt": "Número da loja (aplica-se ao modelo de gateway).", - "es": "Número de comercio (Aplica para modelo gateway)." - } - }, - "point_of_interaction": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "PIX", - "description": { - "en": "Payment type identifier", - "pt": "Identificador do tipo de pagamento", - "es": "Identificador del tipo de pago" - } - }, - "sub_type": { - "type": "string", - "description": { - "en": "Secondary identifier of the payment type", - "pt": "Identificador secundário do tipo de pagamento", - "es": "Identificador secundario del tipo de pago" - } - }, - "application_data": { - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "NAME_SDK", - "description": { - "en": "Application name", - "pt": "Nome da aplicação", - "es": "Nombre de la aplicación" - } - }, - "version": { - "type": "string", - "example": "VERSION_NUMBER", - "description": { - "en": "Current version", - "pt": "Versão atual da aplicação", - "es": "Versión actual de la aplicación" - } - } - }, - "description": { - "en": "Information about the application that processes the payment", - "pt": "Informação da aplicação que processa o pagamento", - "es": "Información de la aplicación que procesa el pago" - } - }, - "transaction_data": { - "type": "object", - "properties": { - "qr_code_base64": { - "type": "string", - "example": "iVBORw0KGgoAAAANSUhEUgAABRQAAAUUCAYAAACu5p7oAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAIABJREFUeJzs2luO3LiWQNFmI+Y/Zd6vRt36KGNXi7ZOBtcagHD4kNLeiLX33v8DAAAAABD879sDAAAAAAA/h6AIAAAAAGSCIgAAAACQCYoAAAAAQCYoAgAAAACZoAgAAAAAZIIiAAAAAJAJigAAAABAJigCAAAAAJmgCAAAAABkgiIAAAAAkAmKAAAAAEAmKAIAAAAAmaAIAAAAAGSCIgAAAACQCYoAAAAAQCYoAgAAAACZoAgAAAAAZIIiAAAAAJAJigAAAABAJigCA...", - "description": { - "en": "Base64 representation of the image of the QR code to be scanned to finalize the payment", - "pt": "Representação em Base64 da imagem do código QR a ser digitalizado para finalização do pagamento", - "es": "Representación en base64 de la imagen del código QR a escanear para finalizar el pago" - } - }, - "qr_code": { - "type": "string", - "example": "00020126600014br.gov.bcb.pix0117test@testuser.com0217dados adicionais520400005303986540510.005802BR5913Maria Silva6008Brasilia62070503***6304E2CA", - "description": { - "en": "Alphanumeric code to copy and paste, used to finalize the payment", - "pt": "Código alfanumérico para copiar e colar, para finalizar o pagamento", - "es": "Código alfanumérico para copiar y pegar, para finalizar el pago" - } - }, - "ticket_url": { - "type": "string", - "example": "https://www.mercadopago.com.br/payments/123456789/ticket?caller_id=123456&hash=123e4567-e89b-12d3-a456-426655440000", - "description": { - "es": "A link to the rendered pix, with QR codes and instructions to pay", - "pt": "A link to the rendered pix, with QR codes and instructions to pay", - "en": "A link to the rendered pix, with QR codes and instructions to pay" - } - } - }, - "description": { - "en": "Information on the pending payment that was generated", - "pt": "Informação do pagamento pendente que foi gerado", - "es": "Información del pago pendiente que fue generado" - } - } - }, - "description": { - "en": "Information from the application that processes the payment and receives regulatory data", - "pt": "Informação da aplicação que processa o pagamento e recebe dados regulatórios", - "es": "Información de la aplicación que procesa el pago y recibe datos regulatorios" - } - } - } - } - } - } - }, - "400": { - "description": { - "en": "Error", - "pt": "Erro", - "es": "Error" - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "errorKey": { - "type": "string", - "enum": [ - { - "title": "1", - "description": { - "en": "Params Error.", - "es": "Params Error.", - "pt": "Params Error." - } - }, - { - "title": "3", - "description": { - "en": "Token must be for test.", - "es": "Token must be for test.", - "pt": "Token must be for test." - } - }, - { - "title": "5", - "description": { - "en": "Must provide your access_token to proceed.", - "es": "Must provide your access_token to proceed.", - "pt": "Must provide your access_token to proceed." - } - }, - { - "title": "23", - "description": { - "en": "The following parameters must be valid date and format (yyyy-MM-dd'T'HH:mm:ssz) date_of_expiration.", - "es": "The following parameters must be valid date and format (yyyy-MM-dd'T'HH:mm:ssz) date_of_expiration.", - "pt": "The following parameters must be valid date and format (yyyy-MM-dd'T'HH:mm:ssz) date_of_expiration." - } - }, - { - "title": "1000", - "description": { - "en": "Number of rows exceeded the limits.", - "es": "Number of rows exceeded the limits.", - "pt": "Number of rows exceeded the limits." - } - }, - { - "title": "1001", - "description": { - "en": "Date format must be yyyy-MM-dd'T'HH:mm:ss.SSSZ.", - "es": "Date format must be yyyy-MM-dd'T'HH:mm:ss.SSSZ.", - "pt": "Date format must be yyyy-MM-dd'T'HH:mm:ss.SSSZ." - } - }, - { - "title": "2001", - "description": { - "en": "Already posted the same request in the last minute.", - "es": "Already posted the same request in the last minute.", - "pt": "Already posted the same request in the last minute." - } - }, - { - "title": "2002", - "description": { - "en": "Customer not found.", - "es": "Customer not found.", - "pt": "Customer not found." - } - }, - { - "title": "2004", - "description": { - "en": "POST to Gateway Transactions API fail.", - "es": "POST to Gateway Transactions API fail.", - "pt": "POST to Gateway Transactions API fail." - } - }, - { - "title": "2006", - "description": { - "en": "Card Token not found.", - "es": "Card Token not found.", - "pt": "Card Token not found." - } - }, - { - "title": "2007", - "description": { - "en": "Connection to Card Token API fail.", - "es": "Connection to Card Token API fail.", - "pt": "Connection to Card Token API fail." - } - }, - { - "title": "2009", - "description": { - "en": "Card token issuer can't be null.", - "es": "Card token issuer can't be null.", - "pt": "Card token issuer can't be null." - } - }, - { - "title": "2034", - "description": { - "en": "Invalid users involved 2041 – GET to API APPLICATION fail.", - "es": "Invalid users involved 2041 – GET to API APPLICATION fail.", - "pt": "Invalid users involved 2041 – GET to API APPLICATION fail." - } - }, - { - "title": "2060", - "description": { - "en": "The customer can't be equal to the collector.", - "es": "The customer can't be equal to the collector.", - "pt": "The customer can't be equal to the collector." - } - }, - { - "title": "2062", - "description": { - "en": "Invalid card token.", - "es": "Invalid card token.", - "pt": "Invalid card token." - } - }, - { - "title": "2072", - "description": { - "en": "Invalid value for transaction_amount.", - "es": "Invalid value for transaction_amount.", - "pt": "Invalid value for transaction_amount." - } - }, - { - "title": "2077", - "description": { - "en": "Deferred capture not supported.", - "es": "Deferred capture not supported.", - "pt": "Deferred capture not supported." - } - }, - { - "title": "2123", - "description": { - "en": "Invalid operators users involved.", - "es": "Invalid operators users involved.", - "pt": "Invalid operators users involved." - } - }, - { - "title": "2131", - "description": { - "en": "Cannot infer Payment Method.", - "es": "Cannot infer Payment Method.", - "pt": "Cannot infer Payment Method." - } - }, - { - "title": "3000", - "description": { - "en": "You must provide your cardholder_name with your card data.", - "es": "You must provide your cardholder_name with your card data.", - "pt": "You must provide your cardholder_name with your card data." - } - }, - { - "title": "3001", - "description": { - "en": "You must provide your cardissuer_id with your card data.", - "es": "You must provide your cardissuer_id with your card data.", - "pt": "You must provide your cardissuer_id with your card data." - } - }, - { - "title": "3003", - "description": { - "en": "Invalid card_token_id.", - "es": "Invalid card_token_id.", - "pt": "Invalid card_token_id." - } - }, - { - "title": "3004", - "description": { - "en": "Invalid parameter site_id.", - "es": "Invalid parameter site_id.", - "pt": "Invalid parameter site_id." - } - }, - { - "title": "3005", - "description": { - "en": "Not valid action, the resource is in a state that does not allow this operation. For more information see the state that has the resource.", - "es": "Not valid action, the resource is in a state that does not allow this operation. For more information see the state that has the resource.", - "pt": "Not valid action, the resource is in a state that does not allow this operation. For more information see the state that has the resource." - } - }, - { - "title": "3006", - "description": { - "en": "Invalid parameter cardtoken_id.", - "es": "Invalid parameter cardtoken_id.", - "pt": "Invalid parameter cardtoken_id." - } - }, - { - "title": "3007", - "description": { - "en": "The parameter client_id can not be null or empty.", - "es": "The parameter client_id can not be null or empty.", - "pt": "The parameter client_id can not be null or empty." - } - }, - { - "title": "3008", - "description": { - "en": "Not found Cardtoken.", - "es": "Not found Cardtoken.", - "pt": "Not found Cardtoken." - } - }, - { - "title": "3009", - "description": { - "en": "unauthorized client_id.", - "es": "unauthorized client_id.", - "pt": "unauthorized client_id." - } - }, - { - "title": "3010", - "description": { - "en": "Not found card on whitelist.", - "es": "Not found card on whitelist.", - "pt": "Not found card on whitelist." - } - }, - { - "title": "3011", - "description": { - "en": "Not found payment_method.", - "es": "Not found payment_method.", - "pt": "Not found payment_method." - } - }, - { - "title": "3012", - "description": { - "en": "Invalid parameter security_code_length.", - "es": "Invalid parameter security_code_length.", - "pt": "Invalid parameter security_code_length." - } - }, - { - "title": "3013", - "description": { - "en": "The parameter security_code is a required field can not be null or empty.", - "es": "The parameter security_code is a required field can not be null or empty.", - "pt": "The parameter security_code is a required field can not be null or empty." - } - }, - { - "title": "3014", - "description": { - "en": "Invalid parameter payment_method.", - "es": "Invalid parameter payment_method.", - "pt": "Invalid parameter payment_method." - } - }, - { - "title": "3015", - "description": { - "en": "Invalid parameter card_number_length.", - "es": "Invalid parameter card_number_length.", - "pt": "Invalid parameter card_number_length." - } - }, - { - "title": "3016", - "description": { - "en": "Invalid parameter card_number.", - "es": "Invalid parameter card_number.", - "pt": "Invalid parameter card_number." - } - }, - { - "title": "3017", - "description": { - "en": "The parameter card_number_id can not be null or empty.", - "es": "The parameter card_number_id can not be null or empty.", - "pt": "The parameter card_number_id can not be null or empty." - } - }, - { - "title": "3018", - "description": { - "en": "The parameter expiration_month can not be null or empty.", - "es": "The parameter expiration_month can not be null or empty.", - "pt": "The parameter expiration_month can not be null or empty." - } - }, - { - "title": "3019", - "description": { - "en": "The parameter expiration_year can not be null or empty.", - "es": "The parameter expiration_year can not be null or empty.", - "pt": "The parameter expiration_year can not be null or empty." - } - }, - { - "title": "3020", - "description": { - "en": "The parameter cardholder.name can not be null or empty.", - "es": "The parameter cardholder.name can not be null or empty.", - "pt": "The parameter cardholder.name can not be null or empty." - } - }, - { - "title": "3021", - "description": { - "en": "The parameter cardholder.document.number can not be null or empty.", - "es": "The parameter cardholder.document.number can not be null or empty.", - "pt": "The parameter cardholder.document.number can not be null or empty." - } - }, - { - "title": "3022", - "description": { - "en": "The parameter cardholder.document.type can not be null or empty.", - "es": "The parameter cardholder.document.type can not be null or empty.", - "pt": "The parameter cardholder.document.type can not be null or empty." - } - }, - { - "title": "3023", - "description": { - "en": "The parameter cardholder.document.subtype can not be null or empty.", - "es": "The parameter cardholder.document.subtype can not be null or empty.", - "pt": "The parameter cardholder.document.subtype can not be null or empty." - } - }, - { - "title": "3024", - "description": { - "en": "Not valid action - partial refund unsupported for this transaction.", - "es": "Not valid action - partial refund unsupported for this transaction.", - "pt": "Not valid action - partial refund unsupported for this transaction." - } - }, - { - "title": "3025", - "description": { - "en": "Invalid Auth Code.", - "es": "Invalid Auth Code.", - "pt": "Invalid Auth Code." - } - }, - { - "title": "3026", - "description": { - "en": "Invalid card_id for this payment_method_id.", - "es": "Invalid card_id for this payment_method_id.", - "pt": "Invalid card_id for this payment_method_id." - } - }, - { - "title": "3027", - "description": { - "en": "Invalid payment_type_id.", - "es": "Invalid payment_type_id.", - "pt": "Invalid payment_type_id." - } - }, - { - "title": "3028", - "description": { - "en": "Invalid payment_method_id.", - "es": "Invalid payment_method_id.", - "pt": "Invalid payment_method_id." - } - }, - { - "title": "3029", - "description": { - "en": "Invalid card expiration month.", - "es": "Invalid card expiration month.", - "pt": "Invalid card expiration month." - } - }, - { - "title": "3030", - "description": { - "en": "Invalid card expiration year.", - "es": "Invalid card expiration year.", - "pt": "Invalid card expiration year." - } - }, - { - "title": "3031", - "description": { - "en": "Secure_code_id can't be null.", - "es": "Secure_code_id can't be null.", - "pt": "Secure_code_id can't be null." - } - }, - { - "title": "3032", - "description": { - "en": "Invalid security_code_length 3033 3034 - Invalid card_number_validation.", - "es": "Invalid security_code_length 3033 3034 - Invalid card_number_validation.", - "pt": "Invalid security_code_length 3033 3034 - Invalid card_number_validation." - } - }, - { - "title": "4000", - "description": { - "en": "card atributte can't be null.", - "es": "card atributte can't be null.", - "pt": "card atributte can't be null." - } - }, - { - "title": "4001", - "description": { - "en": "payment_method_id atributte can't be null.", - "es": "payment_method_id atributte can't be null.", - "pt": "payment_method_id atributte can't be null." - } - }, - { - "title": "4002", - "description": { - "en": "transaction_amount atributte can't be null.", - "es": "transaction_amount atributte can't be null.", - "pt": "transaction_amount atributte can't be null." - } - }, - { - "title": "4003", - "description": { - "en": "transaction_amount atributte must be numeric.", - "es": "transaction_amount atributte must be numeric.", - "pt": "transaction_amount atributte must be numeric." - } - }, - { - "title": "4004", - "description": { - "en": "installments atributte can't be null.", - "es": "installments atributte can't be null.", - "pt": "installments atributte can't be null." - } - }, - { - "title": "4005", - "description": { - "en": "installments atributte must be numeric.", - "es": "installments atributte must be numeric.", - "pt": "installments atributte must be numeric." - } - }, - { - "title": "4006", - "description": { - "en": "payer atributte is malformed.", - "es": "payer atributte is malformed.", - "pt": "payer atributte is malformed." - } - }, - { - "title": "4007", - "description": { - "en": "site_id atributte can't be null.", - "es": "site_id atributte can't be null.", - "pt": "site_id atributte can't be null." - } - }, - { - "title": "4012", - "description": { - "en": "payer.id atributte can't be null.", - "es": "payer.id atributte can't be null.", - "pt": "payer.id atributte can't be null." - } - }, - { - "title": "4013", - "description": { - "en": "payer.type atributte can't be null.", - "es": "payer.type atributte can't be null.", - "pt": "payer.type atributte can't be null." - } - }, - { - "title": "4015", - "description": { - "en": "payment_method_reference_id atributte can't be null.", - "es": "payment_method_reference_id atributte can't be null.", - "pt": "payment_method_reference_id atributte can't be null." - } - }, - { - "title": "4016", - "description": { - "en": "payment_method_reference_id atributte must be numeric.", - "es": "payment_method_reference_id atributte must be numeric.", - "pt": "payment_method_reference_id atributte must be numeric." - } - }, - { - "title": "4017", - "description": { - "en": "status atributte can't be null.", - "es": "status atributte can't be null.", - "pt": "status atributte can't be null." - } - }, - { - "title": "4018", - "description": { - "en": "payment_id atributte can't be null.", - "es": "payment_id atributte can't be null.", - "pt": "payment_id atributte can't be null." - } - }, - { - "title": "4019", - "description": { - "en": "payment_id atributte must be numeric.", - "es": "payment_id atributte must be numeric.", - "pt": "payment_id atributte must be numeric." - } - }, - { - "title": "4020", - "description": { - "en": "notificaction_url atributte must be url valid.", - "es": "notificaction_url atributte must be url valid.", - "pt": "notificaction_url atributte must be url valid." - } - }, - { - "title": "4021", - "description": { - "en": "notificaction_url atributte must be shorter than 500 characters.", - "es": "notificaction_url atributte must be shorter than 500 characters.", - "pt": "notificaction_url atributte must be shorter than 500 characters." - } - }, - { - "title": "4022", - "description": { - "en": "metadata atributte must be a valid JSON.", - "es": "metadata atributte must be a valid JSON.", - "pt": "metadata atributte must be a valid JSON." - } - }, - { - "title": "4023", - "description": { - "en": "transaction_amount atributte can't be null.", - "es": "transaction_amount atributte can't be null.", - "pt": "transaction_amount atributte can't be null." - } - }, - { - "title": "4024", - "description": { - "en": "transaction_amount atributte must be numeric.", - "es": "transaction_amount atributte must be numeric.", - "pt": "transaction_amount atributte must be numeric." - } - }, - { - "title": "4025", - "description": { - "en": "refund_id can't be null.", - "es": "refund_id can't be null.", - "pt": "refund_id can't be null." - } - }, - { - "title": "4026", - "description": { - "en": "Invalid coupon_amount.", - "es": "Invalid coupon_amount.", - "pt": "Invalid coupon_amount." - } - }, - { - "title": "4027", - "description": { - "en": "campaign_id atributte must be numeric.", - "es": "campaign_id atributte must be numeric.", - "pt": "campaign_id atributte must be numeric." - } - }, - { - "title": "4028", - "description": { - "en": "coupon_amount atributte must be numeric.", - "es": "coupon_amount atributte must be numeric.", - "pt": "coupon_amount atributte must be numeric." - } - }, - { - "title": "4029", - "description": { - "en": "Invalid payer type.", - "es": "Invalid payer type.", - "pt": "Invalid payer type." - } - }, - { - "title": "4037", - "description": { - "en": "Invalid transaction_amount.", - "es": "Invalid transaction_amount.", - "pt": "Invalid transaction_amount." - } - }, - { - "title": "4038", - "description": { - "en": "application_fee cannot be bigger than transaction_amount.", - "es": "application_fee cannot be bigger than transaction_amount.", - "pt": "application_fee cannot be bigger than transaction_amount." - } - }, - { - "title": "4039", - "description": { - "en": "application_fee cannot be a negative value.", - "es": "application_fee cannot be a negative value.", - "pt": "application_fee cannot be a negative value." - } - }, - { - "title": "4050", - "description": { - "en": "payer.email must be a valid email.", - "es": "payer.email must be a valid email.", - "pt": "payer.email must be a valid email." - } - }, - { - "title": "4051", - "description": { - "en": "payer.email must be shorter than 254 characters.", - "es": "payer.email must be shorter than 254 characters.", - "pt": "payer.email must be shorter than 254 characters." - } - }, - { - "title": "6033", - "description": { - "en": "User unavailable.", - "es": "User unavailable.", - "pt": "User unavailable." - } - }, - { - "title": "7523", - "description": { - "en": "Invalid expiration date.", - "es": "Invalid expiration date.", - "pt": "Invalid expiration date." - } - } - ] - } - } - } - } - } - }, - "403": { - "description": { - "en": "Error", - "pt": "Erro", - "es": "Error" - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "errorKey": { - "type": "string", - "enum": [ - { - "title": "4", - "description": { - "en": "The caller is not authorized to access this resource.", - "es": "The caller is not authorized to access this resource.", - "pt": "The caller is not authorized to access this resource." - } - }, - { - "title": "3002", - "description": { - "en": "The caller is not authorized to perform this action.", - "es": "The caller is not authorized to perform this action.", - "pt": "The caller is not authorized to perform this action." - } - } - ] - } - } - } - } - } - }, - "404": { - "description": { - "en": "Error", - "pt": "Erro", - "es": "Error" - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "errorKey": { - "type": "string", - "enum": [ - { - "title": "2000", - "description": { - "en": "Payment not found. This error will return a field called \"data\". This field contains the error date \"25-09-2023T16:57:53UTC\" and a Request ID, an ID that identifies payment traceability.", - "es": "Payment not found. This error will return a field called \"data\". This field contains the error date \"25-09-2023T16:57:53UTC\" and a Request ID, an ID that identifies payment traceability.", - "pt": "Payment not found. This error will return a field called \"data\". This field contains the error date \"25-09-2023T16:57:53UTC\" and a Request ID, an ID that identifies payment traceability." - } - } - ] - } - } - } - } - } - } - }, - "title": { - "en": "Create payment", - "pt": "Criar pagamento", - "es": "Crear pago" - }, - "userCases": [ - { - "name": { - "en": "Create payment with visa", - "pt": "Criar pagamento visa", - "es": "Crear pago con visa " - } - }, - { - "name": { - "en": "Create payment with Rapipago", - "pt": "Criar pagamento Rapipago", - "es": "Crear pago con Rapipago" - }, - "siteId": [ - "MLA" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": { - "payment_method_id": { - "example": "rapipago" - } - } - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "properties": { - "id": { - "example": 123456 - }, - "payment_method_id": { - "example": "rapipago" - }, - "description": { - "example": "Test payment rapipago" - } - } - } - } - } - } - }, - "parameters": [ - { - "name": "X-Idempotency-Key", - "schema": { - "example": "123445678901234" - } - } - ] - }, - { - "name": { - "en": "Create payment with master", - "pt": "Criar pagamento master", - "es": "Crear pago con master" - }, - "siteId": [ - "allSites" - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": { - "payment_method_id": { - "example": "master" - } - } - } - } - } - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "properties": { - "id": { - "example": 123456 - }, - "payment_method_id": { - "example": "master" - }, - "description": { - "example": "Test payment master" - } - } - } - } - } - } - }, - "parameters": [ - { - "name": "X-Idempotency-Key", - "schema": { - "example": "0d5020ed-1af6-469c-ae06-c3bec19954bb" - } - } - ] - } - ] - } - }, - "/v1/payments/{id}": { - "get": { - "tags": [ - "checkout-pro", - "qr-code", - "subscriptions", - "checkout-api", - "mp-point" - ], - "description": { - "en": "See all the information of a payment through the payment ID", - "pt": "Consulte todas as informações de um pagamento através do ID de pagamento", - "es": "Consulta toda la información de un pago a través del ID del pago" - }, - "parameters": [ - { - "name": "id", - "in": "path", - "description": { - "en": "Unique Payment Identifier, automatically generated by Mercado Pago", - "pt": "Identificador único de pagamento, gerado automaticamente pelo Mercado Pago", - "es": "Identificador único del pago, generado automáticamente por Mercado Pago" - }, - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": { - "es": "Success", - "pt": "Success", - "en": "Success" - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "id": { - "type": "string", - "example": 1, - "description": { - "en": "Unique Payment Identifier, automatically generated by Mercado Pago", - "pt": "Identificador único de pagamento, gerado automaticamente pelo Mercado Pago", - "es": "Identificador único del pago, generado automáticamente por Mercado Pago" - } - }, - "date_created": { - "type": "string", - "example": "2017-08-31T11:26:38.000Z", - "description": { - "en": "Payment creation date.", - "pt": "Data de criação do pagamento.", - "es": "Fecha de creación del Pago." - } - }, - "date_approved": { - "type": "string", - "example": "2017-08-31T11:26:38.000Z", - "description": { - "en": "Payment approval date. A payment can be generated in an intermediate state and then approved, so the creation date will not always coincide with the Approval Date.", - "pt": "Data de aprovação do pagamento. Um pagamento pode ser gerado em um estado intermediário e depois aprovado, portanto, a data de criação nem sempre coincidirá com a Data de Aprovação.", - "es": "Fecha de aprobación del Pago. Un pago puede generarse en un estado intermedio y luego ser aprobado, por tanto la fecha de creación no siempre coincidirá con la Fecha de Aprobación." - } - }, - "date_last_updated": { - "type": "string", - "example": "2017-08-31T11:26:38.000Z", - "description": { - "en": "Date on which the last payment event was recorded.", - "pt": "Data em que o último evento de pagamento foi registrado.", - "es": "Fecha en la que se registró el ultimo evento sobre el pago." - } - }, - "date_of_expiration": { - "type": "string", - "format": "nullable", - "description": { - "en": "Payment’s expiration date. The attribute’s valid format is as follows - \"yyyy-MM-dd'T'HH:mm:ssz\". Ex. - 2022-11-17T09:37:52.000-04:00.", - "pt": "Data de expiração do pagamento. O formato válido do atributo é o seguinte - \"yyyy-MM-dd'T'HH:mm:ssz\". Ex. - 2022-11-17T09:37:52.000-04:00.", - "es": "Fecha de vencimiento del pago. El formato válido del atributo es el siguiente - \"yyyy-MM-dd'T'HH:mm:ssz\". Ej. - 2022-11-17T09:37:52.000-04:00." - } - }, - "money_release_date": { - "type": "string", - "example": "2017-09-14T11:26:38.000Z", - "description": { - "en": "Date on which the payment is settled and the money is made available in the Mercado Pago account of the Collector (the one who receives the payment). The field can take on the values “pending” or “released”, where the first indicates that the payment has not yet been released (money held for a period) and “released” means that the money has already been released to the user's available balance.", - "pt": "Data em que o pagamento é liquidado e o dinheiro é disponibilizado na conta Mercado Pago do Collector (aquele que recebe o pagamento). O campo pode assumir os valores “pending” ou “released”, sendo que o primeiro indica que o pagamento ainda não foi liberado (dinheiro retido por tempo) e “released” significa que o dinheiro já foi liberado para o saldo disponível do usuário.", - "es": "Fecha en que se liquida el pago y se pone a disposición el dinero en la cuenta de Mercado Pago del Collector (el que recibe el pago). El campo puede tomar los valores “pending” o “released”, siendo que el primero indica que el pago todavía no fue liberado (dinero retenido por tiempo) y “released” significa que el dinero ya fue liberado al disponible del usuario." - } - }, - "operation_type": { - "$ref": "#/components/schemas/operation_type" - }, - "issuer_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Is the identifier of the card issuer being used in a credit or debit card payment.", - "pt": "É o identificador do emissor do cartão que está sendo utilizado em um pagamento com cartão de crédito ou débito.", - "es": "Es el identificador del emisor de la tarjeta que se utiliza en un pago con tarjeta de crédito o débito." - } - }, - "payment_method_id": { - "type": "string", - "example": "account_money", - "description": { - "en": "It indicates the identifier of the payment method selected to make the transaction. Here are some examples. Get all available payment methods by consulting the 'Get payment Methods API'.", - "pt": "Indica o identificador do meio de pagamento selecionado para efetuar o pagamento. A seguir, apresentamos alguns exemplos. Obtenha todos os meios de pagamento disponíveis consultando a API de 'Obter meios de pagamento'.", - "es": "Identificador del medio de pago. Indica el ID del medio de pago seleccionado para realizar el pago. A continuación presentamos algunos ejemplos. Obtén todos los métodos de pago disponibles consultando la API de 'Obtener métodos de pago'." - }, - "enum": [ - { - "title": "pix", - "description": { - "en": "Instant digital payment method used in Brazil;", - "es": "Instant digital payment method used in Brazil;", - "pt": "Instant digital payment method used in Brazil;" - } - }, - { - "title": "account_money", - "description": { - "en": "When the payment is debited directly from a Mercado Pago account;", - "es": "When the payment is debited directly from a Mercado Pago account;", - "pt": "When the payment is debited directly from a Mercado Pago account;" - } - }, - { - "title": "debin_transfer", - "description": { - "en": "Digital payment method used in Argentina that immediately debits an amount from an account, requesting prior authorization;", - "es": "Digital payment method used in Argentina that immediately debits an amount from an account, requesting prior authorization;", - "pt": "Digital payment method used in Argentina that immediately debits an amount from an account, requesting prior authorization;" - } - }, - { - "title": "ted", - "description": { - "en": "It is the Electronic Transfer Available payment, used in Brazil, that has fees to be used. The payment is made the same day of the transaction, but for this it is necessary to make the transfer within the stipulated period;", - "es": "It is the Electronic Transfer Available payment, used in Brazil, that has fees to be used. The payment is made the same day of the transaction, but for this it is necessary to make the transfer within the stipulated period;", - "pt": "It is the Electronic Transfer Available payment, used in Brazil, that has fees to be used. The payment is made the same day of the transaction, but for this it is necessary to make the transfer within the stipulated period;" - } - }, - { - "title": "cvu", - "description": { - "en": "Payment method used in Argentina;", - "es": "Payment method used in Argentina;", - "pt": "Payment method used in Argentina;" - } - }, - { - "title": "pse", - "description": { - "en": "Digital payment method used in Colombia which users authorize the debit of funds from their bank through virtual banking. your savings, checking or electronic deposit accounts.", - "es": "Digital payment method used in Colombia which users authorize the debit of funds from their bank through virtual banking. your savings, checking or electronic deposit accounts.", - "pt": "Digital payment method used in Colombia which users authorize the debit of funds from their bank through virtual banking. your savings, checking or electronic deposit accounts." - } - } - ] - }, - "payment_type_id": { - "$ref": "#/components/schemas/payment_type_id" - }, - "status": { - "$ref": "#/components/schemas/status" - }, - "status_detail": { - "type": "string", - "example": "accredited", - "description": { - "en": "Detail in which the Collection resulted", - "pt": "Detalhe em que resultou a Coleção", - "es": "Detalle en el que resultó el Cobro" - }, - "enum": [ - { - "title": "Accredited", - "description": { - "en": "credited payment.", - "es": "credited payment.", - "pt": "credited payment." - } - }, - { - "title": "pending_contingency", - "description": { - "en": "the payment is being processed.", - "es": "the payment is being processed.", - "pt": "the payment is being processed." - } - }, - { - "title": "pending_review_manual", - "description": { - "en": "the payment is under review to determine its approval or rejection.", - "es": "the payment is under review to determine its approval or rejection.", - "pt": "the payment is under review to determine its approval or rejection." - } - }, - { - "title": "cc_rejected_bad_filled_date", - "description": { - "en": "incorrect expiration date.", - "es": "incorrect expiration date.", - "pt": "incorrect expiration date." - } - }, - { - "title": "cc_rejected_bad_filled_other", - "description": { - "en": "incorrect card details.", - "es": "incorrect card details.", - "pt": "incorrect card details." - } - }, - { - "title": "cc_rejected_bad_filled_security_code", - "description": { - "en": "incorrect CVV.", - "es": "incorrect CVV.", - "pt": "incorrect CVV." - } - }, - { - "title": "cc_rejected_blacklist", - "description": { - "en": "the card is on a black list for theft/complaints/fraud.", - "es": "the card is on a black list for theft/complaints/fraud.", - "pt": "the card is on a black list for theft/complaints/fraud." - } - }, - { - "title": "cc_rejected_call_for_authorize", - "description": { - "en": "the means of payment requires prior authorization of the amount of the operation.", - "es": "the means of payment requires prior authorization of the amount of the operation.", - "pt": "the means of payment requires prior authorization of the amount of the operation." - } - }, - { - "title": "cc_rejected_card_disabled", - "description": { - "en": "the card is inactive.", - "es": "the card is inactive.", - "pt": "the card is inactive." - } - }, - { - "title": "cc_rejected_duplicated_payment", - "description": { - "en": "transacción duplicada.", - "es": "transacción duplicada.", - "pt": "transacción duplicada." - } - }, - { - "title": "cc_rejected_high_risk", - "description": { - "en": "rechazo por Prevención de Fraude.", - "es": "rechazo por Prevención de Fraude.", - "pt": "rechazo por Prevención de Fraude." - } - }, - { - "title": "cc_rejected_insufficient_amount", - "description": { - "en": "insufficient amount.", - "es": "insufficient amount.", - "pt": "insufficient amount." - } - }, - { - "title": "cc_rejected_invalid_installments", - "description": { - "en": "invalid number of installments.", - "es": "invalid number of installments.", - "pt": "invalid number of installments." - } - }, - { - "title": "cc_rejected_max_attempts", - "description": { - "en": "exceeded maximum number of attempts.", - "es": "exceeded maximum number of attempts.", - "pt": "exceeded maximum number of attempts." - } - }, - { - "title": "cc_rejected_other_reason", - "description": { - "en": "generic error.", - "es": "generic error.", - "pt": "generic error." - } - } - ] - }, - "currency_id": { - "$ref": "#/components/schemas/currency_id" - }, - "description": { - "type": "string", - "example": "Pago Pizza", - "description": { - "en": "Description sent in the payment creation request. Ex. - In a pix payment, the description is “Payment of Installments without card”. In another cases, such as a purchase in a physical store where the customer uses the machine to pay, we can find the description “Sale in person”. In marketplace purchases, the purchase description usually corresponds to a purchased product - “Pendrive Multilaser Twist Pd590 64gb 2.0 Black And Silver + 1 product”.", - "pt": "Descrição enviada na solicitação de criação de pagamento. Por exemplo - Em um pagamento pix, há a descrição “Pagamento de parcelas de Linha de Crédito”. Em outro caso, uma compra em loja física onde o cliente utiliza a maquininha para pagar, podemos encontrar a descrição - “Venda presencial”. Já em compras do marketplace, a descrição da compra geralmente corresponde a um produto comprado - “\tPendrive Multilaser Twist Pd590 64gb 2.0 Preto E Prateado + 1 produto”.", - "es": "Descripción enviada en el request de creación de pago. Por ejemplo - En un pago con pix, se encuentra la descripción “Pagos sin Tarjeta”. En otro caso, una compra en una tienda física donde el cliente utiliza la máquina para pagar, podemos encontrar la descripción “Venta en persona”. En las compras en marketplace, la descripción de compra suele corresponder a un producto comprado - “Pendrive Multilaser Twist Pd590 64gb 2.0 Negro Y Plata + 1 producto”." - } - }, - "live_mode": { - "type": "boolean", - "description": { - "en": "Indicates whether the Payment was made in a production environment or in a Test environment. If TRUE, then the chargeback will be processed in production mode. If FALSE, then the chargeback will be processed in sandbox mode.", - "pt": "Indica se o Pagamento foi feito em ambiente de produção ou em ambiente de Teste. Se TRUE, o estorno será processado em modo de produção. Se FALSE, o estorno será processado no modo sandbox.", - "es": "Indica si el Pago se realizó en ambiente productivo o en un ambiente de Test. Si es TRUE, el contracargo se procesará en modo de producción. Si es FALSE, el contracargo se procesará en modo sandbox." - } - }, - "sponsor_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "This field is deprecated and no longer used.", - "pt": "Este campo está deprecado e não é mais utilizado.", - "es": "Este campo está deprecado y ya no se usa." - } - }, - "authorization_code": { - "type": "string", - "format": "nullable", - "description": { - "en": "Transaction’s authorization code for payments with “payment_method_type” of type “credit_card” (credit card), “debit_card” (debit card) and “voucher_card” (voucher card for benefits, such as Alelo). In summary, this code is used for card transactions. The code is numerical and has 6 digits.", - "pt": "Código de autorização de transação para pagamentos com “payment_method_type” do tipo “credit_card” (cartão de crédito), “debit_card” (cartão de crédito) e “voucher_card” (cartão de voucher para benefícios, como Alelo). Em síntese, este código é utilizado para transações com cartão. O código é numérico e possui 6 dígitos.", - "es": "Código de autorización de transacción para pagos con “payment_method_type” de tipo “credit_card” (tarjeta de crédito), “debit_card” (tarjeta de débito) y “voucher_card” (tarjeta de bono para beneficios, como Alelo). En resumen, este código se utiliza para transacciones con tarjeta. Es numérico y tiene 6 dígitos." - } - }, - "money_release_schema": { - "type": "string", - "format": "nullable", - "description": { - "en": "This field is used to identify whether a payment is PNF (Payment in Flow). Payment in flow is a form of cash release in which the installments received by a seller are released over the months (which corresponds to the number of installments). Possible values ​​for this field are “null” or “payment_in_flow”.", - "pt": "Esse campo é usado para identificar se um pagamento é PNF (pagamento no fluxo). Pagamento no fluxo é uma forma de liberação de dinheiro em que as parcelas recebidas por um vendedor são liberadas com o passar dos meses (que corresponde ao número de parcelas). Os valores possíveis para este campo são “null” ou “payment_in_flow”.", - "es": "Este campo se utiliza para identificar si un pago es PNF (Pay in Flow). El pago en flujo es una forma de liberación de dinero en la que las cuotas recibidas por un vendedor se van liberando a lo largo de los meses (lo que corresponde al número de cuotas). Los valores posibles para este campo son \"null\" o \"payment_in_flow\"." - } - }, - "counter_currency": { - "type": "string", - "format": "nullable", - "description": { - "en": "Basically, it is an object that will allow you to convert payments of the CBT (Cross Border Trade) type into dollars, which are international payments made in foreign currency.", - "pt": "Basicamente, é um objeto que permitirá converter em dólares pagamentos do tipo CBT (Cross Border Trade), que são pagamentos internacionais, feitos em moeda estrangeira.", - "es": "Básicamente, es un objeto que te permitirá convertir pagos del tipo CBT (Cross Border Trade) en dólares, que son pagos internacionales realizados en moneda extranjera." - } - }, - "collector_id": { - "type": "string", - "example": 2, - "description": { - "en": "It is the user who receives the money. Ex - A user (payer) buys a cell phone through the marketplace. The identifier of the store/seller to receive the payment is the collector_id.", - "pt": "É o usuário que recebe o dinheiro. Por exemplo - Um usuário (payer) compra um celular pelo marketplace. O identificador da loja/vendedor a receber o pagamento é o collector_id.", - "es": "Es el usuario quien recibe el dinero. Por ejemplo - Un usuario (payer) compra un celular a través del marketplace. El identificador de la tienda/vendedor para recibir el pago es el collector_id." - } - }, - "payer": { - "type": "object", - "description": { - "en": "Payer data - ID (identifying number), email address, identification (type and number of id)", - "pt": "Dados do pagador - ID (número de identificação), e-mail, identificação (tipo e número de documento)", - "es": "Datos del pagador - ID (número identificador), dirección de email, identificación (tipo y número de documento)" - }, - "properties": { - "id": { - "type": "string", - "example": 123, - "description": { - "en": "Payer identifier generated by Mercado Pago.", - "pt": "Identificador de pagador gerado pelo Mercado Pago.", - "es": "Identificador del Payer generado por Mercado Pago." - } - }, - "email": { - "type": "string", - "example": "test_user_80507629@testuser.com", - "description": { - "en": "Email associated with the payer. This value will only return a response when status=approved, status=refunded, or status=charged_back.", - "pt": "Email associado ao payer. Este valor só retornará uma resposta quando status=approved, status=refunded ou status=charged_back.", - "es": "Correo electrónico asociado al payer. Este valor sólo devolverá una respuesta cuando el status=approved, status=refunded o status=charged_back." - } - }, - "identification": { - "type": "object", - "description": { - "en": "User's personal identification. As an example, in Brazil, we have the CPF (Individual Taxpayer Registry) and the CNPJ (National Corporate Taxpayer Registry), for companies. Other possible identification codes are CURP (Mexico), CUIL (Argentina). This object will only return a response when status=approved, status=refunded or status=charged_back.", - "pt": "Identificação pessoal do usuário. Como exemplo, a nível Brasil, temos o CPF (Cadastro de Pessoa Física) e o CNPJ (Cadastro Nacional de Pessoas Jurídicas), para empresas. Outros códigos de identificação possíveis são o CURP (México), CUIL (Argentina), Este objeto só retornará uma response quando status=approved, status=refunded or status=charged_back.", - "es": "Identificación personal del usuario. Como ejemplo, en Brasil, existe el CPF (Registro de Contribuyentes Individuales) y el CNPJ (Registro Nacional de Contribuyentes de Personas Jurídicas), para empresas. Otros posibles códigos de identificación son CURP (México), CUIL (Argentina). Este objeto sólo devolverá una respuesta cuando status=approved, status=refunded or status=charged_back." - }, - "properties": { - "type": { - "type": "string", - "example": "CPF", - "description": { - "en": "Refers to the type of identification. It can be one of the following types.", - "pt": "Refere-se ao tipo de identificação. Pode ser dos seguintes tipos.", - "es": "Se refiere al tipo de identificación. Puede ser de los siguientes tipos." - }, - "enum": [ - { - "title": "CPF", - "description": { - "en": "Individual Taxpayer Registration, Brazil.", - "es": "Individual Taxpayer Registration, Brazil.", - "pt": "Individual Taxpayer Registration, Brazil." - } - }, - { - "title": "CNPJ", - "description": { - "en": "National Register of Legal Entities, Brazil.", - "es": "National Register of Legal Entities, Brazil.", - "pt": "National Register of Legal Entities, Brazil." - } - }, - { - "title": "CUIT", - "description": { - "en": "Unique Tax Identification Code, Argentina.", - "es": "Unique Tax Identification Code, Argentina.", - "pt": "Unique Tax Identification Code, Argentina." - } - }, - { - "title": "CUIL", - "description": { - "en": "Unique Labor Identification Code, Argentina.", - "es": "Unique Labor Identification Code, Argentina.", - "pt": "Unique Labor Identification Code, Argentina." - } - }, - { - "title": "DNI", - "description": { - "en": "National Identity Document, Argentina.", - "es": "National Identity Document, Argentina.", - "pt": "National Identity Document, Argentina." - } - }, - { - "title": "CURP", - "description": { - "en": "Single Population Registration Code, Mexico.", - "es": "Single Population Registration Code, Mexico.", - "pt": "Single Population Registration Code, Mexico." - } - }, - { - "title": "RFC", - "description": { - "en": "Federal Registry of Taxpayers, Mexico.", - "es": "Federal Registry of Taxpayers, Mexico.", - "pt": "Federal Registry of Taxpayers, Mexico." - } - }, - { - "title": "CC", - "description": { - "en": "Citizenship Card, Colombia.", - "es": "Citizenship Card, Colombia.", - "pt": "Citizenship Card, Colombia." - } - }, - { - "title": "RUT", - "description": { - "en": "Single Tax List, Chile.", - "es": "Single Tax List, Chile.", - "pt": "Single Tax List, Chile." - } - }, - { - "title": "CI", - "description": { - "en": "Identity Card, Uruguay.", - "es": "Identity Card, Uruguay.", - "pt": "Identity Card, Uruguay." - } - } - ] - }, - "number": { - "type": "string", - "example": 19119119100, - "description": { - "en": "The number refers to the user’s identifier. If it is a CPF, for example, it will have 11 numbers.", - "pt": "O número se refere ao identificador do usuário em questão. Se for um CPF, por exemplo, terá 11 números.", - "es": "El número hace referencia al identificador del usuario en cuestión. Si es un CPF, por ejemplo, tendrá 11 números." - } - } - } - }, - "type": { - "$ref": "#/components/schemas/payer_type" - } - } - }, - "metadata": { - "type": "object", - "description": { - "en": "This is an optional key-value object where the customer can add additional information that needs to be recorded at checkout. Ex - {\"payments_group_size\":1,\"payments_group_timestamp\":\"2022-11-18T15:01:44Z\",\"payments_group_uuid\":\"96cfd2a4-0b06-4dea-b25f-c5accb02ba10\"}.", - "pt": "Este é um objeto opcional do tipo chave-valor no qual o cliente pode adicionar informações adicionais que precisam ser registradas no pagamento. Por exemplo - {\"payments_group_size\":1,\"payments_group_timestamp\":\"2022-11-18T15:01:44Z\",\"payments_group_uuid\":\"96cfd2a4-0b06-4dea-b25f-c5accb02ba10\"}.", - "es": "Este es un objeto clave-valor opcional en el que el cliente puede agregar información adicional que debe registrarse al finalizar la compra. Por ejemplo - {\"payments_group_size\":1,\"payments_group_timestamp\":\"2022-11-18T15:01:44Z\",\"payments_group_uuid\":\"96cfd2a4-0b06-4dea-b25f-c5accb02ba10\"}." - } - }, - "additional_info": { - "type": "object", - "description": { - "en": "At Payments level, it's only data, and we only forward that information to other APIs like Risk, to perform scoring and prevent fraud, or to Tax, to determine them for international payments.", - "pt": "No nível de Pagamentos, são apenas dados e apenas encaminhamos essas informações para outras APIS, como Risco, para realizar pontuação e prevenir fraudes, para Impostos para determiná-los para pagamentos internacionais.", - "es": "En el nivel de Pagos, son solo datos y únicamente reenviamos esa información a otras API, como Riesgo, para realizar puntajes y prevenir fraudes, o a Impuestos, para determinarlos para pagos internacionales." - } - }, - "external_reference": { - "type": "string", - "format": "nullable", - "description": { - "en": "It is a payment external reference. It could be, for example, a hashcode from the Central Bank, working as a transaction origin identifier.", - "pt": "É uma referência externa do pagamento. Pode ser, por exemplo, um hashcode do Banco Central, funcionando como identificador de origem da transação.", - "es": "Es una referencia de pago externa. Podría ser, por ejemplo, un hashcode del Banco Central, funcionando como identificador del origen de la transacción." - } - }, - "transaction_amount": { - "type": "number", - "example": 250, - "description": { - "en": "Product cost. Example - The sale of a product for R$100.00 will have a transactionAmount = 100.", - "pt": "Custo do produto. Exemplo - A venda de um produto por R$100,00 terá um transactionAmount = 100.", - "es": "Costo del producto. Ejemplo - La venta de un producto por R$ 100,00 tendrá un transactionAmount = 100." - } - }, - "transaction_amount_refunded": { - "type": "number", - "example": 0, - "description": { - "en": "Transaction amount refunded", - "pt": "Valor reembolsado da transação", - "es": "Monto reembolsado de transacción" - } - }, - "coupon_amount": { - "type": "number", - "example": 0, - "description": { - "en": "It is the value of the discount coupon. E.g. - BRL 14.50. The attribute's type is BigDecimal.", - "pt": "É o valor do cupom de desconto. Ex - R$14,50. O tipo do atributo é BigDecimal.", - "es": "Es el valor del cupón de descuento. Por ejemplo - BRL 14,50. El tipo del atributo es BigDecimal." - } - }, - "differential_pricing_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Attribute that commonly contains an agreement on how much the user will be charged (generally, this field is more relevant for Marketplace payments). Pricing and fees are calculated based on this identifier.", - "pt": "Atributo que comumente contém um acordo de quanto vai ser cobrado do usuário (geralmente, este campo é mais relevante para pagamentos do Marketplace). A precificação e as taxas são calculadas com base nesse identificador.", - "es": "Atributo que comúnmente contiene un acuerdo sobre cuánto se le cobrará al usuario (generalmente, este campo es más relevante para los pagos de Marketplace). Los precios y las tarifas se calculan en función de este identificador." - } - }, - "deduction_schema": { - "type": "string", - "format": "nullable", - "description": { - "en": "Pricing Scheme applied by Mercado Pago. It is a field that represents the information of a type of financing (installment). Ex - “ahora12” is a schema that indicates that the payment is divided into 12 installments. In addition, financing may have an additional cost, such cost being included in that same answer and pointed out to whom this applies (payer/collector).", - "pt": "Esquema de Pricing aplicado pelo Mercado Pago. É um campo que representa as informações de um tipo de financiamento (parcelamento). Ex. - “ahora12” é um schema que indica que o pagamento está parcelado em 12 vezes. Em adição, o financiamento pode ter um custo adicional, sendo tal custo incluído nessa mesma resposta e apontado a quem se aplica isso (payer/collector).", - "es": "Esquema de precios aplicado por Mercado Pago. Es un campo que representa la información de un tipo de financiamiento (cuota). Ej - “ahora12” es un esquema que indica que el pago se divide en 12 cuotas. Además, el financiamiento puede tener un costo adicional, siendo incluido dicho costo en esa misma respuesta y señalándose a quién aplica (payer/collector)." - } - }, - "transaction_details": { - "type": "object", - "description": { - "en": "Transaction details", - "pt": "Detalhes da transação", - "es": "Detalles de la transacción" - }, - "properties": { - "net_received_amount": { - "type": "number", - "example": 250, - "description": { - "en": "Net amount received", - "pt": "Valor líquido recebido", - "es": "Monto neto recibido" - } - }, - "total_paid_amount": { - "type": "number", - "example": 250, - "description": { - "en": "Total amount charged to the payer", - "pt": "Valor total cobrado ao pagador", - "es": "Monto total cobrado al payer" - } - }, - "overpaid_amount": { - "type": "number", - "example": 0, - "description": { - "en": "Overpaid amount", - "pt": "Valor pago a mais", - "es": "Monto pagado en exceso" - } - }, - "external_resource_url": { - "type": "string", - "format": "nullable", - "description": { - "en": "External resource url", - "pt": "URL de recurso externo", - "es": "URL de recurso externo" - } - }, - "installment_amount": { - "type": "number", - "example": 250, - "description": { - "en": "Amount of the chosen financing fee.", - "pt": "Valor da taxa de financiamento escolhida.", - "es": "Monto de la cuota de financiación elegida." - } - }, - "financial_institution": { - "type": "string", - "format": "nullable", - "description": { - "en": "Financial institution", - "pt": "Instituição financeira", - "es": "Institución financiera" - } - }, - "payment_method_reference_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Unique identifier of the payment method", - "pt": "Identificador único do meio de pagamento", - "es": "Identificador único del método de pago" - } - }, - "payable_deferral_period": { - "type": "string", - "format": "nullable", - "description": { - "en": "Payment deferral period", - "pt": "Período de diferimento de pagamento", - "es": "Período de diferimiento del pago" - } - }, - "acquirer_reference": { - "type": "string", - "format": "nullable", - "description": { - "en": "Acquirer reference", - "pt": "Referência do adquirente", - "es": "Referencia de adquirente" - } - } - } - }, - "captured": { - "type": "boolean", - "description": { - "en": "Indicates if the payment amount was captured or is pending capture.", - "pt": "Indica se o valor do pagamento foi capturado ou está com captura pendente.", - "es": "Indica si el monto del pago fue capturado o se encuentra pendiente de captura." - } - }, - "binary_mode": { - "type": "boolean", - "description": { - "en": "When set to TRUE, payments can only be approved or rejected. Otherwise they can also result in_process.", - "pt": "Quando definido como TRUE, os pagamentos só podem ser aprovados ou rejeitados. Caso contrário, eles também podem resultar in_process.", - "es": "Cuando se configura como TRUE los pagos sólo pueden resultar aprobados o rechazados. Caso contrario también pueden resultar in_process." - } - }, - "call_for_authorize_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Identifier that is provided to the issuing bank so that payments can be authorized.", - "pt": "Identificador que é fornecido ao banco emissor para que os pagamentos possam ser autorizados.", - "es": "Identificador que se proporciona al banco emisor para que se pueda autorizar los pagos." - } - }, - "statement_descriptor": { - "type": "string", - "format": "nullable", - "description": { - "en": "Description that the payment will appear with in the card statement (eg MERCADOPAGO)", - "pt": "Descrição com a qual o pagamento aparecerá no resumo do cartão (ex. MERCADOPAGO)", - "es": "Descripción con la que aparecerá el pago en el resumen de tarjeta (ej. MERCADOPAGO)" - } - }, - "installments": { - "type": "number", - "example": 1, - "description": { - "en": "Number of installments selected.", - "pt": "Número de parcelas selecionado", - "es": "Cantidad seleccionada de cuotas" - } - }, - "card": { - "type": "object", - "description": { - "en": "Card ID.", - "pt": "Identificador de cartão", - "es": "Identificador de tarjeta" - } - }, - "notification_url": { - "type": "string", - "format": "nullable", - "description": { - "en": "Notifications URL available to receive notifications of events related to Payment.", - "pt": "URL de notificações disponível para receber notificações de eventos relacionados ao Pagamento.", - "es": "URL de Notificaciones disponibilizada para recibir las notificaciones de los eventos relacionados al Pago." - } - }, - "processing_mode": { - "type": "string", - "format": "nullable", - "description": { - "en": "Processing mode. There are two types.", - "pt": "Modo de processamento. Existem dois tipos.", - "es": "Modo de procesamiento. Existen dos tipos." - }, - "enum": [ - { - "title": "Aggregator", - "description": { - "en": "The merchant will use the Mercado Pago merchant codes and will take advantage of the financial advantages that we offer.", - "es": "The merchant will use the Mercado Pago merchant codes and will take advantage of the financial advantages that we offer.", - "pt": "The merchant will use the Mercado Pago merchant codes and will take advantage of the financial advantages that we offer." - } - }, - { - "title": "Gateway", - "description": { - "en": "For the merchant it is necessary to have their own merchant codes for online sales and to have an agreement with each of the desired means of payment.", - "es": "For the merchant it is necessary to have their own merchant codes for online sales and to have an agreement with each of the desired means of payment.", - "pt": "For the merchant it is necessary to have their own merchant codes for online sales and to have an agreement with each of the desired means of payment." - } - } - ] - }, - "merchant_account_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Merchant store code identifier. Applies only to the gateway model (since the delivery of money to the merchant does not go through the Mercado Pago system).", - "pt": "Identificador do código da loja comerciante. Aplica-se somente ao modelo gateway (porque a entrega de dinheiro ao comerciante não passa pelo sistema do Mercado Pago).", - "es": "Identificador del código de la tienda del merchant. Aplica solo para el modelo de gateway (ya que la entrega de dinero al comercio no pasa por el sistema de Mercado Pago)." - } - }, - "acquirer": { - "type": "string", - "format": "nullable", - "description": { - "en": "Acquirer.", - "pt": "Adquirente.", - "es": "Adquirente." - } - }, - "merchant_number": { - "type": "string", - "format": "nullable", - "description": { - "en": "Merchant number (Applies to gateway model).", - "pt": "Número do estabelecimento (aplica-se ao modelo de gateway).", - "es": "Número de comercio (Aplica para modelo gateway)." - } - } - } - } - } - } - }, - "400": { - "description": { - "en": "Error", - "pt": "Erro", - "es": "Error" - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "errorKey": { - "type": "string", - "enum": [ - { - "title": "1", - "description": { - "en": "Params Error.", - "es": "Params Error.", - "pt": "Params Error." - } - }, - { - "title": "3", - "description": { - "en": "Token must be for test.", - "es": "Token must be for test.", - "pt": "Token must be for test." - } - }, - { - "title": "5", - "description": { - "en": "Must provide your access_token to proceed.", - "es": "Must provide your access_token to proceed.", - "pt": "Must provide your access_token to proceed." - } - }, - { - "title": "1000", - "description": { - "en": "Number of rows exceeded the limits.", - "es": "Number of rows exceeded the limits.", - "pt": "Number of rows exceeded the limits." - } - }, - { - "title": "1001", - "description": { - "en": "Date format must be yyyy-MM-dd'T'HH:mm:ss.SSSZ.", - "es": "Date format must be yyyy-MM-dd'T'HH:mm:ss.SSSZ.", - "pt": "Date format must be yyyy-MM-dd'T'HH:mm:ss.SSSZ." - } - }, - { - "title": "2001", - "description": { - "en": "Already posted the same request in the last minute.", - "es": "Already posted the same request in the last minute.", - "pt": "Already posted the same request in the last minute." - } - }, - { - "title": "2002", - "description": { - "en": "Customer not found.", - "es": "Customer not found.", - "pt": "Customer not found." - } - }, - { - "title": "2004", - "description": { - "en": "POST to Gateway Transactions API fail.", - "es": "POST to Gateway Transactions API fail.", - "pt": "POST to Gateway Transactions API fail." - } - }, - { - "title": "2006", - "description": { - "en": "Card Token not found.", - "es": "Card Token not found.", - "pt": "Card Token not found." - } - }, - { - "title": "2007", - "description": { - "en": "Connection to Card Token API fail.", - "es": "Connection to Card Token API fail.", - "pt": "Connection to Card Token API fail." - } - }, - { - "title": "2009", - "description": { - "en": "Card token issuer can't be null.", - "es": "Card token issuer can't be null.", - "pt": "Card token issuer can't be null." - } - }, - { - "title": "3000", - "description": { - "en": "You must provide your cardholder_name with your card data.", - "es": "You must provide your cardholder_name with your card data.", - "pt": "You must provide your cardholder_name with your card data." - } - }, - { - "title": "3001", - "description": { - "en": "You must provide your cardissuer_id with your card data.", - "es": "You must provide your cardissuer_id with your card data.", - "pt": "You must provide your cardissuer_id with your card data." - } - }, - { - "title": "3003", - "description": { - "en": "Invalid card_token_id.", - "es": "Invalid card_token_id.", - "pt": "Invalid card_token_id." - } - }, - { - "title": "3004", - "description": { - "en": "Invalid parameter site_id.", - "es": "Invalid parameter site_id.", - "pt": "Invalid parameter site_id." - } - }, - { - "title": "3005", - "description": { - "en": "Not valid action, the resource is in a state that does not allow this operation. For more information see the state that has the resource.", - "es": "Not valid action, the resource is in a state that does not allow this operation. For more information see the state that has the resource.", - "pt": "Not valid action, the resource is in a state that does not allow this operation. For more information see the state that has the resource." - } - }, - { - "title": "3006", - "description": { - "en": "Invalid parameter cardtoken_id.", - "es": "Invalid parameter cardtoken_id.", - "pt": "Invalid parameter cardtoken_id." - } - }, - { - "title": "3007", - "description": { - "en": "The parameter client_id can not be null or empty.", - "es": "The parameter client_id can not be null or empty.", - "pt": "The parameter client_id can not be null or empty." - } - }, - { - "title": "3008", - "description": { - "en": "Not found Cardtoken.", - "es": "Not found Cardtoken.", - "pt": "Not found Cardtoken." - } - }, - { - "title": "3009", - "description": { - "en": "unauthorized client_id.", - "es": "unauthorized client_id.", - "pt": "unauthorized client_id." - } - }, - { - "title": "3010", - "description": { - "en": "Not found card on whitelist.", - "es": "Not found card on whitelist.", - "pt": "Not found card on whitelist." - } - }, - { - "title": "3011", - "description": { - "en": "Not found payment_method.", - "es": "Not found payment_method.", - "pt": "Not found payment_method." - } - }, - { - "title": "3012", - "description": { - "en": "Invalid parameter security_code_length.", - "es": "Invalid parameter security_code_length.", - "pt": "Invalid parameter security_code_length." - } - }, - { - "title": "3013", - "description": { - "en": "The parameter security_code is a required field can not be null or empty.", - "es": "The parameter security_code is a required field can not be null or empty.", - "pt": "The parameter security_code is a required field can not be null or empty." - } - }, - { - "title": "3014", - "description": { - "en": "Invalid parameter payment_method.", - "es": "Invalid parameter payment_method.", - "pt": "Invalid parameter payment_method." - } - }, - { - "title": "3015", - "description": { - "en": "Invalid parameter card_number_length.", - "es": "Invalid parameter card_number_length.", - "pt": "Invalid parameter card_number_length." - } - }, - { - "title": "3016", - "description": { - "en": "Invalid parameter card_number.", - "es": "Invalid parameter card_number.", - "pt": "Invalid parameter card_number." - } - }, - { - "title": "3017", - "description": { - "en": "The parameter card_number_id can not be null or empty.", - "es": "The parameter card_number_id can not be null or empty.", - "pt": "The parameter card_number_id can not be null or empty." - } - }, - { - "title": "3018", - "description": { - "en": "The parameter expiration_month can not be null or empty.", - "es": "The parameter expiration_month can not be null or empty.", - "pt": "The parameter expiration_month can not be null or empty." - } - }, - { - "title": "3019", - "description": { - "en": "The parameter expiration_year can not be null or empty.", - "es": "The parameter expiration_year can not be null or empty.", - "pt": "The parameter expiration_year can not be null or empty." - } - }, - { - "title": "3020", - "description": { - "en": "The parameter cardholder.name can not be null or empty.", - "es": "The parameter cardholder.name can not be null or empty.", - "pt": "The parameter cardholder.name can not be null or empty." - } - }, - { - "title": "3021", - "description": { - "en": "The parameter cardholder.document.number can not be null or empty.", - "es": "The parameter cardholder.document.number can not be null or empty.", - "pt": "The parameter cardholder.document.number can not be null or empty." - } - }, - { - "title": "3022", - "description": { - "en": "The parameter cardholder.document.type can not be null or empty.", - "es": "The parameter cardholder.document.type can not be null or empty.", - "pt": "The parameter cardholder.document.type can not be null or empty." - } - }, - { - "title": "3023", - "description": { - "en": "The parameter cardholder.document.subtype can not be null or empty.", - "es": "The parameter cardholder.document.subtype can not be null or empty.", - "pt": "The parameter cardholder.document.subtype can not be null or empty." - } - }, - { - "title": "3024", - "description": { - "en": "Not valid action - partial refund unsupported for this transaction.", - "es": "Not valid action - partial refund unsupported for this transaction.", - "pt": "Not valid action - partial refund unsupported for this transaction." - } - }, - { - "title": "3025", - "description": { - "en": "Invalid Auth Code.", - "es": "Invalid Auth Code.", - "pt": "Invalid Auth Code." - } - }, - { - "title": "3026", - "description": { - "en": "Invalid card_id for this payment_method_id.", - "es": "Invalid card_id for this payment_method_id.", - "pt": "Invalid card_id for this payment_method_id." - } - }, - { - "title": "3027", - "description": { - "en": "Invalid payment_type_id.", - "es": "Invalid payment_type_id.", - "pt": "Invalid payment_type_id." - } - }, - { - "title": "3028", - "description": { - "en": "Invalid payment_method_id.", - "es": "Invalid payment_method_id.", - "pt": "Invalid payment_method_id." - } - }, - { - "title": "3029", - "description": { - "en": "Invalid card expiration month.", - "es": "Invalid card expiration month.", - "pt": "Invalid card expiration month." - } - }, - { - "title": "3030", - "description": { - "en": "Invalid card expiration year.", - "es": "Invalid card expiration year.", - "pt": "Invalid card expiration year." - } - } - ] - } - } - } - } - } - }, - "403": { - "description": { - "en": "Error", - "pt": "Erro", - "es": "Error" - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "errorKey": { - "type": "string", - "enum": [ - { - "title": "4", - "description": { - "en": "The caller is not authorized to access this resource.", - "es": "The caller is not authorized to access this resource.", - "pt": "The caller is not authorized to access this resource." - } - }, - { - "title": "3002", - "description": { - "en": "The caller is not authorized to perform this action.", - "es": "The caller is not authorized to perform this action.", - "pt": "The caller is not authorized to perform this action." - } - } - ] - } - } - } - } - } - }, - "404": { - "description": { - "en": "Error", - "pt": "Erro", - "es": "Error" - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "errorKey": { - "type": "string", - "enum": [ - { - "title": "2000", - "description": { - "en": "Payment not found.", - "es": "Payment not found.", - "pt": "Payment not found." - } - } - ] - } - } - } - } - } - } - }, - "title": { - "en": "Get payment", - "pt": "Obter pagamento", - "es": "Obtener pago" - } - }, - "put": { - "tags": [ - "checkout-pro", - "subscriptions", - "checkout-api" - ], - "description": { - "en": "Renew the details of a payment when you need it. Indicate the payment ID and send the parameters with the information you want to update", - "pt": "Altera os dados de um pagamento quando necessário. Indique a identificação do pagamento e envie os parâmetros com as informações que você deseja atualizar", - "es": "Renueva los datos de un pago cuando lo necesites. Indica el ID del pago y envía los parámetros con la información que quieras actualizar" - }, - "parameters": [ - { - "name": "id", - "in": "path", - "description": { - "en": "Unique Payment Identifier, automatically generated by Mercado Pago", - "pt": "Identificador único de pagamento, gerado automaticamente pelo Mercado Pago", - "es": "Identificador único del pago, generado automáticamente por Mercado Pago" - }, - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "capture": { - "type": "boolean", - "description": { - "en": "It is a boolean field found in two-step payments (like debit card). In this type of payment, which is carried out asynchronously, the purchase value is first reserved (capture = false). This amount is captured and not debited from the account instantly. When the money is actually transferred to the collector (who receives the payment) the amount is captured (capture = true).", - "pt": "É um campo booleano existente em pagamentos de duas etapas (como o cartão de débito). Nesse tipo de pagamento, que é realizado de modo assíncrono, primeiro é feito a reserva do valor da compra (capture = false). Esse valor é capturado e não é debitado da conta instantaneamente. Quando o dinheiro é de fato transferido ao collector (quem recebe o pagamento) a captura do montante é feita (capture = true).", - "es": "Es un campo booleano que se encuentra en pagos de dos pasos (como tarjeta de débito). En este tipo de pago, que se realiza de forma asíncrona, primero se reserva el valor de la compra (capture = false). Esta cantidad se captura y no se debita de la cuenta al instante. Cuando el dinero se transfiere realmente al cobrador (que recibe el pago), se captura la cantidad (capture = true)." - }, - "example": true - }, - "date_of_expiration": { - "type": "string", - "format": "date", - "description": { - "en": "Payment’s expiration date. The valid format of the attribute is as follows - \"yyyy-MM-dd'T'HH:mm:ssz\". Ex - 2022-11-17T09:37:52.000-04:00.", - "pt": "Data de expiração do pagamento. O formato válido do atributo é o seguinte - \"yyyy-MM-dd'T'HH:mm:ssz\". Por exemplo - 2022-11-17T09:37:52.000-04:00.", - "es": "Fecha de vencimiento del pago. El formato válido del atributo es el siguiente - \"yyyy-MM-dd'T'HH:mm:ssz\". Por ejemplo - 2022-11-17T09:37:52.000-04:00." - } - }, - "status": { - "type": "string", - "description": { - "en": "It is the current state of payment. It can be two following types.", - "pt": "É o estado atual do pagamento. Podem ser ser dos seguintes tipos", - "es": "Es el estado actual de pago. Puede ser de dos tipos siguientes." - }, - "example": "cancelled", - "enum": [ - { - "title": "pending", - "description": { - "en": "The user has not concluded the payment process (for example, to generate a payment by boleto, this payment will be concluded at the moment in which the user makes the non-corresponding payment selected);", - "es": "The user has not concluded the payment process (for example, to generate a payment by boleto, this payment will be concluded at the moment in which the user makes the non-corresponding payment selected);", - "pt": "The user has not concluded the payment process (for example, to generate a payment by boleto, this payment will be concluded at the moment in which the user makes the non-corresponding payment selected);" - } - }, - { - "title": "approved", - "description": { - "en": "The payment was approved and credited;", - "es": "The payment was approved and credited;", - "pt": "The payment was approved and credited;" - } - }, - { - "title": "authorized", - "description": { - "en": "The payment was authorized, but still was not captured;", - "es": "The payment was authorized, but still was not captured;", - "pt": "The payment was authorized, but still was not captured;" - } - }, - { - "title": "in_process", - "description": { - "en": "The payment is in analysis;", - "es": "The payment is in analysis;", - "pt": "The payment is in analysis;" - } - }, - { - "title": "in_mediation", - "description": { - "en": "The user started a dispute;", - "es": "The user started a dispute;", - "pt": "The user started a dispute;" - } - }, - { - "title": "rejected", - "description": { - "en": "The payment was rejected. (The user can try the payment again);", - "es": "The payment was rejected. (The user can try the payment again);", - "pt": "The payment was rejected. (The user can try the payment again);" - } - }, - { - "title": "cancelled", - "description": { - "en": "Either the payment was canceled by one of the parties or the payment expired;", - "es": "Either the payment was canceled by one of the parties or the payment expired;", - "pt": "Either the payment was canceled by one of the parties or the payment expired;" - } - }, - { - "title": "refunded", - "description": { - "en": "The payment was returned to the user;", - "es": "The payment was returned to the user;", - "pt": "The payment was returned to the user;" - } - }, - { - "title": "charged_back", - "description": { - "en": "A chargeback was placed on the buyer's credit card.", - "es": "A chargeback was placed on the buyer's credit card.", - "pt": "A chargeback was placed on the buyer's credit card." - } - } - ] - }, - "transaction_amount": { - "type": "number", - "description": { - "en": "Product cost. Example - The sale of a product for R$100.00 will have a transactionAmount = 100.", - "pt": "Custo do produto. Exemplo - A venda de um produto por R$100,00 terá um transactionAmount = 100.", - "es": "Costo del producto. Ejemplo - La venta de un producto por R$ 100,00 tendrá un transactionAmount = 100." - }, - "example": 58.8 - } - } - } - } - } - }, - "responses": { - "200": { - "description": { - "es": "Success", - "pt": "Success", - "en": "Success" - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "id": { - "type": "number", - "example": 20359978, - "description": { - "en": "Unique Payment Identifier, automatically generated by Mercado Pago", - "pt": "Identificador único de pagamento, gerado automaticamente pelo Mercado Pago", - "es": "Identificador único del pago, generado automáticamente por Mercado Pago" - } - }, - "date_created": { - "type": "string", - "example": "2019-07-10T14:47:58.000Z", - "description": { - "en": "Payment creation date.", - "pt": "Data de criação do pagamento.", - "es": "Fecha de creación del Pago." - } - }, - "date_approved": { - "type": "string", - "example": "2019-07-10T14:47:58.000Z", - "description": { - "en": "Payment approval date. A payment can be generated in an intermediate state and then approved, so the creation date will not always coincide with the Approval Date.", - "pt": "Data de aprovação do pagamento. Um pagamento pode ser gerado em um estado intermediário e depois aprovado, portanto, a data de criação nem sempre coincidirá com a Data de Aprovação.", - "es": "Fecha de aprobación del Pago. Un pago puede generarse en un estado intermedio y luego ser aprobado, por tanto la fecha de creación no siempre coincidirá con la Fecha de Aprobación." - } - }, - "date_last_updated": { - "type": "string", - "example": "2019-07-10T14:47:58.000Z", - "description": { - "en": "Date on which the last payment event was recorded.", - "pt": "Data em que o último evento de pagamento foi registrado.", - "es": "Fecha en la que se registró el ultimo evento sobre el pago." - } - }, - "date_of_expiration": { - "type": "string", - "format": "nullable", - "description": { - "en": "Payment’s expiration date. The attribute’s valid format is as follows - \"yyyy-MM-dd'T'HH:mm:ssz\". Ex. - 2022-11-17T09:37:52.000-04:00.", - "pt": "Data de expiração do pagamento. O formato válido do atributo é o seguinte - \"yyyy-MM-dd'T'HH:mm:ssz\". Ex. - 2022-11-17T09:37:52.000-04:00.", - "es": "Fecha de vencimiento del pago. El formato válido del atributo es el siguiente - \"yyyy-MM-dd'T'HH:mm:ssz\". Ej. - 2022-11-17T09:37:52.000-04:00." - } - }, - "money_release_date": { - "type": "string", - "example": "2019-07-24T14:47:58.000Z", - "description": { - "en": "Date on which the payment is settled and the money is made available in the Mercado Pago account of the Collector (the one who receives the payment). The field can take on the values “pending” or “released”, where the first indicates that the payment has not yet been released (money held for a period) and “released” means that the money has already been released to the user's available balance.", - "pt": "Data em que o pagamento é liquidado e o dinheiro é disponibilizado na conta Mercado Pago do Collector (aquele que recebe o pagamento). O campo pode assumir os valores “pending” ou “released”, sendo que o primeiro indica que o pagamento ainda não foi liberado (dinheiro retido por tempo) e “released” significa que o dinheiro já foi liberado para o saldo disponível do usuário.", - "es": "Fecha en que se liquida el pago y se pone a disposición el dinero en la cuenta de Mercado Pago del Collector (el que recibe el pago). El campo puede tomar los valores “pending” o “released”, siendo que el primero indica que el pago todavía no fue liberado (dinero retenido por tiempo) y “released” significa que el dinero ya fue liberado al disponible del usuario." - } - }, - "operation_type": { - "$ref": "#/components/schemas/operation_type" - }, - "issuer_id": { - "type": "string", - "example": 25, - "description": { - "en": "Is the identifier of the card issuer being used in a credit or debit card payment.", - "pt": "É o identificador do emissor do cartão que está sendo utilizado em um pagamento com cartão de crédito ou débito.", - "es": "Es el identificador del emisor de la tarjeta que se utiliza en un pago con tarjeta de crédito o débito." - } - }, - "payment_method_id": { - "type": "string", - "example": "visa", - "description": { - "en": "It indicates the identifier of the payment method selected to make the transaction. Here are some examples. Get all available payment methods by consulting the 'Get payment Methods API'.", - "pt": "Indica o identificador do meio de pagamento selecionado para efetuar o pagamento. A seguir, apresentamos alguns exemplos. Obtenha todos os meios de pagamento disponíveis consultando a API de 'Obter meios de pagamento'.", - "es": "Identificador del medio de pago. Indica el ID del medio de pago seleccionado para realizar el pago. A continuación presentamos algunos ejemplos. Obtén todos los métodos de pago disponibles consultando la API de 'Obtener métodos de pago'." - }, - "enum": [ - { - "title": "pix", - "description": { - "en": "Instant digital payment method used in Brazil;", - "es": "Instant digital payment method used in Brazil;", - "pt": "Instant digital payment method used in Brazil;" - } - }, - { - "title": "account_money", - "description": { - "en": "When the payment is debited directly from a Mercado Pago account;", - "es": "When the payment is debited directly from a Mercado Pago account;", - "pt": "When the payment is debited directly from a Mercado Pago account;" - } - }, - { - "title": "debin_transfer", - "description": { - "en": "Digital payment method used in Argentina that immediately debits an amount from an account, requesting prior authorization;", - "es": "Digital payment method used in Argentina that immediately debits an amount from an account, requesting prior authorization;", - "pt": "Digital payment method used in Argentina that immediately debits an amount from an account, requesting prior authorization;" - } - }, - { - "title": "ted", - "description": { - "en": "It is the Electronic Transfer Available payment, used in Brazil, that has fees to be used. The payment is made the same day of the transaction, but for this it is necessary to make the transfer within the stipulated period;", - "es": "It is the Electronic Transfer Available payment, used in Brazil, that has fees to be used. The payment is made the same day of the transaction, but for this it is necessary to make the transfer within the stipulated period;", - "pt": "It is the Electronic Transfer Available payment, used in Brazil, that has fees to be used. The payment is made the same day of the transaction, but for this it is necessary to make the transfer within the stipulated period;" - } - }, - { - "title": "cvu", - "description": { - "en": "Payment method used in Argentina;", - "es": "Payment method used in Argentina;", - "pt": "Payment method used in Argentina;" - } - }, - { - "title": "pse", - "description": { - "en": "Digital payment method used in Colombia which users authorize the debit of funds from their bank through virtual banking. your savings, checking or electronic deposit accounts.", - "es": "Digital payment method used in Colombia which users authorize the debit of funds from their bank through virtual banking. your savings, checking or electronic deposit accounts.", - "pt": "Digital payment method used in Colombia which users authorize the debit of funds from their bank through virtual banking. your savings, checking or electronic deposit accounts." - } - } - ] - }, - "payment_type_id": { - "$ref": "#/components/schemas/payment_type_id" - }, - "status": { - "$ref": "#/components/schemas/status" - }, - "status_detail": { - "type": "string", - "example": "accredited", - "description": { - "en": "Detail in which the Collection resulted", - "pt": "Detalhe em que resultou a Coleção", - "es": "Detalle en el que resultó el Cobro" - }, - "enum": [ - { - "title": "Accredited", - "description": { - "en": "credited payment.", - "es": "credited payment.", - "pt": "credited payment." - } - }, - { - "title": "pending_contingency", - "description": { - "en": "the payment is being processed.", - "es": "the payment is being processed.", - "pt": "the payment is being processed." - } - }, - { - "title": "pending_review_manual", - "description": { - "en": "the payment is under review to determine its approval or rejection.", - "es": "the payment is under review to determine its approval or rejection.", - "pt": "the payment is under review to determine its approval or rejection." - } - }, - { - "title": "cc_rejected_bad_filled_date", - "description": { - "en": "incorrect expiration date.", - "es": "incorrect expiration date.", - "pt": "incorrect expiration date." - } - }, - { - "title": "cc_rejected_bad_filled_other", - "description": { - "en": "incorrect card details.", - "es": "incorrect card details.", - "pt": "incorrect card details." - } - }, - { - "title": "cc_rejected_bad_filled_security_code", - "description": { - "en": "incorrect CVV.", - "es": "incorrect CVV.", - "pt": "incorrect CVV." - } - }, - { - "title": "cc_rejected_blacklist", - "description": { - "en": "the card is on a black list for theft/complaints/fraud.", - "es": "the card is on a black list for theft/complaints/fraud.", - "pt": "the card is on a black list for theft/complaints/fraud." - } - }, - { - "title": "cc_rejected_call_for_authorize", - "description": { - "en": "the means of payment requires prior authorization of the amount of the operation.", - "es": "the means of payment requires prior authorization of the amount of the operation.", - "pt": "the means of payment requires prior authorization of the amount of the operation." - } - }, - { - "title": "cc_rejected_card_disabled", - "description": { - "en": "the card is inactive.", - "es": "the card is inactive.", - "pt": "the card is inactive." - } - }, - { - "title": "cc_rejected_duplicated_payment", - "description": { - "en": "transacción duplicada.", - "es": "transacción duplicada.", - "pt": "transacción duplicada." - } - }, - { - "title": "cc_rejected_high_risk", - "description": { - "en": "rechazo por Prevención de Fraude.", - "es": "rechazo por Prevención de Fraude.", - "pt": "rechazo por Prevención de Fraude." - } - }, - { - "title": "cc_rejected_insufficient_amount", - "description": { - "en": "insufficient amount.", - "es": "insufficient amount.", - "pt": "insufficient amount." - } - }, - { - "title": "cc_rejected_invalid_installments", - "description": { - "en": "invalid number of installments.", - "es": "invalid number of installments.", - "pt": "invalid number of installments." - } - }, - { - "title": "cc_rejected_max_attempts", - "description": { - "en": "exceeded maximum number of attempts.", - "es": "exceeded maximum number of attempts.", - "pt": "exceeded maximum number of attempts." - } - }, - { - "title": "cc_rejected_other_reason", - "description": { - "en": "generic error.", - "es": "generic error.", - "pt": "generic error." - } - } - ] - }, - "currency_id": { - "$ref": "#/components/schemas/currency_id" - }, - "description": { - "type": "string", - "example": "Point Mini a maquininha que dá o dinheiro de suas vendas na hora", - "description": { - "en": "Purchased product’s description, the reason for payment. E.g. - \"Xiaomi Redmi Note 11S mobile phone 128gb 6gb Ram Original Global Blue Version\" (description of a product in the marketplace).", - "pt": "Descrição do produto comprado, a razão de pagamento. Ex. - \"Celular Xiaomi Redmi Note 11S 128gb 6gb Ram Versão Global Original azul\" (descrição de um produto no marketplace).", - "es": "Descripción del producto adquirido, el motivo del pago. Ej. - \"Celular Xiaomi Redmi Note 11S 128gb 6gb Ram Original Global Blue Version\" (descripción de un producto en el marketplace)." - } - }, - "live_mode": { - "type": "boolean", - "description": { - "en": "Indicates whether the Payment was made in a production environment or in a Test environment. If TRUE, then the chargeback will be processed in production mode. If FALSE, then the chargeback will be processed in sandbox mode.", - "pt": "Indica se o Pagamento foi feito em ambiente de produção ou em ambiente de Teste. Se TRUE, o estorno será processado em modo de produção. Se FALSE, o estorno será processado no modo sandbox.", - "es": "Indica si el Pago se realizó en ambiente productivo o en un ambiente de Test. Si es TRUE, el contracargo se procesará en modo de producción. Si es FALSE, el contracargo se procesará en modo sandbox." - } - }, - "sponsor_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "This field is deprecated and no longer in use.", - "pt": "Este campo está deprecado e não é mais utilizado.", - "es": "Este campo está deprecado y ya no se usa." - } - }, - "authorization_code": { - "type": "string", - "format": "nullable", - "description": { - "en": "Transaction’s authorization code for payments with “payment_method_type” of type “credit_card” (credit card), “debit_card” (debit card) and “voucher_card” (voucher card for benefits, such as Alelo). In summary, this code is used for card transactions. The code is numerical and has 6 digits.", - "pt": "Código de autorização de transação para pagamentos com “payment_method_type” do tipo “credit_card” (cartão de crédito), “debit_card” (cartão de crédito) e “voucher_card” (cartão de voucher para benefícios, como Alelo). Em síntese, este código é utilizado para transações com cartão. O código é numérico e possui 6 dígitos.", - "es": "Código de autorización de transacción para pagos con “payment_method_type” de tipo “credit_card” (tarjeta de crédito), “debit_card” (tarjeta de débito) y “voucher_card” (tarjeta de bono para beneficios, como Alelo). En resumen, este código se utiliza para transacciones con tarjeta. Es numérico y tiene 6 dígitos." - } - }, - "money_release_schema": { - "type": "string", - "format": "nullable", - "description": { - "en": "This field is used to identify whether a payment is PNF (Payment in Flow). Payment in flow is a form of cash release in which the installments received by a seller are released over the months (which corresponds to the number of installments). Possible values ​​for this field are “null” or “payment_in_flow”.", - "pt": "Esse campo é usado para identificar se um pagamento é PNF (pagamento no fluxo). Pagamento no fluxo é uma forma de liberação de dinheiro em que as parcelas recebidas por um vendedor são liberadas com o passar dos meses (que corresponde ao número de parcelas). Os valores possíveis para este campo são “null” ou “payment_in_flow”.", - "es": "Este campo se utiliza para identificar si un pago es PNF (Pay in Flow). El pago en flujo es una forma de liberación de dinero en la que las cuotas recibidas por un vendedor se van liberando a lo largo de los meses (lo que corresponde al número de cuotas). Los valores posibles para este campo son \"null\" o \"payment_in_flow\"." - } - }, - "taxes_amount": { - "type": "number", - "example": 0, - "description": { - "en": "Corresponds to the tax values ​​calculated for the payment.", - "pt": "Corresponde aos valores dos impostos calculados para o pagamento.", - "es": "Corresponde a los valores de impuestos calculados para el pago." - } - }, - "counter_currency": { - "type": "string", - "format": "nullable", - "description": { - "en": "Basically, it is an object that will allow you to convert payments of the CBT (Cross Border Trade) type into dollars, which are international payments made in foreign currency.", - "pt": "Basicamente, é um objeto que permitirá converter em dólares pagamentos do tipo CBT (Cross Border Trade), que são pagamentos internacionais, feitos em moeda estrangeira.", - "es": "Básicamente, es un objeto que te permitirá convertir pagos del tipo CBT (Cross Border Trade) en dólares, que son pagos internacionales realizados en moneda extranjera." - } - }, - "shipping_amount": { - "type": "number", - "example": 0, - "description": { - "en": "Amount of charge for shipping the purchase. It is of type BigDecimal.", - "pt": "Valor da cobrança de envio da compra. É do tipo BigDecimal.", - "es": "Importe del cargo por el envío de la compra. Es de tipo BigDecimal." - } - }, - "pos_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Digital identifier of the point of sale (Point of Sale - POS / machine). They are physical points of sale that use a card machine for sales.", - "pt": "Identificador digital do ponto de vendas (Ponto de Venda - PDV / maquininha). São pontos de vendas físicos que utilizam maquininha de cartão para vendas.", - "es": "Identificador digital del punto de venta (Punto de Venta - PDV / máquina). Son puntos de venta físicos que utilizan una máquina de tarjetas para la venta." - } - }, - "store_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Store identifier to which the point of sale belongs.", - "pt": "Identificador da loja à qual o caixa (PDV) pertence.", - "es": "Identificador de la sucursal a la que pertenece el punto de venta (PDV)." - } - }, - "collector_id": { - "type": "number", - "example": 448876418, - "description": { - "en": "It is the user who receives the money. Ex - A user (payer) buys a cell phone through the marketplace. The identifier of the store/seller to receive the payment is the collector_id.", - "pt": "É o usuário que recebe o dinheiro. Por exemplo - Um usuário (payer) compra um celular pelo marketplace. O identificador da loja/vendedor a receber o pagamento é o collector_id.", - "es": "Es el usuario quien recibe el dinero. Por ejemplo - Un usuario (payer) compra un celular a través del marketplace. El identificador de la tienda/vendedor para recibir el pago es el collector_id." - } - }, - "payer": { - "type": "object", - "description": { - "en": "Payer data - ID (identifying number), email address, identification (type and number of id)", - "pt": "Dados do pagador - ID (número de identificação), e-mail, identificação (tipo e número de documento)", - "es": "Datos del pagador - ID (número identificador), dirección de email, identificación (tipo y número de documento)" - }, - "properties": { - "id": { - "type": "string", - "format": "nullable", - "example": 123, - "description": { - "en": "Payer identifier generated by Mercado Pago.", - "pt": "Identificador de pagador gerado pelo Mercado Pago.", - "es": "Identificador del Payer generado por Mercado Pago." - } - }, - "email": { - "type": "string", - "example": "test_user_80507629@testuser.com", - "description": { - "en": "Email associated with the payer. This value will only return a response when status=approved, status=refunded, or status=charged_back.", - "pt": "Email associado ao payer. Este valor só retornará uma resposta quando status=approved, status=refunded ou status=charged_back.", - "es": "Correo electrónico asociado al payer. Este valor sólo devolverá una respuesta cuando el status=approved, status=refunded o status=charged_back." - } - }, - "identification": { - "type": "object", - "properties": { - "number": { - "type": "string", - "example": 19119119100, - "description": { - "en": "The number refers to the identifier of the user in question. If it is a CPF, for example, it will have 11 numbers.", - "pt": "O número se refere ao identificador do usuário em questão. Se for um CPF, por exemplo, terá 11 números.", - "es": "El número hace referencia al identificador del usuario en cuestión. Si es un CPF, por ejemplo, tendrá 11 números." - } - }, - "type": { - "type": "string", - "example": "CPF", - "description": { - "en": "Identification type.", - "pt": "Tipo de identificação", - "es": "Tipo de identificación" - } - } - }, - "description": { - "es": "Personal identification. This value will only return a response when status=approved, status=refunded or status=charged_back", - "pt": "Personal identification. This value will only return a response when status=approved, status=refunded or status=charged_back", - "en": "Personal identification. This value will only return a response when status=approved, status=refunded or status=charged_back" - } - }, - "type": { - "$ref": "#/components/schemas/payer_type" - } - } - }, - "metadata": { - "type": "object", - "description": { - "en": "This is an optional key-value object where the customer can add additional information that needs to be recorded at checkout. Ex - {\"payments_group_size\":1,\"payments_group_timestamp\":\"2022-11-18T15:01:44Z\",\"payments_group_uuid\":\"96cfd2a4-0b06-4dea-b25f-c5accb02ba10\"}.", - "pt": "Este é um objeto opcional do tipo chave-valor no qual o cliente pode adicionar informações adicionais que precisam ser registradas no pagamento. Ex. - {\"payments_group_size\":1,\"payments_group_timestamp\":\"2022-11-18T15:01:44Z\",\"payments_group_uuid\":\"96cfd2a4-0b06-4dea-b25f-c5accb02ba10\"}.", - "es": "Este es un objeto clave-valor opcional en el que el cliente puede agregar información adicional que debe registrarse al finalizar la compra. Por ejemplo - {\"payments_group_size\":1,\"payments_group_timestamp\":\"2022-11-18T15:01:44Z\",\"payments_group_uuid\":\"96cfd2a4-0b06-4dea-b25f-c5accb02ba10\"}" - } - }, - "additional_info": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "example": "PR0001", - "description": { - "en": "It is the purchased product ad identifier. Ex - “MLB2907679857”.", - "pt": "É o identificador do anúncio do produto comprado. Por exemplo - “MLB2907679857”.", - "es": "Es el identificador del anuncio del producto adquirido. Por ejemplo - “MLB2907679857”." - } - }, - "title": { - "type": "string", - "example": "Point Mini", - "description": { - "en": "Item name.", - "pt": "Nome do item", - "es": "Nombre de ítem" - } - }, - "description": { - "type": "string", - "example": "Producto Point para cobros con tarjetas mediante bluetooth", - "description": { - "en": "Long item description.", - "pt": "Descrição do artigo", - "es": "Descripción de item" - } - }, - "picture_url": { - "type": "string", - "example": "https://http2.mlstatic.com/resources/frontend/statics/growth-sellers-landings/device-mlb-point-i_medium2x.png", - "description": { - "en": "Image URL.", - "pt": "URL da imagem", - "es": "URL de imagen" - } - }, - "category_id": { - "type": "string", - "example": "electronics", - "description": { - "en": "Category of the item.", - "pt": "Categoria do item", - "es": "Categoría del ítem" - } - }, - "quantity": { - "type": "number", - "example": 1, - "description": { - "en": "Item quantity.", - "pt": "Quantidade do produto", - "es": "Cantidad de producto" - } - }, - "unit_price": { - "type": "number", - "example": 58.8, - "description": { - "es": "Unit price.", - "pt": "Unit price.", - "en": "Unit price." - } - } - } - }, - "description": { - "en": "List of items to be paid.", - "pt": "Lista de itens a pagar", - "es": "Lista de ítems a pagar" - } - }, - "payer": { - "type": "object", - "description": { - "en": "The payer is the one who makes the payment. This field is an object that has the payer's information.", - "pt": "O payer é aquele que faz o pagamento. Este campo é um objeto que possui as informações do pagador.", - "es": "El payer es quien realiza el pago. Este campo es un objeto que tiene la información del pagador." - }, - "properties": { - "registration_date": { - "type": "string", - "example": "2019-01-01T15:01:01.000Z", - "description": { - "en": "Date of registration of the buyer on your site.", - "pt": "Data de cadastro do comprador em seu site", - "es": "Fecha de registración del comprador en tu sitio" - } - } - } - }, - "shipments": { - "type": "object", - "properties": { - "receiver_address": { - "type": "object", - "properties": { - "street_name": { - "type": "string", - "example": "Av das Nacoes Unidas", - "description": { - "en": "Street name.", - "pt": "Rua", - "es": "Calle" - } - }, - "street_number": { - "type": "number", - "example": 3003, - "description": { - "en": "Number.", - "pt": "Número", - "es": "Número" - } - }, - "zip_code": { - "type": "string", - "example": 6233200, - "description": { - "en": "Zip code.", - "pt": "Código postal", - "es": "Código postal" - } - }, - "city_name": { - "type": "string", - "example": "Buzios", - "description": { - "en": "City Name.", - "pt": "Cidade", - "es": "Ciudad" - } - }, - "state_name": { - "type": "string", - "example": "Rio de Janeiro", - "description": { - "en": "State.", - "pt": "Província", - "es": "Provincia" - } - } - }, - "description": { - "en": "Buyer's address.", - "pt": "Endereço do comprador", - "es": "Dirección del comprador" - } - } - }, - "description": { - "en": "Shipping information.", - "pt": "Informações de envio", - "es": "Información de envío" - } - } - }, - "description": { - "en": "Additional information.", - "pt": "Informações adicionais", - "es": "Información adicional" - } - }, - "external_reference": { - "type": "string", - "example": "MP0001", - "description": { - "en": "It is a payment’s external reference. It could be, for example, a hashcode from the Central Bank, working as a transaction origin identifier.", - "pt": "É uma referência externa do pagamento. Pode ser, por exemplo, um hashcode do Banco Central, funcionando como identificador de origem da transação.", - "es": "Es una referencia de pago externa. Podría ser, por ejemplo, un código hash del Banco Central, funcionando como identificador del origen de la transacción." - } - }, - "transaction_amount": { - "type": "number", - "example": 58.8, - "description": { - "en": "Product cost. Example - The sale of a product for R$100.00 will have a transactionAmount = 100.", - "pt": "Custo do produto. Exemplo - A venda de um produto por R$100,00 terá um transactionAmount = 100.", - "es": "Costo del producto. Ejemplo - La venta de un producto por R$ 100,00 tendrá un transactionAmount = 100." - } - }, - "transaction_amount_refunded": { - "type": "number", - "example": 0, - "description": { - "en": "Transaction amount refunded", - "pt": "Valor reembolsado da transação", - "es": "Monto reembolsado de transacción" - } - }, - "coupon_amount": { - "type": "number", - "example": 0, - "description": { - "en": "It is the value of the discount coupon. E.g. - BRL 14.50. The attribute's type is BigDecimal.", - "pt": "É o valor do cupom de desconto. Ex. - R$14,50. O tipo do atributo é BigDecimal.", - "es": "Es el valor del cupón de descuento. Por ejemplo - BRL 14,50. El tipo del atributo es BigDecimal." - } - }, - "differential_pricing_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Attribute that commonly contains an agreement on how much the user will be charged (generally, this field is more relevant for Marketplace payments). Pricing and fees are calculated based on this identifier.", - "pt": "Atributo que comumente contém um acordo de quanto vai ser cobrado do usuário (geralmente, este campo é mais relevante para pagamentos do Marketplace). A precificação e as taxas são calculadas com base nesse identificador.", - "es": "Atributo que comúnmente contiene un acuerdo sobre cuánto se le cobrará al usuario (generalmente, este campo es más relevante para los pagos de Marketplace). Los precios y las tarifas se calculan en función de este identificador." - } - }, - "deduction_schema": { - "type": "string", - "format": "nullable", - "description": { - "en": "Pricing Scheme applied by Mercado Pago. It is a field that represents the information of a type of financing (installment). Ex - “ahora12” is a schema that indicates that the payment is divided into 12 installments. In addition, financing may have an additional cost, such cost being included in that same answer and pointed out to whom this applies (payer/collector).", - "pt": "Esquema de Pricing aplicado pelo Mercado Pago. É um campo que representa as informações de um tipo de financiamento (parcelamento). Ex. - “ahora12” é um schema que indica que o pagamento está parcelado em 12 vezes. Em adição, o financiamento pode ter um custo adicional, sendo tal custo incluído nessa mesma resposta e apontado a quem se aplica isso (payer/collector).", - "es": "Esquema de precios aplicado por Mercado Pago. Es un campo que representa la información de un tipo de financiamiento (cuota). Ej - “ahora12” es un esquema que indica que el pago se divide en 12 cuotas. Además, el financiamiento puede tener un costo adicional, siendo incluido dicho costo en esa misma respuesta y señalándose a quién aplica (payer/collector)." - } - }, - "transaction_details": { - "type": "object", - "properties": { - "payment_method_reference_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Unique identifier of the payment method", - "pt": "Identificador único do meio de pagamento", - "es": "Identificador único del método de pago" - } - }, - "net_received_amount": { - "type": "number", - "example": 56.16, - "description": { - "en": "Net amount received", - "pt": "Valor líquido recebido", - "es": "Monto neto recibido" - } - }, - "total_paid_amount": { - "type": "number", - "example": 58.8, - "description": { - "en": "Total amount charged to the payer", - "pt": "Valor total cobrado ao pagador", - "es": "Monto total cobrado al payer" - } - }, - "overpaid_amount": { - "type": "number", - "example": 0, - "description": { - "en": "Overpaid amount", - "pt": "Valor pago a mais", - "es": "Monto pagado en exceso" - } - }, - "external_resource_url": { - "type": "string", - "format": "nullable", - "description": { - "en": "External resource url", - "pt": "URL de recurso externo", - "es": "URL de recurso externo" - } - }, - "installment_amount": { - "type": "number", - "example": 58.8, - "description": { - "en": "Amount of the chosen financing fee.", - "pt": "Valor da taxa de financiamento escolhida.", - "es": "Monto de la cuota de financiación elegida." - } - }, - "financial_institution": { - "type": "string", - "format": "nullable", - "description": { - "en": "Financial institution", - "pt": "Instituição financeira", - "es": "Institución financiera" - } - }, - "payable_deferral_period": { - "type": "string", - "format": "nullable", - "description": { - "en": "Payment deferral period", - "pt": "Período de diferimento de pagamento", - "es": "Período de diferimiento del pago" - } - }, - "acquirer_reference": { - "type": "string", - "format": "nullable", - "description": { - "en": "Acquirer reference", - "pt": "Referência do adquirente", - "es": "Referencia de adquirente" - } - } - }, - "description": { - "en": "Transaction details", - "pt": "Detalhes da transação", - "es": "Detalles de la transacción" - } - }, - "fee_details": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "$ref": "#/components/schemas/fee_details_type" - }, - "amount": { - "type": "number", - "example": 2.64, - "description": { - "en": "Fee amount.", - "pt": "Valor da comissão", - "es": "Monto de la comisión" - } - }, - "fee_payer": { - "$ref": "#/components/schemas/fee_payer" - } - } - }, - "description": { - "en": "Fee detail.", - "pt": "Detalhe de comissão", - "es": "Detalle de comisión" - } - }, - "captured": { - "type": "boolean", - "description": { - "en": "Indicates if the payment amount was captured or is pending capture.", - "pt": "Indica se o valor do pagamento foi capturado ou está com captura pendente.", - "es": "Indica si el monto del pago fue capturado o se encuentra pendiente de captura." - } - }, - "binary_mode": { - "type": "boolean", - "description": { - "en": "When set to TRUE, payments can only be approved or rejected. Otherwise they can also result in_process.", - "pt": "Quando definido como TRUE, os pagamentos só podem ser aprovados ou rejeitados. Caso contrário, eles também podem resultar in_process.", - "es": "Cuando se configura como TRUE los pagos sólo pueden resultar aprobados o rechazados. Caso contrario también pueden resultar in_process." - } - }, - "call_for_authorize_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Identifier that is provided to the issuing bank so that payments can be authorized.", - "pt": "Identificador que é fornecido ao banco emissor para que os pagamentos possam ser autorizados.", - "es": "Identificador que se proporciona al banco emisor para que se pueda autorizar los pagos." - } - }, - "statement_descriptor": { - "type": "string", - "example": "MercadoPago", - "description": { - "en": "Description that the payment will appear with in the card statement (eg MERCADOPAGO)", - "pt": "Descrição com a qual o pagamento aparecerá no resumo do cartão (ex. MERCADOPAGO)", - "es": "Descripción con la que aparecerá el pago en el resumen de tarjeta (ej. MERCADOPAGO)" - } - }, - "installments": { - "type": "number", - "example": 1, - "description": { - "en": "Number of installments selected.", - "pt": "Número de parcelas selecionado", - "es": "Cantidad seleccionada de cuotas" - } - }, - "card": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Card ID.", - "pt": "Identificador de cartão", - "es": "Identificador de tarjeta" - } - }, - "first_six_digits": { - "type": "string", - "example": 423564, - "description": { - "en": "Card Bin", - "pt": "Bin do cartão", - "es": "Bin de la tarjeta" - } - }, - "last_four_digits": { - "type": "string", - "example": 5682, - "description": { - "en": "last 4 digits of the card", - "pt": "últimos 4 dígitos do cartão", - "es": "últimos 4 digitos de la tarjeta" - } - }, - "expiration_month": { - "type": "number", - "example": 6, - "description": { - "en": "Card's expiration month.", - "pt": "Mês de validade do cartão", - "es": "Mes de expiración de la tarjeta" - } - }, - "expiration_year": { - "type": "number", - "example": 2023, - "description": { - "en": "Card's expiration year.", - "pt": "Ano de validade do cartão", - "es": "Año de expiración de la tarjeta" - } - }, - "date_created": { - "type": "string", - "example": "2019-07-10T14:47:58.000Z", - "description": { - "en": "Card registration date.", - "pt": "Data de registro do cartão.", - "es": "Fecha de registro de la tarjeta." - } - }, - "date_last_updated": { - "type": "string", - "example": "2019-07-10T14:47:58.000Z", - "description": { - "en": "Date on which the last payment event was recorded.", - "pt": "Data em que o último evento de pagamento foi registrado.", - "es": "Fecha en la que se registró el ultimo evento sobre el pago." - } - }, - "cardholder": { - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "APRO", - "description": { - "es": "name", - "pt": "name", - "en": "name" - } - }, - "identification": { - "type": "object", - "properties": { - "number": { - "type": "string", - "example": 19119119100, - "description": { - "en": "The number refers to the identifier of the user in question. If it is a CPF, for example, it will have 11 numbers.", - "pt": "O número se refere ao identificador do usuário em questão. Se for um CPF, por exemplo, terá 11 números.", - "es": "El número hace referencia al identificador del usuario en cuestión. Si es un CPF, por ejemplo, tendrá 11 números." - } - }, - "type": { - "type": "string", - "example": "CPF", - "description": { - "en": "Identification type.", - "pt": "Tipo de identificação", - "es": "Tipo de identificación" - } - } - }, - "description": { - "en": "Personal identification.", - "pt": "Identificação pessoal", - "es": "Identificación personal" - } - } - }, - "description": { - "en": "Cardholder details.", - "pt": "Detalhes do titular do cartão.", - "es": "Detalles del titular de la tarjeta." - } - } - }, - "description": { - "en": "Card details.", - "pt": "Informações do cartão.", - "es": "Detalles de la tarjeta." - } - }, - "notification_url": { - "type": "string", - "example": "https://www.suaurl.com/notificacoes/", - "description": { - "en": "Notifications URL available to receive notifications of events related to Payment. The maximum number of characters allowed for submission in this parameter is 248 characters.", - "pt": "URL de notificações disponível para receber notificações de eventos relacionados ao Pagamento. A quantidade máxima de caracteres permitidos para envio neste parâmetro é de 248 caracteres.", - "es": "URL de Notificaciones disponibilizada para recibir las notificaciones de los eventos relacionados al Pago. La cantidad máxima de caracteres permitidos para enviar en este parámetro es de 248 caracteres." - } - }, - "processing_mode": { - "type": "string", - "example": "aggregator", - "description": { - "en": "Processing mode. There are two types.", - "pt": "Modo de processamento. Existem dois tipos.", - "es": "Modo de procesamiento. Existen dos tipos." - }, - "enum": [ - { - "title": "Aggregator", - "description": { - "en": "The merchant will use the Mercado Pago merchant codes and will take advantage of the financial advantages that we offer.", - "es": "The merchant will use the Mercado Pago merchant codes and will take advantage of the financial advantages that we offer.", - "pt": "The merchant will use the Mercado Pago merchant codes and will take advantage of the financial advantages that we offer." - } - }, - { - "title": "Gateway", - "description": { - "en": "For the merchant it is necessary to have their own merchant codes for online sales and to have an agreement with each of the desired means of payment.", - "es": "For the merchant it is necessary to have their own merchant codes for online sales and to have an agreement with each of the desired means of payment.", - "pt": "For the merchant it is necessary to have their own merchant codes for online sales and to have an agreement with each of the desired means of payment." - } - } - ] - }, - "merchant_account_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Merchant store code identifier. Applies only to the gateway model (since the delivery of money to the merchant does not go through the Mercado Pago system).", - "pt": "Identificador do código da loja comerciante. Aplica-se somente ao modelo gateway (porque a entrega de dinheiro ao comerciante não passa pelo sistema do Mercado Pago).", - "es": "Identificador del código de la tienda del merchant. Aplica solo para el modelo de gateway (ya que la entrega de dinero al comercio no pasa por el sistema de Mercado Pago)" - } - }, - "acquirer": { - "type": "string", - "format": "nullable", - "description": { - "en": "Acquirer.", - "pt": "Adquirente.", - "es": "Adquirente." - } - }, - "merchant_number": { - "type": "string", - "format": "nullable", - "description": { - "en": "Merchant number (Applies to gateway model).", - "pt": "Número da loja (aplica-se ao modelo de gateway).", - "es": "Número de comercio (Aplica para modelo gateway)." - } - }, - "point_of_interaction": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "PIX", - "description": { - "en": "Payment type identifier", - "pt": "Identificador do tipo de pagamento", - "es": "Identificador del tipo de pago" - } - }, - "sub_type": { - "type": "string", - "description": { - "en": "Secondary identifier of the payment type", - "pt": "Identificador secundário do tipo de pagamento", - "es": "Identificador secundario del tipo de pago" - } - }, - "application_data": { - "type": "object", - "properties": { - "name": { - "type": "string", - "example": "NAME_SDK", - "description": { - "en": "Application name", - "pt": "Nome da aplicação", - "es": "Nombre de la aplicación" - } - }, - "version": { - "type": "string", - "example": "VERSION_NUMBER", - "description": { - "en": "Current version", - "pt": "Versão atual da aplicação", - "es": "Versión actual de la aplicación" - } - } - }, - "description": { - "en": "Information about the application that processes the payment", - "pt": "Informação da aplicação que processa o pagamento", - "es": "Información de la aplicación que procesa el pago" - } - }, - "transaction_data": { - "type": "object", - "properties": { - "qr_code_base64": { - "type": "string", - "example": "iVBORw0KGgoAAAANSUhEUgAABRQAAAUUCAYAAACu5p7oAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAIABJREFUeJzs2luO3LiWQNFmI+Y/Zd6vRt36KGNXi7ZOBtcagHD4kNLeiLX33v8DAAAAABD879sDAAAAAAA/h6AIAAAAAGSCIgAAAACQCYoAAAAAQCYoAgAAAACZoAgAAAAAZIIiAAAAAJAJigAAAABAJigCAAAAAJmgCAAAAABkgiIAAAAAkAmKAAAAAEAmKAIAAAAAmaAIAAAAAGSCIgAAAACQCYoAAAAAQCYoAgAAAACZoAgAAAAAZIIiAAAAAJAJigAAAABAJigCA...", - "description": { - "en": "Base64 representation of the image of the QR code to be scanned to finalize the payment", - "pt": "Representação em Base64 da imagem do código QR a ser digitalizado para finalização do pagamento", - "es": "Representación en base64 de la imagen del código QR a escanear para finalizar el pago" - } - }, - "qr_code": { - "type": "string", - "example": "00020126600014br.gov.bcb.pix0117test@testuser.com0217dados adicionais520400005303986540510.005802BR5913Maria Silva6008Brasilia62070503***6304E2CA", - "description": { - "en": "Alphanumeric code to copy and paste, used to finalize the payment", - "pt": "Código alfanumérico para copiar e colar, para finalizar o pagamento", - "es": "Código alfanumérico para copiar y pegar, para finalizar el pago" - } - }, - "ticket_url": { - "type": "string", - "example": "https://www.mercadopago.com.br/payments/123456789/ticket?caller_id=123456&hash=123e4567-e89b-12d3-a456-426655440000", - "description": { - "es": "A link to the rendered pix, with QR codes and instructions to pay", - "pt": "A link to the rendered pix, with QR codes and instructions to pay", - "en": "A link to the rendered pix, with QR codes and instructions to pay" - } - } - }, - "description": { - "en": "Information on the pending payment that was generated", - "pt": "Informação do pagamento pendente que foi gerado", - "es": "Información del pago pendiente que fue generado" - } - } - }, - "description": { - "en": "Information from the application that processes the payment and receives regulatory data", - "pt": "Informação da aplicação que processa o pagamento e recebe dados regulatórios", - "es": "Información de la aplicación que procesa el pago y recibe datos regulatorios" - } - } - } - } - } - } - }, - "400": { - "description": { - "en": "Error", - "pt": "Erro", - "es": "Error" - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "errorKey": { - "type": "string", - "enum": [ - { - "title": "8", - "description": { - "en": "The name of the parameters is wrong", - "es": "The name of the parameters is wrong", - "pt": "The name of the parameters is wrong" - } - }, - { - "title": "1004", - "description": { - "en": "Invalid parameters for payment_method API", - "es": "Invalid parameters for payment_method API", - "pt": "Invalid parameters for payment_method API" - } - }, - { - "title": "2018", - "description": { - "en": "The action requested is not valid for the current payment state.", - "es": "The action requested is not valid for the current payment state.", - "pt": "The action requested is not valid for the current payment state." - } - }, - { - "title": "2078", - "description": { - "en": "Capture attribute must be boolean.", - "es": "Capture attribute must be boolean.", - "pt": "Capture attribute must be boolean." - } - }, - { - "title": "2079", - "description": { - "en": "Invalid value for capture attribute.", - "es": "Invalid value for capture attribute.", - "pt": "Invalid value for capture attribute." - } - } - ] - } - } - } - } - } - }, - "403": { - "description": { - "en": "Error", - "pt": "Erro", - "es": "Error" - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "errorKey": { - "type": "string", - "enum": [ - { - "title": "4", - "description": { - "en": "The caller is not authorized to access this resource.", - "es": "The caller is not authorized to access this resource.", - "pt": "The caller is not authorized to access this resource." - } - }, - { - "title": "3002", - "description": { - "en": "The caller is not authorized to perform this action.", - "es": "The caller is not authorized to perform this action.", - "pt": "The caller is not authorized to perform this action." - } - } - ] - } - } - } - } - } - }, - "404": { - "description": { - "en": "Error", - "pt": "Erro", - "es": "Error" - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "errorKey": { - "type": "string", - "enum": [ - { - "title": "2000", - "description": { - "en": "Payment not found.", - "es": "Payment not found.", - "pt": "Payment not found." - } - } - ] - } - } - } - } - } - } - }, - "title": { - "en": "Update payment", - "pt": "Atualizar pagamento", - "es": "Actualizar pago" - } - } - }, - "/v1/payments/search": { - "get": { - "tags": [ - "checkout-pro", - "qr-code", - "subscriptions", - "checkout-api", - "mp-point", - "checkout-bricks" - ], - "description": { - "en": "Search and return payments made in the last twelve months from the search date", - "pt": "Pesquisa e retorna pagamentos efetuados nos últimos doze meses a partir da data de pesquisa", - "es": "Busca y retorna los pagos hechos en los último doce meses desde la fecha de pago" - }, - "parameters": [ - { - "name": "sort", - "in": "query", - "description": { - "en": "Parameter used for ordering a list of payments. Sorting can be done using the following attributes - \"date_approved\", \"date_created\", \"date_last_updated\", \"id\", \"money_release_date\".", - "pt": "Parâmetro utilizado para a ordenação de uma lista de pagamentos. A ordenação pode ser feita a partir dos seguintes atributos - \"date_approved\", \"date_created\", \"date_last_updated\", \"id\", \"money_release_date\".", - "es": "Parámetro utilizado para ordenar una lista de pagos. La clasificación se puede hacer usando los siguientes atributos - \"date_approved\", \"date_created\", \"date_last_updated\", \"id\", \"money_release_date\"." - }, - "required": true, - "schema": { - "type": "string", - "example": "date_created" - } - }, - { - "name": "criteria", - "in": "query", - "description": { - "en": "It sorts the payments in ascending order (using “asc”) or in descending order (“desc”).", - "pt": "Ordena o pagamento de maneira ascendente (utilizando “asc”) ou descendente (“desc”).", - "es": "Ordena el pago en orden ascendente (usando \"asc\") o en orden descendente (\"desc\")." - }, - "required": true, - "schema": { - "type": "string", - "example": "desc" - } - }, - { - "name": "external_reference", - "in": "query", - "description": { - "en": "It is a payment’s external reference. It could be, for example, a hashcode from the Central Bank, working as a transaction origin identifier.", - "pt": "É uma referência externa do pagamento. Pode ser, por exemplo, um hashcode do Banco Central, funcionando como identificador de origem da transação.", - "es": "Es una referencia de pago externa. Podría ser, por ejemplo, un código hash del Banco Central, funcionando como identificador del origen de la transacción." - }, - "required": true, - "schema": { - "type": "string", - "example": "ID_REF" - } - }, - { - "name": "range", - "in": "query", - "description": { - "en": "Parameter used to define the payments search interval. The range can refer to the following attributes - \"date_created\", \"date_last_updated\", \"date_approved\", \"money_release_date\". If not informed, use default \"date_created\".", - "pt": "Parâmetro utilizado para definir o intervalo de busca pelos pagamentos. O intervalo pode ser referente aos seguintes atributos - \"date_created\", \"date_last_updated\", \"date_approved\", \"money_release_date\". Se não for informado utiliza por padrão \"date_created\".", - "es": "Parámetro utilizado para definir el intervalo de búsqueda de pagos. El rango puede hacer referencia a los siguientes atributos - \"date_created\", \"date_last_updated\", \"date_approved\", \"money_release_date\". Si no se informa, usa por defecto \"date_created\"" - }, - "required": true, - "schema": { - "type": "string", - "example": "date_created" - } - }, - { - "name": "begin_date", - "in": "query", - "description": { - "en": "Defines the start of the payments search interval. Its format can be a relative date - \"NOW-XDAYS\", \"NOW-XMONTHS\" - or an absolute date - ISO8601. If not informed, it defaults to \"NOW-3MONTHS\".", - "pt": "Define o início do intervalo de busca dos pagamentos. Seu formato pode ser uma data relativa - \"NOW-XDAYS\", \"NOW-XMONTHS\" - ou uma data absoluta - ISO8601. Se não for informado utiliza por padrão \"NOW-3MONTHS\".", - "es": "Define el inicio del intervalo de búsqueda de pagos. Su formato puede ser una fecha relativa - \"NOW-XDAYS\", \"NOW-XMONTHS\" - o una fecha absoluta - ISO8601. Si no se informa, el valor predeterminado es \"NOW-3MONTHS\"." - }, - "required": true, - "schema": { - "type": "string", - "example": "NOW-30DAYS" - } - }, - { - "name": "end_date", - "in": "query", - "description": { - "en": "Defines the end of the payments search interval. Its format can be a relative date - \"NOW-XDAYS\", \"NOW-XMONTHS\" - or an absolute date - ISO8601. If not informed, it defaults to \"NOW\".", - "pt": "Define o fim do intervalo de busca dos pagamentos. Seu formato pode ser uma data relativa - \"NOW-XDAYS\", \"NOW-XMONTHS\" - ou uma data absoluta - ISO8601. Se não for informado utiliza por padrão \"NOW\".", - "es": "Define el final del intervalo de búsqueda de pagos. Su formato puede ser una fecha relativa - \"NOW-XDAYS\", \"NOW-XMONTHS\" - o una fecha absoluta - ISO8601. Si no se informa, el valor predeterminado es \"NOW\"." - }, - "required": true, - "schema": { - "type": "string", - "example": "NOW" - } - }, - { - "name": "store_id", - "in": "query", - "description": { - "en": "Parameter used to filter the payment search by the identifier of the store to which the POS (Point of Sale) belongs.", - "pt": "Parâmetro utilizado para filtrar a busca de pagamentos pelo identificador da loja à qual pertence o PDV (Ponto de Venda).", - "es": "Parámetro utilizado para filtrar la búsqueda de pagos por el identificador de la sucursal a la que pertenece el PDV (Punto de Venta)." - }, - "required": false, - "schema": { - "type": "string", - "example": 47792478 - } - }, - { - "name": "pos_id", - "in": "query", - "description": { - "en": "Parameter used to filter payment searches by the Point of Sale (POS) identifier, physical sales points that use a card machine for sales and/or QR codes.", - "pt": "Parâmetro utilizado para filtrar a busca de pagamentos pelo identificador do ponto de venda (PDV), pontos de venda físicos que utilizam uma máquina de cartão para vendas e/ou códigos QR.", - "es": "Parámetro utilizado para filtrar la búsqueda de pagos por el identificador del PDV, puntos de venta físicos que utilizan una máquina de tarjetas para la venta y/o códigos QR." - }, - "required": false, - "schema": { - "type": "string", - "example": 58930090 - } - } - ], - "responses": { - "200": { - "description": { - "es": "Success", - "pt": "Success", - "en": "Success" - }, - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "paging": { - "type": "object", - "properties": { - "total": { - "type": "number", - "example": 17493, - "description": { - "en": "The total number of items in the collection.", - "pt": "Número total de itens na cobrança.", - "es": "El número total de elementos del cobro." - } - }, - "limit": { - "type": "number", - "example": 30, - "description": { - "en": "The maximum number of entries to return.", - "pt": "O número máximo de entradas a serem retornadas.", - "es": "El número máximo de entradas a ser retornadas." - } - }, - "offset": { - "type": "number", - "example": 0, - "description": { - "en": "Numeric field used to paginate the response.", - "pt": "Campo numérico usado para paginar a resposta.", - "es": "Campo numérico utilizado para paginar la respuesta." - } - } - }, - "description": { - "en": "Information for pagination of search results.", - "pt": "Informações para paginação dos resultados da pesquisa.", - "es": "Información para paginación de resultados de búsqueda." - } - }, - "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "example": 1, - "description": { - "en": "Unique Payment Identifier, automatically generated by Mercado Pago", - "pt": "Identificador único de pagamento, gerado automaticamente pelo Mercado Pago", - "es": "Identificador único del pago, generado automáticamente por Mercado Pago" - } - }, - "date_created": { - "type": "string", - "example": "2017-08-31T11:26:38.000Z", - "description": { - "en": "Payment creation date.", - "pt": "Data de criação do pagamento.", - "es": "Fecha de creación del Pago." - } - }, - "date_approved": { - "type": "string", - "example": "2017-08-31T11:26:38.000Z", - "description": { - "en": "Payment approval date. A payment can be generated in an intermediate state and then approved, so the creation date will not always coincide with the Approval Date.", - "pt": "Data de aprovação do pagamento. Um pagamento pode ser gerado em um estado intermediário e depois aprovado, portanto, a data de criação nem sempre coincidirá com a Data de Aprovação.", - "es": "Fecha de aprobación del Pago. Un pago puede generarse en un estado intermedio y luego ser aprobado, por tanto la fecha de creación no siempre coincidirá con la Fecha de Aprobación." - } - }, - "date_last_updated": { - "type": "string", - "example": "2017-08-31T11:26:38.000Z", - "description": { - "en": "Date on which the last payment event was recorded.", - "pt": "Data em que o último evento de pagamento foi registrado.", - "es": "Fecha en la que se registró el ultimo evento sobre el pago." - } - }, - "date_of_expiration": { - "type": "string", - "format": "nullable", - "description": { - "en": "Payment’s expiration date. The attribute’s valid format is as follows - \"yyyy-MM-dd'T'HH:mm:ssz\". Ex. - 2022-11-17T09:37:52.000-04:00.", - "pt": "Data de expiração do pagamento. O formato válido do atributo é o seguinte - \"yyyy-MM-dd'T'HH:mm:ssz\". Ex. - 2022-11-17T09:37:52.000-04:00.", - "es": "Fecha de vencimiento del pago. El formato válido del atributo es el siguiente - \"yyyy-MM-dd'T'HH:mm:ssz\". Ej. - 2022-11-17T09:37:52.000-04:00." - } - }, - "money_release_date": { - "type": "string", - "example": "2017-09-14T11:26:38.000Z", - "description": { - "en": "Date on which the payment is settled and the money is made available in the Mercado Pago account of the Collector (the one who receives the payment). The field can take on the values “pending” or “released”, where the first indicates that the payment has not yet been released (money held for a period) and “released” means that the money has already been released to the user's available balance.", - "pt": "Data em que o pagamento é liquidado e o dinheiro é disponibilizado na conta Mercado Pago do Collector (aquele que recebe o pagamento). O campo pode assumir os valores “pending” ou “released”, sendo que o primeiro indica que o pagamento ainda não foi liberado (dinheiro retido por tempo) e “released” significa que o dinheiro já foi liberado para o saldo disponível do usuário.", - "es": "Fecha en que se liquida el pago y se pone a disposición el dinero en la cuenta de Mercado Pago del Collector (el que recibe el pago). El campo puede tomar los valores “pending” o “released”, siendo que el primero indica que el pago todavía no fue liberado (dinero retenido por tiempo) y “released” significa que el dinero ya fue liberado al disponible del usuario." - } - }, - "operation_type": { - "$ref": "#/components/schemas/operation_type" - }, - "issuer_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Is the identifier of the card issuer being used in a credit or debit card payment.", - "pt": "É o identificador do emissor do cartão que está sendo utilizado em um pagamento com cartão de crédito ou débito.", - "es": "Es el identificador del emisor de la tarjeta que se utiliza en un pago con tarjeta de crédito o débito." - } - }, - "payment_method_id": { - "type": "string", - "example": "account_money", - "description": { - "en": "It indicates the identifier of the payment method selected to make the transaction. Here are some examples. Get all available payment methods by consulting the 'Get payment Methods API'.", - "pt": "Indica o identificador do meio de pagamento selecionado para efetuar o pagamento. A seguir, apresentamos alguns exemplos. Obtenha todos os meios de pagamento disponíveis consultando a API de 'Obter meios de pagamento'.", - "es": "Identificador del medio de pago. Indica el ID del medio de pago seleccionado para realizar el pago. A continuación presentamos algunos ejemplos. Obtén todos los métodos de pago disponibles consultando la API de 'Obtener métodos de pago'." - }, - "enum": [ - { - "title": "pix", - "description": { - "en": "Instant digital payment method used in Brazil.", - "es": "Instant digital payment method used in Brazil.", - "pt": "Instant digital payment method used in Brazil." - } - }, - { - "title": "account_money", - "description": { - "en": "When the payment is debited directly from a Mercado Pago account.", - "es": "When the payment is debited directly from a Mercado Pago account.", - "pt": "When the payment is debited directly from a Mercado Pago account." - } - }, - { - "title": "debin_transfer", - "description": { - "en": "Digital payment method used in Argentina that immediately debits an amount from an account, requesting prior authorization.", - "es": "Digital payment method used in Argentina that immediately debits an amount from an account, requesting prior authorization.", - "pt": "Digital payment method used in Argentina that immediately debits an amount from an account, requesting prior authorization." - } - }, - { - "title": "ted", - "description": { - "en": "It is the Electronic Transfer Available payment, used in Brazil, that has fees to be used. The payment is made the same day of the transaction, but for this it is necessary to make the transfer within the stipulated period.", - "es": "It is the Electronic Transfer Available payment, used in Brazil, that has fees to be used. The payment is made the same day of the transaction, but for this it is necessary to make the transfer within the stipulated period.", - "pt": "It is the Electronic Transfer Available payment, used in Brazil, that has fees to be used. The payment is made the same day of the transaction, but for this it is necessary to make the transfer within the stipulated period." - } - }, - { - "title": "cvu", - "description": { - "en": "Payment method used in Argentina;", - "es": "Payment method used in Argentina;", - "pt": "Payment method used in Argentina;" - } - }, - { - "title": "pse", - "description": { - "en": "Digital payment method used in Colombia which users authorize the debit of funds from their bank through virtual banking. your savings, checking or electronic deposit accounts.", - "es": "Digital payment method used in Colombia which users authorize the debit of funds from their bank through virtual banking. your savings, checking or electronic deposit accounts.", - "pt": "Digital payment method used in Colombia which users authorize the debit of funds from their bank through virtual banking. your savings, checking or electronic deposit accounts." - } - } - ] - }, - "payment_type_id": { - "$ref": "#/components/schemas/payment_type_id" - }, - "status": { - "$ref": "#/components/schemas/status" - }, - "status_detail": { - "type": "string", - "example": "accredited", - "description": { - "en": "Detail in which the Collection resulted", - "pt": "Detalhe em que resultou a Coleção", - "es": "Detalle en el que resultó el Cobro" - }, - "enum": [ - { - "title": "Accredited", - "description": { - "en": "credited payment.", - "es": "credited payment.", - "pt": "credited payment." - } - }, - { - "title": "pending_contingency", - "description": { - "en": "the payment is being processed.", - "es": "the payment is being processed.", - "pt": "the payment is being processed." - } - }, - { - "title": "pending_review_manual", - "description": { - "en": "the payment is under review to determine its approval or rejection.", - "es": "the payment is under review to determine its approval or rejection.", - "pt": "the payment is under review to determine its approval or rejection." - } - }, - { - "title": "cc_rejected_bad_filled_date", - "description": { - "en": "incorrect expiration date.", - "es": "incorrect expiration date.", - "pt": "incorrect expiration date." - } - }, - { - "title": "cc_rejected_bad_filled_other", - "description": { - "en": "incorrect card details.", - "es": "incorrect card details.", - "pt": "incorrect card details." - } - }, - { - "title": "cc_rejected_bad_filled_security_code", - "description": { - "en": "incorrect CVV.", - "es": "incorrect CVV.", - "pt": "incorrect CVV." - } - }, - { - "title": "cc_rejected_blacklist", - "description": { - "en": "the card is in the denial list, being present in problems related to theft/complaints/fraud.", - "es": "the card is in the denial list, being present in problems related to theft/complaints/fraud.", - "pt": "the card is in the denial list, being present in problems related to theft/complaints/fraud." - } - }, - { - "title": "cc_rejected_call_for_authorize", - "description": { - "en": "the payment method requires prior authorization of the transaction value.", - "es": "the payment method requires prior authorization of the transaction value.", - "pt": "the payment method requires prior authorization of the transaction value." - } - }, - { - "title": "cc_rejected_card_disabled", - "description": { - "en": "the card is inactive.", - "es": "the card is inactive.", - "pt": "the card is inactive." - } - }, - { - "title": "cc_rejected_duplicated_payment", - "description": { - "en": "duplicated transaction.", - "es": "duplicated transaction.", - "pt": "duplicated transaction." - } - }, - { - "title": "cc_rejected_high_risk", - "description": { - "en": "rejected by Fraud Prevention.", - "es": "rejected by Fraud Prevention.", - "pt": "rejected by Fraud Prevention." - } - }, - { - "title": "cc_rejected_insufficient_amount", - "description": { - "en": "insufficient amount.", - "es": "insufficient amount.", - "pt": "insufficient amount." - } - }, - { - "title": "cc_rejected_invalid_installments", - "description": { - "en": "invalid number of installments.", - "es": "invalid number of installments.", - "pt": "invalid number of installments." - } - }, - { - "title": "cc_rejected_max_attempts", - "description": { - "en": "maximum number of attempts exceeded.", - "es": "maximum number of attempts exceeded.", - "pt": "maximum number of attempts exceeded." - } - }, - { - "title": "cc_rejected_other_reason", - "description": { - "en": "generic error.", - "es": "generic error.", - "pt": "generic error." - } - } - ] - }, - "currency_id": { - "$ref": "#/components/schemas/currency_id" - }, - "description": { - "type": "string", - "example": "Pago Pizza", - "description": { - "en": "Purchased product’s description, the reason for payment. E.g. - \"Xiaomi Redmi Note 11S mobile phone 128gb 6gb Ram Original Global Blue Version\" (description of a product in the marketplace).", - "pt": "Descrição do produto comprado, a razão de pagamento. Ex. - \"Celular Xiaomi Redmi Note 11S 128gb 6gb Ram Versão Global Original azul\" (descrição de um produto no marketplace).", - "es": "Descripción del producto adquirido, el motivo del pago. Ej. - \"Celular Xiaomi Redmi Note 11S 128gb 6gb Ram Original Global Blue Version\" (descripción de un producto en el marketplace)." - } - }, - "live_mode": { - "type": "boolean", - "description": { - "en": "Indicates whether the Payment was made in a production environment or in a Test environment. If TRUE, then the chargeback will be processed in production mode. If FALSE, then the chargeback will be processed in sandbox mode.", - "pt": "Indica se o Pagamento foi feito em ambiente de produção ou em ambiente de Teste. Se TRUE, o estorno será processado em modo de produção. Se FALSE, o estorno será processado no modo sandbox.", - "es": "Indica si el Pago se realizó en ambiente productivo o en un ambiente de Test. Si es TRUE, el contracargo se procesará en modo de producción. Si es FALSE, el contracargo se procesará en modo sandbox." - } - }, - "sponsor_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "This field is deprecated and no longer used.", - "pt": "Este campo está deprecado e não é mais utilizado.", - "es": "Este campo está deprecado y ya no se usa." - } - }, - "authorization_code": { - "type": "string", - "format": "nullable", - "description": { - "en": "Transaction authorization code for payments with “payment_method_type” of type “credit_card” (credit card), “debit_card” (credit card) and “voucher_card” (voucher card for benefits, such as Alelo). In summary, this code is used for card transactions. The code is numerical and has 6 digits.", - "pt": "Código de autorização de transação para pagamentos com “payment_method_type” do tipo “credit_card” (cartão de crédito), “debit_card” (cartão de crédito) e “voucher_card” (cartão de voucher para benefícios, como Alelo). Em síntese, este código é utilizado para transações com cartão. O código é numérico e possui 6 dígitos.", - "es": "Código de autorización de transacción para pagos con “payment_method_type” de tipo “credit_card” (tarjeta de crédito), “debit_card” (tarjeta de débito) y “voucher_card” (tarjeta de bono para beneficios, como Alelo). En resumen, este código se utiliza para transacciones con tarjeta. El código es numérico y tiene 6 dígitos." - } - }, - "money_release_schema": { - "type": "string", - "format": "nullable", - "description": { - "en": "This field is used to identify whether a payment is PNF (Payment in Flow). Payment in flow is a form of cash release in which the installments received by a seller are released over the months (which corresponds to the number of installments). Possible values ​​for this field are “null” or “payment_in_flow”.", - "pt": "Esse campo é usado para identificar se um pagamento é PNF (pagamento no fluxo). Pagamento no fluxo é uma forma de liberação de dinheiro em que as parcelas recebidas por um vendedor são liberadas com o passar dos meses (que corresponde ao número de parcelas). Os valores possíveis para este campo são “null” ou “payment_in_flow”.", - "es": "Este campo se utiliza para identificar si un pago es PNF (Pay in Flow). El pago en flujo es una forma de liberación de dinero en la que las cuotas recibidas por un vendedor se van liberando a lo largo de los meses (lo que corresponde al número de cuotas). Los valores posibles para este campo son \"null\" o \"payment_in_flow\"." - } - }, - "counter_currency": { - "type": "string", - "format": "nullable", - "description": { - "en": "Basically, it is an object that will allow you to convert payments of the CBT type (Cross Border Trade) into dollars, which are international payments made in foreign currency.", - "pt": "Basicamente, é um objeto que permitirá converter em dólares pagamentos do tipo CBT (Cross Border Trade), que são pagamentos internacionais, feitos em moeda estrangeira.", - "es": "Básicamente, es un objeto que te permitirá convertir pagos del tipo CBT (Cross Border Trade) en dólares, que son pagos internacionales realizados en moneda extranjera." - } - }, - "collector_id": { - "type": "string", - "example": 2, - "description": { - "en": "It is the user who receives the money. Ex - A user (payer) buys a cell phone through the marketplace. The identifier of the store/seller to receive the payment is the collector_id.", - "pt": "É o usuário que recebe o dinheiro. Por exemplo - Um usuário (payer) compra um celular pelo marketplace. O identificador da loja/vendedor a receber o pagamento é o collector_id.", - "es": "Es el usuario quien recibe el dinero. Por ejemplo - Un usuario (payer) compra un celular a través del marketplace. El identificador de la tienda/vendedor para recibir el pago es el collector_id." - } - }, - "payer": { - "type": "object", - "description": { - "en": "Payer data - ID (identifying number), email address, identification (type and number of id)", - "pt": "Dados do pagador - ID (número de identificação), e-mail, identificação (tipo e número de documento)", - "es": "Datos del pagador - ID (número identificador), dirección de email, identificación (tipo y número de documento)" - }, - "properties": { - "id": { - "type": "string", - "example": 123, - "description": { - "en": "Payer identifier generated by Mercado Pago.", - "pt": "Identificador de pagador gerado pelo Mercado Pago.", - "es": "Identificador del Payer generado por Mercado Pago." - } - }, - "email": { - "type": "string", - "example": "test_user_80507629@testuser.com", - "description": { - "en": "Email associated with the payer. This value will only return a response when status=approved, status=refunded, or status=charged_back.", - "pt": "Email associado ao payer. Este valor só retornará uma resposta quando status=approved, status=refunded ou status=charged_back.", - "es": "Correo electrónico asociado al payer. Este valor sólo devolverá una respuesta cuando status=approved, status=refunded o status=charged_back." - } - }, - "identification": { - "type": "object", - "description": { - "en": "User's personal identification. As an example, in Brazil, we have the CPF (Individual Taxpayer Registry) and the CNPJ (National Corporate Taxpayer Registry), for companies. Other possible identification codes are CURP (Mexico), CUIL (Argentina). This object will only return a response when status=approved, status=refunded or status=charged_back.", - "pt": "Identificação pessoal do usuário. Como exemplo, a nível Brasil, temos o CPF (Cadastro de Pessoa Física) e o CNPJ (Cadastro Nacional de Pessoas Jurídicas), para empresas. Outros códigos de identificação possíveis são o CURP (México), CUIL (Argentina), Este objeto só retornará uma response quando status=approved, status=refunded or status=charged_back.", - "es": "Identificación personal del usuario. Como ejemplo, en Brasil, existe el CPF (Registro de Contribuyentes Individuales) y el CNPJ (Registro Nacional de Contribuyentes de Personas Jurídicas), para empresas. Otros posibles códigos de identificación son CURP (México), CUIL (Argentina). Este objeto sólo devolverá una respuesta cuando status=approved, status=refunded or status=charged_back." - }, - "properties": { - "type": { - "type": "string", - "example": "CPF", - "description": { - "en": "Refers to the type of identification. It can be one of the following types.", - "pt": "Refere-se ao tipo de identificação. Pode ser dos seguintes tipos.", - "es": "Se refiere al tipo de identificación. Puede ser de los siguientes tipos." - }, - "enum": [ - { - "title": "CPF", - "description": { - "en": "Individual Taxpayer Registration, Brazil.", - "es": "Individual Taxpayer Registration, Brazil.", - "pt": "Individual Taxpayer Registration, Brazil." - } - }, - { - "title": "CNPJ", - "description": { - "en": "National Register of Legal Entities, Brazil.", - "es": "National Register of Legal Entities, Brazil.", - "pt": "National Register of Legal Entities, Brazil." - } - }, - { - "title": "CUIT", - "description": { - "en": "Unique Tax Identification Code, Argentina.", - "es": "Unique Tax Identification Code, Argentina.", - "pt": "Unique Tax Identification Code, Argentina." - } - }, - { - "title": "CUIL", - "description": { - "en": "Unique Labor Identification Code, Argentina.", - "es": "Unique Labor Identification Code, Argentina.", - "pt": "Unique Labor Identification Code, Argentina." - } - }, - { - "title": "DNI", - "description": { - "en": "National Identity Document, Argentina.", - "es": "National Identity Document, Argentina.", - "pt": "National Identity Document, Argentina." - } - }, - { - "title": "CURP", - "description": { - "en": "Single Population Registration Code, Mexico.", - "es": "Single Population Registration Code, Mexico.", - "pt": "Single Population Registration Code, Mexico." - } - }, - { - "title": "RFC", - "description": { - "en": "Federal Registry of Taxpayers, Mexico.", - "es": "Federal Registry of Taxpayers, Mexico.", - "pt": "Federal Registry of Taxpayers, Mexico." - } - }, - { - "title": "CC", - "description": { - "en": "Citizenship Card, Colombia.", - "es": "Citizenship Card, Colombia.", - "pt": "Citizenship Card, Colombia." - } - }, - { - "title": "RUT", - "description": { - "en": "Single Tax List, Chile.", - "es": "Single Tax List, Chile.", - "pt": "Single Tax List, Chile." - } - }, - { - "title": "CI", - "description": { - "en": "Identity Card, Uruguay.", - "es": "Identity Card, Uruguay.", - "pt": "Identity Card, Uruguay." - } - } - ] - }, - "number": { - "type": "string", - "example": 19119119100, - "description": { - "en": "The number refers to the user’s identifier. If it is a CPF, for example, it will have 11 numbers.", - "pt": "O número se refere ao identificador do usuário em questão. Se for um CPF, por exemplo, terá 11 números.", - "es": "El número hace referencia al identificador del usuario en cuestión. Si es un CPF, por ejemplo, tendrá 11 números." - } - } - } - }, - "type": { - "$ref": "#/components/schemas/payer_type" - } - } - }, - "metadata": { - "type": "object", - "description": { - "en": "This is an optional key-value object where the customer can add additional information that needs to be recorded at checkout. Ex. - {\"payments_group_size\":1,\"payments_group_timestamp\":\"2022-11-18T15:01:44Z\",\"payments_group_uuid\":\"96cfd2a4-0b06-4dea-b25f-c5accb02ba10\"}.", - "pt": "Este é um objeto opcional do tipo chave-valor no qual o cliente pode adicionar informações adicionais que precisam ser registradas no pagamento. Por exemplo - {\"payments_group_size\":1,\"payments_group_timestamp\":\"2022-11-18T15:01:44Z\",\"payments_group_uuid\":\"96cfd2a4-0b06-4dea-b25f-c5accb02ba10\"}.", - "es": "Este es un objeto clave-valor opcional en el que el cliente puede agregar información adicional que debe registrarse al finalizar la compra. Por ejemplo - {\"payments_group_size\":1,\"payments_group_timestamp\":\"2022-11-18T15:01:44Z\",\"payments_group_uuid\":\"96cfd2a4-0b06-4dea-b25f-c5accb02ba10\"}" - } - }, - "additional_info": { - "type": "object", - "description": { - "en": "At Payments level, it's only data, and we only forward that information to other APIs like Risk, to perform scoring and prevent fraud, or to Tax, to determine them for international payments.", - "pt": "No nível de Pagamentos, são apenas dados e apenas encaminhamos essas informações para outras APIS, como Risco, para realizar pontuação e prevenir fraudes, para Impostos para determiná-los para pagamentos internacionais.", - "es": "En el nivel de Pagos, son solo datos y únicamente reenviamos esa información a otras API, como Riesgo, para realizar puntajes y prevenir fraudes, o a Impuestos, para determinarlos para pagos internacionales." - } - }, - "external_reference": { - "type": "string", - "format": "nullable", - "description": { - "en": "It is a payment’s external reference. It could be, for example, a hashcode from the Central Bank, working as a transaction origin identifier.", - "pt": "É uma referência externa do pagamento. Pode ser, por exemplo, um hashcode do Banco Central, funcionando como identificador de origem da transação.", - "es": "Es una referencia de pago externa. Podría ser, por ejemplo, un código hash del Banco Central, funcionando como identificador del origen de la transacción." - } - }, - "transaction_amount": { - "type": "number", - "example": 250, - "description": { - "en": "Product cost. Example - The sale of a product for R$100.00 will have a transactionAmount = 100.", - "pt": "Custo do produto. Exemplo - A venda de um produto por R$100,00 terá um transactionAmount = 100.", - "es": "Costo del producto. Ejemplo - La venta de un producto por R$ 100,00 tendrá un transactionAmount = 100." - } - }, - "transaction_amount_refunded": { - "type": "number", - "example": 0, - "description": { - "en": "Transaction amount refunded", - "pt": "Valor reembolsado da transação", - "es": "Monto reembolsado de transacción" - } - }, - "coupon_amount": { - "type": "number", - "example": 0, - "description": { - "en": "It is the value of the discount coupon. E.g. - BRL 14.50. The attribute's type is BigDecimal.", - "pt": "É o valor do cupom de desconto. Ex - R$14,50. O tipo do atributo é BigDecimal.", - "es": "Es el valor del cupón de descuento. Por ejemplo - BRL 14,50. El tipo del atributo es BigDecimal." - } - }, - "differential_pricing_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Attribute that commonly contains an agreement on how much the user will be charged (generally, this field is more relevant for Marketplace payments). Pricing and fees are calculated based on this identifier.", - "pt": "Atributo que comumente contém um acordo de quanto vai ser cobrado do usuário (geralmente, este campo é mais relevante para pagamentos do Marketplace). A precificação e as taxas são calculadas com base nesse identificador.", - "es": "Atributo que comúnmente contiene un acuerdo sobre cuánto se le cobrará al usuario (generalmente, este campo es más relevante para los pagos de Marketplace). Los precios y las tarifas se calculan en función de este identificador." - } - }, - "deduction_schema": { - "type": "string", - "format": "nullable", - "description": { - "en": "Pricing Scheme applied by Mercado Pago. It is a field that represents the information of a type of financing (installment). Ex - “ahora12” is a schema that indicates that the payment is divided into 12 installments. In addition, financing may have an additional cost, such cost being included in that same answer and pointed out to whom this applies (payer/collector).", - "pt": "Esquema de Pricing aplicado pelo Mercado Pago. É um campo que representa as informações de um tipo de financiamento (parcelamento). Por exemplo - “ahora12” é um schema que indica que o pagamento está parcelado em 12 vezes. Em adição, o financiamento pode ter um custo adicional, sendo tal custo incluído nessa mesma resposta e apontado a quem se aplica isso (payer/collector).", - "es": "Esquema de precios aplicado por Mercado Pago. Es un campo que representa la información de un tipo de financiamiento (cuota). Por ejemplo - “ahora12” es un esquema que indica que el pago se divide en 12 cuotas. Además, el financiamiento puede tener un costo adicional, siendo incluido dicho costo en esa misma respuesta y señalándose a quién aplica (payer/collector)." - } - }, - "transaction_details": { - "type": "object", - "properties": { - "net_received_amount": { - "type": "number", - "example": 250, - "description": { - "en": "Net amount received", - "pt": "Valor líquido recebido", - "es": "Monto neto recibido" - } - }, - "total_paid_amount": { - "type": "number", - "example": 250, - "description": { - "en": "Total amount charged to the payer", - "pt": "Valor total cobrado ao pagador", - "es": "Monto total cobrado al payer" - } - }, - "overpaid_amount": { - "type": "number", - "example": 0, - "description": { - "en": "Overpaid amount", - "pt": "Valor pago a mais", - "es": "Monto pagado en exceso" - } - }, - "external_resource_url": { - "type": "string", - "format": "nullable", - "description": { - "en": "External resource url", - "pt": "URL de recurso externo", - "es": "URL de recurso externo" - } - }, - "installment_amount": { - "type": "number", - "example": 250, - "description": { - "en": "Amount of the chosen financing fee.", - "pt": "Valor da taxa de financiamento escolhida.", - "es": "Monto de la cuota de financiación elegida." - } - }, - "financial_institution": { - "type": "string", - "format": "nullable", - "description": { - "en": "Financial institution", - "pt": "Instituição financeira", - "es": "Institución financiera" - } - }, - "payment_method_reference_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Unique identifier of the payment method", - "pt": "Identificador único do meio de pagamento", - "es": "Identificador único del método de pago" - } - }, - "payable_deferral_period": { - "type": "string", - "format": "nullable", - "description": { - "en": "Payment deferral period", - "pt": "Período de diferimento de pagamento", - "es": "Período de diferimiento del pago" - } - }, - "acquirer_reference": { - "type": "string", - "format": "nullable", - "description": { - "en": "Acquirer reference", - "pt": "Referência do adquirente", - "es": "Referencia de adquirente" - } - } - }, - "description": { - "en": "Transaction details", - "pt": "Detalhes da transação", - "es": "Detalles de la transacción" - } - }, - "captured": { - "type": "boolean", - "description": { - "en": "Indicates if the payment amount was captured or is pending capture.", - "pt": "Indica se o valor do pagamento foi capturado ou está com captura pendente.", - "es": "Indica si el monto del pago fue capturado o se encuentra pendiente de captura." - } - }, - "binary_mode": { - "type": "boolean", - "description": { - "en": "When set to TRUE, payments can only be approved or rejected. Otherwise they can also result in_process.", - "pt": "Quando definido como TRUE, os pagamentos só podem ser aprovados ou rejeitados. Caso contrário, eles também podem resultar in_process.", - "es": "Cuando se configura como TRUE los pagos sólo pueden resultar aprobados o rechazados. Caso contrario también pueden resultar in_process." - } - }, - "call_for_authorize_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Identifier that is provided to the issuing bank so that payments can be authorized.", - "pt": "Identificador que é fornecido ao banco emissor para que os pagamentos possam ser autorizados.", - "es": "Identificador que se proporciona al banco emisor para que se pueda autorizar los pagos." - } - }, - "statement_descriptor": { - "type": "string", - "format": "nullable", - "description": { - "en": "Description that the payment will appear with in the card statement (eg MERCADOPAGO)", - "pt": "Descrição com a qual o pagamento aparecerá no resumo do cartão (ex. MERCADOPAGO)", - "es": "Descripción con la que aparecerá el pago en el resumen de tarjeta (ej. MERCADOPAGO)" - } - }, - "installments": { - "type": "number", - "example": 1, - "description": { - "en": "Number of installments selected.", - "pt": "Número de parcelas selecionado", - "es": "Cantidad seleccionada de cuotas" - } - }, - "card": { - "type": "object", - "description": { - "en": "Card ID.", - "pt": "Identificador de cartão", - "es": "Identificador de tarjeta" - } - }, - "notification_url": { - "type": "string", - "format": "nullable", - "description": { - "en": "Notifications URL available to receive notifications of events related to Payment. The maximum number of characters allowed for submission in this parameter is 248 characters.", - "pt": "URL de notificações disponível para receber notificações de eventos relacionados ao Pagamento. A quantidade máxima de caracteres permitidos para envio neste parâmetro é de 248 caracteres.", - "es": "URL de Notificaciones disponibilizada para recibir las notificaciones de los eventos relacionados al Pago. La cantidad máxima de caracteres permitidos para enviar en este parámetro es de 248 caracteres." - } - }, - "processing_mode": { - "type": "string", - "format": "nullable", - "description": { - "en": "Processing mode. There are two types.", - "pt": "Modo de processamento do pagamento. Existem dois tipos.", - "es": "Método de procesamiento de pagos. Hay dos tipos." - }, - "enum": [ - { - "title": "Aggregator", - "description": { - "en": "The merchant will use the Mercado Pago merchant codes and take advantage of the financial advantages we offer.", - "es": "The merchant will use the Mercado Pago merchant codes and take advantage of the financial advantages we offer.", - "pt": "The merchant will use the Mercado Pago merchant codes and take advantage of the financial advantages we offer." - } - }, - { - "title": "Gateway", - "description": { - "en": "For the merchant, it is necessary to have his own merchant code for online sales and to have an agreement with each of the desired payment methods.", - "es": "For the merchant, it is necessary to have his own merchant code for online sales and to have an agreement with each of the desired payment methods.", - "pt": "For the merchant, it is necessary to have his own merchant code for online sales and to have an agreement with each of the desired payment methods." - } - } - ] - }, - "merchant_account_id": { - "type": "string", - "format": "nullable", - "description": { - "en": "Merchant store code identifier. Applies only to the gateway model (since the delivery of money to the merchant does not go through the Mercado Pago system).", - "pt": "Identificador do código da loja comerciante. Aplica-se somente ao modelo gateway (porque a entrega de dinheiro ao comerciante não passa pelo sistema do Mercado Pago).", - "es": "Identificador del código de la tienda del merchant. Aplica solo para el modelo de gateway (ya que la entrega de dinero al comercio no pasa por el sistema de Mercado Pago)." - } - }, - "acquirer": { - "type": "string", - "format": "nullable", - "description": { - "en": "Acquirer.", - "pt": "Adquirente.", - "es": "Adquirente." - } - }, - "merchant_number": { - "type": "string", - "format": "nullable", - "description": { - "en": "Merchant number (Applies to gateway model).", - "pt": "Número do estabelecimento (aplica-se ao modelo de gateway).", - "es": "Número de comercio (Aplica para modelo gateway)." - } - } - } - }, - "description": { - "en": "Search results", - "pt": "Resultados da pesquisa", - "es": "Resultados de la búsqueda" - } - } - } - } - } - } - } - }, - "400": { - "description": { - "en": "Error", - "pt": "Erro", - "es": "Error" - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "errorKey": { - "type": "string", - "enum": [ - { - "title": "1", - "description": { - "en": "Params Error.", - "es": "Params Error.", - "pt": "Params Error." - } - }, - { - "title": "3", - "description": { - "en": "Token must be for test.", - "es": "Token must be for test.", - "pt": "Token must be for test." - } - }, - { - "title": "5", - "description": { - "en": "Must provide your access_token to proceed.", - "es": "Must provide your access_token to proceed.", - "pt": "Must provide your access_token to proceed." - } - }, - { - "title": "1000", - "description": { - "en": "Number of rows exceeded the limits.", - "es": "Number of rows exceeded the limits.", - "pt": "Number of rows exceeded the limits." - } - }, - { - "title": "1001", - "description": { - "en": "Date format must be yyyy-MM-dd'T'HH:mm:ss.SSSZ.", - "es": "Date format must be yyyy-MM-dd'T'HH:mm:ss.SSSZ.", - "pt": "Date format must be yyyy-MM-dd'T'HH:mm:ss.SSSZ." - } - }, - { - "title": "1003", - "description": { - "en": "Invalid sort value.", - "es": "Invalid sort value.", - "pt": "Invalid sort value." - } - }, - { - "title": "1004", - "description": { - "en": "Invalid criteria value.", - "es": "Invalid criteria value.", - "pt": "Invalid criteria value." - } - }, - { - "title": "2001", - "description": { - "en": "Already posted the same request in the last minute.", - "es": "Already posted the same request in the last minute.", - "pt": "Already posted the same request in the last minute." - } - }, - { - "title": "2002", - "description": { - "en": "Customer not found.", - "es": "Customer not found.", - "pt": "Customer not found." - } - }, - { - "title": "2004", - "description": { - "en": "POST to Gateway Transactions API fail.", - "es": "POST to Gateway Transactions API fail.", - "pt": "POST to Gateway Transactions API fail." - } - }, - { - "title": "2006", - "description": { - "en": "Card Token not found.", - "es": "Card Token not found.", - "pt": "Card Token not found." - } - }, - { - "title": "2007", - "description": { - "en": "Connection to Card Token API fail.", - "es": "Connection to Card Token API fail.", - "pt": "Connection to Card Token API fail." - } - }, - { - "title": "2009", - "description": { - "en": "Card token issuer can't be null.", - "es": "Card token issuer can't be null.", - "pt": "Card token issuer can't be null." - } - }, - { - "title": "3000", - "description": { - "en": "You must provide your cardholder_name with your card data.", - "es": "You must provide your cardholder_name with your card data.", - "pt": "You must provide your cardholder_name with your card data." - } - }, - { - "title": "3001", - "description": { - "en": "You must provide your cardissuer_id with your card data.", - "es": "You must provide your cardissuer_id with your card data.", - "pt": "You must provide your cardissuer_id with your card data." - } - }, - { - "title": "3003", - "description": { - "en": "Invalid card_token_id.", - "es": "Invalid card_token_id.", - "pt": "Invalid card_token_id." - } - }, - { - "title": "3004", - "description": { - "en": "Invalid parameter site_id.", - "es": "Invalid parameter site_id.", - "pt": "Invalid parameter site_id." - } - }, - { - "title": "3005", - "description": { - "en": "Not valid action, the resource is in a state that does not allow this operation. For more information see the state that has the resource.", - "es": "Not valid action, the resource is in a state that does not allow this operation. For more information see the state that has the resource.", - "pt": "Not valid action, the resource is in a state that does not allow this operation. For more information see the state that has the resource." - } - }, - { - "title": "3006", - "description": { - "en": "Invalid parameter cardtoken_id.", - "es": "Invalid parameter cardtoken_id.", - "pt": "Invalid parameter cardtoken_id." - } - }, - { - "title": "3007", - "description": { - "en": "The parameter client_id can not be null or empty.", - "es": "The parameter client_id can not be null or empty.", - "pt": "The parameter client_id can not be null or empty." - } - }, - { - "title": "3008", - "description": { - "en": "Not found Cardtoken.", - "es": "Not found Cardtoken.", - "pt": "Not found Cardtoken." - } - }, - { - "title": "3009", - "description": { - "en": "unauthorized client_id.", - "es": "unauthorized client_id.", - "pt": "unauthorized client_id." - } - }, - { - "title": "3010", - "description": { - "en": "Not found card on whitelist.", - "es": "Not found card on whitelist.", - "pt": "Not found card on whitelist." - } - }, - { - "title": "3011", - "description": { - "en": "Not found payment_method.", - "es": "Not found payment_method.", - "pt": "Not found payment_method." - } - }, - { - "title": "3012", - "description": { - "en": "Invalid parameter security_code_length.", - "es": "Invalid parameter security_code_length.", - "pt": "Invalid parameter security_code_length." - } - }, - { - "title": "3013", - "description": { - "en": "The parameter security_code is a required field can not be null or empty.", - "es": "The parameter security_code is a required field can not be null or empty.", - "pt": "The parameter security_code is a required field can not be null or empty." - } - }, - { - "title": "3014", - "description": { - "en": "Invalid parameter payment_method.", - "es": "Invalid parameter payment_method.", - "pt": "Invalid parameter payment_method." - } - }, - { - "title": "3015", - "description": { - "en": "Invalid parameter card_number_length.", - "es": "Invalid parameter card_number_length.", - "pt": "Invalid parameter card_number_length." - } - }, - { - "title": "3016", - "description": { - "en": "Invalid parameter card_number.", - "es": "Invalid parameter card_number.", - "pt": "Invalid parameter card_number." - } - }, - { - "title": "3017", - "description": { - "en": "The parameter card_number_id can not be null or empty.", - "es": "The parameter card_number_id can not be null or empty.", - "pt": "The parameter card_number_id can not be null or empty." - } - }, - { - "title": "3018", - "description": { - "en": "The parameter expiration_month can not be null or empty.", - "es": "The parameter expiration_month can not be null or empty.", - "pt": "The parameter expiration_month can not be null or empty." - } - }, - { - "title": "3019", - "description": { - "en": "The parameter expiration_year can not be null or empty.", - "es": "The parameter expiration_year can not be null or empty.", - "pt": "The parameter expiration_year can not be null or empty." - } - }, - { - "title": "3020", - "description": { - "en": "The parameter cardholder.name can not be null or empty.", - "es": "The parameter cardholder.name can not be null or empty.", - "pt": "The parameter cardholder.name can not be null or empty." - } - }, - { - "title": "3021", - "description": { - "en": "The parameter cardholder.document.number can not be null or empty.", - "es": "The parameter cardholder.document.number can not be null or empty.", - "pt": "The parameter cardholder.document.number can not be null or empty." - } - }, - { - "title": "3022", - "description": { - "en": "The parameter cardholder.document.type can not be null or empty.", - "es": "The parameter cardholder.document.type can not be null or empty.", - "pt": "The parameter cardholder.document.type can not be null or empty." - } - }, - { - "title": "3023", - "description": { - "en": "The parameter cardholder.document.subtype can not be null or empty.", - "es": "The parameter cardholder.document.subtype can not be null or empty.", - "pt": "The parameter cardholder.document.subtype can not be null or empty." - } - }, - { - "title": "3024", - "description": { - "en": "Not valid action - partial refund unsupported for this transaction.", - "es": "Not valid action - partial refund unsupported for this transaction.", - "pt": "Not valid action - partial refund unsupported for this transaction." - } - }, - { - "title": "3025", - "description": { - "en": "Invalid Auth Code.", - "es": "Invalid Auth Code.", - "pt": "Invalid Auth Code." - } - }, - { - "title": "3026", - "description": { - "en": "Invalid card_id for this payment_method_id.", - "es": "Invalid card_id for this payment_method_id.", - "pt": "Invalid card_id for this payment_method_id." - } - }, - { - "title": "3027", - "description": { - "en": "Invalid payment_type_id.", - "es": "Invalid payment_type_id.", - "pt": "Invalid payment_type_id." - } - }, - { - "title": "3028", - "description": { - "en": "Invalid payment_method_id.", - "es": "Invalid payment_method_id.", - "pt": "Invalid payment_method_id." - } - }, - { - "title": "3029", - "description": { - "en": "Invalid card expiration month.", - "es": "Invalid card expiration month.", - "pt": "Invalid card expiration month." - } - }, - { - "title": "3030", - "description": { - "en": "Invalid card expiration year.", - "es": "Invalid card expiration year.", - "pt": "Invalid card expiration year." - } - }, - { - "title": "9062", - "description": { - "en": "Invalid range interval - Must be less than 365 days.", - "es": "Invalid range interval - Must be less than 365 days.", - "pt": "Invalid range interval - Must be less than 365 days." - } - } - ] - } - } - } - } - } - }, - "403": { - "description": { - "en": "Error", - "pt": "Erro", - "es": "Error" - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "errorKey": { - "type": "string", - "enum": [ - { - "title": "4", - "description": { - "en": "The caller is not authorized to access this resource.", - "es": "The caller is not authorized to access this resource.", - "pt": "The caller is not authorized to access this resource." - } - }, - { - "title": "3002", - "description": { - "en": "The caller is not authorized to perform this action.", - "es": "The caller is not authorized to perform this action.", - "pt": "The caller is not authorized to perform this action." - } - } - ] - } - } - } - } - } - }, - "404": { - "description": { - "en": "Error", - "pt": "Erro", - "es": "Error" - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "errorKey": { - "type": "string", - "enum": [ - { - "title": "2000", - "description": { - "en": "Payment not found.", - "es": "Payment not found.", - "pt": "Payment not found." - } - } - ] - } - } - } - } - } - } - }, - "title": { - "en": "Search payments", - "pt": "Buscar em pagamentos", - "es": "Buscar en pagos" - } - } - } - }, - "components": { - "schemas": { - "operation_type": { - "type": "string", - "description": { - "en": "It is the type of payment. The available types are as follows.", - "pt": "É o tipo de pagamento. Os tipos disponíveis são os seguintes.", - "es": "Es el tipo de pago. Los tipos disponibles son los siguientes." - }, - "enum": [ - { - "title": "investment", - "description": { - "en": "When money is put into an investment, such as CDB, in the Mercado Pago application;", - "es": "When money is put into an investment, such as CDB, in the Mercado Pago application;", - "pt": "When money is put into an investment, such as CDB, in the Mercado Pago application;" - } - }, - { - "title": "regular_payment", - "description": { - "en": "Typification by default of a purchase being paid using Mercado Pago.", - "es": "Typification by default of a purchase being paid using Mercado Pago.", - "pt": "Typification by default of a purchase being paid using Mercado Pago." - } - }, - { - "title": "money_transfer", - "description": { - "en": "Funds transfer between two users.", - "es": "Funds transfer between two users.", - "pt": "Funds transfer between two users." - } - }, - { - "title": "recurring_payment", - "description": { - "en": "Automatic recurring payment due to an active user subscription.", - "es": "Automatic recurring payment due to an active user subscription.", - "pt": "Automatic recurring payment due to an active user subscription." - } - }, - { - "title": "account_fund", - "description": { - "en": "Money income in the user's account.", - "es": "Money income in the user's account.", - "pt": "Money income in the user's account." - } - }, - { - "title": "payment_addition", - "description": { - "en": "Addition of money to an existing payment, made through a Mercado Pago account.", - "es": "Addition of money to an existing payment, made through a Mercado Pago account.", - "pt": "Addition of money to an existing payment, made through a Mercado Pago account." - } - }, - { - "title": "cellphone_recharge", - "description": { - "en": "Recharge of a user's cellphone account.", - "es": "Recharge of a user's cellphone account.", - "pt": "Recharge of a user's cellphone account." - } - }, - { - "title": "pos_payment", - "description": { - "en": "Payment done through a Point of Sale.", - "es": "Payment done through a Point of Sale.", - "pt": "Payment done through a Point of Sale." - } - }, - { - "title": "money_exchange", - "description": { - "en": "Payment to exchange currency for a user.", - "es": "Payment to exchange currency for a user.", - "pt": "Payment to exchange currency for a user." - } - } - ] - }, - "entity_type": { - "type": "string", - "description": { - "en": "Entity type of the payer (only for bank transfers).", - "pt": "Tipo de entidade do pagador (apenas para transferências bancárias)", - "es": "Tipo de entidad del pagador (sólo para transferencias bancarias)" - }, - "example": "individual", - "enum": [ - { - "title": "individual", - "description": { - "en": "Payer is individual.", - "es": "Payer is individual.", - "pt": "Payer is individual." - } - }, - { - "title": "association", - "description": { - "en": "Payer is an association.", - "es": "Payer is an association.", - "pt": "Payer is an association." - } - } - ] - }, - "payer_type": { - "type": "string", - "description": { - "en": "Identification type of the associated payer (mandatory if the Payer is a Customer).", - "pt": "Tipo de identificação do pagador associado (se necessário o pagador é um cliente)", - "es": "Tipo de identificación del pagador asociado (requerido si el pagador es un cliente)" - }, - "example": "customer", - "enum": [ - { - "title": "customer", - "description": { - "en": "Payer is a Customer and belongs to the collector.", - "es": "Payer is a Customer and belongs to the collector.", - "pt": "Payer is a Customer and belongs to the collector." - } - }, - { - "title": "guest", - "description": { - "en": "The payer doesn't have an account.", - "es": "The payer doesn't have an account.", - "pt": "The payer doesn't have an account." - } - } - ] - }, - "currency_id": { - "type": "string", - "description": { - "en": "Identifier of the currency used in the payment. We currently have the following options.", - "pt": "Identificador da moeda utilizada no pagamento. Atualmente, possuímos as opções a seguir.", - "es": "Identificador de la moneda utilizada en el pago. Actualmente tenemos las siguientes opciones." - }, - "example": "BRL", - "enum": [ - { - "title": "ARS", - "description": { - "en": "Argentine peso.", - "es": "Argentine peso.", - "pt": "Argentine peso." - } - }, - { - "title": "BRL", - "description": { - "en": "Brazilian real.", - "es": "Brazilian real.", - "pt": "Brazilian real." - } - }, - { - "title": "CLP", - "description": { - "en": "Chilean peso.", - "es": "Chilean peso.", - "pt": "Chilean peso." - } - }, - { - "title": "MXN", - "description": { - "en": "Mexican peso.", - "es": "Mexican peso.", - "pt": "Mexican peso." - } - }, - { - "title": "COP", - "description": { - "en": "Colombian peso.", - "es": "Colombian peso.", - "pt": "Colombian peso." - } - }, - { - "title": "PEN", - "description": { - "en": "Peruvian sol.", - "es": "Peruvian sol.", - "pt": "Peruvian sol." - } - }, - { - "title": "UYU", - "description": { - "en": "Uruguayan peso.", - "es": "Uruguayan peso.", - "pt": "Uruguayan peso." - } - }, - { - "title": "VES", - "description": { - "en": "Venezuelan Bolivar.", - "es": "Venezuelan Bolivar.", - "pt": "Venezuelan Bolivar." - } - }, - { - "title": "MCN", - "description": { - "en": "Mercado Coin (internal cryptocurrency of Mercado Livre and Mercado Pago).", - "es": "Mercado Coin (internal cryptocurrency of Mercado Livre and Mercado Pago).", - "pt": "Mercado Coin (internal cryptocurrency of Mercado Livre and Mercado Pago)." - } - }, - { - "title": "BTC", - "description": { - "en": "Bitcoin.", - "es": "Bitcoin.", - "pt": "Bitcoin." - } - }, - { - "title": "USD", - "description": { - "en": "US dollar.", - "es": "US dollar.", - "pt": "US dollar." - } - }, - { - "title": "USDP", - "description": { - "en": "Pax Dollar (stable cryptocurrency pegged to the US dollar).", - "es": "Pax Dollar (stable cryptocurrency pegged to the US dollar).", - "pt": "Pax Dollar (stable cryptocurrency pegged to the US dollar)." - } - }, - { - "title": "DCE", - "description": { - "en": "Dollar Currency Equivalent.", - "es": "Dollar Currency Equivalent.", - "pt": "Dollar Currency Equivalent." - } - }, - { - "title": "ETH", - "description": { - "en": "Ethereum.", - "es": "Ethereum.", - "pt": "Ethereum." - } - }, - { - "title": "FDI", - "description": { - "en": "Investment Funds.", - "es": "Investment Funds.", - "pt": "Investment Funds." - } - }, - { - "title": "CDB", - "description": { - "en": "Bank deposit certificate", - "es": "Bank deposit certificate", - "pt": "Bank deposit certificate" - } - } - ] - }, - "fee_details_type": { - "type": "string", - "description": { - "en": "Fee detail.", - "pt": "Detalhe de comissão", - "es": "Detalle de comisión" - }, - "example": "coupon_fee", - "enum": [ - { - "title": "mercadopago_fee", - "description": { - "en": "Cost for using Mercado Pago.", - "es": "Cost for using Mercado Pago.", - "pt": "Cost for using Mercado Pago." - } - }, - { - "title": "coupon_fee", - "description": { - "en": "Discount given by a coupon.", - "es": "Discount given by a coupon.", - "pt": "Discount given by a coupon." - } - }, - { - "title": "financing_fee", - "description": { - "en": "Cost of financing.", - "es": "Cost of financing.", - "pt": "Cost of financing." - } - }, - { - "title": "shipping_fee", - "description": { - "en": "Shipping cost.", - "es": "Shipping cost.", - "pt": "Shipping cost." - } - }, - { - "title": "application_fee", - "description": { - "en": "Marketplace comision for the service.", - "es": "Marketplace comision for the service.", - "pt": "Marketplace comision for the service." - } - }, - { - "title": "discount_fee", - "description": { - "en": "Discount given by the seller through cost absorption.", - "es": "Discount given by the seller through cost absorption.", - "pt": "Discount given by the seller through cost absorption." - } - } - ] - }, - "fee_payer": { - "type": "string", - "description": { - "en": "Who absorbs the cost.", - "pt": "Quem absorve o custo da comissão", - "es": "Indica quién absorve el costo de la comisión" - }, - "example": "payer", - "enum": [ - { - "title": "collector", - "description": { - "en": "The seller absorbs the cost.", - "es": "The seller absorbs the cost.", - "pt": "The seller absorbs the cost." - } - }, - { - "title": "payer", - "description": { - "en": "The buyer absorbs the cost.", - "es": "The buyer absorbs the cost.", - "pt": "The buyer absorbs the cost." - } - } - ] - }, - "status": { - "type": "string", - "example": "approved", - "description": { - "en": "It is the payment’s current state. It can be of the following types.", - "pt": "É o estado atual do pagamento. Podem ser ser dos seguintes tipos.", - "es": "Es el estado actual del pago. Puede ser de los siguientes tipos." - }, - "enum": [ - { - "title": "pending", - "description": { - "en": "The user has not concluded the payment process (for example, by generating a payment by boleto, it will be concluded at the moment in which the user makes the payment in the selected place).", - "es": "The user has not concluded the payment process (for example, by generating a payment by boleto, it will be concluded at the moment in which the user makes the payment in the selected place).", - "pt": "The user has not concluded the payment process (for example, by generating a payment by boleto, it will be concluded at the moment in which the user makes the payment in the selected place)." - } - }, - { - "title": "approved", - "description": { - "en": "The payment has been approved and credited.", - "es": "The payment has been approved and credited.", - "pt": "The payment has been approved and credited." - } - }, - { - "title": "authorized", - "description": { - "en": "The payment has been authorized but not captured yet.", - "es": "The payment has been authorized but not captured yet.", - "pt": "The payment has been authorized but not captured yet." - } - }, - { - "title": "in_process", - "description": { - "en": "The payment is in analysis.", - "es": "The payment is in analysis.", - "pt": "The payment is in analysis." - } - }, - { - "title": "in_mediation", - "description": { - "en": "The user started a dispute.", - "es": "The user started a dispute.", - "pt": "The user started a dispute." - } - }, - { - "title": "rejected", - "description": { - "en": "The payment was rejected (the user can try to pay again).", - "es": "The payment was rejected (the user can try to pay again).", - "pt": "The payment was rejected (the user can try to pay again)." - } - }, - { - "title": "cancelled", - "description": { - "en": "Either the payment was canceled by one of the parties or expired.", - "es": "Either the payment was canceled by one of the parties or expired.", - "pt": "Either the payment was canceled by one of the parties or expired." - } - }, - { - "title": "refunded", - "description": { - "en": "The payment was returned to the user.", - "es": "The payment was returned to the user.", - "pt": "The payment was returned to the user." - } - }, - { - "title": "charged_back", - "description": { - "en": "A chargeback was placed on the buyer's credit card.", - "es": "A chargeback was placed on the buyer's credit card.", - "pt": "A chargeback was placed on the buyer's credit card." - } - } - ] - }, - "payment_type_id": { - "type": "string", - "description": { - "en": "It is the type of payment method (card, bank transfer, boleto bancário, ATM, etc.). They can be of the following types.", - "pt": "É o tipo da forma de pagamento (cartão, transferência bancária, boleto, caixa eletrônico, etc). Podem ser dos seguintes tipos.", - "es": "Es el tipo de método de pago (tarjeta, transferencia bancaria, ticket, ATM, etc.). Puede ser de los siguientes tipos." - }, - "example": "credit_card", - "enum": [ - { - "title": "account_money", - "description": { - "en": "Money in the Mercado Pago account.", - "es": "Money in the Mercado Pago account.", - "pt": "Money in the Mercado Pago account." - } - }, - { - "title": "ticket", - "description": { - "en": "Boletos, Caixa Electronica Payment, PayCash, Efecty, Oxxo, etc.", - "es": "Boletos, Caixa Electronica Payment, PayCash, Efecty, Oxxo, etc.", - "pt": "Boletos, Caixa Electronica Payment, PayCash, Efecty, Oxxo, etc." - } - }, - { - "title": "bank_transfer", - "description": { - "en": "Pix and PSE (Pagos Seguros en Línea).", - "es": "Pix and PSE (Pagos Seguros en Línea).", - "pt": "Pix and PSE (Pagos Seguros en Línea)." - } - }, - { - "title": "atm", - "description": { - "en": "ATM payment (widely used in Mexico through BBVA Bancomer).", - "es": "ATM payment (widely used in Mexico through BBVA Bancomer).", - "pt": "ATM payment (widely used in Mexico through BBVA Bancomer)." - } - }, - { - "title": "credit_card", - "description": { - "en": "Payment by credit card.", - "es": "Payment by credit card.", - "pt": "Payment by credit card." - } - }, - { - "title": "debit_card", - "description": { - "en": "Payment by debit card.", - "es": "Payment by debit card.", - "pt": "Payment by debit card." - } - }, - { - "title": "prepaid_card", - "description": { - "en": "Payment by prepaid card.", - "es": "Payment by prepaid card.", - "pt": "Payment by prepaid card." - } - }, - { - "title": "digital_currency", - "description": { - "en": "Purchases with Installments without card.", - "es": "Purchases with Pagos sin Tarjeta.", - "pt": "Purchases with Linha de Crédito." - } - }, - { - "title": "digital_wallet", - "description": { - "en": "Paypal.", - "es": "Paypal.", - "pt": "Paypal." - } - }, - { - "title": "voucher_card", - "description": { - "en": "Alelo benefits, Sodexo.", - "es": "Alelo benefits, Sodexo.", - "pt": "Alelo benefits, Sodexo." - } - }, - { - "title": "crypto_transfer", - "description": { - "en": "Payment with cryptocurrencies such as Ethereum and Bitcoin.", - "es": "Payment with cryptocurrencies such as Ethereum and Bitcoin.", - "pt": "Payment with cryptocurrencies such as Ethereum and Bitcoin." - } - } - ] - }, - "refund_source_type": { - "type": "string", - "description": { - "en": "Type of user who issued the refund.", - "pt": "Tipo de usuário que fez o reembolso", - "es": "Tipo de usuario que hizo el reembolso" - }, - "example": "collector", - "enum": [ - { - "title": "collector", - "description": { - "en": "The collector issued the refund.", - "es": "The collector issued the refund.", - "pt": "The collector issued the refund." - } - }, - { - "title": "operator", - "description": { - "en": "The refund was made by an account's operator.", - "es": "The refund was made by an account's operator.", - "pt": "The refund was made by an account's operator." - } - }, - { - "title": "admin", - "description": { - "en": "The refund was made by a Mercado Pago administrator.", - "es": "The refund was made by a Mercado Pago administrator.", - "pt": "The refund was made by a Mercado Pago administrator." - } - }, - { - "title": "bpp", - "description": { - "en": "The refund was made by the Mercado Pago's Buyer Protection Program", - "es": "The refund was made by the Mercado Pago's Buyer Protection Program", - "pt": "The refund was made by the Mercado Pago's Buyer Protection Program" - } - } - ] - }, - "barcode_type": { - "type": "String", - "description": { - "en": "Encoding type.", - "pt": "Tipo de encoding", - "es": "Tipo de encoding" - }, - "enum": [ - { - "title": "UCC/EAN 128", - "description": { - "en": "Encodes data using the Code 128 symbology.", - "es": "Encodes data using the Code 128 symbology.", - "pt": "Encodes data using the Code 128 symbology." - } - }, - { - "title": "Code128C", - "description": { - "en": "High-density alphanumeric code.", - "es": "High-density alphanumeric code.", - "pt": "High-density alphanumeric code." - } - }, - { - "title": "Code39", - "description": { - "en": "Media density code.", - "es": "Media density code.", - "pt": "Media density code." - } - } - ] - } - } - } -} \ No newline at end of file From 294c4819ce75759d9bb580ea9b5af512c04cd634 Mon Sep 17 00:00:00 2001 From: Heitor Galdino Date: Fri, 31 Jan 2025 18:10:24 -0300 Subject: [PATCH 08/20] ajustes revisao --- guides/checkout-bricks/common-initialization.en.md | 4 ++-- guides/checkout-bricks/common-initialization.es.md | 4 ++-- guides/checkout-bricks/common-initialization.pt.md | 4 ++-- guides/checkout-bricks/github-project.en.md | 3 +++ guides/checkout-bricks/github-project.es.md | 3 +++ guides/checkout-bricks/github-project.pt.md | 3 +++ guides/checkout-bricks/payment-brick/customers-cards.en.md | 2 +- guides/checkout-bricks/payment-brick/customers-cards.es.md | 2 +- guides/checkout-bricks/payment-brick/customers-cards.pt.md | 2 +- guides/checkout-bricks/wallet-brick/change-appearance.en.md | 4 ++-- guides/checkout-bricks/wallet-brick/change-appearance.es.md | 4 ++-- guides/checkout-bricks/wallet-brick/change-appearance.pt.md | 4 ++-- 12 files changed, 24 insertions(+), 15 deletions(-) diff --git a/guides/checkout-bricks/common-initialization.en.md b/guides/checkout-bricks/common-initialization.en.md index bc3dd5f849..b9aa88e806 100644 --- a/guides/checkout-bricks/common-initialization.en.md +++ b/guides/checkout-bricks/common-initialization.en.md @@ -17,7 +17,7 @@ Use our official libraries to access Mercado Pago's features safely from your fr ``` ```bash -npm install @mercadopago/sdk-react @0.0.23 +npm install @mercadopago/sdk-react ``` ]]] @@ -29,7 +29,7 @@ npm install @mercadopago/sdk-react @0.0.23 ``` ```bash -npm install @mercadopago/sdk-react +npm install @mercadopago/sdk-react @0.0.23 ``` ]]] diff --git a/guides/checkout-bricks/common-initialization.es.md b/guides/checkout-bricks/common-initialization.es.md index 5f7e6f8843..938757f925 100644 --- a/guides/checkout-bricks/common-initialization.es.md +++ b/guides/checkout-bricks/common-initialization.es.md @@ -17,7 +17,7 @@ Utiliza nuestras bibliotecas oficiales para acceder a las funcionalidades de Mer ``` ```bash -npm install @mercadopago/sdk-react @0.0.23 +npm install @mercadopago/sdk-react ``` ]]] @@ -29,7 +29,7 @@ npm install @mercadopago/sdk-react @0.0.23 ``` ```bash -npm install @mercadopago/sdk-react +npm install @mercadopago/sdk-react @0.0.23 ``` ]]] diff --git a/guides/checkout-bricks/common-initialization.pt.md b/guides/checkout-bricks/common-initialization.pt.md index b909f0b52c..27d8780ee0 100644 --- a/guides/checkout-bricks/common-initialization.pt.md +++ b/guides/checkout-bricks/common-initialization.pt.md @@ -17,7 +17,7 @@ Utilize as nossas bibliotecas oficiais para acessar as funcionalidades do Mercad ``` ```bash -npm install @mercadopago/sdk-react @0.0.23 +npm install @mercadopago/sdk-react ``` ]]] @@ -29,7 +29,7 @@ npm install @mercadopago/sdk-react @0.0.23 ``` ```bash -npm install @mercadopago/sdk-react +npm install @mercadopago/sdk-react @0.0.23 ``` ]]] diff --git a/guides/checkout-bricks/github-project.en.md b/guides/checkout-bricks/github-project.en.md index fe98eb9169..b461ab1614 100644 --- a/guides/checkout-bricks/github-project.en.md +++ b/guides/checkout-bricks/github-project.en.md @@ -5,6 +5,7 @@ Click on the links below to access the projects available in the **GitHub** repo ----[mlm]---- * [Functional project - Payment Brick](https://github.com/mercadopago/payment-bricks-sample-node) * [Functional project - Payment Brick with confirmation step](https://github.com/mercadopago/payment-bricks-review-sample-node) +* [Functional project - Wallet Brick](https://github.com/mercadopago/wallet-brand-bricks-sample) * [Functional project - Card Payment Brick](https://github.com/mercadopago/card-payment-bricks-sample) * [Technical documentation - SDK MercadoPago.js V2](https://github.com/mercadopago/sdk-js) @@ -12,6 +13,7 @@ Click on the links below to access the projects available in the **GitHub** repo ----[mla]---- * [Functional project - Payment Brick](https://github.com/mercadopago/payment-bricks-sample-node) * [Functional project - Payment Brick with confirmation step](https://github.com/mercadopago/payment-bricks-review-sample-node) +* [Functional project - Wallet Brick](https://github.com/mercadopago/wallet-brand-bricks-sample) * [Functional project - Card Payment Brick](https://github.com/mercadopago/card-payment-bricks-sample) * [Functional project - Brand Brick](https://github.com/mercadopago/wallet-brand-bricks-sample) * [Technical documentation - SDK MercadoPago.js V2](https://github.com/mercadopago/sdk-js) @@ -19,6 +21,7 @@ Click on the links below to access the projects available in the **GitHub** repo ------------ ----[mlb, mpe, mco, mlu, mlc]---- * [Functional project - Payment Brick](https://github.com/mercadopago/payment-bricks-sample-node) +* [Functional project - Wallet Brick](https://github.com/mercadopago/wallet-brand-bricks-sample) * [Functional project - Card Payment Brick](https://github.com/mercadopago/card-payment-bricks-sample) * [Technical documentation - SDK MercadoPago.js V2](https://github.com/mercadopago/sdk-js) diff --git a/guides/checkout-bricks/github-project.es.md b/guides/checkout-bricks/github-project.es.md index 66e59f5a91..fa29a65254 100644 --- a/guides/checkout-bricks/github-project.es.md +++ b/guides/checkout-bricks/github-project.es.md @@ -5,6 +5,7 @@ Haz clic en los links a continuación para acceder a los proyectos disponibles e ----[mlm]---- * [Proyecto funcional - Payment Brick](https://github.com/mercadopago/payment-bricks-sample-node) * [Proyecto funcional - Payment Brick con etapa de confirmación](https://github.com/mercadopago/payment-bricks-review-sample-node) +* [Proyecto funcional - Wallet Brick](https://github.com/mercadopago/wallet-brand-bricks-sample) * [Proyecto funcional - Card Payment Brick](https://github.com/mercadopago/card-payment-bricks-sample) * [Documentación técnica - SDK MercadoPago.js V2](https://github.com/mercadopago/sdk-js) @@ -12,6 +13,7 @@ Haz clic en los links a continuación para acceder a los proyectos disponibles e ----[mla]---- * [Proyecto funcional - Payment Brick](https://github.com/mercadopago/payment-bricks-sample-node) * [Proyecto funcional - Payment Brick con etapa de confirmación](https://github.com/mercadopago/payment-bricks-review-sample-node) +* [Proyecto funcional - Wallet Brick](https://github.com/mercadopago/wallet-brand-bricks-sample) * [Proyecto funcional - Card Payment Brick](https://github.com/mercadopago/card-payment-bricks-sample) * [Proyecto funcional - Brand Brick](https://github.com/mercadopago/wallet-brand-bricks-sample) * [Documentación técnica - SDK MercadoPago.js V2](https://github.com/mercadopago/sdk-js) @@ -19,6 +21,7 @@ Haz clic en los links a continuación para acceder a los proyectos disponibles e ------------ ----[mlb, mpe, mco, mlu, mlc]---- * [Proyecto funcional - Payment Brick](https://github.com/mercadopago/payment-bricks-sample-node) +* [Proyecto funcional - Wallet Brick](https://github.com/mercadopago/wallet-brand-bricks-sample) * [Proyecto funcional - Card Payment Brick](https://github.com/mercadopago/card-payment-bricks-sample) * [Documentación técnica - SDK MercadoPago.js V2](https://github.com/mercadopago/sdk-js) diff --git a/guides/checkout-bricks/github-project.pt.md b/guides/checkout-bricks/github-project.pt.md index b03b79dee0..d46c3f21b9 100644 --- a/guides/checkout-bricks/github-project.pt.md +++ b/guides/checkout-bricks/github-project.pt.md @@ -5,6 +5,7 @@ Clique nos links abaixo para acessar os projetos disponíveis no repositório do ----[mlm]---- * [Projeto funcional - Payment Brick](https://github.com/mercadopago/payment-bricks-sample-node) * [Projeto funcional - Payment Brick com etapa de confirmação](https://github.com/mercadopago/payment-bricks-review-sample-node) +* [Projeto funcional - Wallet Brick](https://github.com/mercadopago/wallet-brand-bricks-sample) * [Projeto funcional - Card Payment Brick](https://github.com/mercadopago/card-payment-bricks-sample) * [Documentação técnica - SDK MercadoPago.js V2](https://github.com/mercadopago/sdk-js) @@ -12,6 +13,7 @@ Clique nos links abaixo para acessar os projetos disponíveis no repositório do ----[mla]---- * [Projeto funcional - Payment Brick](https://github.com/mercadopago/payment-bricks-sample-node) * [Projeto funcional - Payment Brick com etapa de confirmação](https://github.com/mercadopago/payment-bricks-review-sample-node) +* [Projeto funcional - Wallet Brick](https://github.com/mercadopago/wallet-brand-bricks-sample) * [Projeto funcional - Card Payment Brick](https://github.com/mercadopago/card-payment-bricks-sample) * [Projeto funcional - Brand Brick](https://github.com/mercadopago/wallet-brand-bricks-sample) * [Documentação técnica - SDK MercadoPago.js V2](https://github.com/mercadopago/sdk-js) @@ -19,6 +21,7 @@ Clique nos links abaixo para acessar os projetos disponíveis no repositório do ------------ ----[mlb, mpe, mco, mlu, mlc]---- * [Projeto funcional - Payment Brick](https://github.com/mercadopago/payment-bricks-sample-node) +* [Projeto funcional - Wallet Brick](https://github.com/mercadopago/wallet-brand-bricks-sample) * [Projeto funcional - Card Payment Brick](https://github.com/mercadopago/card-payment-bricks-sample) * [Documentação técnica - SDK MercadoPago.js V2](https://github.com/mercadopago/sdk-js) diff --git a/guides/checkout-bricks/payment-brick/customers-cards.en.md b/guides/checkout-bricks/payment-brick/customers-cards.en.md index cb1d53fd42..f19e062296 100644 --- a/guides/checkout-bricks/payment-brick/customers-cards.en.md +++ b/guides/checkout-bricks/payment-brick/customers-cards.en.md @@ -41,7 +41,7 @@ Just passing these two properties, Brick will automatically give the user the op > Only no expired cards will be shown to the buyer, expired cards will not be made available. ----[mlc]---- -![payment-Brick-cc](checkout-bricks/payment-brick-cc-en.mlc.png) +![payment-Brick-cc](checkout-bricks/payment-brick-cc-en.all.png) ------------ ----[mlb]---- diff --git a/guides/checkout-bricks/payment-brick/customers-cards.es.md b/guides/checkout-bricks/payment-brick/customers-cards.es.md index c3d28ce5d0..8e114f5eb0 100644 --- a/guides/checkout-bricks/payment-brick/customers-cards.es.md +++ b/guides/checkout-bricks/payment-brick/customers-cards.es.md @@ -41,7 +41,7 @@ Con solo pasar estas dos propiedades, Brick le dará automáticamente al usuario > Solo se mostrarán al comprador las tarjetas no caducadas, las tarjetas caducadas no estarán disponibles. ----[mlc]---- -![payment-Brick-cc](checkout-bricks/payment-brick-cc-es-mlc.png) +![payment-Brick-cc](checkout-bricks/payment-brick-cc-es-all.png) ------------ ----[mlb]---- diff --git a/guides/checkout-bricks/payment-brick/customers-cards.pt.md b/guides/checkout-bricks/payment-brick/customers-cards.pt.md index 81f39bbbab..07d899c298 100644 --- a/guides/checkout-bricks/payment-brick/customers-cards.pt.md +++ b/guides/checkout-bricks/payment-brick/customers-cards.pt.md @@ -41,7 +41,7 @@ Apenas passando essas duas propriedades, o Brick automaticamente dará ao usuár > Somente os cartões dentro do prazo de validade serão mostrados para o comprador, cartões vencidos não serão disponibilizados. ----[mlc]---- -![payment-Brick-cc](checkout-bricks/payment-brick-cc-pt-mlc.png) +![payment-Brick-cc](checkout-bricks/payment-brick-cc-pt-all.png) ------------ ----[mlb]---- diff --git a/guides/checkout-bricks/wallet-brick/change-appearance.en.md b/guides/checkout-bricks/wallet-brick/change-appearance.en.md index 456da9ef3f..5351d8d725 100644 --- a/guides/checkout-bricks/wallet-brick/change-appearance.en.md +++ b/guides/checkout-bricks/wallet-brick/change-appearance.en.md @@ -7,10 +7,10 @@ ----[mlc]---- Wallet Brick allows for some visual customizations listed in the table below, all of which are optional and of the `string` type. -If the provided property is empty, the screen will display the appearance defined by the default layout. On the other hand, sending an alternative value will replace the default value. +If the provided property is empty, the screen will display the appearance defined by the [default layout](/developers/en/docs/checkout-bricks/wallet-brick/default-rendering#bookmark_render_the_brick). On the other hand, sending an alternative value will replace the default value. | Key | Available options | Default | -|--- |--- | --- | --- | +|--- |--- | --- | | theme | default ou black | default | | customStyle.valuePropColor | For the **default** theme, `valuePropColor` can be **blue or white**, while for the **dark** theme, valuePropColor`` can be **dark**. | For the **default** theme, the **default is blu**e, while for the **dark** theme, the **default is black**. | | customStyle.buttonHeight | Minimum: 48px.
Maximum: free choice. | 48px | diff --git a/guides/checkout-bricks/wallet-brick/change-appearance.es.md b/guides/checkout-bricks/wallet-brick/change-appearance.es.md index 04261aa31d..59618bddc0 100644 --- a/guides/checkout-bricks/wallet-brick/change-appearance.es.md +++ b/guides/checkout-bricks/wallet-brick/change-appearance.es.md @@ -7,10 +7,10 @@ ----[mlc]---- Wallet Brick permite algunas personalizaciones visuales listadas en la tabla abajo, todas opcionales y del tipo `string`. -Si la propiedad enviada está vacía, la pantalla mostrará el diseño definido por el *layout* predeterminado. Por otro lado, al enviar un valor alternativo, este reemplazará el valor predeterminado. +Si la propiedad enviada está vacía, la pantalla mostrará el diseño definido por el [*layout* predeterminado](/developers/es/docs/checkout-bricks/wallet-brick/default-rendering#bookmark_renderizar_el_brick). Por otro lado, al enviar un valor alternativo, este reemplazará el valor predeterminado. | Clave | Opciones disponibles | Predeterminado | -|--- |--- | --- | --- | +|--- |--- | --- | | theme | default ou black | default | | customStyle.valuePropColor | Para el tema **default**, `valuePropColor` puede ser **blue ou white**, mientras que para el tema **dark**, `valuePropColor` puede ser **black**. | Para el tema **default**, el **predeterminado es blue**, mientras que para el tema **dark**, el **predeterminado es black**. | | customStyle.buttonHeight | Mínimo: 48px.
Máximo: libre elección. | 48px | diff --git a/guides/checkout-bricks/wallet-brick/change-appearance.pt.md b/guides/checkout-bricks/wallet-brick/change-appearance.pt.md index 50f8df76bd..5625e86f92 100644 --- a/guides/checkout-bricks/wallet-brick/change-appearance.pt.md +++ b/guides/checkout-bricks/wallet-brick/change-appearance.pt.md @@ -7,10 +7,10 @@ ----[mlc]---- Wallet Brick permite algumas customizações visuais listadas na tabela abaixo, todas opcionais e do tipo `string`. -Caso a propriedade enviada esteja vazia, a tela apresentará o visual definido pelo *layout* padrão. Por outro lado, ao enviar um valor alternativo, este substituirá o valor padrão. +Caso a propriedade enviada esteja vazia, a tela apresentará o visual definido pelo [*layout* padrão](/developers/pt/docs/checkout-bricks/wallet-brick/default-rendering#bookmark_renderizar_o_brick). Por outro lado, ao enviar um valor alternativo, este substituirá o valor padrão. | Chave | Opções disponíveis | Padrão | -|--- |--- | --- | --- | +|--- |--- | --- | | theme | default ou black | default | | customStyle.valuePropColor | Para o tema **default**, `valuePropColor` pode ser **blue ou white**, enquanto que para o tema **dark**, `valuePropColor` pode ser **black**. | Para o tema **default**, o **padrão é blue**, enquanto que para o tema **dark**, o **padrão é black**. | | customStyle.buttonHeight | Mínimo: 48px.
Máximo: livre escolha. | 48px | From 05c544865fb557eaddbb177f438123bef90d4e60 Mon Sep 17 00:00:00 2001 From: Heitor Galdino Date: Mon, 3 Feb 2025 22:12:43 -0300 Subject: [PATCH 09/20] ajustes finais cho pro --- .../wallet-brick/change-texts.en.md | 73 +++++++++------ .../wallet-brick/change-texts.es.md | 86 ++++++++++-------- .../wallet-brick/change-texts.pt.md | 74 +++++++++------ guides/checkout-pro/ads-conversion.en.md | 3 - guides/checkout-pro/ads-conversion.es.md | 3 - guides/checkout-pro/ads-conversion.pt.md | 1 - .../change-button-appearance.en.md | 76 +++++++++++++++- .../change-button-appearance.es.md | 76 +++++++++++++++- .../change-button-appearance.pt.md | 76 +++++++++++++++- guides/checkout-pro/change-button-texts.en.md | 63 +++++++++++-- guides/checkout-pro/change-button-texts.es.md | 81 +++++++++++++---- guides/checkout-pro/change-button-texts.pt.md | 63 +++++++++++-- .../checkout-pro/integrate-chopro-web.en.md | 2 +- .../checkout-pro/integrate-chopro-web.es.md | 2 +- .../checkout-pro/integrate-chopro-web.pt.md | 2 +- .../cow/cow-render-wallet-en-rebranding.png | Bin 16495 -> 0 bytes .../cow/cow-render-wallet-es-rebranding.png | Bin 16478 -> 0 bytes .../cow/cow-render-wallet-pt-rebranding.png | Bin 16641 -> 0 bytes .../wallet-actioncomplement-en-rebranding.png | Bin 0 -> 385816 bytes images/cow/wallet-actioncomplement-en.png | Bin 0 -> 42145 bytes ...let-actioncomplement-es-all-rebranding.png | Bin 0 -> 401909 bytes images/cow/wallet-actioncomplement-es-all.png | Bin 0 -> 40778 bytes ...let-actioncomplement-es-mla-rebranding.png | Bin 0 -> 402302 bytes images/cow/wallet-actioncomplement-es-mla.png | Bin 0 -> 40778 bytes .../wallet-actioncomplement-pt-rebranding.png | Bin 0 -> 403018 bytes images/cow/wallet-actioncomplement-pt.png | Bin 0 -> 41337 bytes images/cow/wallet-render-en-rebranding.png | Bin 0 -> 36834 bytes ...der-wallet-en.png => wallet-render-en.png} | Bin .../cow/wallet-render-es-mla-rebranding.png | Bin 0 -> 38345 bytes images/cow/wallet-render-es-rebranding.png | Bin 0 -> 38295 bytes ...der-wallet-es.png => wallet-render-es.png} | Bin images/cow/wallet-render-pt-rebranding.png | Bin 0 -> 38322 bytes ...der-wallet-pt.png => wallet-render-pt.png} | Bin 33 files changed, 539 insertions(+), 142 deletions(-) delete mode 100644 images/cow/cow-render-wallet-en-rebranding.png delete mode 100644 images/cow/cow-render-wallet-es-rebranding.png delete mode 100644 images/cow/cow-render-wallet-pt-rebranding.png create mode 100644 images/cow/wallet-actioncomplement-en-rebranding.png create mode 100644 images/cow/wallet-actioncomplement-en.png create mode 100644 images/cow/wallet-actioncomplement-es-all-rebranding.png create mode 100644 images/cow/wallet-actioncomplement-es-all.png create mode 100644 images/cow/wallet-actioncomplement-es-mla-rebranding.png create mode 100644 images/cow/wallet-actioncomplement-es-mla.png create mode 100644 images/cow/wallet-actioncomplement-pt-rebranding.png create mode 100644 images/cow/wallet-actioncomplement-pt.png create mode 100644 images/cow/wallet-render-en-rebranding.png rename images/cow/{cow-render-wallet-en.png => wallet-render-en.png} (100%) create mode 100644 images/cow/wallet-render-es-mla-rebranding.png create mode 100644 images/cow/wallet-render-es-rebranding.png rename images/cow/{cow-render-wallet-es.png => wallet-render-es.png} (100%) create mode 100644 images/cow/wallet-render-pt-rebranding.png rename images/cow/{cow-render-wallet-pt.png => wallet-render-pt.png} (100%) diff --git a/guides/checkout-bricks/wallet-brick/change-texts.en.md b/guides/checkout-bricks/wallet-brick/change-texts.en.md index f6943de3fc..41dc21580a 100644 --- a/guides/checkout-bricks/wallet-brick/change-texts.en.md +++ b/guides/checkout-bricks/wallet-brick/change-texts.en.md @@ -9,14 +9,52 @@ Wallet Brick is **composed of the button and the value proposition** (`valueProp There are two themes available: the **default** (also used when no configuration is specified) and **dark**. Choosing a theme affects the background color of the button, the value proposition, and the color of the images inside the button. +![wallet-brick-actioncomplement](checkout-bricks/wallet-brick-actioncomplement-en.png) + +If the value proposition has not been specified, it will default to `security_safety`. Next, review all the possible texts for the content of the value proposition: + +| Option | Text | +|--- | --- | +|practicality | Use saved cards or your account balance | +|security_details | Protection for your data | +|security_safety (default) | Pay securely | +|smart_option| The text will be chosen automatically by Wallet Brick to increase the chances of sale according to the characteristics of the purchase. | +|payment_methods_logos* | The logos of the available payment methods will be displayed. To configure the payment methods, use the preference. | + +> NOTE +> +> Important +> +> *It is recommended to [initialize with a preference](/developers/en/docs/checkout-bricks/wallet-brick/default-rendering) using the Value Prop `payment_methods_logos`. If the preference has only one valid payment method, it will stop displaying images and will show the text: "**With account money**". + +[[[ +```javascript +const settings = { + ..., + customization: { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } + } +} +``` +```react-jsx +const customization = { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } +}; +``` +]]] + ------------ ----[mlb, mla, mlm, mpe, mco, mlu]---- Wallet Brick offers two reading levels: the **call to action (button)** and the **value proposition** (`valueProp`). In both cases, the text can be customized according to the options provided by Mercado Pago. The "call to action" is divided into two parts: the action, determined by the `Action` property, and the complement of the action, determined by the `Action Complement` property. ------------- - > WARNING > > Attention @@ -42,7 +80,7 @@ Check below the available texts for modification, how they are organized in the | valueProp | practicality, convenience_all, security_details, security_safety, smart_option, convenience_credits, payment_methods_logos | security_safety | ------------ -----[mpe, mco, mlu, mlc]---- +----[mpe, mco, mlu]---- | Key | Available options | Default | |--- |--- | --- | | action | pay, buy | pay | @@ -69,7 +107,7 @@ See the texts related to each option: |valueProp |payment_methods_logos** | The logos of the available payment methods will be displayed. To configure the payment methods, use the preference. | ------------ -----[mpe, mco, mlu, mlc]---- +----[mpe, mco, mlu]---- | Key | Option | Text | |--- |--- | --- | |action |pay | Pay | @@ -108,7 +146,7 @@ When testing your integration, make sure that the `action`, `actionComplement`, > **It is recommended to [initialize with a preference](/developers/en/docs/checkout-bricks/wallet-brick/default-rendering) using the Value Prop `payment_methods_logos`. If the preference has only one valid payment method, it will stop displaying images and will show the text: "**Account money or installments with no card**". ------------ -----[mpe, mco, mlu, mlc]---- +----[mpe, mco, mlu]---- > NOTE > > Important @@ -117,31 +155,6 @@ When testing your integration, make sure that the `action`, `actionComplement`, ------------ -----[mlc]---- -[[[ -```javascript -const settings = { - ..., - customization: { - theme: 'default', - customStyle: { - valueProp: 'practicality', - } - } -} -``` -```react-jsx -const customization = { - theme: 'default', - customStyle: { - valueProp: 'practicality', - } -}; -``` -]]] - ------------- -----[mlb, mla, mlm, mpe, mco, mlu]---- [[[ ```javascript const settings = { diff --git a/guides/checkout-bricks/wallet-brick/change-texts.es.md b/guides/checkout-bricks/wallet-brick/change-texts.es.md index fdc3d557c2..38ec09730c 100644 --- a/guides/checkout-bricks/wallet-brick/change-texts.es.md +++ b/guides/checkout-bricks/wallet-brick/change-texts.es.md @@ -9,14 +9,54 @@ Wallet Brick está **compuesto por el botón y la propuesta de valor** (`valuePr Hay dos temas disponibles: el **default** (también utilizado cuando no se especifica ninguna configuración) y el **dark**. La elección del tema impacta el color de fondo del botón, de la propuesta de valor y el color de las imágenes dentro del botón. +![wallet-brick-actioncomplement](checkout-bricks/wallet-brick-actioncomplement-es-all.png) + +Caso a proposta de valor não tenha sido especificada, por padrão será security_safety. A seguir, confira todos os textos possíveis para o conteúdo da proposta de valor: + +En caso de que no se haya especificado la propuesta de valor, por defecto será `security_safety`. A continuación, revisa todos los textos posibles para el contenido de la propuesta de valor: + +| Opción | Texto | +|--- | --- | +|practicality | Usá tarjetas guardadas o dinero en cuenta | +|security_details | Todos tus datos protegidos | +|security_safety (por defecto) | Pagá de forma segura | +|smart_option| El texto será elegido automáticamente por Wallet Brick para aumentar las posibilidades de venta según las características de la compra. | +|payment_methods_logos* | Se mostrarán los logotipos de los métodos de pago disponibles. Para configurar los métodos de pago, utilice la _preference_. | + +> NOTE +> +> Importante +> +> *Se recomienda la [inicialización con una preferencia](/developers/es/docs/checkout-bricks/wallet-brick/default-rendering) en el uso de la _Value Prop_ `payment_methods_logos`. En caso de que la preferencia tenga solo un método de pago válido, dejará de mostrar imágenes y mostrará el texto: "**Con dinero disponible**". + +[[[ +```javascript +const settings = { + ..., + customization: { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } + } +} +``` +```react-jsx +const customization = { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } +}; +``` +]]] + ------------ ----[mlb, mla, mlm, mpe, mco, mlu]---- Wallet Brick ofrece dos niveles de lectura: el **call to action (botón)** y la **propuesta de valor** (`valueProp`). En ambos casos, el texto se puede personalizar de acuerdo a las opciones brindadas por Mercado Pago. El _call to action_ se divide en dos partes: la acción, determinada por la propiedad `Action`, y el complemento de la acción, determinado por la propiedad `Action Complement`. ------------- - > WARNING > > Atención @@ -25,22 +65,15 @@ El _call to action_ se divide en dos partes: la acción, determinada por la prop | - | Descripción | | --- | --- | -| Momento de personalización | Al renderizar el Brick | +| Momento de personalización | Al renderizar el Brick. | | Propiedad | customization.texts.{action, actionComplement, valueProp} | | Tipo | String | | Observaciones | Al enviar un texto vacío, la pantalla presentará el texto definido por el layout predeterminado que se muestra después de la [renderización del Brick](/developers/es/docs/checkout-bricks/wallet-brick/default-rendering#bookmark_renderizar_o_brick). Por otro lado, al enviar un texto alternativos, reemplazará el texto predeterminado. Para comprobar cuáles son los textos por defecto, consulta la tabla a continuación. | Consulta a continuación los textos disponibles para cambiar, cómo se organizan en la pantalla y un ejemplo de código. -----[mlc]---- -![wallet-brick-actioncomplement](checkout-bricks/wallet-brick-actioncomplement-es-all.png) - ------------- -----[mlb, mla, mlm, mpe, mco, mlu]---- ![wallet-brick-actioncomplement](checkout-bricks/wallet-brick-actioncomplement-es.png) ------------- - ----[mlb, mlm, mlb]---- | Clave | Opciones disponibles | Predeterminado | |--- |--- | --- | @@ -49,7 +82,7 @@ Consulta a continuación los textos disponibles para cambiar, cómo se organizan | valueProp | practicality, convenience_all, security_details, security_safety, smart_option, convenience_credits, payment_methods_logos | security_safety | ------------ -----[mpe, mco, mlu, mlc]---- +----[mpe, mco, mlu]---- | Clave | Opciones disponibles | Predeterminado | |--- |--- | --- | | action | pay, buy | pay | @@ -73,7 +106,7 @@ Consulta los textos relacionados con cada opción: |valueProp |security_safety | Pagá de forma segura | |valueProp |smart_option| El texto será elegido automáticamente por Wallet Brick para aumentar las posibilidades de venta según las características de la compra. | |valueProp |convenience_credits* | Hasta 12 Meses sin Tarjeta | -|valueProp |payment_methods_logos** | Se mostrarán los logotipos de los métodos de pago disponibles. Para configurar los métodos de pago, utilice la _preference_.. | +|valueProp |payment_methods_logos** | Se mostrarán los logotipos de los métodos de pago disponibles. Para configurar los métodos de pago, utilice la _preference_. | ------------ ----[mlb, mla]---- @@ -92,7 +125,7 @@ Consulta los textos relacionados con cada opción: |valueProp |payment_methods_logos** | Se mostrarán los logotipos de los métodos de pago disponibles. Para configurar los métodos de pago, utilice la _preference_. | ------------ -----[mpe, mco, mlu, mlc]---- +----[mpe, mco, mlu]---- | Clave | Opción | Texto | |--- |--- | --- | |action |pay | Pagar| @@ -131,7 +164,7 @@ Al probar tu integración, asegúrate de que la `action`, `actionComplement` y ` > **Se recomienda la [inicialización con una preferencia](/developers/es/docs/checkout-bricks/wallet-brick/default-rendering) en el uso de la _Value Prop_ `payment_methods_logos`. En caso de que la preferencia tenga solo un método de pago válido, dejará de mostrar imágenes y mostrará el texto: "**Con dinero disponible o en cuotas sin tarjeta**". ------------ -----[mpe, mco, mlu, mlc]---- +----[mpe, mco, mlu]---- > NOTE > > Importante @@ -140,31 +173,6 @@ Al probar tu integración, asegúrate de que la `action`, `actionComplement` y ` ------------ -----[mlc]---- -[[[ -```javascript -const settings = { - ..., - customization: { - theme: 'default', - customStyle: { - valueProp: 'practicality', - } - } -} -``` -```react-jsx -const customization = { - theme: 'default', - customStyle: { - valueProp: 'practicality', - } -}; -``` -]]] - ------------- -----[mlb, mla, mlm, mpe, mco, mlu]---- [[[ ```javascript const settings = { diff --git a/guides/checkout-bricks/wallet-brick/change-texts.pt.md b/guides/checkout-bricks/wallet-brick/change-texts.pt.md index bb15fb1f1d..94e6faa7b3 100644 --- a/guides/checkout-bricks/wallet-brick/change-texts.pt.md +++ b/guides/checkout-bricks/wallet-brick/change-texts.pt.md @@ -9,14 +9,52 @@ O Wallet Brick é **composto pelo botão e a proposta de valor** (`valueProp`), Há dois temas disponíveis: o **default** (também usado quando nenhuma configuração for especificada) e o **dark**. A escolha do tema impacta a cor de fundo do botão, da proposta de valor e a cor das imagens de dentro do botão. +![wallet-brick-actioncomplement](checkout-bricks/wallet-brick-actioncomplement-pt.png) + +Caso a proposta de valor não tenha sido especificada, por padrão será security_safety. A seguir, confira todos os textos possíveis para o conteúdo da proposta de valor: + +| Opção | Texto | +|--- | --- | +|practicality | Use cartões salvos ou seu saldo em conta | +|security_details | Proteção para seus dados | +|security_safety (padrão) | Pague com segurança | +|smart_option| O texto será escolhido automaticamente pelo Wallet Brick para aumentar as chances de venda de acordo com as características da compra. | +|payment_methods_logos* | Serão exibidos os logos dos meios de pagamento disponíveis. Para configurar os meios de pagamento, utilize a _preference_. | + +> NOTE +> +> Importante +> +> *É recomendada a [inicialização com uma preferência](/developers/pt/docs/checkout-bricks/wallet-brick/default-rendering) no uso da _Value Prop_ `payment_methods_logos`. Caso a preference tenha apenas um meio de pagamento válido, ela deixará de exibir imagens e exibirá o texto: "**Com saldo em conta**". + +[[[ +```javascript +const settings = { + ..., + customization: { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } + } +} +``` +```react-jsx +const customization = { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } +}; +``` +]]] + ------------ ----[mlb, mla, mlm, mpe, mco, mlu]---- O Wallet Brick oferece dois níveis de leitura: o **call to action (botão)** e a **proposta de valor** (`valueProp`). Em ambos os casos, o texto pode ser customizado de acordo com as opções disponibilizadas pelo Mercado Pago. O _call to action_ é separado em duas partes: a ação, determinada pela propriedade `Action`, e o complemento da ação, determinado pela propriedade `Action Complement`. ------------- - > WARNING > > Atenção @@ -42,7 +80,7 @@ Confira abaixo os textos disponíveis para alteração, como eles se organizam n | valueProp | practicality, convenience_all, security_details, security_safety, smart_option, convenience_credits, payment_methods_logos | security_safety | ------------ -----[mpe, mco, mlu, mlc]---- +----[mpe, mco, mlu]---- | Chave | Opções disponíveis | Padrão | |--- |--- | --- | | action | pay, buy | pay | @@ -69,7 +107,7 @@ Veja quais são os textos relacionados a cada opção: |valueProp |payment_methods_logos** | Serão exibidos os logos dos meios de pagamento disponíveis. Para configurar os meios de pagamento, utilize a _preference_. | ------------ -----[mpe, mco, mlu, mlc]---- +----[mpe, mco, mlu]---- | Chave | Opção | Texto | |--- |--- | --- | |action |pay | Pagar| @@ -108,7 +146,7 @@ Ao testar sua integração verifique se a `action`, o `actionComplement` e a `va > **É recomendada a [inicialização com uma preferência](/developers/pt/docs/checkout-bricks/wallet-brick/default-rendering) no uso da _Value Prop_ `payment_methods_logos`. Caso a preference tenha apenas um meio de pagamento válido, ela deixará de exibir imagens e exibirá o texto: "**Com saldo em conta ou parcelado sem cartão**". ------------ -----[mpe, mco, mlu, mlc]---- +----[mpe, mco, mlu]---- > NOTE > > Importante @@ -117,31 +155,6 @@ Ao testar sua integração verifique se a `action`, o `actionComplement` e a `va ------------ -----[mlc]---- -[[[ -```javascript -const settings = { - ..., - customization: { - theme: 'default', - customStyle: { - valueProp: 'practicality', - } - } -} -``` -```react-jsx -const customization = { - theme: 'default', - customStyle: { - valueProp: 'practicality', - } -}; -``` -]]] - ------------- -----[mlb, mla, mlm, mpe, mco, mlu]---- [[[ ```javascript const settings = { @@ -169,4 +182,5 @@ const customization = { ``` ]]] + ------------ \ No newline at end of file diff --git a/guides/checkout-pro/ads-conversion.en.md b/guides/checkout-pro/ads-conversion.en.md index 2595054fbd..0b292876d4 100644 --- a/guides/checkout-pro/ads-conversion.en.md +++ b/guides/checkout-pro/ads-conversion.en.md @@ -18,8 +18,6 @@ The ads conversion analysis makes it possible to evaluate the relevance and retu > > Only payments approved instantly with credit and debit cards, cash in Mercado Pago or Linha de Crédito will be associated. ------------ - - ----[mlm, mlc, mco, mpe, mlu]---- > NOTE > @@ -28,7 +26,6 @@ The ads conversion analysis makes it possible to evaluate the relevance and retu > Only payments approved instantly with credit and debit cards, or with cash on Mercado Pago will be associated. ------------ - ## Facebook Ads When creating a preference, you can associate it with a pixel (identifier) for tracking Facebook Ads conversions. Checkout Pro's integration. diff --git a/guides/checkout-pro/ads-conversion.es.md b/guides/checkout-pro/ads-conversion.es.md index 4cc5f9e16b..4df601bd93 100644 --- a/guides/checkout-pro/ads-conversion.es.md +++ b/guides/checkout-pro/ads-conversion.es.md @@ -18,8 +18,6 @@ El análisis de conversión de anuncios permite evaluar la relevancia y el retor > > Solo se asociarán pagos aprobados al instante con tarjetas de crédito y débito, efectivo en Mercado Pago o Linha de Crédito. ------------ - - ----[mlm, mlc, mco, mpe, mlu]---- > NOTE > @@ -28,7 +26,6 @@ El análisis de conversión de anuncios permite evaluar la relevancia y el retor > Solo se asociarán pagos aprobados al instante con tarjetas de crédito y débito, o con efectivo en Mercado Pago. ------------ - ## Facebook Ads Al crear una preferencia, puedes asociarla con un pixel (identificador) para rastrear las conversiones de anuncios de Facebook. diff --git a/guides/checkout-pro/ads-conversion.pt.md b/guides/checkout-pro/ads-conversion.pt.md index 3566fa1ca5..39edfd7eed 100644 --- a/guides/checkout-pro/ads-conversion.pt.md +++ b/guides/checkout-pro/ads-conversion.pt.md @@ -27,7 +27,6 @@ A análise da conversão de anúncios possibilita avaliar a relevância e retorn > Só serão associados os pagamentos aprovados instantaneamente com cartões de crédito e débito, ou com dinheiro no Mercado Pago. ------------ - ## Facebook Ads Ao criar uma preferência, você pode associá-la a um pixel (identificator) para acompanhamento das conversões dos seus anúncios através do Facebook Ads. diff --git a/guides/checkout-pro/change-button-appearance.en.md b/guides/checkout-pro/change-button-appearance.en.md index 3c8c709136..8f23690fb7 100644 --- a/guides/checkout-pro/change-button-appearance.en.md +++ b/guides/checkout-pro/change-button-appearance.en.md @@ -4,6 +4,78 @@ > > Change button appearance +----[mlc]---- +Wallet Brick allows for some visual customizations listed in the table below, all of which are optional and of the `string` type. + +If the provided property is empty, the screen will display the appearance defined by the [default layout](/developers/en/docs/checkout-pro/integrate-checkout-pro/web). On the other hand, sending an alternative value will replace the default value. + +| Key | Available options | Default | +|--- |--- | --- | +| theme | default ou black | default | +| customStyle.valuePropColor | For the **default** theme, `valuePropColor` can be **blue or white**, while for the **dark** theme, valuePropColor`` can be **dark**. | For the **default** theme, the **default is blu**e, while for the **dark** theme, the **default is black**. | +| customStyle.buttonHeight | Minimum: 48px.
Maximum: free choice. | 48px | +| customStyle.borderRadius | Minimum: livre escolha.
Maximum: free choice. | 6px | +| customStyle.verticalPadding | Minimum: 8px.
Maximum: free choice. | 8px | +| customStyle.horizontalPadding | Minimum: 0px.
Maximum: free choice. | 0px | + +[[[ +```javascript +const settings = { + ..., + customization: { + theme:'dark', + customStyle: { + valueProp: 'practicality', + valuePropColor: 'black', + borderRadius: '10px', + verticalPadding: '10px', + horizontalPadding: '10px', + } + } +} +``` +```react-jsx +const customization = { + theme:'dark', + customStyle: { + valueProp: 'practicality', + valuePropColor: 'black', + borderRadius: '10px', + verticalPadding: '10px', + horizontalPadding: '10px', + } +}; +``` +]]] + +## Hide value proposition (valueProp) text + +It is also possible to hide the value proposition text by passing the value `boolean true` to the property `customStyle.hideValueProp`. The **default value** is `false`. + +[[[ +```javascript +const settings = { + ..., + customization: { + theme: 'default', + customStyle: { + hideValueProp: true, + } + } +} +``` +```react-jsx +const customization = { + theme: 'default', + customStyle: { + hideValueProp: true, + } +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- It is possible to customize the look of the payment button by defining visual properties with alternative values to the default ones. By default, the payment button renders as in the following image. ![cow-visual-wallet-default](cow/cow-visual-wallet-default.en.png) @@ -51,4 +123,6 @@ const customization = { Such customization examples will generate the following result: -![cow-visual-wallet](cow/cow-visual-wallet.en.png) \ No newline at end of file +![cow-visual-wallet](cow/cow-visual-wallet.en.png) + +------------ \ No newline at end of file diff --git a/guides/checkout-pro/change-button-appearance.es.md b/guides/checkout-pro/change-button-appearance.es.md index d92f5ebb6c..3fc1d360b6 100644 --- a/guides/checkout-pro/change-button-appearance.es.md +++ b/guides/checkout-pro/change-button-appearance.es.md @@ -4,6 +4,78 @@ > > Cambiar la apariencia del botón +----[mlc]---- +Wallet Brick permite algunas personalizaciones visuales listadas en la tabla abajo, todas opcionales y del tipo `string`. + +Si la propiedad enviada está vacía, la pantalla mostrará el diseño definido por el [*layout* predeterminado](/developers/es/docs/checkout-pro/integrate-checkout-pro/web). Por otro lado, al enviar un valor alternativo, este reemplazará el valor predeterminado. + +| Clave | Opciones disponibles | Predeterminado | +|--- |--- | --- | +| theme | default ou black | default | +| customStyle.valuePropColor | Para el tema **default**, `valuePropColor` puede ser **blue ou white**, mientras que para el tema **dark**, `valuePropColor` puede ser **black**. | Para el tema **default**, el **predeterminado es blue**, mientras que para el tema **dark**, el **predeterminado es black**. | +| customStyle.buttonHeight | Mínimo: 48px.
Máximo: libre elección. | 48px | +| customStyle.borderRadius | Mínimo: livre escolha.
Máximo: libre elección. | 6px | +| customStyle.verticalPadding | Mínimo: 8px.
Máximo: libre elección. | 8px | +| customStyle.horizontalPadding | Mínimo: 0px.
Máximo: libre elección. | 0px | + +[[[ +```javascript +const settings = { + ..., + customization: { + theme:'dark', + customStyle: { + valueProp: 'practicality', + valuePropColor: 'black', + borderRadius: '10px', + verticalPadding: '10px', + horizontalPadding: '10px', + } + } +} +``` +```react-jsx +const customization = { + theme:'dark', + customStyle: { + valueProp: 'practicality', + valuePropColor: 'black', + borderRadius: '10px', + verticalPadding: '10px', + horizontalPadding: '10px', + } +}; +``` +]]] + +## Ocultar texto de propuesta de valor (valueProp) + +También es posible ocultar el texto de la propuesta de valor pasando el valor `boolean true` a la propiedad `customStyle.hideValueProp`. El **valor predeterminado** es `false`. + +[[[ +```javascript +const settings = { + ..., + customization: { + theme: 'default', + customStyle: { + hideValueProp: true, + } + } +} +``` +```react-jsx +const customization = { + theme: 'default', + customStyle: { + hideValueProp: true, + } +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- Es posible personalizar el aspecto del botón de pago definiendo propiedades visuales con valores alternativos a los predeterminados. De forma predeterminada, el botón de pago se muestra como en la siguiente imagen. ![cow-visual-wallet-default](cow/cow-visual-wallet-default.es.png) @@ -51,4 +123,6 @@ const customization = { Estos ejemplos de personalización generarán el resultado siguiente: -![cow-visual-wallet](cow/cow-visual-wallet.es.png) \ No newline at end of file +![cow-visual-wallet](cow/cow-visual-wallet.es.png) + +------------ \ No newline at end of file diff --git a/guides/checkout-pro/change-button-appearance.pt.md b/guides/checkout-pro/change-button-appearance.pt.md index 2fbe5b9f64..780c0da35d 100644 --- a/guides/checkout-pro/change-button-appearance.pt.md +++ b/guides/checkout-pro/change-button-appearance.pt.md @@ -4,6 +4,78 @@ > > Alterar visual do botão +----[mlc]---- +O **botão de pagamento** permite algumas customizações visuais listadas na tabela abaixo, todas opcionais e do tipo `string`. + +Caso a propriedade enviada esteja vazia, a tela apresentará o visual definido pelo [*layout* padrão](/developers/pt/docs/checkout-pro/integrate-checkout-pro/web). Por outro lado, ao enviar um valor alternativo, este substituirá o valor padrão. + +| Chave | Opções disponíveis | Padrão | +|--- |--- | --- | +| theme | default ou black | default | +| customStyle.valuePropColor | Para o tema **default**, `valuePropColor` pode ser **blue ou white**, enquanto que para o tema **dark**, `valuePropColor` pode ser **black**. | Para o tema **default**, o **padrão é blue**, enquanto que para o tema **dark**, o **padrão é black**. | +| customStyle.buttonHeight | Mínimo: 48px.
Máximo: livre escolha. | 48px | +| customStyle.borderRadius | Mínimo: livre escolha.
Máximo: livre escolha. | 6px | +| customStyle.verticalPadding | Mínimo: 8px.
Máximo: livre escolha. | 8px | +| customStyle.horizontalPadding | Mínimo: 0px.
Máximo: livre escolha. | 0px | + +[[[ +```javascript +const settings = { + ..., + customization: { + theme:'dark', + customStyle: { + valueProp: 'practicality', + valuePropColor: 'black', + borderRadius: '10px', + verticalPadding: '10px', + horizontalPadding: '10px', + } + } +} +``` +```react-jsx +const customization = { + theme:'dark', + customStyle: { + valueProp: 'practicality', + valuePropColor: 'black', + borderRadius: '10px', + verticalPadding: '10px', + horizontalPadding: '10px', + } +}; +``` +]]] + +## Ocultar texto da proposta de valor (valueProp) + +Também é possível ocultar o texto da proposta de valor passando o valor `boolean true` para a propriedade `customStyle.hideValueProp`. O **valor padrão** é `false`. + +[[[ +```javascript +const settings = { + ..., + customization: { + theme: 'default', + customStyle: { + hideValueProp: true, + } + } +} +``` +```react-jsx +const customization = { + theme: 'default', + customStyle: { + hideValueProp: true, + } +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- É possível customizar o visual do botão de pagamento através da definição de propriedades visuais com valores alternativos aos padrões. Por padrão, o botão de pagamento é renderizado como na imagem a seguir. ![cow-visual-wallet-default](cow/cow-visual-wallet-default.pt.png) @@ -51,4 +123,6 @@ const customization = { Tais exemplos de customização irão gerar o seguinte resultado: -![cow-visual-wallet](cow/cow-visual-wallet.pt.png) \ No newline at end of file +![cow-visual-wallet](cow/cow-visual-wallet.pt.png) + +------------ \ No newline at end of file diff --git a/guides/checkout-pro/change-button-texts.en.md b/guides/checkout-pro/change-button-texts.en.md index ba88646c57..25f66b1085 100644 --- a/guides/checkout-pro/change-button-texts.en.md +++ b/guides/checkout-pro/change-button-texts.en.md @@ -4,6 +4,53 @@ > > Change button texts +----[mlc]---- +The payment button is **composed of the button and the value proposition** (`valueProp`), which can be customized according to the options provided by Mercado Pago. + +There are two themes available: the **default** (also used when no configuration is specified) and **dark**. Choosing a theme affects the background color of the button, the value proposition, and the color of the images inside the button. + +![wallet-brick-actioncomplement](checkout-bricks/wallet-actioncomplement-en.png) + +If the value proposition has not been specified, it will default to `security_safety`. Next, review all the possible texts for the content of the value proposition: + +| Option | Text | +|--- | --- | +|practicality | Use saved cards or your account balance | +|security_details | Protection for your data | +|security_safety (default) | Pay securely | +|smart_option| The text will be chosen automatically by Wallet Brick to increase the chances of sale according to the characteristics of the purchase. | +|payment_methods_logos* | The logos of the available payment methods will be displayed. To configure the payment methods, use the preference. | + +> NOTE +> +> Important +> +> *It is recommended to [initialize with a preference](/developers/en/docs/checkout-pro/integrate-preferences#bookmark_create_preference) using the Value Prop `payment_methods_logos`. If the preference has only one valid payment method, it will stop displaying images and will show the text: "**With account money**". + +[[[ +```javascript +const settings = { + ..., + customization: { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } + } +} +``` +```react-jsx +const customization = { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- The payment button offers two reading levels: the **call to action (button)** and the **value proposition**. In both cases, the text can be customized according to the options provided by Mercado Pago. By default, the payment button renders as in the following image. ![cow-text-wallet-default](cow/cow-text-wallet-default.en.png) @@ -27,12 +74,12 @@ Check out the texts related to each option: | Key | Option | Text | | --- |--- | --- | -| action | pay | Pay with Mercado Pago. | -| action | buy | Buy with Mercado Pago. | -| valueProp | practicality| Use saved cards or your account balance. | -| valueProp | convenience | Installment with or without card. | -| valueProp | security_details | Protection for your data. | -| valueProp | security_safety| Pay securely. | +| action | pay | Pay with Mercado Pago | +| action | buy | Buy with Mercado Pago | +| valueProp | practicality| Use saved cards or your account balance | +| valueProp | convenience | Installment with or without card | +| valueProp | security_details | Protection for your data | +| valueProp | security_safety| Pay securely | | valueProp | none | - | Example of customizing button texts: @@ -61,4 +108,6 @@ const customization = { Such customization examples will generate the following result: -![cow-text-wallet](cow/cow-text-wallet.en.png) \ No newline at end of file +![cow-text-wallet](cow/cow-text-wallet.en.png) + +------------ \ No newline at end of file diff --git a/guides/checkout-pro/change-button-texts.es.md b/guides/checkout-pro/change-button-texts.es.md index dfc6080b81..9f54b8919e 100644 --- a/guides/checkout-pro/change-button-texts.es.md +++ b/guides/checkout-pro/change-button-texts.es.md @@ -4,6 +4,55 @@ > > Cambiar textos de los botones +----[mlc]---- +El botón de pago está **compuesto por el botón y la propuesta de valor** (`valueProp`), que puede ser personalizada de acuerdo con las opciones disponibles en Mercado Pago. + +Hay dos temas disponibles: el **default** (también utilizado cuando no se especifica ninguna configuración) y el **dark**. La elección del tema impacta el color de fondo del botón, de la propuesta de valor y el color de las imágenes dentro del botón. + +![wallet-brick-actioncomplement](checkout-bricks/wallet-actioncomplement-es-all.png) + +Caso a proposta de valor não tenha sido especificada, por padrão será security_safety. A seguir, confira todos os textos possíveis para o conteúdo da proposta de valor: + +En caso de que no se haya especificado la propuesta de valor, por defecto será `security_safety`. A continuación, revisa todos los textos posibles para el contenido de la propuesta de valor: + +| Opción | Texto | +|--- | --- | +|practicality | Usá tarjetas guardadas o dinero en cuenta | +|security_details | Todos tus datos protegidos | +|security_safety (por defecto) | Pagá de forma segura | +|smart_option| El texto será elegido automáticamente por Wallet Brick para aumentar las posibilidades de venta según las características de la compra. | +|payment_methods_logos* | Se mostrarán los logotipos de los métodos de pago disponibles. Para configurar los métodos de pago, utilice la _preference_. | + +> NOTE +> +> Importante +> +> *Se recomienda la [inicialización con una preferencia](/developers/es/docs/checkout-bricks/wallet-brick/default-rendering) en el uso de la _Value Prop_ `payment_methods_logos`. En caso de que la preferencia tenga solo un método de pago válido, dejará de mostrar imágenes y mostrará el texto: "**Con dinero disponible**". + +[[[ +```javascript +const settings = { + ..., + customization: { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } + } +} +``` +```react-jsx +const customization = { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- El botón de pago ofrece dos niveles de lectura: la **call to action (botón)** y la **propuesta de valor**. En ambos casos, el texto se puede personalizar de acuerdo a las opciones brindadas por Mercado Pago. De forma predeterminada, el botón de pago se muestra como en la siguiente imagen. ![cow-text-wallet-default](cow/cow-text-wallet-default.es.png) @@ -25,29 +74,27 @@ Consulte a continuación los textos disponibles para modificar y un código de e Consulte los textos relacionados con cada opción: -----[mla, mlb, mpe, mco, mlu, mlc]---- - +----[mla, mlb, mpe, mco, mlu]---- | Clave | Opción | Texto | | --- |--- | --- | -| action | pay | Paga con Mercado Pago. | -| action | buy | Compra con Mercado Pago. | -| valueProp | practicality| Utilice las tarjetas guardadas o el saldo de su cuenta. | -| valueProp | convenience | Cuota con o sin tarjeta.| -| valueProp | security_details | Protección para sus datos. | -| valueProp | security_safety| Pague de forma segura.| +| action | pay | Paga con Mercado Pago | +| action | buy | Compra con Mercado Pago | +| valueProp | practicality| Utilice las tarjetas guardadas o el saldo de su cuenta | +| valueProp | convenience | Cuota con o sin tarjeta| +| valueProp | security_details | Protección para sus datos | +| valueProp | security_safety| Pague de forma segura| | valueProp | none | - | ------------ ----[mlm]---- - | Clave | Opción | Texto | | --- |--- | --- | -| action | pay | Paga con Mercado Pago. | -| action | buy | Compra con Mercado Pago. | -| valueProp | practicality| Utilice las tarjetas guardadas o el saldo de su cuenta. | -| valueProp | convenience | Meses con o sin tarjeta de crédito.| -| valueProp | security_details | Protección para sus datos. | -| valueProp | security_safety| Pague de forma segura.| +| action | pay | Paga con Mercado Pago | +| action | buy | Compra con Mercado Pago | +| valueProp | practicality| Utilice las tarjetas guardadas o el saldo de su cuenta | +| valueProp | convenience | Meses con o sin tarjeta de crédito| +| valueProp | security_details | Protección para sus datos | +| valueProp | security_safety| Pague de forma segura| | valueProp | none | - | ------------ @@ -78,4 +125,6 @@ const customization = { Estos ejemplos de personalización generarán el resultado siguiente: -![cow-text-wallet](cow/cow-text-wallet.es.png) \ No newline at end of file +![cow-text-wallet](cow/cow-text-wallet.es.png) + +------------ \ No newline at end of file diff --git a/guides/checkout-pro/change-button-texts.pt.md b/guides/checkout-pro/change-button-texts.pt.md index 978559cc87..5bd5a02f1b 100644 --- a/guides/checkout-pro/change-button-texts.pt.md +++ b/guides/checkout-pro/change-button-texts.pt.md @@ -4,6 +4,53 @@ > > Alterar textos do botão +----[mlc]---- +O botão de pagamento é **composto pelo botão e a proposta de valor** (`valueProp`), que pode ser customizada de acordo com as opções disponibilizadas pelo Mercado Pago. + +Há dois temas disponíveis: o **default** (também usado quando nenhuma configuração for especificada) e o **dark**. A escolha do tema impacta a cor de fundo do botão, da proposta de valor e a cor das imagens de dentro do botão. + +![wallet-actioncomplement](cow/wallet-actioncomplement-pt.png) + +Caso a proposta de valor não tenha sido especificada, por padrão será security_safety. A seguir, confira todos os textos possíveis para o conteúdo da proposta de valor: + +| Opção | Texto | +|--- | --- | +|practicality | Use cartões salvos ou seu saldo em conta | +|security_details | Proteção para seus dados | +|security_safety (padrão) | Pague com segurança | +|smart_option| O texto será escolhido automaticamente pelo Wallet Brick para aumentar as chances de venda de acordo com as características da compra. | +|payment_methods_logos* | Serão exibidos os logos dos meios de pagamento disponíveis. Para configurar os meios de pagamento, utilize a _preference_. | + +> NOTE +> +> Importante +> +> *É recomendada a [inicialização com uma preferência](/developers/es/docs/checkout-pro/integrate-preferences#bookmark_crear_preferencia) no uso da _Value Prop_ `payment_methods_logos`. Caso a preference tenha apenas um meio de pagamento válido, ela deixará de exibir imagens e exibirá o texto: "**Com saldo em conta**". + +[[[ +```javascript +const settings = { + ..., + customization: { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } + } +} +``` +```react-jsx +const customization = { + theme: 'default', + customStyle: { + valueProp: 'practicality', + } +}; +``` +]]] + +------------ +----[mlb, mla, mlm, mpe, mco, mlu]---- O botão de pagamento oferece dois níveis de leitura: o **call to action (botão)** e a **proposta de valor**. Em ambos os casos, o texto pode ser customizado de acordo com as opções disponibilizadas pelo Mercado Pago. Por padrão, o botão de pagamento é renderizado como na imagem a seguir. ![cow-text-wallet-default](cow/cow-text-wallet-default.pt.png) @@ -27,12 +74,12 @@ Veja quais são os textos relacionados a cada opção: | Chave | Opção | Texto | | --- |--- | --- | -| action | pay | Pagar com Mercado Pago. | -| action | buy | Comprar com Mercado Pago. | -| valueProp | practicality| Use cartões salvos ou seu saldo em conta. | -| valueProp | convenience | Parcelamento com ou sem cartão. | -| valueProp | security_details | Proteção para seus dados. | -| valueProp | security_safety| Pague com segurança. | +| action | pay | Pagar com Mercado Pago | +| action | buy | Comprar com Mercado Pago | +| valueProp | practicality| Use cartões salvos ou seu saldo em conta | +| valueProp | convenience | Parcelamento com ou sem cartão | +| valueProp | security_details | Proteção para seus dados | +| valueProp | security_safety| Pague com segurança | | valueProp | none | - | Exemplo de customização dos textos do botão: @@ -61,4 +108,6 @@ const customization = { Tais exemplos de customização irão gerar o seguinte resultado: -![cow-text-wallet](cow/cow-text-wallet.pt.png) \ No newline at end of file +![cow-text-wallet](cow/cow-text-wallet.pt.png) + +------------ \ No newline at end of file diff --git a/guides/checkout-pro/integrate-chopro-web.en.md b/guides/checkout-pro/integrate-chopro-web.en.md index eb4c4712ed..47a53387cf 100644 --- a/guides/checkout-pro/integrate-chopro-web.en.md +++ b/guides/checkout-pro/integrate-chopro-web.en.md @@ -131,7 +131,7 @@ npm install @mercadopago/sdk-react @0.0.23 You will then be able to observe the payment button rendered on your page. If you want to make changes to the text or a visual change, please visit the sections on [Change texts](/developers/en/docs/checkout-bricks/wallet-brick/visual-customizations/change-texts) and [Change appearance](/developers/en/docs/checkout-bricks/wallet-brick/visual-customizations/change-appearance). -![wallet-render](cow/cow-render-wallet-en.png) +![wallet-render](cow/wallet-render-en.png) In the example above, a payment button will be rendered and will be responsible for opening Checkout Pro. If you want the experience with Checkout Pro to be done in an **external tab**, check the section [Opening Schema](/developers/en/docs/checkout-pro/checkout-customization/user-interface/opening-schema) diff --git a/guides/checkout-pro/integrate-chopro-web.es.md b/guides/checkout-pro/integrate-chopro-web.es.md index a1ba5bb78c..825573158d 100644 --- a/guides/checkout-pro/integrate-chopro-web.es.md +++ b/guides/checkout-pro/integrate-chopro-web.es.md @@ -129,7 +129,7 @@ npm install @mercadopago/sdk-react @0.0.23 A continuación, encontrarás el botón de pago que se muestra en tu página. Si desea hacer **cambios en los textos o un cambio visual**, acceda a las secciones de [Cambiar textos](/developers/es/docs/checkout-bricks/wallet-brick/visual-customizations/change-texts) y [Cambiar de aspecto](/developers/es/docs/checkout-bricks/wallet-brick/visual-customizations/change-appearance). -![wallet-render](cow/cow-render-wallet-es.png) +![wallet-render](cow/wallet-render-es.png) En el ejemplo anterior, se renderizará un botón de pago que será responsable por abrir el Checkout Pro. Si deseas que la experiencia con Checkout Pro se realice en una **pestaña externa**, consulta la sección [Esquema de apertura](/developers/es/docs/checkout-pro/checkout-customization/user-interface/opening-schema) diff --git a/guides/checkout-pro/integrate-chopro-web.pt.md b/guides/checkout-pro/integrate-chopro-web.pt.md index 963ef1eec6..b64ad46b1a 100644 --- a/guides/checkout-pro/integrate-chopro-web.pt.md +++ b/guides/checkout-pro/integrate-chopro-web.pt.md @@ -129,7 +129,7 @@ npm install @mercadopago/sdk-react @0.0.23 Em seguida, observe o botão de pagamento renderizado em sua página. Caso queira fazer **alterações nos textos ou uma alteração visual**, acesse as seções de [Alterar textos](/developers/pt/docs/checkout-bricks/wallet-brick/visual-customizations/change-texts) e [Alterar visual](/developers/pt/docs/checkout-bricks/wallet-brick/visual-customizations/change-appearance). -![wallet-render](cow/cow-render-wallet-pt.png) +![wallet-render](cow/wallet-render-pt.png) No exemplo acima, um botão de pagamento será renderizado e ficará responsável por abrir o Checkout Pro. Caso queira que a experiência com Checkout Pro seja feita em uma **aba externa**, veja a seção [Esquema de abertura](/developers/pt/docs/checkout-pro/checkout-customization/user-interface/opening-schema) diff --git a/images/cow/cow-render-wallet-en-rebranding.png b/images/cow/cow-render-wallet-en-rebranding.png deleted file mode 100644 index 884754b3864457a7a7c1eddba614f454ae059a4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16495 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ℜ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