Criar Pagamento

Por meio desta API é possível solicitar ao Moip que realize a cobrança de um pedido. Para isso, você deve enviar as informações referentes ao pagamento.

📘

VENDA PROTEGIDA

Os atributos destacados com Venda Protegida são campos obrigatórios para ter a análise anti-fraude do Moip.

❗️

ATENÇÃO

1. Você deve fazer a criptografia dos dados do cartão de crédito antes de enviar ao Moip. Caso você tenha certificado PCI, é permitido o envio dos dados sem criptografia para o Moip.

2. Os atributos number, expirationMonth, creditCard.expirationYear e cvc serão usados apenas em caso de seu site possuir certificação PCI. Caso contrário você deve usar o atributo hash e fazer a criptografia dos dados do cartão.

3. Por recomendação das bandeiras de cartão, um pagamento pré-autorizado deverá ser capturado em até 5 dias. Caso ultrapassado esse período, a Moip cancelará o pagamento automaticamente.

🚧

IMPORTANTE

Há três possibilidades de fazer o pagamento por cartão de crédito:

1. Se seu site possui certificação PCI, use os atributos com os dados do cartão: number, expirationMonth, expirationYear e cvc.

2. Caso seu site não possua certificação de segurança PCI então você deve fazer o pagamento criptografando os dados do cartão e usar o atributo hash. Saiba mais sobre a criptografia do cartão de crédito em nossa documentação.

3. Se seu cliente já tiver um cartão salvo no sistema você pode recuperar esses dados e fazer a venda usando apenas o atributo id. Este atributo é referente ao código identificador do cartão e você deve recebê-lo sempre que usar o atributo store:true em uma compra por cartão. Exemplo de id: CRC-9RR409BRJVIN.

👍

DICA

Para uso do device.fingerprint, recomendamos bibliotecas baseadas em Canvas Fingerprints. Uma boa recomendação de um serviço gratuito e open-source é o ClientJs e o Fingerprintjs2.

Segue exemplo usando Fingerprintjs2:

var fingerprint = Fingerprint2.x64hash128(components.map((pair) => { return pair.value }).join(), 31);

Números de cartão de crédito para teste

Na tabela abaixo o Moip disponibiliza números de cartões fictícios em diversas bandeiras para fazer uma compra.

Bandeira

Número

Vencimento

CVC

Mastercard

5555666677778884

05/2018

123

Visa

4012001037141112

05/2018

123

Amex

376449047333005

05/2018

1234

Elo

6362970000457013

05/2018

123

Diners

36490102462661

05/2018

123

Hiper

6370950000000005

05/2018

123

Hipercard

6062825624254001

05/2018

123

Fluxograma de Pagamento por Cartão de Crédito

Veja abaixo o fluxo do processo de pagamento no Moip e o reflexo dele no status do pedido.

Interação dos status de pedido e pagamento no Moip.Interação dos status de pedido e pagamento no Moip.

Interação dos status de pedido e pagamento no Moip.

Fluxograma de Pagamento por Boleto

Abaixo o fluxo do processo de pagamento via boleto e sua interação com os status do pedido.

Fluxograma de uma transação por boleto bancário.Fluxograma de uma transação por boleto bancário.

Fluxograma de uma transação por boleto bancário.

Fluxograma de Pagamento por Débito Online

Observe abaixo um esquema do processo de pagamento via débito online.

Fluxograma de um pagamento feito por débito online.Fluxograma de um pagamento feito por débito online.

Fluxograma de um pagamento feito por débito online.

Recuperando pagamento cancelado

Para que você possa tentar recuperar seus pagamentos cancelados de maneira simples, o Moip criou as classificações de cancelamento, baseadas nas respostas que recebemos dos bancos. Esta classificação é uma maneira de auxiliá-lo a entender o motivo de cada cancelamento e, ao mesmo tempo, orientá-lo de como tratar cada caso.

Você terá as informações de classificação dos pagamentos cancelados na resposta, no GET e nos webhooks de pagamentos.

Exemplo de classificação de cancelamento:

{
[...]
  "cancellationDetails": {
    "cancelledBy": "ACQUIRER",
    "description": "Politica do banco emissor",
    "code": "3"
  }
[...]
}

Exemplo completo de JSON com dados de classificação.

{
  "id": "PAY-4DTXRX7KJYP2",
  "status": "CANCELLED",
  "installmentCount": 1,
  "amount": {
    "refunds": 0,
    "fees": 46,
    "liquid": 54,
    "currency": "BRL",
    "total": 100
  },
  "fees": [
    {
      "type": "TRANSACTION",
      "amount": 46
    }
  ],
  "cancellationDetails": {
    "cancelledBy": "ACQUIRER",
    "description": "Politica do banco emissor",
    "code": "3"
  },
  "fundingInstrument": {
    "creditCard": {
      "id": "CRC-L7VZM4B7U68E",
      "brand": "HIPER",
      "first6": "637095",
      "last4": "0005",
      "holder": {
        "birthdate": "30/12/1988",
        "taxDocument": {
          "type": "CPF",
          "number": "22222222222"
        },
        "fullname": "Jose Silva"
      }
    },
    "method": "CREDIT_CARD"
  },
  "events": [
    {
      "createdAt": "2015-12-07T20:39:39-0200",
      "type": "PAYMENT.CANCELLED"
    },
    {
      "createdAt": "2015-12-07T20:39:37-0200",
      "type": "PAYMENT.CREATED"
    }
  ],
  "_links": {
    "order": {
      "title": "ORD-M05KJCELI74N",
      "href": "https://api.moip.com.br/v2/orders/ORD-M05KJCELI74N"
    },
    "self": {
      "href": "https://api.moip.com.br/v2/payments/PAY-4DTXRX7KJYP2"
    }
  },
  "createdAt": "2015-12-07T20:39:37-0200",
  "updatedAt": "2015-12-07T20:39:39-0200"
}

🚧

IMPORTANTE

Para manter uma visão de conversão por pedido (mais limpa) use sempre o mesmo pedido para criar um novo pagamento. Nesse cenário em que seu pagamento foi cancelado faça um novo request de pagamento no pedido usado anteriormente com dados de outro cartão de crédito, ou se preferir oferecendo o Boleto como forma de pagamento alternativa.

Identificando sua marca na fatura

Quando seu cliente contesta o pagamento por não reconhecer a compra que fez acaba gerando diversos problemas em sua operação, e muitas vezes isso acontece simplesmente porque ele não se lembra do que comprou na internet.

Para evitar esse tipo de situação disponibilizamos para você a funcionalidade de "Nome na fatura” ou como chamamos tecnicamente statementDescriptor. Com esse campo você tem a disposição 13 caracteres que pode ser usado para indicar a sua marca na fatura de cartão de crédito do seu comprador, fazendo com que assim ele se lembre da loja, da sua marca e o que se refere esse pagamento em sua fatura.

Você só precisa passar essa informação com o nome desejado na criação de um pagamento com cartão de crédito no Moip. Veja exemplo de JSON abaixo.

{
[...]
  "statementDescriptor": "Minha loja",
[...]
}

Exemplo completo de JSON com nome na fatura.

{
  "installmentCount": 1,
  "statementDescriptor": "Minha loja",
  "fundingInstrument": {
    "method": "CREDIT_CARD",
    "creditCard": {
      "hash": "2n9vykIkGX5tegvdl+ow5ngPxP3ItAkp9tc1tzuMTeAuF457uN99CJIG386RD/iV5JPjwr9uCgr0XNYraMulcNJnys2b+A2pl7VcNmO83N5YBkViG+mo9SSCXMcBYBIcGotInur49DpKwylMbMFFWWYFsO/pq8e+zAe6g7dOLcKwkGlVrNL1PKepWxd5ldt44yPZhMeG82eiLxbnXrkAtcY19Phjlg7GIhCj3hjxSYi0Y6iUtLYmTpsVQIs93myH7LLU30gZ88xRMAYbmshi7fc8clfDkLbUPcCCDDYwe6ltFYX1J0YA/TT87Amj9filRlTzLuU9qvKHlXpq2Q/H",
      "holder": {
        "fullname": "Jose Santos",
        "birthdate": "1980-01-02",
        "taxDocument": {
          "type": "CPF",
          "number": "12345679891"
        },
        "phone": {
          "countryCode": "55",
          "areaCode": "11",
          "number": "25112511"
        }
      }
    }
  }
}

🚧

IMPORTANTE

O nome na fatura está disponível apenas para pagamentos com cartão de crédito nas bandeiras Visa e MasterCard.

Language