CheckoutSdk

Mundi Checkout Merchant API

Introdução

A API de criação de lojas para o Mundi Checkout visa facilitar o trabalho do cadastramento de uma nova loja em nosso sistema. A requisição de criação da loja é feita através de um POST de um objeto JSON para uma das seguintes URLs:

Desenvolvimento - https://localhost:8083/Create

Homologação - https://checkoutstaging.mundipaggone.com:8083/Create

Produção - https://checkout.mundipaggone.com:8083/Create

Para efetuar o cadastro da loja na plataforma Mundi Checkout, é necessário informar a chave de loja na plataforma Mundipagg One. Isto significa que é necessário que o cadastro na plataforma One já tenha sido efetuado previamente. A chave de loja gerada para o sistema Mundi Checkout será igual à chave de loja no gateway.

Criando uma nova loja

Para solicitar a configuração de uma nova loja no sistema Mundi Checkout, basta enviar um objeto MerchantRequest no corpo de um POST para a URL desejada. A API de criação irá efetuar o cadastro da nova loja e enviar um objeto de resposta para esta requisição, MerchantResponse, contendo a chave da loja gerada neste cadastro.

Detalhes dos atributos do objeto MerchantRequest

  • GatewayMerchantKey - Chave da loja no Gateway (Tipo: Guid, Obrigatório: sim);
  • MerchantName - Nome da Loja (Tipo: texto, Obrigatório: sim, Restrição: tamanho máximo 64 caracteres);
  • MerchantReference - Identificador da loja no sistema da loja (Tipo: texto, Obrigatório: não, Restrição: tamanho máximo 32 caracteres);
  • CheckoutVersion - Versão do Mundi Checkout a ser utilizada (Tipo: texto, Obrigatório: não, Restrição: Tamanho máximo 3 caracteres, Valor padrão: "1.0");
  • IsAntiFraudEnabled - Indica se, por padrão, a análise antifraude estará ativa para pedidos desta loja. (Tipo: booleano, Valores: true ou false, Valor padrão: false);
  • IsInstallmentEnabled - Indica se, por padrão, o parcelamento está habilitado para pedidos de cartão de crédito desta loja. (Tipo: booleano, Valores: true ou false, Valor padrão: false);
  • IsCreditCardPaymentEnabled - Indica se, por padrão, o pagamento com cartão de crédito estará ativo para pedidos desta loja. (Tipo: booleano, Valores: true ou false, Valor padrão: true);
  • IsBoletoPaymentEnabled - Indica se, por padrão, o pagamento com boleto bancário estará ativo para pedidos desta loja. (Tipo: booleano, Valores: true ou false, Valor padrão: true);
  • ReturnURL - URL de retorno após o processamento do checkout com sucesso. (Tipo: texto, Obrigatório: não, Restrição: Tamanho máximo 255 caracteres, Valor padrão: "http://checkoutstaging.mundipaggone.com:8080/Pages/success.aspx");
  • NotificationURL - URL que receberá POSTs de notificação sobre os pedidos desta loja. (Tipo: texto, Obrigatório: não, Restrição: Tamanho máximo 255 caracteres. Valor Padrão: "https://checkoutstaging.mundipaggone.com:8080/Notification/CheckoutNotificationTest.aspx");
  • MaxNotificationTries - Número máximo de vezes para tentar notificar, em caso de problema na notificação. (Tipo: número inteiro, Obrigatório: não, Valor padrão: 3);
  • RequestURLDomain - Domínio a partir do qual o checkout será chamado. (Tipo: texto, Obrigatório não, Valor padrão: "http://checkoutstaging.mundipaggone.com:8080");
  • LayoutColorPanel - Cor do painel do checkout. Deve ser informado no padrão hexadecimal: #RRGGBB (Tipo: texto, Obrigatório não, Restrição: Tamanho máximo 7 caracteres);
  • LayoutMerchantName - Nome da loja a ser mostrado no painel do checkout. (Tipo: texto, Obrigatório: não, Restrição: Tamanho máximo 20 caracteres, Valor Padrão: Igual ao atributo MerchantName);
  • LayoutOpacity - Opacidade do painel do checkout. (Tipo: número inteiro, Obrigatório: não, Valor padrão: 70);
  • CancelCheckoutURL - URL de redirecionamento para o caso em que o cliente feche o checkout antes de finalizar a compra. (Tipo: texto, Obrigatório: não, Restrição: Tamanho máximo 120 caracteres, Valor padrão: "http://checkoutstaging.mundipaggone.com:8080/Pages/cancel.aspx");
  • IsSimulatorEnabled - Indica se o simulador está habilitado (Tipo: booleano, Obrigatório: não, Valores: true ou false, Valor Padrão: false);
  • GatewayEnvironment - Ambiente para integração com o gateway (Tipo: enum, Obrigatório: não, Valor padrão: "Staging");
  • LayoutPaymentButtonText - Texto do botão de pagamento do checkout (Tipo: texto, Obrigatório: não, Valor padrão: "Efetuar Pagamento");
  • LayoutUrlLogo - URL do logotipo da loja (Tipo: texto, Obrigatório: não, Restrição: Tamanho máximo 200 caracteres);
  • LayoutUrlLogoLarge - URL da versão grande do logotipo da loja (Tipo: texto, Obrigatório: não, Restrição: Tamanho máximo 200 caracteres);
  • MerchantCreditCardBrandCollection - Coleção de objetos de configuração de bandeiras de cartão de crédito (Tipo: objeto, Obrigatório não);

Detalhes dos atributos do objeto MerchantRequest.MerchantCreditCardBrandRequest

  • CreditCardBrand - Nome da bandeira do cartão de crédito (Tipo: enum, Obrigatório: sim, Valores: CreditCardBrandEnum);
  • AmountInCentsMin - Valor mínimo para o parcelamento (Tipo: número inteiro, Obrigatório: sim);
  • IsInstallmentEnabled - Indica se o parcelamento está habilitado para esta bandeira (Tipo: booleano, Obrigatório: sim);
  • InstallmentMin - Quantidade mínima de parcelas (Tipo: número inteiro, Obrigatório: sim);
  • InstallmentMax - Quantidade máxima de parcelas (Tipo: número inteiro, Obrigatório: sim);
  • GatewayPaymentMethodCode - Identificador do método de pagamento no gateway. (Tipo: número inteiro, Obrigatório: sim, Valores: 0 para que o gateway defina qual adquirente será usada ou 1 para simulador);

Valores do enumeration CreditCardBrandEnum

  • Visa;
  • Mastercard;
  • Amex;

Valores do enumeration GatewayEnvironmentEnum

  • Development - Desenvolvimento;
  • Staging - Homologação;
  • Production - Produção;

É importante notar que não é obrigatório que sejam informadas as configurações de bandeira (MerchantCreditCardBrandCollection) numa requisição de criação de loja. Caso ao menos um objeto deste tipo seja adicionado à coleção, todos os seus atributos são obrigatórios e deverão ser preenchidos. Porém, caso nenhum objeto seja adicionado à coleção, o sistema irá, por padrão, preenchê-la com dois objetos:

  • Primeiro item da coleção MerchantCreditCardBrandCollection:
    • CreditCardBrandEnum = CreditCardBrandEnum.Visa;
    • AmountInCentsMin = 100;
    • IsInstallmentEnabled = false;
    • InstallmentMin = 1;
    • InstallmentMax = 1;
    • GatewayPaymentMethodCode = 1;
  • Segundo item da coleção MerchantCreditCardBrandCollection:
    • CreditCardBrandEnum = CreditCardBrandEnum.Mastercard;
    • AmountInCentsMin = 100;
    • IsInstallmentEnabled = false;
    • InstallmentMin = 1;
    • InstallmentMax = 1;
    • GatewayPaymentMethodCode = 1;

Exemplos de requisições de criação de loja

Versão mínima:

A requisição a seguir mostra um exemplo de criação de loja em que o mínimo de informações foi informado, isto é, apenas os valores obrigatórios do objeto MerchantRequest foram informados:

Request - Criação de Loja com mínimo de parâmetros

- Header
    Content-Type: application/json

- Body
    {
        "MerchantName": "Nome da Loja",
        "GatewayMerchantKey": "50CB81FB-7164-4E1D-94F3-9B1E6E12C73D"
    }

Response - Criação de loja com mínimo de parâmetros

- Body
    {
        "MerchantKey": "50CB81FB-7164-4E1D-94F3-9B1E6E12C73D",
        "CreateDate": "2015-06-16T20:34:59.567",
        "Success": true,
        "ErrorCollection": []
    }

Versão completa:

A requisição a seguir mostra um exemplo de criação de loja em que todos os parâmetros customizáveis para a configuração da loja foram informados no objeto MerchantRequest:

Request - Criação de Loja com todos os parâmetros

- Header
    Content-Type: application/json

- Body
    {
          "MerchantName": "Loja Teste API",
          "GatewayMerchantKey": "50CB81FB-7164-4E1D-94F3-9B1E6E12C73D",
          "CancelCheckoutURL": "http://www.mundipagg.com/cancel",
          "CheckoutVersion": "1.0",
          "GatewayEnvironment": "Staging",
          "IsAntiFraudEnabled": false,
          "IsBoletoPaymentEnabled": true,
          "IsCreditCardPaymentEnabled": true,
          "IsInstallmentEnabled": false,
          "IsSimulatorEnabled": true,
          "LayoutColorPanel": "#FF0000",
          "LayoutMerchantName": "LayoutLojaTeste",
          "LayoutOpacity": 80,
          "LayoutPaymentButtonText": "Pagar",
          "LayoutUrlLogo": "http://www.mundipagg.com/logo",
          "LayoutUrlLogoLarge": "http://www.mundipagg.com/logolarge",
          "MaxNotificationTries": 2,
          "MerchantReference": "MinhaReferencia",
          "NotificationURL": "http://www.mundipagg.com/Notification",
          "RequestURLDomain": "http://www.mundipagg.com/RequestURL",
          "ReturnURL": "http://www.mundipagg.com/Return",
          "MerchantCreditCardBrandCollection": [
            {
              "AmountInCentsMin": 200,
              "CreditCardBrand": "Visa",
              "GatewayPaymentMethodCode": 2,
              "InstallmentMax": 3,
              "InstallmentMin": 2,
              "IsInstallmentEnabled": true
            },
            {
              "AmountInCentsMin": 200,
              "CreditCardBrand": "Amex",
              "GatewayPaymentMethodCode": 2,
              "InstallmentMax": 3,
              "InstallmentMin": 2,
              "IsInstallmentEnabled": true
            }
          ]
    }

Response - Criação de Loja com todos os parâmetros

- Body
    {
        "MerchantKey": "48321197-2978-4264-b056-2af27283f669",
        "CreateDate": "2015-06-16T20:34:59.567",
        "Success": true,
        "ErrorCollection": []
}

Exemplo de Requisição Inválida

O exemplo a seguir demonstra uma requisição inválida, em que a chave da loja no gateway não foi informada. O objeto de resposta conterá o atributo Success = false e um objeto com a coleção de erros, detalhando o ocorrido:

Request - Requisição inválida

- Header
    Content-Type: application/json

- Body
    {
        "MerchantName": "Nome da Loja",
    }

Response - Requisição Inválida

    - Body
        {
            "MerchantKey": "00000000-0000-0000-0000-000000000000",
            "CreateDate": null,
            "Success": false,
            "ErrorCollection": [
                {
                    "ErrorCode": 400,
                    "ParameterName": "Checkout.WebAPI.Tools.DataContract.Request.MerchantRequest.GatewayMerchantKey",
                    "ErrorDescription": "O campo GatewayMerchantKey é obrigatório."
                }
            ]
  }