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.
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:
CreditCardBrandEnum = CreditCardBrandEnum.Visa;AmountInCentsMin = 100;IsInstallmentEnabled = false;InstallmentMin = 1;InstallmentMax = 1;GatewayPaymentMethodCode = 1;CreditCardBrandEnum = CreditCardBrandEnum.Mastercard;AmountInCentsMin = 100;IsInstallmentEnabled = false;InstallmentMin = 1;InstallmentMax = 1;GatewayPaymentMethodCode = 1;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:
- Header
Content-Type: application/json
- Body
{
"MerchantName": "Nome da Loja",
"GatewayMerchantKey": "50CB81FB-7164-4E1D-94F3-9B1E6E12C73D"
}
- Body
{
"MerchantKey": "50CB81FB-7164-4E1D-94F3-9B1E6E12C73D",
"CreateDate": "2015-06-16T20:34:59.567",
"Success": true,
"ErrorCollection": []
}
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:
- 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
}
]
}
- Body
{
"MerchantKey": "48321197-2978-4264-b056-2af27283f669",
"CreateDate": "2015-06-16T20:34:59.567",
"Success": true,
"ErrorCollection": []
}
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:
- Header
Content-Type: application/json
- Body
{
"MerchantName": "Nome da Loja",
}
- 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."
}
]
}