Moip Developer Center

Seja bem vindo à página de documentação do Moip. Aqui você encontrará a documentação e referência completa das nossas APIs e produtos.

Documentação      Referência API
Suggest Edits

Introdução

 

Abordagem RESTful

As novas APIs do Moip foram implementadas com base na arquitetura RESTful. Para nomear os recursos usamos nomes (Pedidos, Pagamentos, Clientes e outros) e suportamos diversas chamadas HTTP verbs para cada recurso. Desta forma, o mesmo recurso, por exemplo, v2/customers/ pode ser usado tanto para criar um novo Cliente, através do método POST, quanto para consultar uma lista de clientes com o método GET.

Esta API usa JSON como media-type padrão. Usamos em toda nossa API o padrão UTF-8.Com o conceito de hypermedia HATEOAS você pode usar as estruturas de links entre os recursos para automatizar sua aplicação tornando ainda mais ágil a sua integração com as soluções de pagamento Moip.

Error states

Em todas as requisições você deve esperar um HTTP Status. Além do HTTP status você receberá um objeto com os atributos abaixo para auxílio à correção das requisições.

Atributos

Nome Descrição Detalhes
code Código identificador do erro string
path Parâmetro relacionado ao erro string
description Descrição do erro string

Todos os erros mapeados retornarão com o http status 4xx para sua aplicação. Caso você receba um http status 5xx para uma requisição válida por gentileza entre em contato conosco.

  • Erros 400, deve ser tratado por sua aplicação, nós iremos sempre retornar um JSON indicando o motivo do erro.
  • Erros 401 indicam erro de autenticação, confirme se sua autenticação pode realizar a ação desejada e se está usando o ambiente correto, lembre-se que as chaves de produção e de sandbox são distintas.
  • Erros 500 são erros internos, nesses casos reporte-nos diretamente pelo e-mail dev@moip.com.br.

Exemplo:

{
  "errors": [
    {
      "code": "ORD-001",
      "path": "ownId",
      "description": "É necessario informar seu identificador próprio"
    }
  ]
}

Clique aqui e veja nossa lista de erros.

Formato das respostas

Para os métodos POST /resources e GET /resource/:id você deve esperar como retorno a representação completa do recurso utilizado com os atributos nulos/vazios omitidos. Nos casos em que existam recursos aninhados, como os Pagamentos dentro de um Pedido, ao consultar o recurso pai (Pedido) os Pagamentos (recurso filho) serão apresentados em sua representação mínima. A representação mínima é uma versão reduzida do recurso com as informações mais relevantes. Para obter a representação completa do recurso filho (Pagamento) basta realizar o GET em sua própria URI.

Versionamento

A API está em sua versão 2.0. Todas os parâmetros e os atributos esperados de cada chamada estão representados nesta documentação. Evoluções futuras que tornem incompatíveis qualquer integração já realizadas serão tratadas como novas versões da API. Evoluções que não gerem incompatibilidade são implementadas e a documentação atualizada por meio da seção Changelog.

O que são consideradas evoluções que não geram incompatibilidade?

  • Inclusão de novos recursos ou novos atributos de um recurso existente
  • Inclusão de parâmetros opcionais em métodos existentes
  • Alteração da ordem de exibição dos atributos em uma resposta
  • Alteração do formato de retorno de atributos nulos. Sua aplicação deve entender respostas Null, “”, ou atributo não retornado
  • Inclusão de novos eventos de webhooks

Listagem e busca

Em algumas de nossas APIs está disponível o recurso de busca detalhada, como padrão sempre será usado três métodos para compor sua busca, podendo ser usados separadamente ou em conjunto para refinar sua busca, são eles:

  • Paginação: determina quantos registros serão retornados.
  • Consulta genérica: busca por uma string ou informação que você tenha utilizado na criação do recurso.
  • Filtros: delimita alguns parâmetros em sua busca.

Paginação

Os registros são atualmente ordenados pela data de criação em ordem decrescente.

Nome
Tipo
Descrição

limit

inteiro

Quantidade de registros por busca (página). O valor default é 20

offset

inteiro

Registro a partir do qual a busca vai retornar. O valor default é 0.

Exemplo:

GET v2/recurso?limit=100&offset=300

IMPORTANTE

Ao fazer uma consulta o Moip retornará um hyperlink para que você possa fazer a navegação e fazer uma nova consulta com os mesmos parâmetros (_links.next e _links.previous), retornando os resultados posteriores e anteriores a sua consulta. )

Consulta Genérica

É possível buscar um valor específico em seu pedido usando o parâmetro q na url do recurso, esse método é ideal para buscar um recursos por meio de seu identificador próprio.

Nome
Descrição

q

Consulta um valor em específico

Exemplo

GET v2/recurso?q=meu_id_proprio

Filtros

Os filtros podem ser usados para refinar ainda mais a sua busca, como por exemplo retornar pedidos que só estejam em um status ou entre um e outro. Os delimitadores te ajudam nesses cenários.

Cada recurso possui seus atributos disponíveis para filtros. Consulte a documentação do recurso desejado para saber quais você pode utilizar.

Delimitadores:

A URI deve ser montada passando os filtros dentro do parâmetro filters. Use os delimitadores :: (para representar chave e valor) e | (para separar um filtro de outro).

Nome
Tipo
Descrição

gt(x)

number or date

Maior que - “Greater Than”

ge(x)

number or date

Maior ou igual - “Greater than or Equal”

lt(x)

number or date

Menor que - “Less Than”

le(x)

number or date

Menor ou igual - “Less than or Equal”

bt(x,y)

string

Entre - “BeTween”

in(x,y…z)

string

Em - “IN”

Exemplo Simples

GET v2/recurso?filters=status::in(PAID,WAITING)

Exemplo Completo

Fazendo uma busca de transações de valores entre 5000 e 10000 (em centavos), usando as formas de pagamento Cartão de Crédito e Boleto, fazendo uma query em jose silva e retornando 3 resultados.

https://sandbox.moip.com.br/v2/orders?q=pagamento do pedido&filters=status::in(PAID,WAITING)|paymentMethod::in(CREDIT_CARD,BOLETO)|value::bt(5000,10000)&limit=3&offset=0

Ambientes

Todos os exemplos dispostos nessa documentação fazem referência ao ambiente de testes (Sandbox) Moip, onde não ocorrem cobranças reais. Contudo, o comportamento executado em ambiente Sandbox é idêntico ao ambiente real (Produção).

Após realizar sua implementação usando o ambiente de sandbox você deve alterar suas chaves de autenticação e o endpoint para apontar as chamadas para o ambiente de produção.

  • Produção: https://api.moip.com.br
  • Sandbox: https://sandbox.moip.com.br

Changelog

Criamos uma página especial para que você possa acompanhar nossas principais mudanças alem de uma lista de notificação. Clique aqui para acessar essa página e se cadastre para receber as notificações de alteração por e-mail.

Acompanhe também pelo HitchHQ

Começando

Recomendamos que você leia os guias apresentados na nossa documentação de negócios para facilitar o entendimento de nossas APIs e obter uma visão ampla de quais serviços serão necessários utilizar para o seu tipo de negócio. Devs podem preferir navegar pelos recursos abaixo para descobrir todas as possibilidades da v2.

Suggest Edits

Clientes

Cliente é o usuário de um serviço ou o comprador de uma determinada loja virtual. Esta API permite a criação e a consulta de um determinado cliente.

 

Atributos

Nome
Descrição
Detalhes

id

Id Moip do cliente.

string(16), response

ownId

Id próprio do cliente. Referência externa.

string(65)

fullname

Nome completo do cliente.

string(90)

email

Email do cliente.

string(45)

phone

Telefone do cliente.

structured

├─countryCode

DDI (código internacional) do telefone. Valores possíveis: 55.

integer(2)

├─areaCode

DDD (código local) do telefone.

integer(2)

└─number

Número do telefone.

integer(9)

birthDate

Data de nascimento do cliente.

date (AAAA-MM-DD)

taxDocument

Documento fiscal.

structured

├─type

Tipo do documento. Valores possíveis: CPF, CNPJ.

string

└─number

Número do documento.

string(11)

shippingAddress

Endereço de entrega do cliente.

Object Endereço

fundingInstrument

Instrumento de cobrança. DEPRECATED Removido em 15/01/16

structured

├─method

Método do instrumento de cobrança. Valores possíveis: CREDIT_CARD.

string

└─creditCard

Cartão de crédito.

fundingInstruments

Instrumentos de cobrança.

structured list

├─method

Método do instrumento de cobrança. Valores possíveis: CREDIT_CARD.

string

└─creditCard

Cartão de crédito.

moipAccount

MPA da conta do comprador (se houver).

structured list

├─id

Identificador da conta Moip.

string

createdAt

Data de criação do recurso.

datetime, response

_links

Links do recurso.

structured, response

├─self

Hyperlink para o próprio recurso.

structured

└─└─href

URI do próprio recurso.

link

├─hostedAccount

Hyperlink para a página de hostedAccount.

structured

└─└─redirectUrl

URL de redirecionaamento do hostedAccount.

link

Suggest Edits

Criar um cliente

Por meio desta API é possível criar um Cliente.

Preencha todos os campos obrigatórios para que a transação seja elegível ao Venda protegida

 
posthttps://sandbox.moip.com.br/v2/customers

Body Params

ownId
string
required

Id próprio do cliente. Referência externa. Limite de caracteres: (65).

fullname
string
required

Nome completo do cliente. Limite de caracteres: (90)

email
string
required

Email do cliente. Limite de caracteres: (45)

phone
object
phone.countryCode
string
required

DDI (código internacional) do telefone. Valores possíveis: 55. Limite de caracteres: 2

phone.areaCode
string
required

Código de área do cliente. Limite de caracteres: (2).

phone.number
string
required

Número de telefone do cliente. Limite de caracteres: 9

birthDate
date

Data de nascimento do cliente. date (AAAA-MM-DD)

taxDocument
object
taxDocument.type
string
required

Tipo do documento. Valores possíveis: CPF, CNPJ. Limite de caracteres: (4)

taxDocument.number
string
required

Número do documento. Limite de caracteres: (11)

shippingAddress
object
shippingAddress.street
string
required

Logradouro do endereço

shippingAddress.streetNumber
string
required

Número

shippingAddress.complement
string

Complemento do endereço.

shippingAddress.district
string
required

Bairro

shippingAddress.city
string
required

Cidade

shippingAddress.state
string
required

Estado

shippingAddress.country
string
required

País em formato ISO-alpha3, exemplo BRA.

shippingAddress.zipCode
string
required

O CEP do endereço de cobrança

Headers

Authorization
string
required

Hash de autorização tipo Basic gerado a partir da sua Chave e Token encontrados nas configurações de sua conta Moip

Content-Type
string
required

Especificar o tipo do conteúdo da requisição. Valores possíveis: "application/json"

{
  "ownId": "meu_id_sandbox_123",
  "fullname": "Jose Silva",
  "email": "jose_silva0@email.com",
  "birthDate": "1988-12-30",
  "taxDocument": {
    "type": "CPF",
    "number": "22222222222"
  },
  "phone": {
    "countryCode": "55",
    "areaCode": "11",
    "number": "66778899"
  },
  "shippingAddress": {
    "city": "Sao Paulo",
    "complement": "8",
    "district": "Itaim",
    "street": "Avenida Faria Lima",
    "streetNumber": "2927",
    "zipCode": "01234000",
    "state": "SP",
    "country": "BRA"
  }
}
/**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/

Customer customer = api.customer().create(
  new CustomerRequest()
    .ownId("CUS-" + System.currentTimeMillis())
    .fullname("Jose da Silva")
    .email("josedasilva@email.com")
    .birthdate(
      new ApiDateRequest()
      .date(new Date())
    )
    .taxDocument(TaxDocumentRequest.cpf("22222222222"))
    .phone(
      new PhoneRequest()
        .setAreaCode("11")
        .setNumber("55443322")
    )
    .shippingAddressRequest(
      new ShippingAddressRequest()
        .street("Avenida Faria Lima")
        .streetNumber("3064")
        .complement("12 andar")
        .city("São Paulo")
        .state("SP")
        .district("Itaim")
        .country("BRA")
        .zipCode("01452-000")
    )
);
<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

try {
  $customer = $moip->customers()->setOwnId(uniqid())
    ->setFullname('Fulano de Tal')
    ->setEmail('fulano@email.com')
    ->setBirthDate('1988-12-30')
    ->setTaxDocument('22222222222')
    ->setPhone(11, 66778899)
    ->addAddress('BILLING',
      'Rua de teste', 123,
      'Bairro', 'Sao Paulo', 'SP',
      '01234567', 8)
    ->addAddress('SHIPPING',
      'Rua de teste do SHIPPING', 123,
      'Bairro do SHIPPING', 'Sao Paulo', 'SP',
      '01234567', 8)
    ->create();
} catch (Exception $e) {
  printf($e->__toString());
}
customer = api.customer.create({
  ownId: "meu_id_de_cliente",
  fullname: "Jose Silva",
  email: "josedasilva@email.com",
  phone: {
    #...
  },
  birthDate: "1988-12-30",
  taxDocument: {
    #...
  },
  shippingAddress: {
    #...
  },
  fundingInstrument: {
    # Campo opcional. Consulte a documentação da API.
  }
})
A binary file was returned

You couldn't be authenticated

{
  "id": "CUS-Q3BL0CAJ2G33",
  "ownId": "meu_id_sandbox_123",
  "fullname": "Jose Silva",
  "createdAt": "2017-05-30T07:53:59.000-03",
  "birthDate": "1988-12-30",
  "email": "jose_silva0@email.com",
  "phone": {
    "countryCode": "55",
    "areaCode": "11",
    "number": "66778899"
  },
  "taxDocument": {
    "type": "CPF",
    "number": "22222222222"
  },
  "shippingAddress": {
    "zipCode": "01234000",
    "street": "Avenida Faria Lima",
    "streetNumber": "2927",
    "complement": "8",
    "city": "Sao Paulo",
    "district": "Itaim",
    "state": "SP",
    "country": "BRA"
  },
  "_links": {
    "self": {
      "href": "https://sandbox.moip.com.br/v2/customers/CUS-Q3BL0CAJ2G33"
    },
    "hostedAccount": {
      "redirectHref": "https://hostedaccount-sandbox.moip.com.br?token=b69afe27-31e6-4db0-aec0-42444ec2ec6a&id=CUS-Q3BL0CAJ2G33&mpa=MPA-E3C8493A06AE"
    }
  }
}
Suggest Edits

Consultar um cliente

Por meio desta API é possível consultar as informações e detalhes de um cliente.

 
gethttps://sandbox.moip.com.br/v2/customers/customer_id

Path Params

customer_id
string
required

Headers

Authorization
string
required

Authorization Basic Hash de autorização tipo Basic gerado a partir da sua Chave e Token encontrados nas configurações de sua conta Moip

/**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/

String customerId = "CUS-Q3BL0CAJ2G33";
Customer customer = api.customer().get(customerId);
System.out.println(customer.toString());
<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

try {
  $customer_id = 'CUS-Q3BL0CAJ2G33';
  $customer = $moip->customers()->get($customer_id);
  print_r($customer);
} catch (Exception $e) {
  printf($e->__toString());
}
customer = api.customer.show("CUS-V41BR451L14M")
A binary file was returned

You couldn't be authenticated

{
  "id": "CUS-Q3BL0CAJ2G33",
  "ownId": "meu_id_sandbox_123",
  "fullname": "Jose Silva",
  "createdAt": "2017-05-30T07:53:59.000-03",
  "birthDate": "1988-12-30",
  "email": "jose_silva0@email.com",
  "phone": {
    "countryCode": "55",
    "areaCode": "11",
    "number": "66778899"
  },
  "taxDocument": {
    "type": "CPF",
    "number": "22222222222"
  },
  "shippingAddress": {
    "zipCode": "01234000",
    "street": "Avenida Faria Lima",
    "streetNumber": "2927",
    "complement": "8",
    "city": "Sao Paulo",
    "district": "Itaim",
    "state": "SP",
    "country": "BRA"
  },
  "_links": {
    "self": {
      "href": "https://sandbox.moip.com.br/v2/customers/CUS-Q3BL0CAJ2G33"
    },
    "hostedAccount": {
      "redirectHref": "https://hostedaccount-sandbox.moip.com.br?token=b69afe27-31e6-4db0-aec0-42444ec2ec6a&id=CUS-Q3BL0CAJ2G33&mpa=MPA-E3C8493A06AE"
    }
  }
}
Suggest Edits

Adicionar um cartão de crédito

Por meio desta API é possível adicionar um ou mais cartões de crédito a um Cliente.

 
posthttps://sandbox.moip.com.br/v2/customers/customer_id/fundinginstruments

Path Params

customer_id
string
required

Body Params

method
string

Método do instrumento de cobrança. Valores possíveis: CREDIT_CARD

creditCard
object

Cartão de crédito. object Cartão de Crédito

creditCard.expirationMonth
integer
required

Mês de expiração do cartão. (Necessário estar dentro do escopo PCI para enviar esse campo sem criptografia) integer(2)

creditCard.expirationYear
integer
required

Ano de expiração do cartão. (Necessário estar dentro do escopo PCI para enviar esse campo sem criptografia) integer(4)

creditCard.number
string
required

Número do cartão de crédito. (Necessário estar dentro do escopo PCI para enviar esse campo sem criptografia) string(19)

creditCard.cvc
integer
required

Código de segurança do cartão. (Necessário estar dentro do escopo PCI para enviar esse campo sem criptografia)

creditCard.holder
object

Portador do cartão.

creditCard.holder.fullname
string
required

Nome do portador impresso no cartão. string(90),

creditCard.holder.birthdate
yyyy-mm-dd
required

Data de nascimento do cliente. date(AAAA-MM-DD),

creditCard.holder.taxDocument
object
required

Documento fiscal.

creditCard.holder.taxDocument.cpf
string
required

Tipo do documento. Valores possíveis: CPF. string(3)

creditCard.holder.taxDocument.number
string

Número do documento. string(11)

creditCard.holder.phone
object
required

Telefone do cliente. structured

creditCard.holder.phone.countryCode
string

DDI (código internacional) do telefone. Valores possíveis: 55. Limite de caracteres: 2

creditCard.holder.phone.areaCode
string

Código de área do cliente. Limite de caracteres: (2).

creditCard.holder.phone.number
string

Número de telefone do cliente. Limite de caracteres: 9

Criptografando o cartão

Não é possível adicionar um cartão de crédito utilizando o hash de criptografia através dessa API. Para utilizar o hash, é necessário adicionar no momento do pagamento.

{
  "method": "CREDIT_CARD",
  "creditCard": {
    "expirationMonth": "05",
    "expirationYear": "22",
    "number": "5555666677778884",
    "cvc": "123",
    "holder": {
      "fullname": "Jose Portador da Silva",
      "birthdate": "1988-12-30",
      "taxDocument": {
        "type": "CPF",
        "number": "33333333333"
      },
      "phone": {
        "countryCode": "55",
        "areaCode": "11",
        "number": "66778899"
      }
    }
  }
}
<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

try {
  $customer_id = 'CUS-12345678901';
  $credit_card = $moip->customers()->creditCard()
	  ->setExpirationMonth('05')
	  ->setExpirationYear(2021)
	  ->setNumber('5555666677778884')
	  ->setCVC('123')
    ->setFullName('Jose Portador da Silva')
	  ->setBirthDate('1988-12-30')
	  ->setTaxDocument('CPF', '33333333333')
	  ->setPhone('55','11','66778899')
	  ->create($customer_id);
} catch (Exception $e) {
  printf($e->__toString());
}
FundingInstrument creditCard = api.customer().addCreditCard(
  new CustomerRequest()
    .fundingInstrument(
      new FundingInstrumentRequest()
        .creditCard(
          new CreditCardRequest()
            .number("5555666677778884")
            .cvc(123)
            .expirationMonth("05")
            .expirationYear("18")
            .holder(
              new HolderRequest()
                .fullname("Jose Portador da Silva")
                .birthdate("1988-10-10")
                .phone(
                  new PhoneRequest()
                    .setAreaCode("11")
                    .setNumber("55667788")
                )
                .taxDocument(TaxDocumentRequest.cpf("22222222222"))
            )
        )
    )
    .id("CUS-1RM8JPVKWEVR")
);
System.out.println(creditCard);
credit_card = api.customer.add_credit_card("CUSTOMER-ID", 
    {
      method: "CREDIT_CARD",
      creditCard: {
        expirationMonth: "05",
        expirationYear: "22",
        number: "5555666677778884",
        cvc: "123",
        holder: {
          fullname: "Jose Portador da Silva",
          birthdate: "1988-12-30",
          taxDocument: {
            type: "CPF",
            number: "33333333333",
          },
          phone: {
            countryCode: "55",
            areaCode: "11",
            number: "66778899",
          },
        },
      },
    }
)
A binary file was returned

You couldn't be authenticated

{
  "creditCard": {
    "id": "CRC-4DADMLXTCZWE",
    "brand": "MASTERCARD",
    "first6": "555566",
    "last4": "8884",
    "store": true
  },
  "card": {
    "brand": "MASTERCARD",
    "store": true
  },
  "method": "CREDIT_CARD"
}
Suggest Edits

Deletar um cartão de crédito

Através desse endpoint é possível deletar um cartão de crédito salvo.

 
deletehttps://sandbox.moip.com.br/v2/fundinginstruments/creditcard_id

Headers

id
string
**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/
  api.customer().deleteCreditCard("CRC-1234567890");
api.customer.delete_credit_card!("CREDIT-CARD-ID")
A binary file was returned

You couldn't be authenticated

No response examples available
Suggest Edits

Pedidos

O Pedido é a representação da venda de um produto ou serviço. Esta API possibilita a criação, consulta e listagem de pedidos.

 

Atributos:

Nome Descrição Detalhes
id Id Moip do pedido. string(16), response
ownId Id próprio do pedido. Referência externa. string(65)
status Status do pedido. Valores possíveis: CREATED, WAITING, PAID, NOT_PAID, REVERTED. string, response
createdAt Data de criação do recurso. datetime, response
amount Valores do pedido. structured
├─total Valor total do pedido, em centavos. Ex: R$10,32 deve ser informado 1032 integer(12), response
├─fees Valor total de tarifa Moip. integer(12), response
├─refunds Valor total de reembolsos. integer(12), response
├─liquid Valor total liquido. integer(12), response
├─otherReceivers Soma de valores recebidos por outros recebedores. Usado em Marketplaces. integer(12), response
├─currency Moeda utilizada no pedido. Valores possíveis: BRL. string
├─subtotals Estrutura de valores adicionais do pedido. structured
├ ├─shipping Valor de frete do item, será somado ao valor dos itens. Em centavos Ex: R$10,32 deve ser informado 1032 integer(12)
├ ├─addition Valor adicional ao item, será somado ao valor dos itens. Em centavos Ex: R$10,32 deve ser informado 1032 integer(12)
├ ├─discount Valor de desconto do item, será subtraído do valor total dos itens. Em centavos Ex: R$10,32 deve ser informado 1032 integer(12)
└ └─items Soma dos valores de todos os itens. integer(12), response
items Estrutura de informações do item do pedido. structured list
├─product Nome do produto. string(256)
├─category Categoria do produto. Tabela de categorias string(256)
├─quantity Quantidade de produtos. integer(12)
├─detail Descrição adicional do produto. string(250)
└─price Valor inicial do item. (O valor será multiplicado de acordo com a quantidade de produtos.) Em centavos Ex: R$10,32 deve ser informado 1032 integer(12)
checkoutPreferences Configurações para o checkout Moip Recurso em desenvolvimento. structured
├─redirectUrls URLs de redirecionamento. string(256)
├ ├─urlSuccess URL para redirecionamento em casos de sucesso. link
└ └─urlFailure URL para redirecionamento em casos de falha. link
├─installments Configurações de parcelamento. structured list
├ ├─quantity Limitadores do plano de parcelas. Exemplo: [1, 3]; tupla
├ ├─discount Valor de desconto para a parcela. integer
└ └─addition Valor de acréscimo para a parcela. integer
shippingAddress Endereço de entrega. structured Objeto: Endereço, response
customer Cliente associado ao pedido. Cliente
payments Pagamentos associados ao pedido. Ver recurso [Pagamento para mais informações. coleção de Pagamentos, response
refunds Reembolsos associados ao pedido. Ver recurso Reembolso para mais informações. coleção de Reembolsos, response
entries Lançamentos associados ao pedido. Ver objeto Lançamento para mais informações. coleção de Lançamentos, response
events Eventos associados ao pedido. structured list, response
├─createdAt Data de criação do evento. date(AAAA-MM-DD), response
├─type Tipo do evento. Valores possíveis: ORDER.CREATED, ORDER.WAITING, ORDER.PAID, ORDER.NOT_PAID, ORDER.REVERTED. string, response
└─description Descrição do evento. string(65), response
receivers Estrutura de recebedores dos pagamentos. structured list
├─type Define qual o tipo de recebedor do pagamento, valores possíveis: PRIMARY, SECONDARY string
├─feePayor Boolean para definir se o recebedor é o pagador da taxa Moip, valores possíveis: true, false. Se o feePayor não for informado, o recebedor type PRIMARY será o pagador da taxa Moip. Se houver mais de um recebedor tipo SECONDARY, apenas um deles poderá ser o pagador da taxa. boolean
├─moipAccount Estrutura de Conta Moip que irá receber valores do pagamento. structured
├ ├─login Login Moip ao qual recebeu valores do pagamento. string(256)
├ ├─fullname Nome do portador da Conta Moip. string(256)
├ └─id Id Moip de Conta Moip que irá receber valores do pagamento. string(16)
├─amount Estrutura de valor a ser recebido structured
├ ├─refunds Valor total reembolsado do recebedor. integer(12)
├ ├─fees Valor total de tarifas pagas pelo recebedor. integer(12)
└ └─total Valor total recebido. Em centavos Ex: R$10,32 será informado 1032 integer(12)
updatedAt Data da última atualização do recurso. datetime, response
_links Estrutura de links Hypermedia (HATEOAS) do recurso. structured, response
├─self Hyperlink para o próprio recurso. structured
├ └─href Hyperlink para o próprio recurso. link
└─checkout Links para checkout. object Checkout Moip
Suggest Edits

Criar Pedido

Por meio desta API é possível criar um Pedido no Moip que irá conter os dados da venda de um produto ou serviço. Para criar o pedido, você pode utilizar um Cliente já criado anteriormente ou informar os dados de um novo Cliente.

 
posthttps://sandbox.moip.com.br/v2/orders

Body Params

ownId
string
required

Id próprio do pedido. Referência externa string(65)

amount
object

Valores do pedido.

amount.currency
string

Moeda utilizada no pedido. Valores possíveis: BRL. Valor default BRL.

amount.subtotals
string

Estrutura de valores adicionais do pedido.

amount.subtotals.shipping
integer

Valor de frete do item, será somado ao valor dos itens. Em centavos. Ex: R$ 10,32 deve ser informado 1032 Integer(12)

amount.subtotals.addition
integer

Valor adicional ao item, será somado ao valor dos itens. Em centavos. Ex: R$ 5,25 deve ser informado 525 Integer(12)

amount.subtotals.discount
integer

Valor de desconto do item, será subtraído do valor total dos itens. Em centavos. Ex: R$ 8,50 deve ser informado 850 integer(12)

items
object

Informações dos items do pedido

items.product
string
required

Nome do produto. string(250)

items.category
string

Categoria do produto. Tabela de categorias

items.quantity
integer
required

Quantidade de produtos integer(12)

items.detail
string

Descrição adicional do produto. string(250),

items.price
integer
required

Valor inicial do item. (O valor será multiplicado de acordo com a quantidade de items.) Em centavos Ex: R$10,32 deve ser informado 1032 integer(12)

customer
object
required

Cliente do pedido. Pode ser informado o id de um cliente já existente ou a coleção de dados para a criação de um novo cliente. Cliente

customer.id
string

Caso utilize um cliente já existente, passe o ID moip do cliente aqui. Para criar um novo cliente, veja o formato do objeto em Cliente

checkoutPreferences
object

Configurações para o Checkout. Utilizado apenas quando o Checkout Moip será utilizado

checkoutPreferences.redirectUrls
object

URLs de redirecionamento.

checkoutPreferences.redirectUrls.urlSuccess
string

URL para redirecionamento em casos de sucesso. Link

checkoutPreferences.redirectUrls.urlFailure
string

URL para redirecionamento em casos de falha. Link

checkoutPreferences.installments
array of objects

Configurações de parcelamento. Define quais planos de parcelamento serão apresentados no Checkout Moip.

checkoutPreferences.installments.quantity
array of integers
required

Limitadores do plano de parcelas. Exemplo: [1, 3];

checkoutPreferences.installments.discount
integer

Valor de desconto para a parcela

checkoutPreferences.installments.addition
integer

Valor de acréscimo para a parcela

receivers
object
receivers.type
string

Define qual o tipo de recebedor do pagamento, valores possíveis: PRIMARY, SECONDARY. Veja as diferenças entre recebedores do tipo PRIMARY e SECONDARY na tabela abaixo.

receivers.feePayor
boolean

Flag para definir se o recebedor é o pagador da taxa Moip, valores possíveis: true, false. Se o feePayor não for informado, o recebedor type PRIMARY será o pagador da taxa Moip. Se houver mais de um recebedor tipo SECONDARY, somente um poderá ser o pagador da taxa.

receivers.moipAccount
object
receivers.moipAccount.id
string

Id Moip da Conta Moip que irá receber valores do pagamento. O identificador é obtido por meio da permissão Oauth string(16),

receivers.amount
object
receivers.amount.fixed
int32

Valor fixo a ser recebido. Em centavos Ex: R$10,32 deve ser informado 1032 integer(12),

receivers.amount.percentual
string

Valor percentual a ser recebido. Em percentual de 0 há 100 integer(12)

Headers

Authorization
string

Basic ou OAuth

Exemplo

Acima um exemplo de criação de um pedido com todos os parâmetros obrigatórios para o Venda Protegida. Caso você deseje utilizar o checkout com dados mínimos (campos reduzidos) entre em contato através do email marketplace@moip.com.br e solicite que o serviço seja habilitado.

PRIMARY
SECONDARY

Pagador das taxas Moip

Sim

Sim (se especificado pelo atributo feePayor)

Realizar reembolsos

Sim

Não

Responsabilidade pelos chargebacks

Sim

Não

Responder o Moip na intermediação de chargebacks

Sim

Não

{
  "ownId": "seu_identificador_proprio",
  "amount": {
    "currency": "BRL",
    "subtotals": {
      "shipping": 1000
    }
  },
  "items": [
    {
      "product": "Descrição do pedido",
      "category": "CLOTHING",
      "quantity": 1,
      "detail": "Mais info...",
      "price": 1000
    }
  ],
  "customer": {
    "ownId": "seu_identificador_proprio_de_cliente_01234",
    "fullname": "Jose Silva",
    "email": "nome@email.com",
    "birthDate": "1988-12-30",
    "taxDocument": {
      "type": "CPF",
      "number": "22222222222"
    },
    "phone": {
      "countryCode": "55",
      "areaCode": "11",
      "number": "66778899"
    },
    "shippingAddress": {
      "street": "Avenida Faria Lima",
      "streetNumber": 2927,
      "complement": 8,
      "district": "Itaim",
      "city": "Sao Paulo",
      "state": "SP",
      "country": "BRA",
      "zipCode": "01234000"
    }
  },
  "receivers": [
    {
      "type": "SECONDARY",
      "feePayor": true,
      "moipAccount": {
        "id": "MPA-E3C8493A06AE"
      },
      "amount": {
        "percentual": 30
      }
    }
  ]
}
/**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/

int[] quantity = {1,6};

Order createdOrder = api.order()
  .create(
    new OrderRequest()
      .ownId("order_own_id")
      .addItem("Nome do produto", 1, "Mais info...", 100)
      .customer(new CustomerRequest()
        .ownId("customer_own_id")
        .fullname("Jose da Silva")
        .email("josedasilva@email.com")
        .birthdate(
          new ApiDateRequest()
          .date(new Date())
        )
        .taxDocument(TaxDocumentRequest.cpf("22222222222"))
        .phone(
          new PhoneRequest()
          .setAreaCode("11")
          .setNumber("55443322")
        )
        .shippingAddressRequest(
          new ShippingAddressRequest()
            .street("Avenida Faria Lima")
            .streetNumber("3064")
            .complement("12 andar")
            .city("São Paulo")
            .state("SP")
            .district("Itaim")
            .country("BRA")
            .zipCode("01452-000")
        )
      )
      .checkoutPreferences(
        new CheckoutPreferencesRequest()
          .addInstallment(
            new InstallmentRequest()
              .quantity(quantity)
              .addition(100)
              .discount(0)
          )
          .setRedirectUrls(
            new CheckoutPreferencesRequest.RedirectUrlsRequest(
              "https://dev.moip.com.br",
              "https://dev.moip.com.br/docs"
            )
          )
      )
);
<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

try {
  $order = $moip->orders()->setOwnId(uniqid())
    ->addItem("bicicleta 1",1, "sku1", 10000)
    ->addItem("bicicleta 2",1, "sku2", 11000)
    ->addItem("bicicleta 3",1, "sku3", 12000)        
    ->setShippingAmount(3000)
	  ->setAddition(1000)
	  ->setDiscount(5000)
    ->setCustomer($customer)
    ->addInstallmentCheckoutPreferences([1, 6], 0, 100);
    ->addReceiver('MPA-VB5OGTVPCI52', 'PRIMARY', 30000, NULL, false)
    ->addReceiver('MPA-IFYRB1HBL73Z', 'SECONDARY', 2000, NULL, true);
    ->create();
} catch (Exception $e) {
  printf($e->__toString());
}
order = api.order.create({
  own_id: "ruby_sdk_1",
  items: [
    {
      product: "Nome do produto",
      quantity: 1,
      detail: "Mais info...",
      price: 1000
    }
  ],
  customer: {
    own_id: "ruby_sdk_customer_1",
    fullname: "Jose da Silva",
    email: "sandbox_v2_1401147277@email.com",
  }
})
A binary file was returned

You couldn't be authenticated

{
    "id": "ORD-KZCH1S1ORAH2",
    "ownId": "seu_identificador_proprio",
    "status": "CREATED",
    "createdAt": "2017-05-30T08:01:30.118-03",
    "updatedAt": "2017-05-30T08:01:30.118-03",
    "amount": {
        "total": 2000,
        "fees": 0,
        "refunds": 0,
        "liquid": 0,
        "otherReceivers": 0,
        "currency": "BRL",
        "subtotals": {
            "shipping": 1000,
            "addition": 0,
            "discount": 0,
            "items": 1000
        }
    },
    "items": [
        {
            "product": "Descrição do pedido",
            "category": "CLOTHING"
            "price": 1000,
            "quantity": 1,
            "detail": "Mais info..."
        }
    ],
    "customer": {
        "id": "CUS-PFDEHFFXGE5X",
        "ownId": "seu_identificador_proprio_de_cliente_01234",
        "fullname": "Jose Silva",
        "createdAt": "2017-05-30T08:01:30.119-03",
        "birthDate": "1988-12-30",
        "email": "nome@email.com",
        "phone": {
            "countryCode": "55",
            "areaCode": "11",
            "number": "66778899"
        },
        "taxDocument": {
            "type": "CPF",
            "number": "22222222222"
        },
        "shippingAddress": {
            "zipCode": "01234000",
            "street": "Avenida Faria Lima",
            "streetNumber": "2927",
            "complement": "8",
            "city": "Sao Paulo",
            "district": "Itaim",
            "state": "SP",
            "country": "BRA"
        },
        "moipAccount": {
            "id": "MPA-PQ0H8UZYNNWY"
        },
        "_links": {
            "self": {
                "href": "https://sandbox.moip.com.br/v2/customers/CUS-PFDEHFFXGE5X"
            },
            "hostedAccount": {
                "redirectHref": "https://hostedaccount-sandbox.moip.com.br?token=cc4c66e7-a5fd-48b6-94ad-3da76aab5976&id=CUS-PFDEHFFXGE5X&mpa=MPA-E3C8493A06AE"
            }
        }
    },
    "payments": [],
    "escrows": [],
    "refunds": [],
    "entries": [],
    "events": [
        {
            "type": "ORDER.CREATED",
            "createdAt": "2017-05-30T08:01:30.118-03",
            "description": ""
        }
    ],
    "receivers": [
        {
            "moipAccount": {
                "id": "MPA-E3C8493A06AE",
                "login": "seuemail@dominio.com",
                "fullname": "Seu nome"
            },
            "type": "PRIMARY",
            "amount": {
                "total": 2000,
                "fees": 0,
                "refunds": 0
            },
            "feePayor": true
        }
    ],
    "shippingAddress": {
        "zipCode": "01234000",
        "street": "Avenida Faria Lima",
        "streetNumber": "2927",
        "complement": "8",
        "city": "Sao Paulo",
        "district": "Itaim",
        "state": "SP",
        "country": "BRA"
    },
    "_links": {
        "self": {
            "href": "https://sandbox.moip.com.br/v2/orders/ORD-KZCH1S1ORAH2"
        },
        "checkout": {
            "payCheckout": {
                "redirectHref": "https://checkout-new-sandbox.moip.com.br?token=ecf62312-7f5e-40a1-9a73-9d5a3e926a0c&id=ORD-KZCH1S1ORAH2"
            },
            "payCreditCard": {
                "redirectHref": "https://checkout-new-sandbox.moip.com.br?token=ecf62312-7f5e-40a1-9a73-9d5a3e926a0c&id=ORD-KZCH1S1ORAH2&payment-method=credit-card"
            },
            "payBoleto": {
                "redirectHref": "https://checkout-new-sandbox.moip.com.br?token=ecf62312-7f5e-40a1-9a73-9d5a3e926a0c&id=ORD-KZCH1S1ORAH2&payment-method=boleto"
            },
            "payOnlineBankDebitItau": {
                "redirectHref": "https://checkout-sandbox.moip.com.br/debit/itau/ORD-KZCH1S1ORAH2"
            }
        }
    }
}
Suggest Edits

Consultar Pedido

Por meio desta API é possível consultar as informações e detalhes de um Pedido. Em casos de pedidos divididos (com split) usados em Marketplaces, a consulta realizada com as credenciais de recebedores secundários, omite informações sensíveis do Cliente tais como e-mail, cpf e telefone.

 
gethttps://sandbox.moip.com.br/v2/orders/order_id

Path Params

order_id
string
required

Headers

Authorization
string

Basic ou OAuth

/**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/

String orderId = "ORD-KZCH1S1ORAH2";
Order order = api.order().get(orderId);
System.out.println(order.toString());
<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

try {
  $order_id = 'ORD-KZCH1S1ORAH2';
  $order = $moip->orders()->get($order_id);
  print_r($order);
} catch (Exception $e) {
  printf($e->__toString());
}
order = api.order.show("ORD-V41BR451L")
A binary file was returned

You couldn't be authenticated

{
    "id": "ORD-KZCH1S1ORAH2",
    "ownId": "seu_identificador_proprio",
    "status": "CREATED",
    "createdAt": "2017-05-30T08:01:30.000-03",
    "updatedAt": "2017-05-30T08:01:30.000-03",
    "amount": {
        "total": 2000,
        "fees": 0,
        "refunds": 0,
        "liquid": 0,
        "otherReceivers": 0,
        "currency": "BRL",
        "subtotals": {
            "shipping": 1000,
            "addition": 0,
            "discount": 0,
            "items": 1000
        }
    },
    "items": [
        {
            "product": "Descrição do pedido",
            "price": 1000,
            "quantity": 1,
            "detail": "Mais info..."
        }
    ],
    "customer": {
        "id": "CUS-PFDEHFFXGE5X",
        "ownId": "seu_identificador_proprio_de_cliente_01234",
        "fullname": "Jose Silva",
        "createdAt": "2017-05-30T08:01:30.000-03",
        "birthDate": "1988-12-30",
        "email": "nome@email.com",
        "phone": {
            "countryCode": "55",
            "areaCode": "11",
            "number": "66778899"
        },
        "taxDocument": {
            "type": "CPF",
            "number": "22222222222"
        },
        "shippingAddress": {
            "zipCode": "01234000",
            "street": "Avenida Faria Lima",
            "streetNumber": "2927",
            "complement": "8",
            "city": "Sao Paulo",
            "district": "Itaim",
            "state": "SP",
            "country": "BRA"
        },
        "moipAccount": {
            "id": "MPA-PQ0H8UZYNNWY"
        },
        "_links": {
            "self": {
                "href": "https://sandbox.moip.com.br/v2/customers/CUS-PFDEHFFXGE5X"
            },
            "hostedAccount": {
                "redirectHref": "https://hostedaccount-sandbox.moip.com.br?token=cc4c66e7-a5fd-48b6-94ad-3da76aab5976&id=CUS-PFDEHFFXGE5X&mpa=MPA-E3C8493A06AE"
            }
        }
    },
    "payments": [],
    "escrows": [],
    "refunds": [],
    "entries": [],
    "events": [
        {
            "type": "ORDER.CREATED",
            "createdAt": "2017-05-30T08:01:30.000-03",
            "description": ""
        }
    ],
    "receivers": [
        {
            "moipAccount": {
                "id": "MPA-E3C8493A06AE",
                "login": "seuemail@dominio.com",
                "fullname": "Seu nome"
            },
            "type": "PRIMARY",
            "amount": {
                "total": 2000,
                "fees": 0,
                "refunds": 0
            },
            "feePayor": true
        }
    ],
    "shippingAddress": {
        "zipCode": "01234000",
        "street": "Avenida Faria Lima",
        "streetNumber": "2927",
        "complement": "8",
        "city": "Sao Paulo",
        "district": "Itaim",
        "state": "SP",
        "country": "BRA"
    },
    "_links": {
        "self": {
            "href": "https://sandbox.moip.com.br/v2/orders/ORD-KZCH1S1ORAH2"
        },
        "checkout": {
            "payCheckout": {
                "redirectHref": "https://checkout-new-sandbox.moip.com.br?token=ecf62312-7f5e-40a1-9a73-9d5a3e926a0c&id=ORD-KZCH1S1ORAH2"
            },
            "payCreditCard": {
                "redirectHref": "https://checkout-new-sandbox.moip.com.br?token=ecf62312-7f5e-40a1-9a73-9d5a3e926a0c&id=ORD-KZCH1S1ORAH2&payment-method=credit-card"
            },
            "payBoleto": {
                "redirectHref": "https://checkout-new-sandbox.moip.com.br?token=ecf62312-7f5e-40a1-9a73-9d5a3e926a0c&id=ORD-KZCH1S1ORAH2&payment-method=boleto"
            },
            "payOnlineBankDebitItau": {
                "redirectHref": "https://checkout-sandbox.moip.com.br/debit/itau/ORD-KZCH1S1ORAH2"
            }
        }
    }
}
Suggest Edits

Listar Todos os Pedidos

Por meio desta API é possível listar todos pedidos criados anteriormente. Os pedidos são ordenados pela data de criação, dos mais recentes para os mais antigos. Nesta versão da API são retornados apenas pedidos que contenham ao menos um pagamento.

 
gethttps://sandbox.moip.com.br/v2/orders

Path Params

createdAt
date
required

Data de criação do recurso. Permite o uso de todos os delimitadores.

paymentMethod
string
required

Forma de pagamento do pagamento autorizado associado ao pedido ou do último pagamento atualizado. Valores possíveis: DEBIT_CARD, BOLETO, ONLINE_BANK_FINANCING, ONLINE_BANK_DEBIT,WALLET. Use o delimitador in.

value
int32
required

Valor do pedido. Permite o uso de todos os delimitadores.

status
string
required

Status do pedido, Valores possíveis: WAITING, NOT_PAID, PAID, REVERTED. Use o delimitador in.

limit
int32
required

Quantidade de registros por busca (página). Valor default é 100.

offset
int32
required

Registro a partir do qual a busca vai retornar. Valor default é 0.

Headers

Authorization
string

Basic ou OAuth

Também é possível filtrar os resultados conforme a listagem de parâmetros disponíveis do método.

Fazendo uma busca de transações de valores entre 5000 e 10000 (em centavos), usando as formas de pagamento Cartão de Crédito e Boleto, fazendo uma query em jose silva e retornando 3 resultados.

https://sandbox.moip.com.br/v2/orders?q=pagamento do pedido&filters=status::in(PAID,WAITING)|paymentMethod::in(CREDIT_CARD,BOLETO)| amount::bt(5000,10000)&limit=3&offset=0

ATENÇÃO

Antes de fazer qualquer requisição certifique de usar o “URL Encode” nos valores enviados dentro do parâmetro filters.

Exemplo - Url Com Encode:

GET https://sandbox.moip.com.br/v2/orders?q=jose%20silva&filters%3Dstatus%3A%3Ain(PAID%2CWAITING)%7CpaymentMethod%3A%3Ain (CREDIT_CARD%2CBOLETO)%7Camount%3A%3Abt(5000%2C10000)&limit=3&offset=0)))

Atributos do retorno:

Nome Descrição Tipo
summary Resumo dos resultados da listagem structured
├─count Número de registros retornados integer(12)
└─amount Valor total dos pedidos retornados. Em centavos Ex: R$10,32 será informado 1032 integer(12)
orders Lista com a representação mínima dos Pedidos Coleção de Pedidos
_links Estrutura de links Hypermedia (HATEOAS) do recurso. structured
<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

// Listar pedidos sem nenhum tipo de filtro
$orders = $this->moip->orders()->getList();
print_r($orders);

// Listar pedidos com paginação e filtro
$pagination = new Pagination(30, 0);
            
$filter = new Filters();
  
$filter->between('createdAt', '2017-08-01', '2017-08-11');
$filter->greaterThan('amount', 100);
$filter->in('status', ['PAID', 'WAITING']);

$orders = $this->moip->orders()->getList($pagination, $filter);
print_r($orders);

// Listar pedidos com paginação, filtro e campo de pesquisa
$pagination = new Pagination(30, 0);
            
$filter = new Filters();
  
$filter->between('createdAt', '2017-08-01', '2017-08-11');
$filter->greaterThan('amount', 100);
$filter->in('status', ['PAID', 'WAITING']);

$orders = $this->moip->orders()->getList($pagination, $filter, 'joão silva');
print_r($orders);
# Listar pedidos sem filtro
orders = api.order.find_all()

# Listar pedidos com paginação
orders = api.order.find_all(limit: 10, offset: 50)

# Listar pedidos com filtros
orders = api.order.find_all(filters: { status: { in: ["PAID", "WAITING"] }, amount: { bt: [500, 1000] } })

# Consultar pedidos com valor específico
orders = api.order.find_all(q: "your_value")
/**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/

// Sem filtro
OrderListResponse orders = api.order().list();

// Com filtros
Filters filters = new Filters()
	.between("amount", "1000", "10000")
  .in("status", status);
OrderListResponse orders = api.order().list(filters);

// Com paginação
OrderListResponse orders = api.order().list(new Pagination(10,0));

// Consulta valor específico
OrderListResponse orders = api.order().list("josé silva");

// Todas as possibilidades de filtro juntas
Filters filters = new Filters()
  .between("amount", "1000", "10000")
  .in("status", status);
OrderListResponse orders = api.order().list(new Pagination(10,0), filters, "josé silva");
A binary file was returned

You couldn't be authenticated

{
    "_links": {
        "next": {
            "href": "https://test.moip.com.br/v2/orders?filters=&limit=2&offset=2"
        },
        "previous": {
            "href": "https://test.moip.com.br/v2/orders?filters=&limit=2&offset=0"
        }
    },
    "summary": {
        "count": 375,
        "amount": 3208507
    },
    "orders": [
        {
            "id": "ORD-X8PHHUMCJUYN",
            "ownId": null,
            "status": "NOT_PAID",
            "blocked": false,
            "amount": {
                "total": 10490,
                "addition": 0,
                "fees": 0,
                "deduction": 0,
                "otherReceivers": 0,
                "currency": "BRL"
            },
            "receivers": [
                {
                    "type": "PRIMARY",
                    "moipAccount": {
                        "id": "MPA-E3C8493A06AE"
                    }
                }
            ],
            "customer": {
                "fullname": "nome sobrenome",
                "email": "nome@exemplo.com.br"
            },
            "items": [
                {
                    "product": null
                }
            ],
            "payments": [
                {
                    "id": "PAY-0UBH5IAJ8KHX",
                    "installmentCount": 1,
                    "fundingInstrument": {
                        "method": "CREDIT_CARD",
                        "brand": "VISA"
                    }
                }
            ],
            "events": [],
            "_links": {
                "self": {
                    "href": "https://test.moip.com.br/v2/orders/ORD-X8PHHUMCJUYN"
                }
            },
            "createdAt": "2017-05-29T06:14:40-0300",
            "updatedAt": "2017-05-29T06:14:40-0300"
        },
        {
            "id": "ORD-PWWKSVNBMC4V",
            "ownId": null,
            "status": "NOT_PAID",
            "blocked": false,
            "amount": {
                "total": 10090,
                "addition": 0,
                "fees": 0,
                "deduction": 0,
                "otherReceivers": 0,
                "currency": "BRL"
            },
            "receivers": [
                {
                    "type": "PRIMARY",
                    "moipAccount": {
                        "id": "MPA-E3C8493A06AE"
                    }
                }
            ],
            "customer": {
                "fullname": "nome sobrenome",
                "email": "nome@exemplo.com.br"
            },
            "items": [
                {
                    "product": null
                }
            ],
            "payments": [
                {
                    "id": "PAY-XUTZMV0G5CC8",
                    "installmentCount": 1,
                    "fundingInstrument": {
                        "method": "CREDIT_CARD",
                        "brand": "VISA"
                    }
                }
            ],
            "events": [],
            "_links": {
                "self": {
                    "href": "https://test.moip.com.br/v2/orders/ORD-PWWKSVNBMC4V"
                }
            },
            "createdAt": "2017-05-28T06:09:58-0300",
            "updatedAt": "2017-05-28T06:09:58-0300"
        }
    ]
}
Suggest Edits

Lista de Status Possíveis

Lista de todos os status possíveis de um pedido.

 
Status
Descrição

CREATED

Pedido criado. Mas ainda não possui nenhum pagamento.

WAITING

Pedido aguardando confirmação de pagamento. Indica que há um pagamento de cartão em análise ou um boleto que ainda não foi confirmado pelo banco.

PAID

Pedido pago. O pagamento criado nesse pedido foi autorizado.

NOT_PAID

Pedido não pago. O pagamento criado nesse pedido foi cancelado (Pagamentos com cartão podem ser cancelados pelo Moip ou pelo Emissor do cartão, boletos são cancelados 5 dias após vencimento, débito bancário é cancelado em caso de falha).

REVERTED

Pedido revertido. Sofreu um chargeback ou foi completamente reembolsado.

Suggest Edits

Pagamentos

O Pagamento é a transação financeira que ocorre entre o Cliente e o Recebedor, seja por meio de um cartão de crédito, de um boleto bancário, ou por outro meio de pagamento. Esta API permite a criação, consulta e listagem de pagamentos.

 

Atributos:

Nome Descrição Tipo
id Id Moip do pagamento. string(16), response
status Status do pagamento. Valores possíveis: CREATED,WAITING, IN_ANALYSIS, PRE_AUTHORIZED,AUTHORIZED, CANCELLED, REFUNDED, REVERSED, SETTLED. string, response
amount Valores do pedido. structured, response
├─refunds Valor total de reembolsos do pagamento. Em centavos Ex: R$10,32 será informado 1032 integer(12)
├─fees Valor total de tarifa Moip. Em centavos Ex: R$10,32 será informado 1032 integer(12)
├─liquid Valor líquido do pagamento. Em centavos Ex: R$10,32 será informado 1032 integer(12)
├─currency Moeda utilizada no pagamento. Valores possíveis: BRL. string
└─total Valor total do pagamento. Em centavos Ex: R$10,32 será informado 1032 integer(12)
installmentCount Número de parcelas, Mínimo 1 e Máximo 12. integer(2)
delayCapture Se o pagamento deve ser pré-autorizado para captura posterior. Válido apenas para pagamentos por cartão de crédito. boolean
statementDescriptor Identificação de sua loja na fatura de cartão de crédito do comprador. string(13)
fundingInstrument Meio de pagamento utilizado. structured
├─method Meio de pagamento. Valores possíveis: CREDIT_CARD, BOLETO, ONLINE_BANK_DEBIT, WALLET. string
├─creditCard Dados do cartão de crédito utilizado no pagamento. object Cartão de Crédito
├─boleto Dados do boleto utilizado no pagamento. structured object Boleto
├─onlineBankDebit Dados da transferência bancária utilizada no pagamento. object Débito online
fees Tarifas do pagamento. structured list, response
├─type Tipo de tarifa. Valores possíveis: TRANSACTION, PRE_PAYMENT. string
└─amount Valor da tarifa. Em centavos Ex: R$10,32 será informado 1032 integer(12)
events Eventos associados ao pagamento. structured list, response
├─createdAt Data de criação do evento. date
├─type Tipo do evento. Valores possíveis: PAYMENT.WAIING, PAYMENT.AUTHORIZED, PAYMENT.IN_ANALYSIS, PRE_AUTHORIZED, PAYMENT.REFUNDED, PAYMENT.REVERSED. string
└─description Descrição do evento. string
cancellationDetails Detalhes do cancelamento de pagamentos de cartão de crédito. structured
├─cancelledBy Responsável pelo cancelamento. Valores possíveis: MOIP ou ACQUIRER. string, response
├─code Código do motivo de cancelamento. Valores possíveis: ver lista de detalhes de cancelamento number, response
└─description Descrição do motivo de cancelamento. string, response
updatedAt Data da última atualização do recurso. datetime, response
createdAt Data da criação do recurso. datetime, response
device Informações sobre o dispositivo utilizado pelo comprador no momento do pagamento. structured
├─ip IP do comprador. string(15)
├─userAgent Informações do software utilizado pelo comprador, como sistema operacional e navegador. string(256)
├─fingerprint Fingerprint do device utilizado. string(256)
├─geolocation Referência para o Pedido. structured
├ ├─latitude Latitude da localização do comprador. Valores possíveis vão de -90 até 90, com 7 decimais (Caso o valor informado exceda o máximo, criaremos o pagamento com latitude 90). decimal(9,7)
├ └─longitude Latitude da localização do comprador. Valores possíveis vão de -180 até 180, com 7 decimais (Caso o valor informado exceda o máximo, criaremos o pagamento com longitude 180). decimal(10,7)
├─self Referência para o próprio recurso. structured
├ └─href Hyperlink para o próprio recurso. link
├─order Referência para o Pedido. structured
├ ├─title Identificador do Pedido. string
├ └─href Hyperlink para o Pedido. link
└─checkout Links para checkout. Apenas será retornado o link para o meio de pagamento escolhido. object [Checkout Moip](/v2.0/
_links Estrutura de links Hypermedia (HATEOAS) do recurso. structured, response
├─self Referência para o próprio recurso. structured
├ └─href Hyperlink para o próprio recurso. link
├─order Referência para o Pedido. structured
├ ├─title Identificador do Pedido. string
├ └─href Hyperlink para o Pedido. link
└─checkout Links para checkout. Apenas será retornado o link para o meio de pagamento escolhido. object Checkout Moip

ALERTA

O valor pago em um boleto pode ser diferente do valor inicial do pedido. Sempre valide o atributo amount.total , enviados nos webhooks de pagamentos e também disponível nas consultas via API.

Suggest Edits

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.

 
posthttps://sandbox.moip.com.br/v2/orders/order_id/payments

Path Params

order_id
string
required

Body Params

installmentCount
int32

Número de parcelas. Válido para pagamentos por cartão. Se não for informado, o pagamento será realizado em 1 parcela. Mínimo 1 e Máximo 12.

statementDescriptor
string

Identificação de sua loja na fatura de cartão de crédito do comprador. string(13)

delayCapture
boolean

Se o pagamento deve ser pré-autorizado para captura posterior. Válido apenas para pagamentos por cartão de crédito.

fundingInstrument
object
required
fundingInstrument.method
string
required

Meio de pagamento. Valores possíveis: CREDIT_CARD, BOLETO, ONLINE_BANK_DEBIT, WALLET.

fundingInstrument.creditCard
string

Dados do cartão utilizado no pagamento. Pode ser usado o id de um Cartão previamente salvo, um hash de um cartão criptografado ou a coleção de dados do cartão caso você possua certificação PCI.

fundingInstrument.creditCard.id
string

Identificador do cartão de crédito no previamente salvo no Moip. string(16)

fundingInstrument.creditCard.hash
string

Dados criptografados do cartão de crédito

fundingInstrument.creditCard.number
string

Número do cartão de crédito. Requer certificação PCI. string(19)

fundingInstrument.creditCard.expirationMonth
integer
required

Mês de expiração do cartão. Requer certificação PCI. integer(2), obrigatório se utilizado o number

fundingInstrument.creditCard.expirationYear
integer
required

Ano de expiração do cartão. Requer certificação PCI. integer(4), obrigatório se utilizado o number

fundingInstrument.creditCard.cvc
integer

Código de segurança do cartão. Não enviar apenas em casos de exceção quando não existe possibilidade de captura. Exemplo: cobrança posterior em apps ou cobranças recorrentes. integer

fundingInstrument.creditCard.store
boolean

Determina durante a criação de um pagamento se o cartão de crédito utilizado deve ser salvo para oneClickBuy (default: true).l

fundingInstrument.creditCard.holder
object

Portador do cartão. structured, caso esteja utilizando o id não enviar

fundingInstrument.creditCard.holder.fullname
string
required

Nome do portador impresso no cartão. string(90)

fundingInstrument.creditCard.holder.birthdate
yyyy-mm-dd
required

Data de nascimento do portador. date(AAAA-MM-DD)

fundingInstrument.creditCard.holder.phone
object
fundingInstrument.creditCard.holder.phone.countryCode
integer

DDI (código internacional) do telefone. Valores possíveis: 55. integer(2)

fundingInstrument.creditCard.holder.phone.areaCode
integer

DDD (código local) do telefone. integer(2)

fundingInstrument.creditCard.holder.phone.number
integer

Número do telefone. integer(9)

fundingInstrument.creditCard.holder.taxDocument
object
fundingInstrument.creditCard.holder.taxDocument.type
string
required

Tipo do documento. Valores possíveis: CPF,CNPJ. string(3)

fundingInstrument.creditCard.holder.taxDocument.number
string
required

Número do documento.string(11)

fundingInstrument.creditCard.holder.billingAddress
object

Endereços de cobrança do cartão de crédito. object Endereço

fundingInstrument.boleto
object

Dados do boleto utilizado no pagamento.

fundingInstrument.boleto.expirationDate
yyyy-mm-dd
required

Data de expiração de um boleto. date

fundingInstrument.boleto.instructionLines
object

Instruções impressas no boleto.

fundingInstrument.boleto.instructionLines.first
string

Primeira linha de instrução. string

fundingInstrument.boleto.instructionLines.second
string

Segunda linha de instrução. string

fundingInstrument.boleto.instructionLines.third
string

Terceira linha de instrução. string

fundingInstrument.boleto.logoUri
string

Endereço de uma imagem com o logotipo a ser impresso no boleto. Ainda não disponível nesta versão da API. link

fundingInstrument.onlineBankDebit
object

Dados para o débito online.

fundingInstrument.onlineBankDebit.bankNumber
string

Número do banco. Valores possíveis: 341. Ver lista de bancos e códigos FEBRABAN. Atualmente disponível apenas para o banco Itaú.

fundingInstrument.onlineBankDebit.expirationDate
yyyy-mm-dd

Data de expiração do débito.

fundingInstrument.onlineBankDebit.returnUri
string

Url de redirecionamento. Ainda não disponível nesta versão da API.

device
object

Informações sobre o dispositivo utilizado pelo comprador no momento do pagamento.

device.ip
string

IP do comprador.

device.userAgent
string

Informações do software utilizado pelo comprador, como sistema operacional e navegador.

device.geolocation.latitude
float

Latitude da localização do comprador. Valores possíveis vão de -90 até 90, com 7 decimais.

device.geolocation.longitude
float

Longitude da localização do comprador. Valores possíveis vão de -180 até 180, com 7 decimais.

device.fingerprint
string

Fingerprint do device utilizado.

DICA

Para uso do device.fingerprint, recomendamos bibliotecas baseadas em Canvas Fingerprints.
Aqui , há uma boa recomendação de um serviço gratuito e open-source com essa função.

IMPORTANTE

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.

ALERTA

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

{
  "installmentCount": 1,
  "statementDescriptor": "minhaLoja.com",
  "fundingInstrument": {
    "method": "CREDIT_CARD",
    "creditCard": {
      "hash": "HhL0kbhfid+jwgj5l6Kt9EPdetDxQN8s7uKUHDYxDC/XoULjzik44rSda3EcWuOcL17Eb8JjWc1JI7gsuwg9P0rJv1mJQx+d3Dv1puQYz1iRjEWWhnB1bw0gTvnnC/05KbWN5M8oTiugmhVK02Rt2gpbcTtpS7VWyacfgesBJFavYYMljYg8p2YGHXkXrMuQiOCeemKLk420d0OTMBba27jDVVJ663HZDrObnjFXJH/4B5irkj+HO5genV+V4PYoLcOESG4nrI3oFAsMGsLLcdJo0NNvkEmJpn0e9GzureKKFYisYU+BEd9EMr/odS0VMvOYRV65HbPTspIkjl2+3Q==",
      "store": true,
      "holder": {
        "fullname": "Jose Portador da Silva",
        "birthdate": "1988-12-30",
        "taxDocument": {
          "type": "CPF",
          "number": "33333333333"
        },
        "phone": {
          "countryCode": "55",
          "areaCode": "11",
          "number": "66778899"
        }
      }
    }
  },
  "device": {
    "ip": "127.0.0.1",
    "geolocation": {
      "latitude": -33.867,
      "longitude": 151.206
    },
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36",
    "fingerprint": "QAZXswedCVGrtgBNHyujMKIkolpQAZXswedCVGrtgBNHyujMKIkolpQAZXswedCVGrtgBNHyujMKIkolpQAZXswedCVGrtgBNHyujMKIkolp"
  }
}
/**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/

Payment createdPayment = api.payment().create(
  new PaymentRequest()
    .orderId("ORD-HPMZSOM611M2")
    .installmentCount(1)
    .fundingInstrument(
      new FundingInstrumentRequest()
        .creditCard(
          new CreditCardRequest()
            .hash(CC_HASH)
            .holder(
              new HolderRequest()
                .fullname("Jose Portador da Silva")
                .birthdate("1988-10-10")
                .phone(
                  new PhoneRequest()
                    .setAreaCode("11")                                                                         .setNumber("55667788")
                )
                .taxDocument(
                  TaxDocumentRequest.cpf("22222222222")
                )
            )
        )
    )
);
<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

// Pagamento com cartão de crédito enviado por hash
$hash = 'i1naupwpTLrCSXDnigLLTlOgtm+xBWo6iX54V/hSyfBeFv3rvqa1VyQ8/pqWB2JRQX2GhzfGppXFPCmd/zcmMyDSpdnf1GxHQHmVemxu4AZeNxs+TUAbFWsqEWBa6s95N+O4CsErzemYZHDhsjEgJDe17EX9MqgbN3RFzRmZpJqRvqKXw9abze8hZfEuUJjC6ysnKOYkzDBEyQibvGJjCv3T/0Lz9zFruSrWBw+NxWXNZjXSY0KF8MKmW2Gx1XX1znt7K9bYNfhA/QO+oD+v42hxIeyzneeRcOJ/EXLEmWUsHDokevOkBeyeN4nfnET/BatcDmv8dpGXrTPEoxmmGQ==';
  
$payment = $order->payments()
  ->setCreditCardHash($hash, $customer)
  ->setInstallmentCount(3)
  ->setStatementDescriptor('teste de pag')
  ->execute();

// Pagamento com cartão de crédito e certificação PCI
$expiration_month = 12;
$expiration_year = 21;
$number_cc = '4073020000000002';
$cvc = '123';
$store_cc = true;
$payment = $order->payments()
  ->setCreditCard($expiration_month, $expiration_year,$number_cc, $cvc, $customer, $store_cc)
  ->setInstallmentCount(3)
  ->setStatementDescriptor('teste de pag')
  ->execute();

// Pagamento com boleto
$logo_uri = 'https://cdn.moip.com.br/wp-content/uploads/2016/05/02163352/logo-moip.png';
$expiration_date = new DateTime();
$instruction_lines = ['INSTRUÇÃO 1', 'INSTRUÇÃO 2', 'INSTRUÇÃO 3'];
$payment = $order->payments()  
  ->setBoleto($expiration_date, $logo_uri, $instruction_lines)
  ->execute();

// Pagamento com débito online
$bank_number = '001';
$return_uri = 'https://moip.com.br';
$expiration_date = new DateTime();
$payment = $order->payments()                    
  ->setOnlineBankDebit($bank_number, $expiration_date, $return_uri)
  ->execute();
# Pagamento com cartão de crédito
api.payment.create(order.id,
    {
        installment_count: 1,
        funding_instrument: {
            method: "CREDIT_CARD",
            credit_card: {
                hash: "valor do cartão criptografado vindo do JS",
                holder: {
                    fullname: "Jose Portador da Silva",
                    birthdate: "1988-10-10",
                    tax_document: {
                        type: "CPF",
                        number: "22222222222"
                    }
                }
            }
        }
    }
)

# Pagamento com boleto bancário
api.payment.create(order.id,
    {
      # ...
        funding_instrument: {
            method: "BOLETO",
            boleto: {
                expiration_date: "2017-09-30",
                instruction_lines: {
                    first: "Primeira linha do boleto",
                    second: "Segunda linha do boleto",
                    third: "Terceira linha do boleto"
                  },
                logo_uri: "https://sualoja.com.br/logo.jpg"
            }
        }
    }
)
A binary file was returned

You couldn't be authenticated

{
  "id": "PAY-VZ1HI48256ZX",
  "status": "IN_ANALYSIS",
  "amount": {
    "fees": 187,
    "refunds": 0,
    "liquid": 1813,
    "currency": "BRL",
    "total": 2000
  },
  "installmentCount": 1,
  "fundingInstrument": {
    "creditCard": {
      "id": "CRC-V0AAG27AAFG7",
      "brand": "MASTERCARD",
      "first6": "555566",
      "last4": "8884",
      "store": true,
      "holder": {
        "birthdate": "30/12/1988",
        "taxDocument": {
          "type": "CPF",
          "number": "33333333333"
        },
        "fullname": "Jose Portador da Silva"
      }
    },
    "method": "CREDIT_CARD"
  },
  "fees": [
    {
      "type": "TRANSACTION",
      "amount": 187
    }
  ],
  "events": [
    {
      "createdAt": "2015-01-14T12:17:50-0200",
      "type": "PAYMENT.IN_ANALYSIS"
    },
    {
      "createdAt": "2015-01-14T12:17:48-0200",
      "type": "PAYMENT.CREATED"
    }
  ],
  "device": {
    "ip": "127.0.0.1",
    "geolocation": {
      "latitude": -33.867,
      "longitude": 151.206
    },
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36",
    "fingerprint": "QAZXswedCVGrtgBNHyujMKIkolpQAZXswedCVGrtgBNHyujMKIkolpQAZXswedCVGrtgBNHyujMKIkolpQAZXswedCVGrtgBNHyujMKIkolp"
  },
  "_links": {
    "order": {
      "title": "ORD-VULX1EWDKXHF",
      "href": "https://sandbox.moip.com.br/v2/orders/ORD-VULX1EWDKXHF"
    },
    "self": {
      "href": "https://sandbox.moip.com.br/v2/payments/PAY-VZ1HI48256ZX"
    }
  },
  "updatedAt": "2015-01-14T12:17:50-0200",
  "createdAt": "2015-01-14T12:17:48-0200"
}
Suggest Edits

Consultar Pagamento

Por meio desta API é possível consultar as informações e detalhes de um Pagamento em específico.

 
gethttps://sandbox.moip.com.br/v2/payments/payment_id

Path Params

payment_id
string
required

id do pagamento em formato de hash string(16)

<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

$payment_id = 'PAY-0UBH5IAJ8KHX';
$payment = $moip->payments()->get($payment_id);
print_r($payment);
/**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/

Payment payment = api.payment().get("PAY-0UBH5IAJ8KHX");
System.out.println(payment);
pagamento = api.payment.show("PAY-CRUP19YU2VE1")
A binary file was returned

You couldn't be authenticated

{
  "id": "PAY-0UBH5IAJ8KHX",
  "status": "CANCELLED",
  "delayCapture": false,
  "amount": {
    "total": 10490,
    "fees": 645,
    "refunds": 0,
    "liquid": 9845,
    "currency": "BRL"
  },
  "installmentCount": 1,
  "fundingInstrument": {
    "creditCard": {
      "id": "CRC-I819ZYMJRTD7",
      "brand": "VISA",
      "first6": "407302",
      "last4": "0002",
      "store": true,
      "holder": {
        "birthdate": "1986-04-26",
        "birthDate": "1986-04-26",
        "taxDocument": {
          "type": "CPF",
          "number": "22222222222"
        },
        "fullname": "Nome Completo"
      }
    },
    "method": "CREDIT_CARD"
  },
  "fees": [
    {
      "type": "TRANSACTION",
      "amount": 645
    }
  ],
  "events": [
    {
      "type": "PAYMENT.CANCELLED",
      "createdAt": "2017-05-29T06:14:42.000-03"
    },
    {
      "type": "PAYMENT.CREATED",
      "createdAt": "2017-05-29T06:14:40.000-03"
    }
  ],
  "_links": {
    "self": {
      "href": "https://sandbox.moip.com.br/v2/payments/PAY-0UBH5IAJ8KHX"
    },
    "order": {
      "href": "https://sandbox.moip.com.br/v2/orders/ORD-X8PHHUMCJUYN",
      "title": "ORD-X8PHHUMCJUYN"
    }
  },
  "createdAt": "2017-05-29T06:14:40.000-03",
  "updatedAt": "2017-05-29T06:14:42.000-03"
}
Suggest Edits

Capturar Pagamento Pré-autorizado

Essa API permite a captura de um pagamento que esteja pré-autorizado no Moip. Para que você possa pré-autorizar utilize o atributo delayCapture na criação de um pagamento. Somente é possível capturar um pagamento que esteja com status PRE_AUTHORIZED.

 
posthttps://sandbox.moip.com.br/v2/payments/payment_id/capture

Path Params

payment_id
string
required

Multipagamentos

A API para autorizar multipagamentos pré-autorizados é diferente, veja aqui a documentação.

<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

$payment = $payment->capture();
print_r($payment);
/**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/

Payment capturedPayment = api.payment().capture("PAY-12312312312");
System.out.println(capturedPayment);
api.payment.capture("PAY-KT5OSI01X8QU")
A binary file was returned

You couldn't be authenticated

{
  "id": "PAY-ZJOE0VPNGIM5",
  "status": "AUTHORIZED",
  "amount": {
    "refunds": 0,
    "fees": 187,
    "liquid": 1813,
    "currency": "BRL",
    "total": 2000
  },
  "installmentCount": 1,
  "statementDescriptor": "minhaLoja.com",  
  "fundingInstrument": {
    "creditCard": {
      "id": "CRC-8XPB5E78J3C5",
      "brand": "VISA",
      "first6": "401200",
      "last4": "3335",
      "store": true,      
      "holder": {
        "birthdate": "30/12/1988",
        "taxDocument": {
          "type": "CPF",
          "number": "22222222222"
        },
        "fullname": "Jose Portador da Silva"
      }
    },
    "method": "CREDIT_CARD"
  },
  "fees": [
    {
      "type": "TRANSACTION",
      "amount": 187
    }
  ],
  "events": [
    {
      "createdAt": "2015-03-30T09:51:58-0300",
      "type": "PAYMENT.AUTHORIZED"
    },
    {
      "createdAt": "2015-03-30T09:51:41-0300",
      "type": "PAYMENT.IN_ANALYSIS"
    },
    {
      "createdAt": "2015-03-30T09:51:41-0300",
      "type": "PAYMENT.PRE_AUTHORIZED"
    },
    {
      "createdAt": "2015-03-30T09:51:38-0300",
      "type": "PAYMENT.CREATED"
    }
  ],
  "_links": {
    "order": {
      "title": "ORD-Y3HRHLCNQ4VO",
      "href": "https://sandbox.moip.com.br/v2/orders/ORD-Y3HRHLCNQ4VO"
    },
    "self": {
      "href": "https://sandbox.moip.com.br/v2/payments/PAY-ZJOE0VPNGIM5"
    }
  },
  "createdAt": "2015-03-30T09:51:38-0300",
  "updatedAt": "2015-03-30T09:51:58-0300"
}
Suggest Edits

Cancelar Pagamento Pré-autorizado

Essa API permite o cancelamento de um pagamento que esteja pré-autorizado no Moip. Para que você possa pré-autorizar utilize o atributo delayCapture na criação de um pagamento. Somente é possível capturar um pagamento que esteja com status PRE_AUTHORIZED.

 
posthttps://sandbox.moip.com.br/v2/payments/payment_id/void

Path Params

payment_id
string
required

Multipagamentos

A API para cancelar multipagamentos pré-autorizados é diferente, veja aqui a documentação.

<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

$payment = $payment->cancel();
/**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/

Payment cancelledPayment = api.payment().cancelPreAuthorized("PAY-1231231231231");
System.out.println(cancelledPayment);
api.payment.void("PAY-IXNGCU456GG4")
A binary file was returned

You couldn't be authenticated

{
  "id": "PAY-ZJOE0VPNGIM5",
  "status": "CANCELLED",
  "amount": {
    "refunds": 0,
    "fees": 187,
    "liquid": 1813,
    "currency": "BRL",
    "total": 2000
  },
  "installmentCount": 1,
  "statementDescriptor": "minhaLoja.com",  
  "fundingInstrument": {
    "creditCard": {
      "id": "CRC-8XPB5E78J3C5",
      "brand": "VISA",
      "first6": "401200",
      "last4": "3335",
      "store": true,      
      "holder": {
        "birthdate": "30/12/1988",
        "taxDocument": {
          "type": "CPF",
          "number": "22222222222"
        },
        "fullname": "Jose Portador da Silva"
      }
    },
    "method": "CREDIT_CARD"
  },
  "fees": [
    {
      "type": "TRANSACTION",
      "amount": 187
    }
  ],
  "events": [
    {
      "createdAt": "2015-03-30T09:51:58-0300",
      "type": "PAYMENT.CANCELLED"
    },
    {
      "createdAt": "2015-03-30T09:51:41-0300",
      "type": "PAYMENT.PRE_AUTHORIZED"
    },
    {
      "createdAt": "2015-03-30T09:51:41-0300",
      "type": "PAYMENT.IN_ANALYSIS"
    },
    {
      "createdAt": "2015-03-30T09:51:38-0300",
      "type": "PAYMENT.CREATED"
    }
  ],
  "_links": {
    "order": {
      "title": "ORD-Y3HRHLCNQ4VO",
      "href": "https://sandbox.moip.com.br/v2/orders/ORD-Y3HRHLCNQ4VO"
    },
    "self": {
      "href": "https://sandbox.moip.com.br/v2/payments/PAY-ZJOE0VPNGIM5"
    }
  },
  "createdAt": "2015-03-30T09:51:38-0300",
  "updatedAt": "2015-03-30T09:51:58-0300"
}
Suggest Edits

Lista de Status Possíveis

Lista de todos os status possíveis de um pagamento.

 

CREATED

Pagamento criado.

WAITING

Pagamento aguardando confirmação (Boleto não confirmado ou débito bancário pendente).

IN_ANALYSIS

Pagamento de cartão aguardando análise.

PRE_AUTHORIZED

O valor do pagamento está reservado no cartão de crédito do comprador.

AUTHORIZED

Pagamento autorizado.

CANCELLED

Pagamento cancelado (Pagamentos com cartão podem ser cancelados pelo Moip ou pelo emissor do cartão, boletos são cancelados 5 dias após vencimento, débito bancário é cancelado em caso de falha).

REFUNDED

Pagamento reembolsado (quem processa reembolsos são Moip e/ou Merchant).

REVERSED

Pagamento revertido (Chargeback. O cliente contesta a transação diretamente no emissor).

SETTLED

Pagamento liquidado. Significa que o valor da transação foi “liberado” na conta, para que o merchant possa sacar para sua conta bancária.

Suggest Edits

Custódia (Beta)

 

Feature BETA

A custódia (escrow) é uma feature atualmente em versão beta e as informações contidas nessa API ainda não estão disponíveis na Conta Moip.

IMPORTANTE

Esta é uma ferramenta exclusiva para uso de Marketplaces. O uso de custódia (Escrow), implica em bloqueio e desbloqueio de transações através de APIs.
Em caso de dúvidas sobre o funcionamento, por favor, consulte-nos.

A Custódia (escrow) é o bloqueio temporário dos lançamentos de um Pedido. Recurso usado em implementação de Marketplaces.

PRAZO DE CUSTÓDIA

Um pagamento pode permanecer em custódia por até 180 dias.

Após esse período o Moip fará a liberação do valor custodiado automaticamente.

(Esse prazo era de 45 dias e foi alterado para 180 dias em 22/06/2017).

Status de custódia

Uma custódia, assim como um pedido e um pagamento tem seu próprio status. Que indica se o valor dessa custódia está com bloqueio pendente HOLD_PENDING, bloqueado HELD ou liberado RELEASED.

Abaixo, está a descrição mais detalhada de cada um desses status:

Status
Descrição

HOLD_PENDING

Esse status ocorre quando um pagamento está AUTORIZADO e possui um registro de custódia. Nesse cenário, o valor do pagamento ainda não está bloqueado e permanece no saldo futuro.

HELD

Após a liquidação de uma transação com custódia em status HOLD_PENDING esse status é alterado para HELD e o valor deixa de fazer parte do saldo futuro para ser enviado para o saldo bloqueado.

RELEASED

Esse status ocorre quando um pagamento tem seu valor desbloqueado, independente de estar liquidado ou não. Para que uma custódia seja liberada o marketplace deverá fazer o release via API. Caso o release seja feito antes da liquidação da transação o valor da mesma permanecerá no saldo futuro e não será mais bloqueado na liquidação.

Exemplo de uma transação em custódia.

Exemplo de uma transação em custódia.

Suggest Edits

Criar um pagamento com custódia

 
posthttps://sandbox.moip.com.br/v2/orders/order_id/payments

Path Params

order_id
string
required

Body Params

escrow
object
escrow.description
string

Headers

Authorization
string
required

OAuth

ATENÇÃO

Esta é uma ferramenta exclusiva para uso de Marketplaces. O uso de custódia (Escrow), implica em bloqueio e desbloqueio de transações através de APIs.

Em caso de dúvidas sobre o funcionamento, por favor, consulte-nos.

{
  "installmentCount": 1,
  "statementDescriptor": "minhaLoja.com",
  "escrow":{
    "description" : "custódia de pagamento"
  },
  "fundingInstrument": {
    "method": "CREDIT_CARD",
    "creditCard": {
        "hash": "HhL0kbhfid+jwgj5l6Kt9EPdetDxQN8s7uKUHDYxDC/XoULjzik44rSda3EcWuOcL17Eb8JjWc1JI7gsuwg9P0rJv1mJQx+d3Dv1puQYz1iRjEWWhnB1bw0gTvnnC/05KbWN5M8oTiugmhVK02Rt2gpbcTtpS7VWyacfgesBJFavYYMljYg8p2YGHXkXrMuQiOCeemKLk420d0OTMBba27jDVVJ663HZDrObnjFXJH/4B5irkj+HO5genV+V4PYoLcOESG4nrI3oFAsMGsLLcdJo0NNvkEmJpn0e9GzureKKFYisYU+BEd9EMr/odS0VMvOYRV65HbPTspIkjl2+3Q==",
      "store": true,
      "holder": {
        "fullname": "Jose Portador da Silva",
        "birthdate": "1988-12-30",
        "taxDocument": {
          "type": "CPF",
          "number": "33333333333"
        },
        "phone": {
          "countryCode": "55",
          "areaCode": "11",
          "number": "66778899"
        }
      }
    }
  }
}
<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

try {
  $payment = $order->payments()
    ->setCreditCard(5, 2018, '4073020000000002', 123, $customer, false)
    ->setEscrow('teste de descricao')
    ->execute();
} catch (Exception $e) {
  printf($e->__toString());
}
/**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/

Payment payment = api.payment().create(
  new PaymentRequest()
    .orderId("ORD-3435DIB58HYN")
    .installmentCount(1)
    .escrow(new PaymentRequest.EscrowRequest("Teste de descricao"))
    .fundingInstrument(new FundingInstrumentRequest()
      .creditCard(
        new CreditCardRequest()
          .number("4012001037141112")
          .cvc(123)
          .expirationMonth("05")
          .expirationYear("18")
          .holder(
            new HolderRequest()
              .fullname("Jose Portador da Silva")
              .birthdate("1988-10-10")
              .phone(
                new PhoneRequest()
                  .setAreaCode("11")
                  .setNumber("55667788")
              )
              .taxDocument(TaxDocumentRequest.cpf("22222222222"))
          )
      )
    )
);
System.out.println(payment);
A binary file was returned

You couldn't be authenticated

{
  "id": "PAY-VZ1HI48256ZX",
  "status": "IN_ANALYSIS",
  "amount": {
    "fees": 187,
    "refunds": 0,
    "liquid": 1813,
    "currency": "BRL",
    "total": 2000
  },
  "installmentCount": 1,
  "fundingInstrument": {
    "creditCard": {
      "id": "CRC-V0AAG27AAFG7",
      "brand": "MASTERCARD",
      "first6": "555566",
      "last4": "8884",
      "store": true,
      "holder": {
        "birthdate": "30/12/1988",
        "taxDocument": {
          "type": "CPF",
          "number": "33333333333"
        },
        "fullname": "Jose Portador da Silva"
      }
    },
    "method": "CREDIT_CARD"
  },
  "fees": [
    {
      "type": "TRANSACTION",
      "amount": 187
    }
  ],
  "escrows": [
    {
      "id": "ECW-WG99P8TU7NYD",
      "status": "HOLD_PENDING",
      "description": "custódia de pagamento",
      "amount": 200,
      "createdAt": "2015-01-14T12:17:50-0200",
      "updatedAt": "2015-01-14T12:17:50-0200",
      "_links": {
        "self": {
          "href": "https://sandbox.moip.com.br/v2/escrows/ECW-WG99P8TU7NYD"
        },
        "order": {
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-123456789012",
          "title": "ORD-123456789012"
        },
        "payment": {
          "href": "https://sandbox.moip.com.br/v2/payments/PAY-VZ1HI48256ZX",
          "title": "PAY-VZ1HI48256ZX"
        }
      }
    }
  ],
  "events": [
    {
      "createdAt": "2015-01-14T12:17:50-0200",
      "type": "PAYMENT.IN_ANALYSIS"
    },
    {
      "createdAt": "2015-01-14T12:17:48-0200",
      "type": "PAYMENT.CREATED"
    }
  ],
  "_links": {
    "order": {
      "title": "ORD-VULX1EWDKXHF",
      "href": "https://sandbox.moip.com.br/v2/orders/ORD-VULX1EWDKXHF"
    },
    "self": {
      "href": "https://sandbox.moip.com.br/v2/payments/PAY-VZ1HI48256ZX"
    }
  },
  "updatedAt": "2015-01-14T12:17:50-0200",
  "createdAt": "2015-01-14T12:17:48-0200"
}
Suggest Edits

Liberação de custódia

 
posthttps://sandbox.moip.com.br/v2/escrows/escrow_id/release

Path Params

escrow_id
string
required

Headers

Authorization
string

OAuth

AUTENTICAÇÃO

Por questão de segurança, a liberação de uma custódia só pode ser feita mediante uso o accessToken do APP do Marketplace como autenticador.

<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

try {
  $escrow = $payment->escrows()->release();
} catch (Exception $e) {
  printf($e->__toString());
}
/**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/

Escrow escrow = api.escrow().release("ECW-ABABABABAAB");
System.out.println(escrow);
A binary file was returned

You couldn't be authenticated

{
  "id": "ECW-9OS6FAPR3FD5",
  "status": "RELEASED",
  "description": "TEST ESCROW",
  "amount": 100,
  "createdAt": "2017-05-04T05:44:39.000-03",
  "updatedAt": "2017-05-04T05:44:39.000-03",
  "_links": {
    "self": {
      "href": "https://api.moip.com.br/v2/escrows/ECW-9OS6FAPR3FD5"
    },
    "order": {
      "href": "https://api.moip.com.br/v2/orders/ORD-9OS6FAPR3FD5",
      "title": "ORD-9OS6FAPR3FD5"
    },
    "payment": {
      "href": "https://api.moip.com.br/v2/payments/PAY-9OS6FAPR3FD5",
      "title": "PAY-9OS6FAPR3FD5"
    }
  }
}
Suggest Edits

Reembolsos

 

O Reembolso é devolução de um pagamento para o consumidor. Por meio desta API é possível realizar reembolsos e consultar os detalhes de determinado reembolso.

Atributos:

Nome Descrição Tipo
id Id Moip do reembolso. string(16), response
status Status do reembolso. Valores possíveis: REQUESTED, COMPLETED, FAILED. string, response
amount Valores do reembolso. Em centavos Ex: R$10,32 deve ser informado 1032 structured
├─fees Valor da tarifa do reembolso. integer(12), response
├─currency Moeda utilizada no pedido. Valores possíveis: BRL. string, response
└─total Total reembolsado. Em centavos Ex: R$10,32 será informado 1032 integer(12), response
type Tipo do reembolso. Valores possíveis: FULL, PARTIAL. string, response
refundingInstrument Meio de pagamento utilizado no reembolso. structured
├─method Meio de pagamento. Valores possíveis: CREDIT_CARD, BANK_ACCOUNT, MOIP_ACCOUNT string
├─creditCard Cartão de crédito usado no reembolso. Object Cartão de Crédito
├─moipAccount Conta Moip usado no reembolso. Object Conta Moip
└─bankAccount Conta bancária usada no reembolso. Object Conta bancária
events Eventos do reembolso. structured
├─createdAt Data de criação do reembolso. integer(12), response
├─type Tipo do reembolso. Valores possíveis: REFUND.REQUESTED, REFUND.WAITING, REFUND.FAILED, REFUND.COMPLETED. string, response
createdAt Data da criação do recurso. datetime, response
_links Estrutura de links Hypermedia (HATEOAS) do recurso. structured, response
├─self Referência para o próprio recurso. structured
├ └─href Hyperlink para o próprio recurso. link
├─order Referência para o Pedido. structured
├ ├─title Identificador do Pedido. string
├ └─href Hyperlink para o Pedido. link
├─payment Referência para o Pagamento. structured
├ ├─title Identificador do Pagamento. string
└ └─href Hyperlink para o Pagamento. link
Suggest Edits

Reembolsar Pagamento

Esta API permite reembolsar um pagamento. Lembre-se que também é possível reembolsar diretamente o Pedido.

O reembolso pode ser feito sobre o valor total ou sobre parte do valor do pagamento. Caso o atributo amount não seja especificado será considerado o reembolso do valor total. Caso o pagamento tenha sido efetuado por cartão de crédito, o valor será devolvido para o Cliente no próprio cartão. Caso o pagamento tenha sido efetuado por outros meios, esta API possibilita que seja escolhido o meio de reembolso (conta bancária ou Conta Moip).

 
posthttps://sandbox.moip.com.br/v2/payments/payment_id/refunds

Path Params

payment_id
string
required

Caso você vá reembolsar o valor parcial do pagamento, mande o seguinte no body da request:

{
    "amount": 1000   
}

IMPORTANTE

O reembolso pode ser executado apenas pelo recebedor primário da transação, ou seja, a conta Moip que tenha o parâmetro receivers.[].type do tipo PRIMARY.

Parâmetros:

Nome Descrição Tipo
amount Valores do reembolso. Em centavos Ex: R$10,32 deve ser informado 1032 structured, opcional
refundingInstrument Meio de pagamento utilizado no reembolso. structured
├─method Meios de pagamento: BANK_ACCOUNT e MOIP_ACCOUNT. Usado apenas em pagamentos realizados com boleto ou débito online. string, condicional
├─BANK_ACCOUNT Conta bancária usada no reembolso. Conta bancária, condicional
└─MOIP_ACCOUNT Conta Moip usada no reembolso. Carteira eletrônica, condicional
<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

// Reembolso do valor total com cartão de crédito

try {
  $refund = $payment->refunds()->creditCardFull();
} catch (Exception $e) {
  printf($e->__toString());
}

// Reembolso de valor parcial com cartão de crédito
try {
  $amount = 30000;
  $refund = $payment->refunds()
    ->creditCardPartial($amount);
} catch (Exception $e) {
  printf($e->__toString());
}

// Reembolso do valor total com conta bancária
try {
  $type = 'CHECKING';
  $bank_number = '001';
  $agency_number = 4444444;
  $agency_check_number = 2;
  $account_number = 1234;
  $account_check_number = 4;
  $refund = $payment->refunds()
    ->bankAccountFull($type, $bank_number, $agency_number, $agency_check_number, $account_number, $account_check_number, $customer);
} catch (Exception $e) {
  printf($e->__toString());
}

// Reembolso de valor parcial com conta bancária
try {
  $amount = 30000;
  $type = 'SAVING';
  $bank_number = '001';
  $agency_number = 4444444;
  $agency_check_number = 2;
  $account_number = 1234;
  $account_check_number = 4;
  $refund = $payment->refunds()
    ->bankAccountPartial($amount, $type, $bank_number, $agency_number, $agency_check_number, $account_number, $account_check_number, $customer);
} catch (Exception $e) {
  printf($e->__toString());
}
/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

// Reembolso do valor parcial com cartão de crédito

Refund refund = api.refund().payment(
  new RefundRequest("PAY-70380H9B6L5R")
    .refundingInstrument(new RefundingInstrumentRequest().creditCard())
    .amount(2000)
);

// Reembolso de valor parcial com conta bancária
Refund refund = api.refund().payment(
  new RefundRequest("PAY-E4Q0N9TK0BFW")
    .refundingInstrument(new RefundingInstrumentRequest()
      .bankAccount(
        new BankAccountRequest()
          .checking()
          .bankNumber("001")
          .accountNumber("1234")
          .accountCheckNumber("1")
          .agencyNumber("4444444")
          .agencyCheckNumber("2")
          .holder(new HolderRequest()
            .fullname("Nome do Portador")
            .taxDocument(TaxDocumentRequest.cpf("22222222222"))
          )
      )
    )
    .amount(2000)
);
# Parcial
reembolso = api.refund.create("PAY-V41BR451L", amount: 2000)

# Total
reembolso = api.refund.create("PAY-V41BR451L")
A binary file was returned

You couldn't be authenticated

{
  "id": "REF-BP8AAGSG7OTY",
  "status": "COMPLETED",
  "events": [
    {
      "createdAt": "2015-02-26T19:14:25-0300",
      "type": "REFUND.COMPLETED"
    },
    {
      "createdAt": "2015-02-26T19:14:23-0300",
      "type": "REFUND.REQUESTED"
    }
  ],
  "amount": {
    "fees": 0,
    "currency": "BRL",
    "total": 2000
  },
  "type": "FULL",
  "refundingInstrument": {
    "creditCard": {
      "brand": "MASTERCARD",
      "first6": "555566",
      "last4": "8884"
    },
    "method": "CREDIT_CARD"
  },
  "createdAt": "2015-02-26T19:14:23-0300",
  "_links": {
    "payment": {
      "title": "PAY-X2VXEGV7WVFB",
      "href": "https://sandbox.moip.com.br/v2/payments/PAY-X2VXEGV7WVFB"
    },
    "order": {
      "title": "ORD-44GC0PFGU42M",
      "href": "https://sandbox.moip.com.br/v2/orders/ORD-44GC0PFGU42M"
    },
    "self": {
      "href": "https://sandbox.moip.com.br/v2/refunds/REF-BP8AAGSG7OTY"
    }
  }
}
Suggest Edits

Reembolsar Pedido

Esta API permite reembolsar um pedido.

O reembolso pode ser feito sobre o valor total ou sobre parte do valor do pagamento. Caso o atributo amount não seja especificado será considerado o reembolso do valor total. Caso o pagamento tenha sido efetuado por cartão de crédito, o valor será devolvido para o Cliente no próprio cartão. Caso o pagamento tenha sido efetuado por outros meios, esta API possibilita que seja escolhido o meio de reembolso (conta bancária, ordem de pagamento ou Conta Moip).

 
posthttps://sandbox.moip.com.br/v2/orders/order_id/refunds

Path Params

order_id
string
required

Caso você vá reembolsar o valor parcial do pedido para o cartão de crédito, mande o seguinte no body da request:

{
    "amount": 1000   
}

Caso você vá reembolsar o valor parcial do pedido para uma conta bancária, mande o seguinte no body da request:

{
  "refundingInstrument": {
    "method": "BANK_ACCOUNT",
    "bankAccount": {
      "type": "CHECKING",
      "bankNumber": "001",
      "agencyNumber": 4444444,
      "agencyCheckNumber": 2,
      "accountNumber": 1234,
      "accountCheckNumber": 1,
      "holder": {
        "fullname": "Nome do Portador",
        "taxDocument": {
          "type": "CPF",
          "number": "22222222222"
        }
      }
    }
  }
}

O modelo da response será:

200 (Created)
Content-Type: application/json
{
  "id": "REF-Q62KXZ2R69SW",
  "status": "REQUESTED",
  "events": [
    {
      "createdAt": "2015-02-27T11:35:04-0300",
      "type": "REFUND.REQUESTED"
    }
  ],
  "amount": {
    "fees": 0,
    "currency": "BRL",
    "total": 2000
  },
  "type": "FULL",
  "refundingInstrument": {
    "bankAccount": {
      "bankNumber": "001",
      "bankName": "BANCO DO BRASIL S.A.",
      "agencyNumber": "44444",
      "agencyCheckNumber": "2",
      "accountNumber": "1234",
      "accountCheckNumber": "1",
      "type": "CHECKING",
      "holder": {
        "taxDocument": {
          "type": "CPF",
          "number": "22222222222"
        },
        "fullname": "Jose Silva"
      }
    },
    "method": "BANK_ACCOUNT"
  },
  "createdAt": "2015-02-27T11:35:04-0300",
  "_links": {
    "payment": {
      "title": "PAY-T9DSISNJZ9LP",
      "href": "https://sandbox.moip.com.br/v2/payments/PAY-T9DSISNJZ9LP"
    },
    "order": {
      "title": "ORD-724JCGAOIVHZ",
      "href": "https://sandbox.moip.com.br/v2/orders/ORD-724JCGAOIVHZ"
    },
    "self": {
      "href": "https://sandbox.moip.com.br/v2/refunds/REF-Q62KXZ2R69SW"
    }
  }
}

IMPORTANTE

O reembolso pode ser executado apenas pelo recebedor primário da transação, ou seja a conta Moip que tenha o parâmetro receivers.[].type do tipo PRIMARY.

Parâmetros:

Nome Descrição Tipo
amount Valores do reembolso. Em centavos Ex: R$10,32 deve ser informado 1032 structured, opcional
refundingInstrument Meio de pagamento utilizado no reembolso. structured, condicional
├─method Meios de pagamento: BANK_ACCOUNT e MOIP_ACCOUNT. Usado apenas em pagamentos realizados com boleto ou débito online. string, condicional
├─BANK_ACCOUNT Conta bancária utilizada no reembolso. A conta bancária deve ser de mesma titularidade do CLiente utilizado no Pedido. Caso o taxDocument do Cliente não seja informado no Pedido, esta validação não será realizada. Conta bancária, condicional
└─MOIP_ACCOUNT Conta Moip usada no reembolso. Nesta versão da api não é possível enviar os dados da Conta Moip que irá receber o reembolso. Caso o Cliente possua uma Conta Moip o reeembolso será feito automaticamente. Em caso contrário, o reembolso irá falhar. Carteira eletrônica, condicional
<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

// Reembolso do valor total com cartão de crédito

try {
  $refund = $order->refunds()->creditCardFull();
} catch (Exception $e) {
  printf($e->__toString());
}

// Reembolso de valor parcial com cartão de crédito
try {
  $amount = 30000;
  $refund = $order->refunds()
    ->creditCardPartial($amount);
} catch (Exception $e) {
  printf($e->__toString());
}

// Reembolso do valor total com conta bancária
try {
  $type = 'CHECKING';
  $bank_number = '001';
  $agency_number = 4444444;
  $agency_check_number = 2;
  $account_number = 1234;
  $account_check_number = 4;
  $refund = $order->refunds()
    ->bankAccountFull($type, $bank_number, $agency_number, $agency_check_number, $account_number, $account_check_number, $customer);
} catch (Exception $e) {
  printf($e->__toString());
}

// Reembolso de valor parcial com conta bancária
try {
  $amount = 30000;
  $type = 'SAVING';
  $bank_number = '001';
  $agency_number = 4444444;
  $agency_check_number = 2;
  $account_number = 1234;
  $account_check_number = 4;
  $refund = $order->refunds()
    ->bankAccountPartial($amount, $type, $bank_number, $agency_number, $agency_check_number, $account_number, $account_check_number, $customer);
} catch (Exception $e) {
  printf($e->__toString());
}
/**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/

// Reembolso de valor parcial com cartão de crédito
Refund refund = api.refund().order(
  new RefundRequest("ORD-89SOQ6FMPJPX")
    .refundingInstrument(new RefundingInstrumentRequest().creditCard())
    .amount(2000)
);

// Reembolso de valor parcial com conta bancária
Refund refund = api.refund().order(
  new RefundRequest("ORD-GS1FSQ3SO9SY")
    .refundingInstrument(new RefundingInstrumentRequest()
      .bankAccount(
        new BankAccountRequest()
          .checking()
          .bankNumber("001")
          .accountNumber("1234")
          .accountCheckNumber("1")
          .agencyNumber("4444444")
          .agencyCheckNumber("2")
          .holder(new HolderRequest()
            .fullname("Nome do Portador")
            .taxDocument(TaxDocumentRequest.cpf("22222222222"))
          )
      )
    )
    .amount(2000)
);
# Parcial
reembolso = api.refund.create("ORD-V41BR451L", amount: 2000)

# Total
reembolso = api.refund.create("ORD-V41BR451L")
A binary file was returned

You couldn't be authenticated

{
  "id": "REF-BP8AAGSG7OTY",
  "status": "COMPLETED",
  "events": [
    {
      "createdAt": "2015-02-26T19:14:25-0300",
      "type": "REFUND.COMPLETED"
    },
    {
      "createdAt": "2015-02-26T19:14:23-0300",
      "type": "REFUND.REQUESTED"
    }
  ],
  "amount": {
    "fees": 0,
    "currency": "BRL",
    "total": 2000
  },
  "type": "FULL",
  "refundingInstrument": {
    "creditCard": {
      "brand": "MASTERCARD",
      "first6": "555566",
      "last4": "8884"
    },
    "method": "CREDIT_CARD"
  },
  "createdAt": "2015-02-26T19:14:23-0300",
  "_links": {
    "payment": {
      "title": "PAY-X2VXEGV7WVFB",
      "href": "https://sandbox.moip.com.br/v2/payments/PAY-X2VXEGV7WVFB"
    },
    "order": {
      "title": "ORD-44GC0PFGU42M",
      "href": "https://sandbox.moip.com.br/v2/orders/ORD-44GC0PFGU42M"
    },
    "self": {
      "href": "https://sandbox.moip.com.br/v2/refunds/REF-BP8AAGSG7OTY"
    }
  }
}
Suggest Edits

Consultar Reembolso

Por meio desta API é possível consultar as informações e detalhes de um Reembolso.

 
gethttps://sandbox.moip.com.br/v2/refunds/refund_id

Path Params

refund_id
string
required

Id do reembolso em formato de hash string(16) Obrigatório

/**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/

Refund refund = api.refund().get("REF-12312312312");
System.out.println(refund);
reembolso = api.refund.show("REF-V41BR451L")
A binary file was returned

You couldn't be authenticated

 {
  "id": "REF-BO0ABQCGVZVD",
  "status": "COMPLETED",
  "amount": {
    "fees": 0,
    "currency": "BRL",
    "total": 1000
  },
  "type": "PARTIAL",
  "refundingInstrument": {
    "creditCard": {
      "brand": "MASTERCARD",
      "first6": "555566",
      "last4": "8884"
    },
    "method": "CREDIT_CARD"
  },
  "createdAt": "2015-01-13T18:13:06-0200",
  "_links": {
    "payment": {
      "title": "PAY-6N4P8COQU6OS",
      "href": "https://sandbox.moip.com.br/v2/payments/PAY-6N4P8COQU6OS"
    },
    "order": {
      "title": "ORD-F78K9QTS1UN6",
      "href": "https://sandbox.moip.com.br/v2/orders/ORD-F78K9QTS1UN6"
    },
    "self": {
      "href": "https://sandbox.moip.com.br/v2/refunds/REF-BO0ABQCGVZVD"
    }
  }
}
Suggest Edits

Listar Reembolsos do Pagamento

Esta API permite listar todos os reembolsos associados a um determinado pagamento.

 
gethttps://sandbox.moip.com.br/v2/payments/payment_id/refunds

Path Params

payment_id
string
required

Id do pagamento em formato de hash string(16), obrigatório

curl --request GET \
  --url https://sandbox.moip.com.br/v2/payments/PAY-123456789012/refunds
var request = require("request");

var options = { method: 'GET',
  url: 'https://sandbox.moip.com.br/v2/payments/PAY-123456789012/refunds' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandbox.moip.com.br/v2/payments/PAY-123456789012/refunds")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://sandbox.moip.com.br/v2/payments/PAY-123456789012/refunds");

xhr.send(data);
import requests

url = "https://sandbox.moip.com.br/v2/payments/PAY-123456789012/refunds"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "refunds": [
    {
      "id": "REF-J4DZBVSRSRMU",
      "status": "COMPLETED",
      "type": "FULL",
      "amount": {
        "fees": 0,
        "currency": "BRL",
        "total": 10000
      },
      "refundingInstrument": {
        "method": "CREDIT_CARD",
        "creditCard": {
          "brand": "VISA",
          "first6": "401200",
          "last4": "3335"
        }
      },
      "events": [
        {
          "createdAt": "2015-12-05T18:57:17-0200",
          "type": "REFUND.COMPLETED"
        },
        {
          "createdAt": "2015-12-05T18:57:15-0200",
          "type": "REFUND.REQUESTED"
        }
      ],
      "_links": {
        "payment": {
          "title": "PAY-3N7TSKQ26L2I",
          "href": "https://sandbox.moip.com.br/v2/payments/PAY-3N7TSKQ26L2I"
        },
        "order": {
          "title": "ORD-1RQDM20CQW8T",
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-1RQDM20CQW8T"
        },
        "self": {
          "href": "https://sandbox.moip.com.br/v2/refunds/REF-I7IEV1RG9T1L"
        }
      },
      "createdAt": "2015-12-05T18:57:15-0200"
    }
  ]
}
Suggest Edits

Listar Reembolsos do Pedido

Esta API permite listar todos os reembolsos associados a um determinado pedido.

 
gethttps://sandbox.moip.com.br/v2/orders/orders_id/refunds

Path Params

orders_id
string
required

Id do pagamento em formato de hash. string(16), Obrigatório

curl --request GET \
  --url https://sandbox.moip.com.br/v2/orders/ORD_123456789012/refunds
var request = require("request");

var options = { method: 'GET',
  url: 'https://sandbox.moip.com.br/v2/orders/ORD_123456789012/refunds' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://sandbox.moip.com.br/v2/orders/ORD_123456789012/refunds")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://sandbox.moip.com.br/v2/orders/ORD_123456789012/refunds");

xhr.send(data);
import requests

url = "https://sandbox.moip.com.br/v2/orders/ORD_123456789012/refunds"

response = requests.request("GET", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "refunds": [
    {
      "id": "REF-J4DZBVSRSRMU",
      "status": "COMPLETED",
      "type": "FULL",
      "amount": {
        "fees": 0,
        "currency": "BRL",
        "total": 10000
      },
      "refundingInstrument": {
        "method": "CREDIT_CARD",
        "creditCard": {
          "brand": "VISA",
          "first6": "401200",
          "last4": "3335"
        }
      },
      "events": [
        {
          "createdAt": "2015-12-05T18:57:17-0200",
          "type": "REFUND.COMPLETED"
        },
        {
          "createdAt": "2015-12-05T18:57:15-0200",
          "type": "REFUND.REQUESTED"
        }
      ],
      "_links": {
        "payment": {
          "title": "PAY-3N7TSKQ26L2I",
          "href": "https://sandbox.moip.com.br/v2/payments/PAY-3N7TSKQ26L2I"
        },
        "order": {
          "title": "ORD-1RQDM20CQW8T",
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-1RQDM20CQW8T"
        },
        "self": {
          "href": "https://sandbox.moip.com.br/v2/refunds/REF-J4DZBVSRSRMU"
        }
      },
      "createdAt": "2015-12-05T18:57:15-0200"
    }
  ]
}
Suggest Edits

Multipedidos

 

O Multipedido é uma coleção de pedidos. Usado para viabilizar transações que envolvam pedidos para diferentes lojistas em um mesmo carrinho de compras. Ao cobrar um multipedido, com uma única interação do consumidor, o Moip gera múltiplos pagamentos (ex: múltiplas cobranças no cartão do cliente) e associa a cada pedido, facilitando a gestão de marketplaces e plataformas.

Importante: por definição não é possível realizar o reembolso de um pedido múltiplo. Contudo, você ainda será capaz de reembolsar cada pedido individualmente. Para isso, utilize a API de reembolso de pedidos.

Importante: para utilizar esse recurso você deverá previamente solicitar permissões para as Contas Moip a serem envolvidas na transação como recebedoras de pagamentos. Para isso, utilize o Moip Connect.

Atributos:

Nome Descrição Detalhes
id Id Moip do multipedido. string(16), response
ownId Id próprio do multipedido. Referência externa. string(65)
status Status do multipedido. Valores possíveis: CREATED, WAITING, PAID, NOT_PAID, REVERTED. string(65), response
amount Valores do multipedido. structured, response
├─currency Moeda utilizada. Valores possíveis: BRL. string
└─total Valor total do multipedido. Em centavos Ex: R$10,32 será informado 1032 integer(12)
orders Pedidos. coleção de Pedidos
createdAt Data da criação do recurso. datetime, response
updatedAt Data da atualização do recurso. datetime, response
_links Estrutura de links Hypermedia (HATEOAS) do recurso. structured, response
├─self Hyperlink para o próprio recurso. structured
├ └─href Hyperlink para o próprio recurso. link
└─checkout Links para checkout. structured Objeto: Checkout Moip
Suggest Edits

Criar Multipedido

Por meio desta API é possível criar coleções de pedidos, ou seja uma estrutura de carrinho compartilhado.

 
posthttps://sandbox.moip.com.br/v2/multiorders

Body Params

ownId
string
required

Id próprio do multipedido. Referência externa. string(65)

orders
string
required

Pedidos. O atributo receiver de cada pedido deve ser preenchido indicando quem será o recebedor primário. Coleção de Pedidos

Headers

OAuth Authentication
string
{
  "ownId": "meu_multiorder_id",
  "orders": [
    {
      "ownId": "pedido_1_id",
      "amount": {
        "currency": "BRL",
        "subtotals": {
          "shipping": 2000
        }
      },
      "items": [
        {
          "product": "Camisa Verde e Amarelo - Brasil",
          "quantity": 1,
          "detail": "Seleção Brasileira",
          "price": 2000
        }
      ],
      "customer": {
        "ownId": "customer[1234]",
        "fullname": "Joao Sousa",
        "email": "joao.sousa@email.com",
        "birthDate": "1988-12-30",
        "taxDocument": {
          "type": "CPF",
          "number": "22222222222"
        },
        "phone": {
          "countryCode": "55",
          "areaCode": "11",
          "number": "66778899"
        },
        "shippingAddress": 
          {
            "street": "Avenida Faria Lima",
            "streetNumber": 2927,
            "complement": 8,
            "district": "Itaim",
            "city": "Sao Paulo",
            "state": "SP",
            "country": "BRA",
            "zipCode": "01234000"
          }
      },
      "receivers": [
        {
          "moipAccount": {
            "id": "MPA-VB5OGTVPCI52"
          },
          "type": "PRIMARY"
        }
      ]
    },
    {
      "ownId": "pedido_2_id",
      "amount": {
        "currency": "BRL",
        "subtotals": {
          "shipping": 3000
        }
      },
      "items": [
        {
          "product": "Camisa Preta - Alemanha",
          "quantity": 1,
          "detail": "Camiseta da Copa 2014",
          "price": 1000
        }
      ],
      "customer": {
        "ownId": "customer[1234]",
        "fullname": "Joao Sousa",
        "email": "joao.sousa@email.com",
        "birthDate": "1988-12-30",
        "taxDocument": {
          "type": "CPF",
          "number": "22222222222"
        },
        "phone": {
          "countryCode": "55",
          "areaCode": "11",
          "number": "66778899"
        },
        "shippingAddress": 
          {
            "street": "Avenida Faria Lima",
            "streetNumber": 2927,
            "complement": 8,
            "district": "Itaim",
            "city": "Sao Paulo",
            "state": "SP",
            "country": "BRA",
            "zipCode": "01234000"
          }
      },
      "receivers": [
        {
          "moipAccount": {
            "id": "MPA-IFYRB1HBL73Z"
          },
          "type": "PRIMARY"
        },
        {
          "moipAccount": {
            "id": "MPA-KQB1QFWS6QNM"
          },
          "type": "SECONDARY",
          "feePayor": false,
          "amount": {
            "fixed": 55
          }
        }
      ]
    }
  ]
}
<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

try {
  $order = $moip->orders()->setOwnId(uniqid())
    ->addItem("bicicleta 1",1, "sku1", 10000)
    ->addItem("bicicleta 2",1, "sku2", 11000)
    ->addItem("bicicleta 3",1, "sku3", 12000)
    ->addItem("bicicleta 4",1, "sku4", 13000)
    ->setShippingAmount(3000)
    ->setAddition(1000)
    ->setDiscount(5000)
    ->setCustomer($customer)
    ->addReceiver('MPA-VB5OGTVPCI52', 'PRIMARY', NULL);
  
  $order2 = $moip->orders()->setOwnId(uniqid())
    ->addItem("bicicleta 1",1, "sku1", 10000)
    ->addItem("bicicleta 2",1, "sku2", 11000)
    ->addItem("bicicleta 3",1, "sku3", 12000)
    ->setShippingAmount(3000)
    ->setAddition(1000)
    ->setDiscount(5000)
    ->setCustomer($customer)
    ->addReceiver('MPA-IFYRB1HBL73Z', 'PRIMARY', NULL); 

  $multiorder = $this->moip->multiorders()
    ->setOwnId(uniqid())
    ->addOrder($order)
    ->addOrder($order2)
    ->create();
} catch (Exception $e) {
    printf($e->__toString());
}
/**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/

Multiorder multiorder = api.multiorder().create(new MultiorderRequest()
  .ownId("meu_multiorder_id")
  .addOrder(new OrderRequest()
    .ownId("pedido_1_id")
    .amount(new OrderAmountRequest()
      .subtotals(new SubtotalsRequest().shipping(2000))
      .currency("BRL")
    )
    .addItem("Camisa Verde e Amarelo - Brasil", 1, "Seleção Brasileira", 2000)
    .customer(new CustomerRequest()
      .ownId("customer[1234]")
      .fullname("Joao Sousa")
      .email("joao.sousa@email.com")
      .birthdate(new ApiDateRequest().date(new GregorianCalendar(1988, Calendar.DECEMBER, 30).getTime()))
      .taxDocument(TaxDocumentRequest.cpf("22222222222"))
      .phone(new PhoneRequest()
        .countryCode("55")
        .setAreaCode("11")
        .setNumber("66778899"))
      .shippingAddressRequest(new ShippingAddressRequest()
        .street("Avenida Faria Lima")
        .streetNumber("2927")
        .zipCode("01234000")
        .city("Sao Paulo")
        .state("SP")
        .complement("8")
        .district("Itaim"))
    )
    .addReceiver(new ReceiverRequest()
      .secondary("MPA-E3C8493A06AE", new AmountRequest().fixed(500), false))
    .addReceiver(new ReceiverRequest()
      .primary("MPA-8D5DBB4EF8B8", new AmountRequest(), true))
  )
  .addOrder(new OrderRequest()
    .ownId("pedido_2_id")
    .amount(new OrderAmountRequest()
      .subtotals(new SubtotalsRequest().shipping(3000))
      .currency("BRL")
    )
    .addItem("Camisa Preta - Alemanha", 1, "Camiseta da Copa 2014", 1000)
    .customer(new CustomerRequest()
      .ownId("customer[1234]")
      .fullname("Joao Sousa")
      .email("joao.sousa@email.com")
      .birthdate(new ApiDateRequest().date(new GregorianCalendar(1988, Calendar.DECEMBER, 30).getTime()))
      .taxDocument(TaxDocumentRequest.cpf("22222222222"))
      .phone(new PhoneRequest()
        .countryCode("55")
        .setAreaCode("11")
        .setNumber("66778899"))
      .shippingAddressRequest(new ShippingAddressRequest()
        .street("Avenida Faria Lima")
        .streetNumber("2927")
        .zipCode("01234000")
        .city("Sao Paulo")
        .state("SP")
        .complement("8")
        .district("Itaim"))
    )
    .addReceiver(new ReceiverRequest()
      .primary("MPA-123123123", new AmountRequest())
    )
  )
);
multi = api.multi_order.create(
  {
    ownId: "meu_multiorder_id",
    orders: [
      {
        # Objeto Order 1
      },
      {
        # Objeto Order 2
      }
    ]
  }
)
A binary file was returned

You couldn't be authenticated

{
  "id": "MOR-9241K3EFW5DV",
  "ownId": "meu_multiorder_id",
  "status": "CREATED",
  "createdAt": "2015-02-27T11:39:02-0300",
  "updatedAt": "",
  "amount": {
    "currency": "BRL",
    "total": 8000
  },
  "orders": [
    {
      "id": "ORD-4LFGB72U2OK1",
      "ownId": "pedido_1_id",
      "status": "CREATED",
      "createdAt": "2015-02-27T11:39:02-0300",
      "amount": {
        "total": 4000,
        "fees": 0,
        "refunds": 0,
        "liquid": 0,
        "otherReceivers": 4000,
        "currency": "BRL",
        "subtotals": {
          "shipping": 2000,
          "addition": 0,
          "discount": 0,
          "items": 2000
        }
      },
      "items": [
        {
          "product": "Camisa Verde e Amarelo - Brasil",
          "price": 2000,
          "detail": "Seleção Brasileira",
          "quantity": 1
        }
      ],
      "customer": {
        "id": "CUS-IRDAWA6Q260J",
        "ownId": "customer[1234]",
        "fullname": "Joao Sousa",
        "createdAt": "2015-02-27T11:39:02-0300",
        "birthDate": "1988-12-30T00:00:00-0200",
        "email": "joao.sousa@email.com",
        "phone": {
          "countryCode": "55",
          "areaCode": "11",
          "number": "66778899"
        },
        "taxDocument": {
          "type": "CPF",
          "number": "22222222222"
        },
        "shippingAddress": {
          "zipCode": "01234000",
          "street": "Avenida Faria Lima",
          "streetNumber": "2927",
          "complement": "8",
          "city": "Sao Paulo",
          "district": "Itaim",
          "state": "SP",
          "country": "BRA"
        },
        "moipAccount": {
          "id": "MPA-PNYDE2TGOHQ9"
        },
        "_links": {
          "self": {
            "href": "https://sandbox.moip.com.br/v2/customers/CUS-IRDAWA6Q260J"
          }
        }
      },
      "payments": [],
      "refunds": [],
      "entries": [],
      "events": [
        {
          "createdAt": "2015-02-27T11:39:02-0300",
          "description": "",
          "type": "ORDER.CREATED"
        }
      ],
      "receivers": [
        {
          "amount": {
            "fees": 0,
            "refunds": 0,
            "total": 4000
          },
          "moipAccount": {
            "fullname": "Lojista 4 Moip",
            "login": "lojista_4@labs.moip.com.br",
            "id": "MPA-VB5OGTVPCI52"
          },
          "type": "PRIMARY"
        }
      ],
      "shippingAddress": {
        "zipCode": "01234000",
        "street": "Avenida Faria Lima",
        "streetNumber": "2927",
        "complement": "8",
        "city": "Sao Paulo",
        "district": "Itaim",
        "state": "SP",
        "country": "BRA"
      },
      "_links": {
        "self": {
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-4LFGB72U2OK1"
        }
      }
    },
    {
      "id": "ORD-29P0JCAJY8ZU",
      "ownId": "pedido_2_id",
      "status": "CREATED",
      "createdAt": "2015-02-27T11:39:02-0300",
      "amount": {
        "total": 4000,
        "fees": 0,
        "refunds": 0,
        "liquid": 0,
        "otherReceivers": 4000,
        "currency": "BRL",
        "subtotals": {
          "shipping": 3000,
          "addition": 0,
          "discount": 0,
          "items": 1000
        }
      },
      "items": [
        {
          "product": "Camisa Preta - Alemanha",
          "price": 1000,
          "detail": "Camiseta da Copa 2014",
          "quantity": 1
        }
      ],
      "customer": {
        "id": "CUS-RE6XARTZD2K7",
        "ownId": "customer[1234]",
        "fullname": "Joao Sousa",
        "createdAt": "2015-02-27T11:39:02-0300",
        "birthDate": "1988-12-30T00:00:00-0200",
        "email": "joao.sousa@email.com",
        "phone": {
          "countryCode": "55",
          "areaCode": "11",
          "number": "66778899"
        },
        "taxDocument": {
          "type": "CPF",
          "number": "22222222222"
        },
        "shippingAddress": {
          "zipCode": "01234000",
          "street": "Avenida Faria Lima",
          "streetNumber": "2927",
          "complement": "8",
          "city": "Sao Paulo",
          "district": "Itaim",
          "state": "SP",
          "country": "BRA"
        },
        "moipAccount": {
          "id": "MPA-PNYDE2TGOHQ9"
        },
        "_links": {
          "self": {
            "href": "https://sandbox.moip.com.br/v2/customers/CUS-RE6XARTZD2K7"
          }
        }
      },
      "payments": [],
      "refunds": [],
      "entries": [],
      "events": [
        {
          "createdAt": "2015-02-27T11:39:02-0300",
          "description": "",
          "type": "ORDER.CREATED"
        }
      ],
      "receivers": [
        {
          "amount": {
            "fees": 0,
            "refunds": 0,
            "total": 3945
          },
          "moipAccount": {
            "fullname": "Lojista 3 Moip",
            "login": "lojista_3@labs.moip.com.br",
            "id": "MPA-IFYRB1HBL73Z"
          },
          "type": "PRIMARY"
        },
        {
          "amount": {
            "refunds": 0,
            "total": 55
          },
          "moipAccount": {
            "fullname": "Maria da Silva Santos",
            "login": "secundario_1@labs.moip.com.br",
            "id": "MPA-KQB1QFWS6QNM"
          },
          "type": "SECONDARY"
        }
      ],
      "shippingAddress": {
        "zipCode": "01234000",
        "street": "Avenida Faria Lima",
        "streetNumber": "2927",
        "complement": "8",
        "city": "Sao Paulo",
        "district": "Itaim",
        "state": "SP",
        "country": "BRA"
      },
      "_links": {
        "self": {
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-29P0JCAJY8ZU"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://sandbox.moip.com.br/v2/orders/MOR-9241K3EFW5DV"
    },
    "checkout": {
      "payOnlineBankDebitItau": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/debit/itau/MOR-9241K3EFW5DV"
      },
      "payCreditCard": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/creditcard/MOR-9241K3EFW5DV"
      }
    }
  }
}
Suggest Edits

Consultar Multipedido

Por meio desta API é possível consultar as informações e detalhes de um multipedido.

 
gethttps://sandbox.moip.com.br/v2/multiorders/multiorder_id

Path Params

multiorder_id
string
required

Id do multipagamento em formato de hash. String(16), Obrigatório

Headers

OAuth Authentication
string
<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

try {
  $multiorder_id = 'MOR-9241K3EFW5DV';
  $multiorder = $moip->multiorders()
    ->get($multiorder_id);
  print_r($multiorder);
} catch (Exception $e) {
  printf($e->__toString());
}
/**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/

Multiorder multiorder = api.multiorder().get("MOR-12312312312");
System.out.println(multiorder);
multi = api.multi_order.show("MOR-V41BR451L")
A binary file was returned

You couldn't be authenticated

{
  "id": "MOR-9241K3EFW5DV",
  "ownId": "meu_multiorder_id",
  "status": "CREATED",
  "createdAt": "2015-02-27T11:39:02-0300",
  "updatedAt": "",
  "amount": {
    "currency": "BRL",
    "total": 8000
  },
  "orders": [
    {
      "id": "ORD-4LFGB72U2OK1",
      "ownId": "pedido_1_id",
      "status": "CREATED",
      "createdAt": "2015-02-27T11:39:02-0300",
      "amount": {
        "total": 4000,
        "fees": 0,
        "refunds": 0,
        "liquid": 0,
        "otherReceivers": 4000,
        "currency": "BRL",
        "subtotals": {
          "shipping": 2000,
          "addition": 0,
          "discount": 0,
          "items": 2000
        }
      },
      "items": [
        {
          "product": "Camisa Verde e Amarelo - Brasil",
          "price": 2000,
          "detail": "Seleção Brasileira",
          "quantity": 1
        }
      ],
      "customer": {
        "id": "CUS-IRDAWA6Q260J",
        "ownId": "customer[1234]",
        "fullname": "Joao Sousa",
        "createdAt": "2015-02-27T11:39:02-0300",
        "birthDate": "1988-12-30T00:00:00-0200",
        "email": "joao.sousa@email.com",
        "phone": {
          "countryCode": "55",
          "areaCode": "11",
          "number": "66778899"
        },
        "taxDocument": {
          "type": "CPF",
          "number": "22222222222"
        },
        "shippingAddress": {
          "zipCode": "01234000",
          "street": "Avenida Faria Lima",
          "streetNumber": "2927",
          "complement": "8",
          "city": "Sao Paulo",
          "district": "Itaim",
          "state": "SP",
          "country": "BRA"
        },
        "moipAccount": {
          "id": "MPA-PNYDE2TGOHQ9"
        },
        "_links": {
          "self": {
            "href": "https://sandbox.moip.com.br/v2/customers/CUS-IRDAWA6Q260J"
          }
        }
      },
      "payments": [],
      "refunds": [],
      "entries": [],
      "events": [
        {
          "createdAt": "2015-02-27T11:39:02-0300",
          "description": "",
          "type": "ORDER.CREATED"
        }
      ],
      "receivers": [
        {
          "amount": {
            "fees": 0,
            "refunds": 0,
            "total": 4000
          },
          "moipAccount": {
            "fullname": "Lojista 4 Moip",
            "login": "lojista_4@labs.moip.com.br",
            "id": "MPA-VB5OGTVPCI52"
          },
          "type": "PRIMARY"
        }
      ],
      "shippingAddress": {
        "zipCode": "01234000",
        "street": "Avenida Faria Lima",
        "streetNumber": "2927",
        "complement": "8",
        "city": "Sao Paulo",
        "district": "Itaim",
        "state": "SP",
        "country": "BRA"
      },
      "_links": {
        "self": {
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-4LFGB72U2OK1"
        }
      }
    },
    {
      "id": "ORD-29P0JCAJY8ZU",
      "ownId": "pedido_2_id",
      "status": "CREATED",
      "createdAt": "2015-02-27T11:39:02-0300",
      "amount": {
        "total": 4000,
        "fees": 0,
        "refunds": 0,
        "liquid": 0,
        "otherReceivers": 4000,
        "currency": "BRL",
        "subtotals": {
          "shipping": 3000,
          "addition": 0,
          "discount": 0,
          "items": 1000
        }
      },
      "items": [
        {
          "product": "Camisa Preta - Alemanha",
          "price": 1000,
          "detail": "Camiseta da Copa 2014",
          "quantity": 1
        }
      ],
      "customer": {
        "id": "CUS-RE6XARTZD2K7",
        "ownId": "customer[1234]",
        "fullname": "Joao Sousa",
        "createdAt": "2015-02-27T11:39:02-0300",
        "birthDate": "1988-12-30T00:00:00-0200",
        "email": "joao.sousa@email.com",
        "phone": {
          "countryCode": "55",
          "areaCode": "11",
          "number": "66778899"
        },
        "taxDocument": {
          "type": "CPF",
          "number": "22222222222"
        },
        "shippingAddress": {
          "zipCode": "01234000",
          "street": "Avenida Faria Lima",
          "streetNumber": "2927",
          "complement": "8",
          "city": "Sao Paulo",
          "district": "Itaim",
          "state": "SP",
          "country": "BRA"
        },
        "moipAccount": {
          "id": "MPA-PNYDE2TGOHQ9"
        },
        "_links": {
          "self": {
            "href": "https://sandbox.moip.com.br/v2/customers/CUS-RE6XARTZD2K7"
          }
        }
      },
      "payments": [],
      "refunds": [],
      "entries": [],
      "events": [
        {
          "createdAt": "2015-02-27T11:39:02-0300",
          "description": "",
          "type": "ORDER.CREATED"
        }
      ],
      "receivers": [
        {
          "amount": {
            "fees": 0,
            "refunds": 0,
            "total": 3945
          },
          "moipAccount": {
            "fullname": "Lojista 3 Moip",
            "login": "lojista_3@labs.moip.com.br",
            "id": "MPA-IFYRB1HBL73Z"
          },
          "type": "PRIMARY"
        },
        {
          "amount": {
            "refunds": 0,
            "total": 55
          },
          "moipAccount": {
            "fullname": "Maria da Silva Santos",
            "login": "secundario_1@labs.moip.com.br",
            "id": "MPA-KQB1QFWS6QNM"
          },
          "type": "SECONDARY"
        }
      ],
      "shippingAddress": {
        "zipCode": "01234000",
        "street": "Avenida Faria Lima",
        "streetNumber": "2927",
        "complement": "8",
        "city": "Sao Paulo",
        "district": "Itaim",
        "state": "SP",
        "country": "BRA"
      },
      "_links": {
        "self": {
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-29P0JCAJY8ZU"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://sandbox.moip.com.br/v2/orders/MOR-9241K3EFW5DV"
    },
    "checkout": {
      "payOnlineBankDebitItau": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/debit/itau/MOR-9241K3EFW5DV"
      },
      "payCreditCard": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/creditcard/MOR-9241K3EFW5DV"
      }
    }
  }
}
Suggest Edits

Multipagamentos

O Multipagamento é uma coleção de pagamentos associados a um multipedido. Usado para a implementação de carrinhos com mais de um lojista e situações em que seja necessário cobrar de forma distinta diferentes itens dentro de um único checkout. Ao criar um multipagamento, o Moip criar automaticamente um pagamento para cada pedido do multipedido e realiza a cobrança automática.

Em casos de cartão de crédito, são geradas múltiplas autorizações, uma para cada pagamento, separando as cobranças na fatura do cliente e com isso facilitando a gestão do Marketplace ou Plataforma.

 

Parâmetros:

Nome Descrição Tipo
id Id Moip do multipagamento. string(16), response
status Status do multipagamento. Valores possíveis: WAITING, IN_ANALYSIS, PRE_AUTHORIZED,AUTHORIZED, CANCELLED, REFUNDED, REVERSED. string, response
amount Valores do multipagamento. structured
├─currency Moeda utilizada. Valores possíveis: BRL. string, response
└─total Valor total do multipagamento. Em centavos Ex: R$10,32 será informado 1032 integer(12), response
installmentCount Número de parcelas. Válido para pagamentos por cartão. Se não for informado, o pagamento será realizado em 1 parcela. Mínimo 1 e Máximo 12. integer(2)
delayCapture Opção para o uso de pré-autorização. Ao setar o atributo para "true", o pagamento será pré-autorizado e ficará disponível para captura posterior. Veja como capturar aqui. boolean
fundingInstrument Meio de pagamento utilizado. structured
├─method Meio de pagamento. Valores possíveis: CREDIT_CARD, BOLETO, ONLINE_BANK_DEBIT, WALLET. string
├─creditCard Dados do cartão de crédito utilizado no pagamento. Objecti Cartão de Crédito
├─boleto Dados do boleto utilizado no pagamento. Object Boleto
├─onlineBankDebit Dados da transferência bancária utilizada no pagamento. Object Débito Online
└─wallet Dados da carteira eletrônica utilizada no pagamento. Não disponível nesta versão da API. Object Carteira Eletrônica
cancellationDetails Detalhes do cancelamento de pagamentos de cartão de crédito. structured
├─cancelledBy Responsável pelo cancelamento. Valores possíveis: MOIP ou ACQUIRER. string, response
├─code Código do motivo de cancelamento. Valores possíveis: ver lista de Detalhes de Cancelamento de Pagamentos number, response
└─description Descrição do motivo de cancelamento. string, response
updatedAt Data da atualização do recurso. datetime, response
_links Estrutura de links Hypermedia (HATEOAS) do recurso. structured, response
├─self Hyperlink para o próprio recurso. structured
├─└─href Hyperlink para o próprio recurso. link, response
└─checkout Links para checkout. Object Checkout Moip, response
Suggest Edits

Criar Multipagamento

Essa API permite criar automaticamente pagamentos para todos os pedidos de um Pedido Múltiplo.

 
posthttps://sandbox.moip.com.br/v2/multiorders/multiorder_id/multipayments

Path Params

multiorder_id
string
required

Body Params

installmentCount
int32

Número de parcelas. Válido para pagamentos por cartão. Se não for informado, o pagamento será realizado em 1 parcela. Mínimo 1 e Máximo 12. integer(2)

delayCapture
boolean

Se o pagamento deve ser pré-autorizado para captura posterior. Válido apenas para pagamentos por cartão de crédito. Indisponível para Multipagamentos nesta versão da API.

fundingInstrument
object

Meio de pagamento utilizado.

fundingInstrument.method
string
required

Meio de pagamento. Valores possíveis: CREDIT_CARD, BOLETO, ONLINE_BANK_DEBIT, WALLET.

fundingInstrument.creditCard
string

Dados do cartão utilizado no pagamento. Pode ser usado o id de um Cartão previamente salvo, um hash de um cartão criptografado ou a coleção de dados do cartão caso você possua certificação PCI.

fundingInstrument.creditCard.id
string

Identificador do cartão de crédito no previamente salvo no Moip. string(16)

fundingInstrument.creditCard.hash
string

Dados criptografados do cartão de crédito

fundingInstrument.creditCard.number
string

Número do cartão de crédito. Requer certificação PCI. string(19)

fundingInstrument.creditCard.expirationMonth
integer
required

Mês de expiração do cartão. Requer certificação PCI. integer(2), obrigatório se utilizado o number

fundingInstrument.creditCard.expirationYear
integer
required

Ano de expiração do cartão. Requer certificação PCI. integer(4), obrigatório se utilizado o number

fundingInstrument.creditCard.cvc
integer

Código de segurança do cartão. Não enviar apenas em casos de exceção quando não existe possibilidade de captura. Exemplo: cobrança posterior em apps ou cobranças recorrentes. integer

fundingInstrument.creditCard.store
boolean

Determina durante a criação de um pagamento se o cartão de crédito utilizado deve ser salvo para oneClickBuy (default: true).l

fundingInstrument.creditCard.holder
object

Portador do cartão. structured, caso esteja utilizando o id não enviar

fundingInstrument.creditCard.holder.fullname
string
required

Nome do portador impresso no cartão. string(90)

fundingInstrument.creditCard.holder.birthdate
yyyy-mm-dd
required

Data de nascimento do portador. date(AAAA-MM-DD)

fundingInstrument.creditCard.holder.phone
object
fundingInstrument.creditCard.holder.phone.countryCode
integer

DDI (código internacional) do telefone. Valores possíveis: 55. integer(2)

fundingInstrument.creditCard.holder.phone.areaCode
integer

DDD (código local) do telefone. integer(2)

fundingInstrument.creditCard.holder.phone.number
integer

Número do telefone. integer(9)

fundingInstrument.creditCard.holder.taxDocument
object
fundingInstrument.creditCard.holder.taxDocument.type
string
required

Tipo do documento. Valores possíveis: CPF,CNPJ. string(3)

fundingInstrument.creditCard.holder.taxDocument.number
string
required

Número do documento.string(11)

fundingInstrument.creditCard.holder.billingAddress
object

Endereços de cobrança do cartão de crédito. object Endereço

fundingInstrument.boleto
object

Dados do boleto utilizado no pagamento.

fundingInstrument.boleto.expirationDate
yyyy-mm-dd
required

Data de expiração de um boleto. date

fundingInstrument.boleto.instructionLines
object

Instruções impressas no boleto.

fundingInstrument.boleto.instructionLines.first
string

Primeira linha de instrução. string

fundingInstrument.boleto.instructionLines.second
string

Segunda linha de instrução. string

fundingInstrument.boleto.instructionLines.third
string

Terceira linha de instrução. string

fundingInstrument.boleto.logoUri
string

Endereço de uma imagem com o logotipo a ser impresso no boleto. Ainda não disponível nesta versão da API. link

fundingInstrument.onlineBankDebit
object

Dados para o débito online.

fundingInstrument.onlineBankDebit.bankNumber
string

Número do banco. Valores possíveis: 341. Ver lista de bancos e códigos FEBRABAN. Atualmente disponível apenas para o banco Itaú.

fundingInstrument.onlineBankDebit.expirationDate
yyyy-mm-dd

Data de expiração do débito.

fundingInstrument.onlineBankDebit.returnUri
string

Url de redirecionamento. Ainda não disponível nesta versão da API.

Headers

OAuth Authentication
string

IMPORTANTE

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

{
  "installmentCount": 1,
  "fundingInstrument": {
    "method": "CREDIT_CARD",
    "creditCard": {
      "hash": "HhL0kbhfid+jwgj5l6Kt9EPdetDxQN8s7uKUHDYxDC/XoULjzik44rSda3EcWuOcL17Eb8JjWc1JI7gsuwg9P0rJv1mJQx+d3Dv1puQYz1iRjEWWhnB1bw0gTvnnC/05KbWN5M8oTiugmhVK02Rt2gpbcTtpS7VWyacfgesBJFavYYMljYg8p2YGHXkXrMuQiOCeemKLk420d0OTMBba27jDVVJ663HZDrObnjFXJH/4B5irkj+HO5genV+V4PYoLcOESG4nrI3oFAsMGsLLcdJo0NNvkEmJpn0e9GzureKKFYisYU+BEd9EMr/odS0VMvOYRV65HbPTspIkjl2+3Q==",
      "holder": {
        "fullname": "Jose Portador da Silva",
        "birthdate": "1988-12-30",
        "taxDocument": {
          "type": "CPF",
          "number": "33333333333"
        },
        "phone": {
          "countryCode": "55",
          "areaCode": "11",
          "number": "66778899"
        }
      }
    }
  }
}
{
  "fundingInstrument": {
    "method": "BOLETO",
    "boleto": {
      "expirationDate": "2017-09-30",
      "instructionLines": {
        "first": "Primeira linha se instrução",
        "second": "Segunda linha se instrução",
        "third": "Terceira linha se instrução"
      },
      "logoUri": "http://"
    }
  }
}
{
  "fundingInstrument": {
    "method": "ONLINE_BANK_DEBIT",
    "onlineBankDebit": {
      "bankNumber": "001",
      "expirationDate": "2017-12-30",
      "returnUri": "http://"
    }
  }
}
<?php

/**
* Este exemplo usa a SDK do Moip de PHP, disponível 
* em: https://github.com/moip/moip-sdk-php
*/

// Multipagamento de cartão de crédito com hash
try {
  $hash = 'i1naupwpTLrCSXDnigLLTlOgtm+xBWo6iX54V/hSyfBeFv3rvqa1VyQ8/pqWB2JRQX2GhzfGppXFPCmd/zcmMyDSpdnf1GxHQHmVemxu4AZeNxs+TUAbFWsqEWBa6s95N+O4CsErzemYZHDhsjEgJDe17EX9MqgbN3RFzRmZpJqRvqKXw9abze8hZfEuUJjC6ysnKOYkzDBEyQibvGJjCv3T/0Lz9zFruSrWBw+NxWXNZjXSY0KF8MKmW2Gx1XX1znt7K9bYNfhA/QO+oD+v42hxIeyzneeRcOJ/EXLEmWUsHDokevOkBeyeN4nfnET/BatcDmv8dpGXrTPEoxmmGQ==';
  $payment = $multiorder->multipayments()
    ->setCreditCardHash($hash, $customer)
	  ->setInstallmentCount(3)
	  ->setStatementDescriptor('teste de pag')
	  ->setDelayCapture(false)
	  ->execute();
} catch (Exception $e) {
  printf($e->__toString());
}

// Multipagamento de cartão de crédito com certificação PCI
try {
  $expiration_month = 12;
  $expiration_year = 21;
  $number_cc = '4073020000000002';
  $cvc = '123';
  $store_cc = true;
  $payment = $multiorder->multipayments()
	  ->setCreditCard($expiration_month, $expiration_year,$number_cc, $cvc, $customer, $store_cc)
	  ->setInstallmentCount(3)
	  ->setStatementDescriptor('teste de pag')
	  ->setDelayCapture(false)
	  ->execute();
} catch (Exception $e) {
  printf($e->__toString());
}

// Multipagamento com boleto
$logo_uri = 'https://cdn.moip.com.br/wp-content/uploads/2016/05/02163352/logo-moip.png';
$expiration_date = new DateTime();
$instruction_lines = ['INSTRUÇÃO 1', 'INSTRUÇÃO 2', 'INSTRUÇÃO 3'];
try {
  $payment = $multiorder->multipayments()  
    ->setBoleto($expiration_date, $logo_uri, $instruction_lines)
    ->execute();
} catch (Exception $e) {
  printf($e->__toString());
}
/**
* Este exemplo usa a SDK do Moip de Java, disponível 
* em: https://github.com/moip/moip-sdk-java
*/

// Multipagamento de cartão de crédito com hash
Multipayment multipayment = api.multipayment().create(new PaymentRequest()
  .orderId("MOR-1231231231")
  .installmentCount(1)
  .delayCapture(false)
  .fundingInstrument(
    new FundingInstrumentRequest()
      .creditCard(
        new CreditCardRequest()
          .hash(CC_HASH)
          .holder(
            new HolderRequest()
              .fullname("Jose Portador da Silva")
              .birthdate("1988-10-10")
              .phone(
                new PhoneRequest()
                  .setAreaCode("11")
                  .setNumber("55667788")
              )
              .taxDocument(TaxDocumentRequest.cpf("22222222222"))
          )
      )
  )
);

// Multipagamento com boleto
Multipayment multipayment = api.multipayment().create(new PaymentRequest()
  .orderId("MOR-1231231231")
  .installmentCount(1)
  .fundingInstrument(new FundingInstrumentRequest()
    .boleto(new BoletoRequest()
      .expirationDate(new ApiDateRequest().date(
        new GregorianCalendar(2017, Calendar.SEPTEMBER, 30).getTime())
      )
      .instructionLines(new InstructionLinesRequest()
        .first("Primeira linha se instrução")
        .second("Segunda linha se instrução")
        .third("Terceira linha se instrução")
      )
      .logoUri("http://")
    )
  )
);
multi_pag = api.multi_payment.create("MOR-V41BR451L",
  {
    installmentCount: 1,
    fundingInstrument: {
      # ... 
    }
  }
)
A binary file was returned

You couldn't be authenticated

{
  "id": "MPY-8MMS9Y8TE2IK",
  "status": "WAITING",
  "amount": {
    "currency": "BRL",
    "total": 8000
  },
  "installmentCount": 1,
  "payments": [
    {
      "id": "PAY-YVP2NVPMV6YC",
      "status": "WAITING",
      "amount": {
        "fees": 335,
        "refunds": 0,
        "liquid": 3665,
        "currency": "BRL",
        "total": 4000
      },
      "installmentCount": 1,
      "fundingInstrument": {
        "creditCard": {
          "id": "CRC-31VUZTMZVION",
          "brand": "MASTERCARD",
          "first6": "555566",
          "last4": "8884",
          "holder": {
            "birthdate": "30/12/1988",
            "taxDocument": {
              "type": "CPF",
              "number": "33333333333"
            },
            "fullname": "Jose Portador da Silva"
          }
        },
        "method": "CREDIT_CARD"
      },
      "fees": [
        {
          "type": "TRANSACTION",
          "amount": 335
        }
      ],
      "events": [
        {
          "createdAt": "2015-01-14T14:07:34-0200",
          "type": "PAYMENT.WAITING"
        },
        {
          "createdAt": "2015-01-14T14:07:32-0200",
          "type": "PAYMENT.CREATED"
        }
      ],
      "_links": {
        "order": {
          "title": "ORD-H31PC0X9WTHR",
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-H31PC0X9WTHR"
        },
        "self": {
          "href": "https://sandbox.moip.com.br/v2/payments/PAY-YVP2NVPMV6YC"
        }
      },
      "updatedAt": "2015-01-14T14:07:34-0200",
      "createdAt": "2015-01-14T14:07:32-0200"
    },
    {
      "id": "PAY-78WM5WUDITVI",
      "status": "WAITING",
      "amount": {
        "fees": 335,
        "refunds": 0,
        "liquid": 3665,
        "currency": "BRL",
        "total": 4000
      },
      "installmentCount": 1,
      "fundingInstrument": {
        "creditCard": {
          "id": "CRC-GTVZJDJ47I34",
          "brand": "MASTERCARD",
          "first6": "555566",
          "last4": "8884",
          "holder": {
            "birthdate": "30/12/1988",
            "taxDocument": {
              "type": "CPF",
              "number": "33333333333"
            },
            "fullname": "Jose Portador da Silva"
          }
        },
        "method": "CREDIT_CARD"
      },
      "fees": [
        {
          "type": "TRANSACTION",
          "amount": 335
        }
      ],
      "events": [
        {
          "createdAt": "2015-01-14T14:07:34-0200",
          "type": "PAYMENT.WAITING"
        },
        {
          "createdAt": "2015-01-14T14:07:33-0200",
          "type": "PAYMENT.CREATED"
        }
      ],
      "_links": {
        "order": {
          "title": "ORD-3PJ1LMDGGAZ1",
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-3PJ1LMDGGAZ1"
        },
        "self": {
          "href": "https://sandbox.moip.com.br/v2/payments/PAY-78WM5WUDITVI"
        }
      },
      "updatedAt": "2015-01-14T14:07:34-0200",
      "createdAt": "2015-01-14T14:07:33-0200"
    }
  ],
  "_links": {
    "multiorder": {
      "href": "https://sandbox.moip.com.br/v2/multiorders/MOR-DT554VQVBYCY"
    },
    "self": {
      "href": "https://sandbox.moip.com.br/v2/multipayments/MPY-8MMS9Y8TE2IK"
    }
  }
}
{
    "id": "MPY-0CUMZOZVWFO9",
    "status": "WAITING",
    "amount": {
        "total": 8000,
        "currency": "BRL"
    },
    "installmentCount": 1,
    "fundingInstrument": {
        "boleto": {
            "expirationDate": "2017-09-30",
            "lineCode": "23793.39126 60000.107999 22001.747900 7 72980000004000",
            "logoUri": "http://",
            "instructionLines": {
                "first": "Primeira linha se instrução",
                "second": "Segunda linha se instrução",
                "third": "Terceira linha se instrução"
            }
        },
        "method": "BOLETO"
    },
    "payments": [
        {
            "id": "PAY-8M75I5IITET6",
            "status": "WAITING",
            "delayCapture": false,
            "amount": {
                "total": 4000,
                "fees": 0,
                "refunds": 0,
                "liquid": 4000,
                "currency": "BRL"
            },
            "installmentCount": 1,
            "fundingInstrument": {
                "boleto": {
                    "expirationDate": "2017-09-30",
                    "logoUri": "http://",
                    "instructionLines": {
                        "first": "Primeira linha se instrução",
                        "second": "Segunda linha se instrução",
                        "third": "Terceira linha se instrução"
                    }
                },
                "method": "BOLETO"
            },
            "fees": [
                {
                    "type": "TRANSACTION",
                    "amount": 0
                }
            ],
            "events": [
                {
                    "type": "PAYMENT.CREATED",
                    "createdAt": "2017-06-05T09:52:50.000-03"
                },
                {
                    "type": "PAYMENT.WAITING",
                    "createdAt": "2017-06-05T09:52:50.000-03"
                }
            ],
            "receivers": [
                {
                    "moipAccount": {
                        "id": "MPA-VB5OGTVPCI52",
                        "login": "lojista_1@labs.moip.com.br",
                        "fullname": "Lojista 1 Moip"
                    },
                    "type": "PRIMARY",
                    "amount": {
                        "total": 4000,
                        "refunds": 0
                    }
                }
            ],
            "_links": {
                "self": {
                    "href": "https://sandbox.moip.com.br/v2/payments/PAY-8M75I5IITET6"
                },
                "order": {
                    "href": "https://sandbox.moip.com.br/v2/orders/ORD-M5AHK7HRNX72",
                    "title": "ORD-M5AHK7HRNX72"
                }
            },
            "createdAt": "2017-06-05T09:52:50.000-03",
            "updatedAt": "2017-06-05T09:52:50.000-03"
        },
        {
            "id": "PAY-58CJE5Y6K8WD",
            "status": "WAITING",
            "delayCapture": false,
            "amount": {
                "total": 4000,
                "fees": 0,
                "refunds": 0,
                "liquid": 4000,
                "currency": "BRL"
            },
            "installmentCount": 1,
            "fundingInstrument": {
                "boleto": {
                    "expirationDate": "2017-09-30",
                    "logoUri": "http://",
                    "instructionLines": {
                        "first": "Primeira linha se instrução",
                        "second": "Segunda linha se instrução",
                        "third": "Terceira linha se instrução"
                    }
                },
                "method": "BOLETO"
            },
            "fees": [
                {
                    "type": "TRANSACTION",
                    "amount": 0
                }
            ],
            "events": [
                {
                    "type": "PAYMENT.CREATED",
                    "createdAt": "2017-06-05T09:52:50.000-03"
                },
                {
                    "type": "PAYMENT.WAITING",
                    "createdAt": "2017-06-05T09:52:50.000-03"
                }
            ],
            "receivers": [
                {
                    "moipAccount": {
                        "id": "MPA-73YA1Y4R0B",
                        "login": "kezyaantunes",
                        "fullname": "kezya davi"
                    },
                    "type": "PRIMARY",
                    "amount": {
                        "total": 3945,
                        "refunds": 0
                    }
                },
                {
                    "moipAccount": {
                        "id": "MPA-BFF5C2BE1AC5",
                        "login": "davienzo@mailiantor.com",
                        "fullname": "enzo davi"
                    },
                    "type": "SECONDARY",
                    "amount": {
                        "total": 55,
                        "fees": 0,
                        "refunds": 0
                    },
                    "feePayor": false
                }
            ],
            "_links": {
                "self": {
                    "href": "https://sandbox.moip.com.br/v2/payments/PAY-58CJE5Y6K8WD"
                },
                "order": {
                    "href": "https://sandbox.moip.com.br/v2/orders/ORD-MGZNBIW5H6IE",
                    "title": "ORD-MGZNBIW5H6IE"
                }
            },
            "createdAt": "2017-06-05T09:52:50.000-03",
            "updatedAt": "2017-06-05T09:52:50.000-03"
        }
    ],
    "_links": {
        "self": {
            "href": "https://sandbox.moip.com.br/v2/multipayments/MPY-0CUMZOZVWFO9"
        },
        "multiorder": {
            "href": "https://sandbox.moip.com.br/v2/multiorders/MOR-Q5FO4UJ48G63"
        },
        "checkout": {
            "payBoleto": {
                "redirectHref": "https://checkout-sandbox.moip.com.br/boleto/MPY-0CUMZOZVWFO9"
            }
        }
    }
}
{
    "id": "MPY-6G3X3PVCVM33",
    "status": "WAITING",
    "amount": {
        "total": 8000,
        "currency": "BRL"
    },
    "installmentCount": 1,
    "payments": [
        {
            "id": "PAY-LXENQ51DI2S2",
            "status": "WAITING",
            "delayCapture": false,
            "amount": {
                "total": 4000,
                "fees": 0,
                "refunds": 0,
                "liquid": 4000,
                "currency": "BRL"
            },
            "installmentCount": 1,
            "fundingInstrument": {
                "method": "ONLINE_BANK_DEBIT",
                "onlineBankDebit": {
                    "bankNumber": "001",
                    "expirationDate": "2017-12-30",
                    "bankName": "BANCO DO BRASIL S.A."
                }
            },
            "fees": [
                {
                    "type": "TRANSACTION",
                    "amount": 0
                }
            ],
            "events": [
                {
                    "type": "PAYMENT.CREATED",
                    "createdAt": "2017-06-05T09:56:51.000-03"
                },
                {
                    "type": "PAYMENT.WAITING",
                    "createdAt": "2017-06-05T09:56:51.000-03"
                }
            ],
            "receivers": [
                {
                    "moipAccount": {
                        "id": "MPA-VB5OGTVPCI52",
                        "login": "lojista_1@labs.moip.com.br",
                        "fullname": "Lojista 1 Moip"
                    },
                    "type": "PRIMARY",
                    "amount": {
                        "total": 4000,
                        "refunds": 0
                    }
                }
            ],
            "_links": {
                "self": {
                    "href": "https://sandbox.moip.com.br/v2/payments/PAY-LXENQ51DI2S2"
                },
                "order": {
                    "href": "https://sandbox.moip.com.br/v2/orders/ORD-J8VW5EEX1MTC",
                    "title": "ORD-J8VW5EEX1MTC"
                }
            },
            "createdAt": "2017-06-05T09:56:51.000-03",
            "updatedAt": "2017-06-05T09:56:51.000-03"
        },
        {
            "id": "PAY-69THLXEJ4J9V",
            "status": "WAITING",
            "delayCapture": false,
            "amount": {
                "total": 4000,
                "fees": 0,
                "refunds": 0,
                "liquid": 4000,
                "currency": "BRL"
            },
            "installmentCount": 1,
            "fundingInstrument": {
                "method": "ONLINE_BANK_DEBIT",
                "onlineBankDebit": {
                    "bankNumber": "001",
                    "expirationDate": "2017-12-30",
                    "bankName": "BANCO DO BRASIL S.A."
                }
            },
            "fees": [
                {
                    "type": "TRANSACTION",
                    "amount": 0
                }
            ],
            "events": [
                {
                    "type": "PAYMENT.CREATED",
                    "createdAt": "2017-06-05T09:56:51.000-03"
                },
                {
                    "type": "PAYMENT.WAITING",
                    "createdAt": "2017-06-05T09:56:51.000-03"
                }
            ],
            "receivers": [
                {
                    "moipAccount": {
                        "id": "MPA-73YA1Y4R0B",
                        "login": "kezyaantunes",
                        "fullname": "kezya davi"
                    },
                    "type": "PRIMARY",
                    "amount": {
                        "total": 3945,
                        "refunds": 0
                    }
                },
                {
                    "moipAccount": {
                        "id": "MPA-BFF5C2BE1AC5",
                        "login": "davienzo@mailiantor.com",
                        "fullname": "enzo davi"
                    },
                    "type": "SECONDARY",
                    "amount": {
                        "total": 55,
                        "fees": 0,
                        "refunds": 0
                    },
                    "feePayor": false
                }
            ],
            "_links": {
                "self": {
                    "href": "https://sandbox.moip.com.br/v2/payments/PAY-69THLXEJ4J9V"
                },
                "order": {
                    "href": "https://sandbox.moip.com.br/v2/orders/ORD-QW8I4OF0U9Z0",
                    "title": "ORD-QW8I4OF0U9Z0"
                }
            },
            "createdAt": "2017-06-05T09:56:51.000-03",
            "updatedAt": "2017-06-05T09:56:51.000-03"
        }
    ],
    "_links": {
        "self": {
            "href": "https://sandbox.moip.com.br/v2/multipayments/MPY-6G3X3PVCVM33"
        },
        "multiorder": {
            "href": "https://sandbox.moip.com.br/v2/multiorders/MOR-5MV8LQXJFPJP"
        },
        "checkout": {
            "payOnlineBankDebitItau": {
                "redirectHref": "https://checkout-sandbox.moip.com.br/debit/itau/MPY-6G3X3PVCVM33"
            }
        }
    }
}
<