NAV

Introdução

Bem-vindo a nova API de pagamentos do Moip. Neste portal você encontra toda a referência de nossa API. Para acessar a documentação de negócios com clique aqui.

BETA As novas APIs do Moip /v2 ainda estão em beta.

Queremos dar aos desenvolvedores e clientes Moip a melhor experiência possível por isso temos um número limitado de convites liberados a cada semana, clique aqui e peça agora mesmo um convite.

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

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.

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. [object 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. object 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

Criar cliente [POST]

Por meio desta API é possível criar um Cliente. Você pode criar um cliente com dados de cartão para utilizá-lo posteriormente.

Endpoint

POST https://sandbox.moip.com.br/v2/customers

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{
  "ownId": "meu_id_sandbox_1231234",
  "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"
  }
}
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = '{
  "ownId": "meu_id_sandbox_1231234",
  "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"
  }
}'

headers = {
  :content_type => 'application/json',
  :authorization => 'Basic MEVSVkROMzg2V0UzUlpSSTRZWUc2UUNETE1KNTdMQlI6U1JaR0hSWFlPVDBQVkRMUkIzWUU4WFFXTE5MQTBKUlhUS09JRFZEUQ=='
}

response = RestClient.post 'https://sandbox.moip.com.br/v2/customers', values, headers
puts response
from urllib2 import Request, urlopen

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Basic MEVSVkROMzg2V0UzUlpSSTRZWUc2UUNETE1KNTdMQlI6U1JaR0hSWFlPVDBQVkRMUkIzWUU4WFFXTE5MQTBKUlhUS09JRFZEUQ=='
}

values = """
  {
  "ownId": "meu_id_sandbox_1231234",
  "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"
  }
}
"""

request = Request('https://sandbox.moip.com.br/v2/customers', data=values, headers=headers)

response_body = urlopen(request).read()
print response_body
String endpoint = "sandbox.moip.com.br";
String token = "01010101010101010101010101010101";
String key = "ABABABABABABABABABABABABABABABABABABABAB";

Moip moip = new Moip(new MoipBasicAuth(token, key), endpoint);

Customer customer = moip.customers()
                        .setOwnId("sandbox_v2_1401147277")
                        .setFullname("Jose Silva")
                        .setEmail("sandbox_v2_1401147277@email.com")
                        .setBirthDate("1988-12-30")
                        .setTaxDocument("33333333333", "CPF")
                        .setPhone("11", "66778899", "55")
                        .addAddress("BILLING",
                                    "Avenida Faria Lima", "2927",
                                    "Itaim", "Sao Paulo", "SP",
                                    "01234000", "8")
                        .create();
<?php
require 'vendor/autoload.php';

use Moip\Moip;
use Moip\MoipBasicAuth;

$endpoint = 'sandbox.moip.com.br';
$token = '01010101010101010101010101010101';
$key = 'ABABABABABABABABABABABABABABABABABABABAB';

$moip = new Moip(new MoipBasicAuth($token, $key), $endpoint);

$customer = $moip->customers()->setOwnId('sandbox_v2_1401147277')
                              ->setFullname('Jose Silva')
                              ->setEmail('sandbox_v2_1401147277@email.com')
                              ->setBirthDate('1988-12-30')
                              ->setTaxDocument('33333333333')
                              ->setPhone(11, 66778899)
                              ->addAddress('BILLING',
                                           'Avenida Faria Lima', 2927,
                                           'Itaim', 'Sao Paulo', 'SP',
                                           '01234000', 8)
                              ->create();

Response:

201 (Created)
Content-Type: application/json
{
  "id": "CUS-Y6L4AGQN8HKQ",
  "ownId": "meu_id_sandbox_1231234",
  "fullname": "Jose Silva",
  "createdAt": "2015-01-14T11:28:22-0200",
  "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"
  },
  "moipAccount": {
    "id": "MPA-M1M01PACC0NT"
  },
  "_links": {
    "self": {
      "href": "https://sandbox.moip.com.br/v2/customers/CUS-Y6L4AGQN8HKQ"
    },
    "hostedAccount": {
      "redirectHref": "http://hostedaccount.moip.com.br?token=97aa89b7-89bb-4a48-89eb-52d679dbc7c7&id=CUS-Y6L4AGQN8HKQ&mpa=MPA-M1VCC0UNt"
    }    
  }
}

Parâmetros:

Nome Descrição Detalhes
___________________
ownId Id próprio do cliente. Referência externa. string(65), obrigatório
fullname Nome completo do cliente. string(90), obrigatório
email Email do cliente. string(45), obrigatório
phone Telefone do cliente. structured
├─countryCode DDI (código internacional) do telefone. Valores possíveis: 55. integer(2), opcional *
├─areaCode DDD (código local) do telefone. integer(2), opcional *
└─number Número do telefone. integer(9), opcional *
birthDate Data de nascimento do cliente. date(AAAA-MM-DD), opcional *
taxDocument Documento fiscal. structured
├─type Tipo do documento. Valores possíveis: CPF,CNPJ. string(3), opcional *
└─number Número do documento. string(11), opcional *
shippingAddress Endereços de entrega do cliente. object Endereço, opcional *
fundingInstrument Instrumento de cobrança. structured
├─method Método do instrumento de cobrança. Valores possíveis: CREDIT_CARD string opcional
└─creditCard Cartão de crédito. object Cartão de crédito opcional
fundingInstruments Instrumento de cobrança. structured list
├─method Método do instrumento de cobrança. Valores possíveis: CREDIT_CARD string opcional
└─creditCard Cartão de crédito. object Cartão de crédito opcional

*Campos obrigatórios para que a transação seja elegível ao Venda Protegida

Consultar cliente [GET]

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

Endpoint

GET https://sandbox.moip.com.br/v2/customers/{customer_id}

Exemplo

GET https://sandbox.moip.com.br/v2/customers/CUS-Y6L4AGQN8HKQ

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

headers = {
  :content_type => 'application/json',
  :authorization => 'Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=='
}

response = RestClient.get 'https://sandbox.moip.com.br/v2/customers/id', headers
puts response
from urllib2 import Request, urlopen

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=='
}
request = Request('https://sandbox.moip.com.br/v2/customers/id', headers=headers)

response_body = urlopen(request).read()
print response_body
String endpoint = "sandbox.moip.com.br";
String token = "01010101010101010101010101010101";
String key = "ABABABABABABABABABABABABABABABABABABABAB";

Moip moip = new Moip(new MoipBasicAuth(token, key), endpoint);

Customer customer = moip.customers().get("CUS-Y6L4AGQN8HKQ");
<?php
require 'vendor/autoload.php';

use Moip\Moip;
use Moip\MoipBasicAuth;

$endpoint = 'sandbox.moip.com.br';
$token = '01010101010101010101010101010101';
$key = 'ABABABABABABABABABABABABABABABABABABABAB';

$moip = new Moip(new MoipBasicAuth($token, $key), $endpoint);

$customer = $moip->customers()->get('CUS-Y6L4AGQN8HKQ');

Response:

200 (OK)
Content-Type: application/json
 {
  "id": "CUS-Y6L4AGQN8HKQ",
  "ownId": "meu_id_sandbox_1231234",
  "fullname": "Jose Silva",
  "createdAt": "2015-01-14T11:28:22-0200",
  "birthDate": "1988-12-30T00:00:00-0200",
  "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"
  },
  "moipAccount": {
    "id": "MPA-M1M01PACC0NT"
  },
  "_links": {
    "self": {
      "href": "https://sandbox.moip.com.br/v2/customers/CUS-Y6L4AGQN8HKQ"
    }
  }
}

Parâmetros:

Nome Descrição Detalhes
id Id do cliente em formato de hash. string(16), obrigatório

Adicionar cartão a um cliente [POST]

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

Endpoint

POST https://sandbox.moip.com.br/v2/customers/{customer_id}/fundinginstruments

Exemplo

POST https://sandbox.moip.com.br/v2/customers/CUS-Y6L4AGQN8HKQ/fundinginstruments

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{
  "method": "CREDIT_CARD",
  "creditCard": {
    "expirationMonth": "05",
    "expirationYear": "18",
    "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"
      }
    }
  }
}
# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

201 (Created)
Content-Type: application/json
{
  "method": "CREDIT_CARD",
  "creditCard": {
    "id": "CRC-NLBLOTNB6LLT",
    "brand": "MASTERCARD",
    "first6": "555566",
    "last4": "8884"
  }
}

Parâmetros:

Nome Descrição Detalhes
id Id do cliente em formato de hash. string(16), obrigatório
method Método do instrumento de cobrança. Valores possíveis: CREDIT_CARD string opcional
creditCard Cartão de crédito. object Cartão de crédito opcional
phone Telefone do cliente. structured
├─countryCode DDI (código internacional) do telefone. Valores possíveis: 55. integer(2), opcional *
├─areaCode DDD (código local) do telefone. integer(2), opcional *
└─number Número do telefone. integer(9), opcional *

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)
├─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. 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
├─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

Criar pedido [POST]

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.

Endpoint

POST https://sandbox.moip.com.br/v2/orders

Exemplo

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{
  "ownId": "seu_identificador_proprio",
  "amount": {
    "currency": "BRL",
    "subtotals": {
      "shipping": 1000
    }
  },
  "items": [
    {
      "product": "Descrição do pedido",
      "quantity": 1,
      "detail": "Mais info...",
      "price": 1000
    }
  ],
  "customer": {
    "ownId": "seu_identificador_proprio_de_cliente",
    "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"
    }
  }
}
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = '{
  "ownId": "seu_identificador_proprio",
  "amount": {
    "currency": "BRL",
    "subtotals": {
      "shipping": 1000
    }
  },
  "items": [
    {
      "product": "Descrição do pedido",
      "quantity": 1,
      "detail": "Mais info...",
      "price": 1000
    }
  ],
  "customer": {
    "ownId": "seu_identificador_proprio_de_cliente",
    "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"
    }
  }
}'

headers = {
  :content_type => 'application/json',
  :authorization => 'Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=='
}

response = RestClient.post 'https://sandbox.moip.com.br/v2/orders', values, headers
puts response
from urllib2 import Request, urlopen

values = """
{
  "ownId": "seu_identificador_proprio",
  "amount": {
    "currency": "BRL",
    "subtotals": {
      "shipping": 1000
    }
  },
  "items": [
    {
      "product": "Descrição do pedido",
      "quantity": 1,
      "detail": "Mais info...",
      "price": 1000
    }
  ],
  "customer": {
    "ownId": "seu_identificador_proprio_de_cliente",
    "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"
    }
  }
}
"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=='
}
request = Request('https://sandbox.moip.com.br/v2/orders', data=values, headers=headers)

response_body = urlopen(request).read()
print response_body
String endpoint = "sandbox.moip.com.br";
String token = "01010101010101010101010101010101";
String key = "ABABABABABABABABABABABABABABABABABABABAB";

Moip moip = new Moip(new MoipBasicAuth(token, key), endpoint);

Order order = moip.orders().setOwnId("seu_identificador_proprio")
                   .addItem("Descrição do pedido", 1, "Mais info...", 10000)
                   .setShippingAmount(100)
                   .setCustomer(moip.customers().setOwnId("seu_identificador_proprio_de_cliente")
                                        .setFullname("Jose da Silva")
                                        .setEmail("nome@email.com")
                                        .setBirthDate("1988-12-30")
                                        .setTaxDocument("33333333333")
                                        .setPhone("11", "66778899", "55")
                                        .addAddress("BILLING",
                                                    "Avenida Faria Lima", "2927",
                                                    "Itaim", "Sao Paulo", "SP",
                                                "01234000", "8"))
                           .create();
<?php
require 'vendor/autoload.php';

use Moip\Moip;
use Moip\MoipBasicAuth;

$endpoint = 'sandbox.moip.com.br/orders';
$token = '01010101010101010101010101010101';
$key = 'ABABABABABABABABABABABABABABABABABABABAB';

$moip = new Moip(new MoipBasicAuth($token, $key), $endpoint);

$order = $moip->orders()->setOwnId('seu_identificador_proprio')
                        ->addItem('Descrição do pedido', 1, 'Mais info...', 10000)
                        ->setShippingAmount(100)
                        ->setCustomer($moip->customers()->setOwnId('seu_identificador_proprio_de_cliente')
                                           ->setFullname('Jose Silva')
                                           ->setEmail('nome@email.com')
                                           ->setBirthDate('1988-12-30')
                                           ->setTaxDocument('33333333333')
                                           ->setPhone(11, 66778899)
                                           ->addAddress('BILLING',
                                                        'Avenida Faria Lima', 2927,
                                                        'Itaim', 'Sao Paulo', 'SP',
                                                        '01234000', 8))
                        ->create();

Response:

201 (Created)
Content-Type: application/json

{
  "id": "ORD-NY92W6N4S220",
  "ownId": "seu_identificador_proprio",
  "status": "CREATED",
  "createdAt": "2015-01-14T11:25:10-0200",
  "amount": {
    "total": 2000,
    "fees": 0,
    "refunds": 0,
    "liquid": 0,
    "otherReceivers": 0,
    "currency": "BRL",
    "subtotals": {
      "shipping": 1000,
      "addition": 0,
      "discount": 0,
      "items": 1000
    }
  },
  "items": [
    {
      "detail": "Mais info...",
      "quantity": 1,
      "price": 1000,
      "product": "Descrição do pedido"
    }
  ],
  "customer": {
    "id": "CUS-73HWY5J45TLO",
    "ownId": "seu_identificador_proprio_de_cliente",
    "fullname": "Jose Silva",
    "createdAt": "2015-01-14T11:25:10-0200",
    "birthDate": "1988-12-30T00:00:00-0200",
    "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-M1M01PACC0NT"
    },
    "_links": {
      "self": {
        "href": "https://sandbox.moip.com.br/v2/customers/CUS-73HWY5J45TLO"
      }
    }
  },
  "payments": [],
  "refunds": [],
  "entries": [],
  "events": [
    {
      "createdAt": "2015-01-14T11:25:10-0200",
      "description": "",
      "type": "ORDER.CREATED"
    }
  ],
  "receivers": [
    {
      "amount": {
        "fees": 0,
        "refunds": 0,
        "total": 2000
      },
      "moipAccount": {
        "fullname": "Moip SandBox",
        "login": "integracao@labs.moip.com.br",
        "id": "MPA-CULBBYHD11"
      },
      "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-NY92W6N4S220"
    },
    "checkout": {
      "payOnlineBankDebitItau": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/debit/itau/ORD-NY92W6N4S220"
      },
      "payOnlineBankDebitBB": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/debit/bancobrasil/ORD-NY92W6N4S220"
      },
      "payCreditCard": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/creditcard/ORD-NY92W6N4S220"
      },
      "payOnlineBankDebitBradesco": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/debit/bradesco/ORD-NY92W6N4S220"
      },
      "payBoleto": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/boleto/ORD-NY92W6N4S220"
      },
      "payOnlineBankDebitBanrisul": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/debit/banrisul/ORD-NY92W6N4S220"
      }
    }
  }
}

Parâmetros:

Nome Descrição Detalhes
____________________
ownId Id próprio do pedido. Referência externa. string(65), obrigatório
amount Valores do pedido. structured
├─currency Moeda utilizada no pedido. Valores possíveis: BRL. Valor default BRL. string, opcional
├─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), opcional
├ ├─addition Valor adicional ao item, será somado ao valor dos itens. Em centavos Ex: R$10,32 deve ser informado 1032 integer(12), opcional
└ └─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), opcional
items Informações dos items do pedido structured list
├─product Nome do produto. string(256), obrigatório *
├─quantity Quantidade de produtos. integer(12), obrigatório *
├─detail Descrição adicional do produto. string(250), opcional *
└─price 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), obrigatório *
customer 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, obrigatório *
checkoutPreferences Configurações para o Checkout. Utilizado apenas quando o Checkout Moip será utilizado. structured
├─redirectUrls URLs de redirecionamento. structured
├ ├─urlSuccess URL para redirecionamento em casos de sucesso. link, opcional
└ └─urlFailure URL para redirecionamento em casos de falha. link, opcional
├─installments Configurações de parcelamento. Define quais planos de parcelamento serão apresentados no Checkout Moip. structured list
├ ├─quantity Limitadores do plano de parcelas. Exemplo: [1, 3]; tupla, opcional
├ ├─discount Valor de desconto para a parcela integer, opcional
└ └─addition Valor de acréscimo para a parcela integer, opcional
receivers Estrutura de recebedores dos pagamentos. Utilizado para definir comissionamentos em implementações de Marketplaces. structured list
├─type Define qual o tipo de recebedor do pagamento, valores possíveis: PRIMARY, SECONDARY string, condicional
├─moipAccount Conta Moip recebedora do pagamento. structured
├ └─id Id Moip da Conta Moip que irá receber valores do pagamento. O identificador é obtido por meio da permissão Oauth string(16), opcional
├─amount Estrutura de valor a ser recebido. Usar uma das opções. structured
├ ├─fixed Valor fixo a ser recebido. Em centavos Ex: R$10,32 deve ser informado 1032 integer(12), opcional
└ └─percentual Valor percentual a ser recebido. Em percentual de 0100 integer(12), opcional

*Campos obrigatórios para que a transação seja elegível ao Venda Protegida

Consultar pedido [GET]

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.

Endpoint

GET https://sandbox.moip.com.br/v2/orders/{order_id}

Exemplo

GET https://sandbox.moip.com.br/v2/orders/ORD-4HY0KOA9Q73F

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

headers = {
  :content_type => 'application/json',
  :authorization => 'Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=='
}

response = RestClient.get 'https://sandbox.moip.com.br/v2/orders/id', headers
puts response
from urllib2 import Request, urlopen

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=='
}
request = Request('https://sandbox.moip.com.br/v2/orders/id', headers=headers)

response_body = urlopen(request).read()
print response_body
String endpoint = "sandbox.moip.com.br";
String token = "01010101010101010101010101010101";
String key = "ABABABABABABABABABABABABABABABABABABABAB";

Moip moip = new Moip(new MoipBasicAuth(token, key), endpoint);

Order order = moip.orders().get("ORD-4HY0KOA9Q73F");
<?php
require 'vendor/autoload.php';

use Moip\Moip;
use Moip\MoipBasicAuth;

$endpoint = 'sandbox.moip.com.br';
$token = '01010101010101010101010101010101';
$key = 'ABABABABABABABABABABABABABABABABABABABAB';

$moip = new Moip(new MoipBasicAuth($token, $key), $endpoint);

$order = $moip->orders()->get('ORD-4HY0KOA9Q73F');

Response:

200 (OK)
Content-Type: application/json
{
  "id": "ORD-4HY0KOA9Q73F",
  "ownId": "meu_pedido_sandbox_xxxxx",
  "status": "CREATED",
  "createdAt": "2015-01-14T11:39:15-0200",
  "amount": {
    "total": 2000,
    "fees": 0,
    "refunds": 0,
    "liquid": 0,
    "otherReceivers": 0,
    "currency": "BRL",
    "subtotals": {
      "shipping": 1000,
      "addition": 0,
      "discount": 0,
      "items": 1000
    }
  },
  "items": [
    {
      "detail": "Mais info...",
      "quantity": 1,
      "price": 1000,
      "product": "Produto de testes Sandbox - xxxx"
    }
  ],
  "addresses": [
    {
      "city": "Sao Paulo",
      "complement": "8",
      "street": "Avenida Faria Lima",
      "streetNumber": "2927",
      "zipCode": "01234000",
      "district": "Itaim",
      "state": "SP",
      "type": "SHIPPING",
      "country": "BRA"
    }
  ],
  "customer": {
    "id": "CUS-Y6L4AGQN8HKQ",
    "ownId": "meu_id_sandbox_1231234",
    "fullname": "Jose Silva",
    "createdAt": "2015-01-14T11:28:22-0200",
    "birthDate": "1988-12-30T00:00:00-0200",
    "email": "jose_silva0@email.com",
    "phone": {
      "countryCode": "55",
      "areaCode": "11",
      "number": "66778899"
    },
    "taxDocument": {
      "type": "CPF",
      "number": "22222222222"
    },
    "addresses": [
      {
        "city": "Sao Paulo",
        "complement": "8",
        "street": "Avenida Faria Lima",
        "streetNumber": "2927",
        "zipCode": "01234000",
        "district": "Itaim",
        "state": "SP",
        "type": "SHIPPING",
        "country": "BRA"
      },
    "moipAccount": {
      "id": "MPA-M1M01PACC0NT"
    },
    ],
    "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-Y6L4AGQN8HKQ"
      }
    }
  },
  "payments": [],
  "refunds": [],
  "entries": [],
  "events": [
    {
      "createdAt": "2015-01-14T11:39:15-0200",
      "description": "",
      "type": "ORDER.CREATED"
    }
  ],
  "receivers": [
    {
      "amount": {
        "fees": 0,
        "refunds": 0,
        "total": 2000
      },
      "moipAccount": {
        "fullname": "Moip SandBox",
        "login": "integracao@labs.moip.com.br",
        "id": "MPA-CULBBYHD11"
      },
      "type": "PRIMARY"
    }
  ],
  "_links": {
    "self": {
      "href": "https://sandbox.moip.com.br/v2/orders/ORD-4HY0KOA9Q73F"
    },
    "checkout": {
      "payOnlineBankDebitItau": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/debit/itau/ORD-4HY0KOA9Q73F"
      },
      "payOnlineBankDebitBB": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/debit/bancobrasil/ORD-4HY0KOA9Q73F"
      },
      "payCreditCard": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/creditcard/ORD-4HY0KOA9Q73F"
      },
      "payOnlineBankDebitBradesco": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/debit/bradesco/ORD-4HY0KOA9Q73F"
      },
      "payBoleto": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/boleto/ORD-4HY0KOA9Q73F"
      },
      "payOnlineBankDebitBanrisul": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/debit/banrisul/ORD-4HY0KOA9Q73F"
      }
    }
  }
}

Listar todos pedidos [GET]

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. Também é possível filtrar os resultados conforme a listagem de parâmetros disponíveis do método.

Endpoint

GET https://sandbox.moip.com.br/v2/orders

Exemplo

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

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)))

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

Response:

200 (OK)
Content-Type: application/json
{
  "_links": {
    "next": {
      "href": "https://sandbox.moip.com.br/v2/orders?q=jose silva&filters=createdAt::bt(2014-11-08,2015-05-07)&limit=3&offset=3"
    },
    "previous": {
      "href": "https://sandbox.moip.com.br/v2/orders?q=jose silva&filters=createdAt::bt(2014-11-08,2015-05-07)&limit=3&offset=0"
    }
  },
  "summary": {
    "count": 497,
    "amount": 1914750
  },
  "orders": [
    {
      "id": "380561",
      "ownId": "sandbox_v2_1430950122",
      "externalId": "ORD-U052MFZ4M414",
      "status": "PAID",
      "blocked": false,
      "amount": {
        "total": 4000,
        "addition": 0,
        "fees": 335,
        "deduction": 0,
        "otherReceivers": 0,
        "currency": "BRL"
      },
      "receivers": [
        {
          "type": "PRIMARY",
          "moipAccount": {
            "id": "MPA-CULBBYHD11"
          }
        }
      ],
      "customer": {
        "fullname": "jose silva",
        "email": "sandbox_v2_1430950122@email.com"
      },
      "items": [
        {
          "product": null
        }
      ],
      "payments": [
        {
          "installmentCount": 1,
          "fundingInstrument": {
            "method": "CREDIT_CARD",
            "institution": "VISA"
          }
        }
      ],
      "events": [
        {
          "type": "PAYMENT.AUTHORIZED",
          "createdAt": "2015-05-06T19:09:06Z"
        }
      ],
      "_links": {
        "self": {
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-U052MFZ4M414"
        }
      },
      "createdAt": "2015-05-06T19:08:43Z",
      "updatedAt": "2015-05-06T19:08:48Z"
    },
    {
      "id": "380560",
      "ownId": "sandbox_v2_1430950121",
      "externalId": "ORD-8MFXXQTTPEJ4",
      "status": "PAID",
      "blocked": false,
      "amount": {
        "total": 4000,
        "addition": 0,
        "fees": 335,
        "deduction": 0,
        "otherReceivers": 0,
        "currency": "BRL"
      },
      "receivers": [
        {
          "type": "PRIMARY",
          "moipAccount": {
            "id": "MPA-CULBBYHD11"
          }
        }
      ],
      "customer": {
        "fullname": "jose silva",
        "email": "sandbox_v2_1430950121@email.com"
      },
      "items": [
        {
          "product": null
        }
      ],
      "payments": [
        {
          "installmentCount": 1,
          "fundingInstrument": {
            "method": "CREDIT_CARD",
            "institution": "VISA"
          }
        }
      ],
      "events": [
        {
          "type": "PAYMENT.AUTHORIZED",
          "createdAt": "2015-05-06T19:09:06Z"
        }
      ],
      "_links": {
        "self": {
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-8MFXXQTTPEJ4"
        }
      },
      "createdAt": "2015-05-06T19:08:41Z",
      "updatedAt": "2015-05-06T19:08:48Z"
    },
    {
      "id": "380456",
      "ownId": "sandbox_v2_1430942777",
      "externalId": "ORD-3XCFS4BTBO38",
      "status": "PAID",
      "blocked": false,
      "amount": {
        "total": 4000,
        "addition": 0,
        "fees": 335,
        "deduction": 0,
        "otherReceivers": 0,
        "currency": "BRL"
      },
      "receivers": [
        {
          "type": "PRIMARY",
          "moipAccount": {
            "id": "MPA-CULBBYHD11"
          }
        }
      ],
      "customer": {
        "fullname": "jose silva",
        "email": "sandbox_v2_1430942777@email.com"
      },
      "items": [
        {
          "product": null
        }
      ],
      "payments": [
        {
          "installmentCount": 1,
          "fundingInstrument": {
            "method": "CREDIT_CARD",
            "institution": "VISA"
          }
        }
      ],
      "events": [
        {
          "type": "PAYMENT.AUTHORIZED",
          "createdAt": "2015-05-06T17:06:53Z"
        }
      ],
      "_links": {
        "self": {
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-3XCFS4BTBO38"
        }
      },
      "createdAt": "2015-05-06T17:06:23Z",
      "updatedAt": "2015-05-06T17:06:42Z"
    }
  ]
}

Parâmetros:

Nome Descrição Tipo
_____________________________
createdAt Data de criação do recurso. Permite o uso de todos os delimitadores. date, opcional
paymentMethod 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. string, opcional
value Valor do pedido. Permite o uso de todos os delimitadores. integer, opcional
status Status do pedido, Valores possíveis: WAITING, NOT_PAID, PAID, REVERTED. Use o delimitador in. string, opcional
limit Quantidade de registros por busca (página). Valor default é 100. integer, opcional
offset Registro a partir do qual a busca vai retornar. Valor default é 0. integer, opcional

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

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. Disponível para Visa e Mastercard 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
_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

Criar pagamento [POST]

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.

Endpoint

POST https://sandbox.moip.com.br/v2/orders/{order_id}/payments

Exemplo

Abaixo um exemplo de um pagamento por cartão de crédito utilizando um hash.

POST https://sandbox.moip.com.br/v2/orders/ORD-VULX1EWDKXHF/payments

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{
  "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"
        }
      }
    }
  }
}
Requestrequire 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = {
    "installmentCount": 1,
    "fundingInstrument": {
        "method": "CREDIT_CARD",
        "creditCard": {
            "expirationMonth": 05,
            "expirationYear": 18,
            "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"
                }
            }
        }
    }
}

headers = {
  :content_type => 'application/json',
  :authorization => 'Basic MEVSVkROMzg2V0UzUlpSSTRZWUc2UUNETE1KNTdMQlI6U1JaR0hSWFlPVDBQVkRMUkIzWUU4WFFXTE5MQTBKUlhUS09JRFZEUQ=='
}

response = RestClient.post 'https://sandbox.moip.com.br/v2/orders/id/payments', values, headers
puts response
from urllib2 import Request, urlopen

values = """
{
    "installmentCount": 1,
    "fundingInstrument": {
        "method": "CREDIT_CARD",
        "creditCard": {
            "expirationMonth": 05,
            "expirationYear": 18,
            "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"
                }
            }
        }
    }
}"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Basic MEVSVkROMzg2V0UzUlpSSTRZWUc2UUNETE1KNTdMQlI6U1JaR0hSWFlPVDBQVkRMUkIzWUU4WFFXTE5MQTBKUlhUS09JRFZEUQ=='
}
request = Request('https://sandbox.moip.com.br/v2/orders/id/payments', data=values, headers=headers)

response_body = urlopen(request).read()
print response_body
String endpoint = "sandbox.moip.com.br";
String token = "01010101010101010101010101010101";
String key = "ABABABABABABABABABABABABABABABABABABABAB";

Moip moip = new Moip(new MoipBasicAuth(token, key), endpoint);

String ccNumber = "5555666677778884";

String cvcNumber = "123";

Order order = moip.orders().get("ORD-VULX1EWDKXHF");

Payment payment = order.payments()
               .setCreditCard("12","15",ccNumber,cvcNumber,
                            moip.customers().setOwnId("sandbox_v2_1401147277")
                                      .setFullname("Jose Portador da Silva")
                                      .setEmail("sandbox_v2_1401147277@email.com")
                                      .setBirthDate("1988-12-30")
                                      .setTaxDocument("33333333333")
                                      .setPhone("11", "66778899")
                       .execute();
<?php
require 'vendor/autoload.php';

use Moip\Moip;
use Moip\MoipBasicAuth;

$endpoint = 'sandbox.moip.com.br';
$token = '01010101010101010101010101010101';
$key = 'ABABABABABABABABABABABABABABABABABABABAB';

$moip = new Moip(new MoipBasicAuth($token, $key), $endpoint);

$ccNumber = '5555666677778884';

$cvcNumber = '123'

$order = $moip->orders()->get('ORD-VULX1EWDKXHF');

$payment = $order->payments()
                 ->setCreditCard('05', '18', $ccNumber, $cvcNumber,
                                 $moip->customers()->setOwnId('sandbox_v2_1401147277')
                                                   ->setFullname('Jose Portador da Silva')
                                                   ->setEmail('fulano@email.com')
                                                   ->setBirthDate('1988-12-30')
                                                   ->setTaxDocument('33333333333')
                                                   ->setPhone(11, 66778899))
                 ->execute();

Response:

201 (Created)
Content-Type: application/json
{
  "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",
      "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"
    }
  ],
  "_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"
}

Parâmetros:

Nome Descrição Tipo
_____________________________
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), opcional
delayCapture Se o pagamento deve ser pré-autorizado para captura posterior. Válido apenas para pagamentos por cartão de crédito. boolean, opcional
fundingInstrument Meio de pagamento utilizado. structured
├─method Meio de pagamento. Valores possíveis: CREDIT_CARD, BOLETO, ONLINE_BANK_DEBIT, WALLET. string, obrigatório
├─creditCard 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. structured
├ ├─id Identificador do cartão de crédito no previamente salvo no Moip. string(16), condicional
├ ├─hash Dados criptografados do cartão de crédito. string, condicional
├ ├─number Número do cartão de crédito. Requer certificação PCI. string(19), condicional
├ ├─expirationMonth Mês de expiração do cartão. Requer certificação PCI. integer(2), obrigatório se utilizado o number
├ ├─expirationYear Ano de expiração do cartão. Requer certificação PCI. integer(4), obrigatório se utilizado o number
├ ├─cvc 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, opcional
├ ├─holder Portador do cartão. structured, caso esteja utilizando o id não enviar
├ ├─├─fullname Nome do portador impresso no cartão. string(90), obrigatório *
├ ├─├─birthdate Data de nascimento do portador. date(AAAA-MM-DD), obrigatório *
├ ├─├─phone Telefone do cliente. structured
├ ├─├ ├─countryCode DDI (código internacional) do telefone. Valores possíveis: 55. integer(2), opcional *
├ ├─├ ├─areaCode DDD (código local) do telefone. integer(2), opcional *
├ ├─└ └─number Número do telefone. integer(9), opcional *
├ ├─├─taxDocument Documento fiscal. structured
├ ├─├ ├─type Tipo do documento. Valores possíveis: CPF,CNPJ. string(3), obrigatório
├ ├─└ └─number Número do documento. string(11), obrigatório
├ └─└─billingAddress Endereços de cobrança do cartão de crédito. object Endereço opcional *
├─boleto Dados do boleto utilizado no pagamento. structured
├ ├─expirationDate Data de expiração de um boleto. date, obrigatório
├ ├─instructionLines Instruções impressas no boleto. structured
├ ├─├─first Primeira linha de instrução. string, opcional
├ ├─├─second Segunda linha de instrução. string, opcional
├ ├─└─third Terceira linha de instrução. string, opcional
├ └─logoUri Endereço de uma imagem com o logotipo a ser impresso no boleto. Ainda não disponível nesta versão da API. link, opcional
├─onlineBankDebit Dados para o débito online. structured
├ ├─bankNumber Número do banco. Valores possíveis: 001, 237, 341, 041. Ver lista de bancos e códigos FEBRABAN string, condicional
├ ├─expirationDate Data de expiração do débito. date, condicional
└ └─returnUri Url de redirecionamento. Ainda não disponível nesta versão da API. link, condicional

*Campos obrigatórios para que a transação seja elegível ao Venda Protegida

Consultar pagamento [GET]

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

Endpoint

GEThttps://sandbox.moip.com.br/v2/payments/{payment_id}

Exemplo

GET https://sandbox.moip.com.br/v2/payments/PAY-VZ1HI48256ZX

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

headers = {
  :content_type => 'application/json',
  :authorization => 'Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=='
}

response = RestClient.get 'https://sandbox.moip.com.br/v2/payments/id', headers
puts response
from urllib2 import Request, urlopen

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=='
}
request = Request('https://sandbox.moip.com.br/v2/payments/id', headers=headers)

response_body = urlopen(request).read()
print response_body
String endpoint = "sandbox.moip.com.br";
String token = "01010101010101010101010101010101";
String key = "ABABABABABABABABABABABABABABABABABABABAB";

Moip moip = new Moip(new MoipBasicAuth(token, key), endpoint);

Payment payment = moip.orders().get("ORD-VULX1EWDKXHF").payments().get("PAY-VZ1HI48256ZX");
<?php
require 'vendor/autoload.php';

use Moip\Moip;
use Moip\MoipBasicAuth;

$endpoint = 'sandbox.moip.com.br';
$token = '01010101010101010101010101010101';
$key = 'ABABABABABABABABABABABABABABABABABABABAB';

$moip = new Moip(new MoipBasicAuth($token, $key), $endpoint);

$payment = $moip->orders()->get('ORD-VULX1EWDKXHF')->payments()->get('PAY-VZ1HI48256ZX');

Response:

200 (OK)
Content-Type: application/json
 {
  "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",
      "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"
    }
  ],
  "_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"
}
Nome Descrição Tipo
id Id do pagamento em formato de hash. string(16), obrigatório

Capturar pagamento pré-autorizado [POST]

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. Caso você esteja capturando um Pagamento que foi criado dentro do contexto de um Multipagamento você deve utilizar as credenciais (accessToken) do usuário recebedor do pagamento e não as credenciais do seu Aplicativo.

Endpoint

POST https://sandbox.moip.com.br/v2/payments/{id}/capture

Exemplo

POST https://sandbox.moip.com.br/v2/payments/PAY-ZJOE0VPNGIM5/capture

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{}
null
null
null
null

Response:

200 (OK)
Content-Type: application/json
{
  "id": "PAY-ZJOE0VPNGIM5",
  "status": "AUTHORIZED",
  "amount": {
    "refunds": 0,
    "fees": 187,
    "liquid": 1813,
    "currency": "BRL",
    "total": 2000
  },
  "installmentCount": 1,
  "fundingInstrument": {
    "creditCard": {
      "id": "CRC-8XPB5E78J3C5",
      "brand": "VISA",
      "first6": "401200",
      "last4": "3335",
      "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"
}

Cancelar pagamento pré-autorizado [POST]

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.

Endpoint

POST https://sandbox.moip.com.br/v2/payments/{id}/void

Exemplo

POST https://sandbox.moip.com.br/v2/payments/PAY-ZJOE0VPNGIM5/void

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{}
# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

200 (OK)
Content-Type: application/json
{
  "id": "PAY-ZJOE0VPNGIM5",
  "status": "CANCELLED",
  "amount": {
    "refunds": 0,
    "fees": 187,
    "liquid": 1813,
    "currency": "BRL",
    "total": 2000
  },
  "installmentCount": 1,
  "fundingInstrument": {
    "creditCard": {
      "id": "CRC-8XPB5E78J3C5",
      "brand": "VISA",
      "first6": "401200",
      "last4": "3335",
      "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"
}

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

Reembolsar pagamento [POST]

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).

Endpoint

POST https://sandbox.moip.com.br/v2/payments/{payment_id}/refunds

Exemplo de reembolso com valor total para um cartão de crédito

POST https://sandbox.moip.com.br/v2/payments/PAY-X2VXEGV7WVFB/refunds

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{}
# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

201 (Created)
Content-Type: application/json

{
  "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"
    }
  }
}

Exemplo de reembolso com valor parcial para cartão de crédito

POST https://sandbox.moip.com.br/v2/payments/PAY-3N7TSKQ26L2I/refunds

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{
    "amount": 1000   
}

# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

201 (Created)
Content-Type: application/json

{
  "id": "REF-I7IEV1RG9T1L",
  "status": "COMPLETED",
  "events": [
    {
      "createdAt": "2015-02-27T11:28:11-0300",
      "type": "REFUND.COMPLETED"
    },
    {
      "createdAt": "2015-02-27T11:28:10-0300",
      "type": "REFUND.REQUESTED"
    }
  ],
  "amount": {
    "fees": 0,
    "currency": "BRL",
    "total": 1000
  },
  "type": "PARTIAL",
  "refundingInstrument": {
    "creditCard": {
      "brand": "MASTERCARD",
      "first6": "555566",
      "last4": "8884"
    },
    "method": "CREDIT_CARD"
  },
  "createdAt": "2015-02-27T11:28:10-0300",
  "_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"
    }
  }
}

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

Reembolsar pedido [POST]

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). 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).

Endpoint

POST https://sandbox.moip.com.br/v2/orders/{order_id}/refunds

Exemplo de reembolso com valor total para um cartão de crédito

POST https://sandbox.moip.com.br/v2/orders/ORD-44GC0PFGU42M/refunds

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{}
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = '{}
'

headers = {
  :content_type => 'application/json',
  :authorization => 'Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=='
}

response = RestClient.post 'https://sandbox.moip.com.br/v2/orders/id/refunds', values, headers
puts response
from urllib2 import Request, urlopen

values = """
  {}

"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=='
}
request = Request('https://sandbox.moip.com.br/v2/orders/id/refunds', data=values, headers=headers)

response_body = urlopen(request).read()
print response_body
String endpoint = "sandbox.moip.com.br";
String token = "01010101010101010101010101010101";
String key = "ABABABABABABABABABABABABABABABABABABABAB";

Moip moip = new Moip(new MoipBasicAuth(token, key), endpoint);

Refund refund = moip.orders().get("ORD-OBXYNHIXBNSO").refund().creditCardFull().execute();
<?php
require 'vendor/autoload.php';

use Moip\Moip;
use Moip\MoipBasicAuth;

$endpoint = 'sandbox.moip.com.br';
$token = '01010101010101010101010101010101';
$key = 'ABABABABABABABABABABABABABABABABABABABAB';

$moip = new Moip(new MoipBasicAuth($token, $key), $endpoint);

$refund = $moip->orders()->get('ORD-VULX1EWDKXHF')->refunds()->creditCardFull();

Response:

201 (Created)
Content-Type: application/json

{
  "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"
    }
  }
}

Exemplo de reembolso com valor parcial para cartão de crédito

POST https://sandbox.moip.com.br/v2/orders/ORD-PCVWZGGH3BPM/refunds

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{
    "amount": 1000   
}

require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = '{
    "amount": 1000   
}
'

headers = {
  :content_type => 'application/json',
  :authorization => 'Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=='
}

response = RestClient.post 'https://sandbox.moip.com.br/v2/orders/id/refunds', values, headers
puts response
from urllib2 import Request, urlopen

values = """
  {
    "amount": 1000   
}

"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=='
}
request = Request('https://sandbox.moip.com.br/v2/orders/id/refunds', data=values, headers=headers)

response_body = urlopen(request).read()
print response_body
String endpoint = "sandbox.moip.com.br";
String token = "01010101010101010101010101010101";
String key = "ABABABABABABABABABABABABABABABABABABABAB";

Moip moip = new Moip(new MoipBasicAuth(token, key), endpoint);

Refund refund = moip.orders().get("ORD-OBXYNHIXBNSO").refund().creditCardPartial(1000).execute();
<?php
require 'vendor/autoload.php';

use Moip\Moip;
use Moip\MoipBasicAuth;

$endpoint = 'sandbox.moip.com.br';
$token = '01010101010101010101010101010101';
$key = 'ABABABABABABABABABABABABABABABABABABABAB';

$moip = new Moip(new MoipBasicAuth($token, $key), $endpoint);

$refund = $moip->orders()->get('ORD-VULX1EWDKXHF')->refunds()->creditCardPartial('1000');

Response:

201 (Created)
Content-Type: application/json

{
  "id": "REF-I7IEV1RG9T1L",
  "status": "COMPLETED",
  "events": [
    {
      "createdAt": "2015-02-27T11:28:11-0300",
      "type": "REFUND.COMPLETED"
    },
    {
      "createdAt": "2015-02-27T11:28:10-0300",
      "type": "REFUND.REQUESTED"
    }
  ],
  "amount": {
    "fees": 0,
    "currency": "BRL",
    "total": 1000
  },
  "type": "PARTIAL",
  "refundingInstrument": {
    "creditCard": {
      "brand": "MASTERCARD",
      "first6": "555566",
      "last4": "8884"
    },
    "method": "CREDIT_CARD"
  },
  "createdAt": "2015-02-27T11:28:10-0300",
  "_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"
    }
  }
}

Exemplo reembolso total para conta bancária

POST https://sandbox.moip.com.br/v2/orders/ORD-C8LDLESE7Z2A/refunds

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{
  "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"
        }
      }
    }
  }
}
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = '{
  "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"
        }
      }
    }
  }
}
'

headers = {
  :content_type => 'application/json',
  :authorization => 'Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=='
}

response = RestClient.post 'https://sandbox.moip.com.br/v2/orders/id/refunds', values, headers
puts response
from urllib2 import Request, urlopen

values = """
  {
  "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"
        }
      }
    }
  }
}

"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=='
}
request = Request('https://sandbox.moip.com.br/v2/orders/id/refunds', data=values, headers=headers)

response_body = urlopen(request).read()
print response_body
String endpoint = "sandbox.moip.com.br";
String token = "01010101010101010101010101010101";
String key = "ABABABABABABABABABABABABABABABABABABABAB";

Moip moip = new Moip(new MoipBasicAuth(token, key), endpoint);

Customer customer = moip.customers().setOwnId("sandbox_v2_1401147277")
                            .setFullname("Nome do Portador")
                            .setTaxDocument("33333333333");

Refund refund = moip.orders().get("ORD-VULX1EWDKXHF").refund().bankAccountFull("CHECKING", "001",
                                                                               "4444444", "2",
                                                                               "1234", "1",
                                                                               customer);
<?php
require 'vendor/autoload.php';

use Moip\Moip;
use Moip\MoipBasicAuth;

$endpoint = 'sandbox.moip.com.br';
$token = '01010101010101010101010101010101';
$key = 'ABABABABABABABABABABABABABABABABABABABAB';

$moip = new Moip(new MoipBasicAuth($token, $key), $endpoint);

$customer = $moip->customers()->setOwnId('sandbox_v2_1401147277')
                              ->setFullname('Nome do Portador')
                              ->setTaxDocument('33333333333');

$refund = $moip->orders()->get('ORD-VULX1EWDKXHF')->refunds()->bankAccountFull('CHECKING',
                                                                               '001',
                                                                               '4444444',
                                                                               '2',
                                                                               '1234',
                                                                               '1',
                                                                                $customer);

Response:

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"
    }
  }
}

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

Consultar reembolso [GET]

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

Endpoint

GEThttps://sandbox.moip.com.br/v2/refunds/{refund_id}

Exemplo

GET https://sandbox.moip.com.br/v2/refunds/REF-BO0ABQCGVZVD

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

headers = {
  :content_type => 'application/json',
  :authorization => 'Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=='
}

response = RestClient.get 'https://sandbox.moip.com.br/v2/refunds/id', headers
puts response
from urllib2 import Request, urlopen

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=='
}
request = Request('https://sandbox.moip.com.br/v2/refunds/id', headers=headers)

response_body = urlopen(request).read()
print response_body
String endpoint = "sandbox.moip.com.br";
String token = "01010101010101010101010101010101";
String key = "ABABABABABABABABABABABABABABABABABABABAB";

Moip moip = new Moip(new MoipBasicAuth(token, key), endpoint);

Refund refund = moip.orders().get("'ORD-VULX1EWDKXHF").refund().get("REF-BO0ABQCGVZVD");
<?php
require 'vendor/autoload.php';

use Moip\Moip;
use Moip\MoipBasicAuth;

$endpoint = 'sandbox.moip.com.br';
$token = '01010101010101010101010101010101';
$key = 'ABABABABABABABABABABABABABABABABABABABAB';

$moip = new Moip(new MoipBasicAuth($token, $key), $endpoint);

$refund = $moip->orders()->get('ORD-VULX1EWDKXHF')->refunds()->get('REF-BO0ABQCGVZVD');

Response:

200 (OK)
Content-Type: application/json
 {
  "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"
    }
  }
}

Parâmetros:

Nome Descrição Tipo
id Id do reembolso em formato de hash. string(16), obrigatório

Listar reembolsos do pagamento [GET]

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

Endpoint

GET https://sandbox.moip.com.br/v2/payments/{payment_id}/refunds

Exemplo

GET https://sandbox.moip.com.br/v2/payments/PAY-3N7TSKQ26L2I/refunds

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{}
# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

200 (Ok)
Content-Type: application/json
{
  "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"
    }
  ]
}

Parâmetros:

Nome Descrição Tipo
_____________________________
id Id do pagamento em formato de hash. string(16), obrigatório

Listar reembolsos do pedido [GET]

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

Endpoint

GET https://sandbox.moip.com.br/v2/orders/{orders_id}/refunds

Exemplo

GET https://sandbox.moip.com.br/v2/orders/ORD-1RQDM20CQW8T/refunds

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{}
# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

200 (Ok)
Content-Type: application/json
{
  "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"
    }
  ]
}

Parâmetros:

Nome Descrição Tipo
_____________________________
id Id do pagamento em formato de hash. string(16), obrigatório

Multipedidos

O Multipedido é uma coleção de pedidos. Usado para viabilizar transações que envolvam pedidos para diferentes lojista 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: 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

Criar multipedido [POST]

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

Endpoint

POST https://sandbox.moip.com.br/v2/multiorders

Request:

Content-Type: application/json
Authorization: "OAuth qguusgp05mxaa9adyy8kvo4nuq380z7"
{
  "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",
          "amount": {
            "fixed": 55
          }
        }
      ]
    }
  ]
}

require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = '{
  "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": {
          "type": "BILLING",
          "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": 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": {
          "type": "BILLING",
          "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",
          "amount": {
            "fixed": 55
          }
        }
      ]
    }
  ]
}'

headers = {
  :content_type => application/json,
  :authorization => "OAuth qguusgp05mxaa9adyy8kvo4nuq380z7"
}

response = RestClient.post 'https://sandbox.moip.com.br/v2/multiorders', values, headers
puts response
from urllib2 import Request, urlopen

values = """
  {
  "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-VB5OGTVPCI52"
          },
          "type": "PRIMARY"
        },
        {
          "moipAccount": {
            "id": "MPA-KQB1QFWS6QNM"
          },
          "type": "SECONDARY",
          "amount": {
            "fixed": 55
          }
        }
      ]
    }
  ]
}
"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'OAuth qguusgp05mxaa9adyy8kvo4nuq380z7'
}
request = Request('https://sandbox.moip.com.br/v2/multiorders', data=values, headers=headers)

response_body = urlopen(request).read()
print response_body
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
<?php
require 'vendor/autoload.php';

use Moip\Moip;
use Moip\MoipBasicAuth;

$endpoint = 'sandbox.moip.com.br';
$accessToken = 'qguusgp05mxaa9adyy8kvo4nuq380z7';

$moip = new Moip(new MoipOAuth($accessToken), $endpoint);

$customer = $moip->customers()->setOwnId('sandbox_v2_1401147277')
                              ->setFullname('Jose Silva')
                              ->setEmail('sandbox_v2_1401147277@email.com')
                              ->setBirthDate('1988-12-30')
                              ->setTaxDocument('33333333333')
                              ->setPhone(11, 66778899)
                              ->addAddress('SHIPPING',
                                           'Avenida Faria Lima', 2927,
                                           'Itaim', 'Sao Paulo', 'SP',
                                           '01234000', 8);

$order1 = $moip->orders()->setOwnId('multi-pedido-1')
                        ->addItem('Camisa Verde e Amarelo - Brasil', 1, 'Seleção Brasileira', 10000)
                        ->setShippingAmount(100)
                        ->setCustomer($customer)
                        ->addReceiver('MPA-VB5OGTVPCI52');

$order2 = $moip->orders()->setOwnId('multi-pedido-2')
                        ->addItem('Camisa Preta - Alemanha', 1, 'Camisa da Copa 2014', 10000)
                        ->setShippingAmount(100)
                        ->setCustomer($customer)
                        ->addReceiver('MPA-IFYRB1HBL73Z');

$multiorder = $moip->multiorders()->addOrder($order1)
                                  ->addOrder($order2)
                                  ->setOwnId('multi-pedido')
                                  ->create();

Response:

201 (Created)
Content-Type: application/json
{
  "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"
      }
    }
  }
}

Parâmetros:

Nome Descrição Detalhes
_________
ownId Id próprio do multipedido. Referência externa. string(65), obrigatório
orders Pedidos. O atributo receiver de cada pedido deve ser preenchido indicando quem será o recebedor primário. coleção de Pedidos, obrigatório

Consultar multipedido [GET]

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

Endpoint

GEThttps://sandbox.moip.com.br/v2/multiorders/{multiorder_id}

Exemplo

GET https://sandbox.moip.com.br/v2/multiorders/MOR-9241K3EFW5DV

Request:

Content-Type: application/json
Authorization: 'OAuth qguusgp05mxaa9adyy8kvo4nuq380z7'

require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

headers = {
  :content_type => 'application/json',
  :authorization => 'OAuth qguusgp05mxaa9adyy8kvo4nuq380z7'
}

response = RestClient.get 'https://sandbox.moip.com.br/v2/multiorders/id', headers
puts response
String endpoint = "sandbox.moip.com.br";
String accessToken = "m9mq5lni241ngslgpl910ew45bxnnez";

Moip moip = new Moip(new MoipOAuth(accessToken), endpoint);

Multiorder multiorder = moip.multiorders().get("MOR-P4JBIAG5L5KM");
<?php
require 'vendor/autoload.php';

use Moip\Moip;
use Moip\MoipBasicAuth;

$endpoint = 'sandbox.moip.com.br';
$accessToken = 'qguusgp05mxaa9adyy8kvo4nuq380z7';

$moip = new Moip(new MoipOAuth($accessToken), $endpoint);

$multiorder = $moip->multiorders()->get('MOR-P4JBIAG5L5KM');

Response:

200 (Ok)
Content-Type: application/json
 {
  "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"
      }
    }
  }
}
Nome Descrição Tipo
id Id do pagamento em formato de hash. string(16), obrigatório

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 number, response
└─description Descrição do motivo de cancelamento. string, response
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

Criar multipagamento [POST]

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

Endpoint

POST https://sandbox.moip.com.br/v2/multiorders/{multiorder_id}/multipayments

Exemplo de pagamento com cartão

POST https://sandbox.moip.com.br/v2/multiorders/MOR-8H8VSF36G5HT/multipayments

Request:

Content-Type: application/json
Authorization: "OAuth qguusgp05mxaa9adyy8kvo4nuq380z7"
{
  "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"
        }
      }
    }
  }
}
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = {
    "installmentCount": 1,
    "fundingInstrument": {
        "method": "CREDIT_CARD",
        "creditCard": {
            "expirationMonth": 05,
            "expirationYear": 18,
            "number": "5555666677778884",
            "cvc": "123",
            "holder": {
                "fullname": "Jose Portador da Silva",
                "birthdate": "1988-12-30",
                "taxDocument": {
                    "type": "CPF",
                    "number": "22222222222"
                },
                "phone": {
                    "countryCode": "55",
                    "areaCode": "11",
                    "number": "66778899"
                }
            }
        }
    }
}
from urllib2 import Request, urlopen

values = """
{
    "installmentCount": 1,
    "fundingInstrument": {
        "method": "CREDIT_CARD",
        "creditCard": {
            "expirationMonth": 05,
            "expirationYear": 18,
            "number": "5555666677778884",
            "cvc": "123",
            "holder": {
                "fullname": "Jose Portador da Silva",
                "birthdate": "1988-12-30",
                "taxDocument": {
                    "type": "CPF",
                    "number": "22222222222"
                },
                "phone": {
                    "countryCode": "55",
                    "areaCode": "11",
                    "number": "66778899"
                }
            }
        }
    }
}"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'OAuth qguusgp05mxaa9adyy8kvo4nuq380z7'
}
request = Request('https://sandbox.moip.com.br/v2/multiorders/id/multipayments', data=values, headers=headers)

response_body = urlopen(request).read()
print response_body
String endpoint = "sandbox.moip.com.br";
String accessToken = "m9mq5lni241ngslgpl910ew45bxnnez";

Moip moip = new Moip(new MoipOAuth(accessToken), endpoint);

Customer customer = moip.customers().setFullname("Jose Portador da Silva")
                                    .setBirthDate("1988-12-30")
                                    .setTaxDocument("33333333333", "CPF")
                                    .setPhone("11", "66778899", "55");

String ccNumber = "5555666677778884";

String cvcNumber = "123";

Payment multipayment = moip.multiorders().get("MOR-8H8VSF36G5HY").multipayments();

multipayment.setCreditCard("05", "18", ccNumber, cvcNumber, customer)
            .execute();
<?php
require 'vendor/autoload.php';

use Moip\Moip;
use Moip\MoipBasicAuth;

$endpoint = 'sandbox.moip.com.br';
$accessToken = 'qguusgp05mxaa9adyy8kvo4nuq380z7';

$moip = new Moip(new MoipOAuth($accessToken), $endpoint);

$customer = $moip->customers()->setFullname('Jose Portador da Silva')
                              ->setBirthDate('1988-12-30')
                              ->setTaxDocument('33333333333')
                              ->setPhone(11, 66778899);

$ccNumber = '5555666677778884';

$cvcNumber = '123';

$multipayments = $moip->multiorders()->get('MOR-8H8VSF36G5HT')->multipayments();

$multipayments->setCreditCard('05','18', $ccNumber, $cvcNumver, $customer)
              ->execute();

Response:

201 (Created)
Content-Type: application/json
{
  "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"
    }
  }
}

Exemplo de pagamento com boleto

POST https://sandbox.moip.com.br/v2/multiorders/MOR-QXZKIF6GPN5V/multipayments

Request:

Content-Type: application/json
Authorization: "OAuth qguusgp05mxaa9adyy8kvo4nuq380z7"
{
  "fundingInstrument": {
    "method": "BOLETO",
    "boleto": {
      "expirationDate": "2016-09-30",
      "instructionLines": {
        "first": "Primeira linha se instrução",
        "second": "Segunda linha se instrução",
        "third": "Terceira linha se instrução"
      },
      "logoUri": "http://"
    }
  }
}
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = {
  "fundingInstrument": {
    "method": "BOLETO",
    "boleto": {
      "expirationDate": "2016-09-30",
      "instructionLines": {
        "first": "Primeira linha se instrução",
        "second": "Segunda linha se instrução",
        "third": "Terceira linha se instrução"
      },
      "logoUri": "http://"
    }
  }
}
from urllib2 import Request, urlopen

values = """
{
  "fundingInstrument": {
    "method": "BOLETO",
    "boleto": {
      "expirationDate": "2016-09-30",
      "instructionLines": {
        "first": "Primeira linha se instrução",
        "second": "Segunda linha se instrução",
        "third": "Terceira linha se instrução"
      },
      "logoUri": "http://"
    }
  }
}"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'OAuth qguusgp05mxaa9adyy8kvo4nuq380z7'
}
request = Request('https://sandbox.moip.com.br/v2/multiorders/id/multipayments', data=values, headers=headers)

response_body = urlopen(request).read()
print response_body
String endpoint = "sandbox.moip.com.br";
String accessToken = "m9mq5lni241ngslgpl910ew45bxnnez";

Moip moip = new Moip(new MoipOAuth(accessToken), endpoint);

Payment multipayment = moip.multiorders().get("MOR-8H8VSF36G5HY").multipayments();

multipayment.setBoleto("2015-09-30",
             "https://logo-uri.com",
             new String[] {"Primeira linha do boleto",
                     "Segunda linha do boleto",
                     "Terceira linha do boleto"})
            .execute();
<?php
require 'vendor/autoload.php';

use Moip\Moip;
use Moip\MoipBasicAuth;

$endpoint = 'sandbox.moip.com.br';
$accessToken = 'qguusgp05mxaa9adyy8kvo4nuq380z7';

$moip = new Moip(new MoipOAuth($accessToken), $endpoint);

$multipayments = $moip->multiorders()->get('MOR-8H8VSF36G5HT')->multipayments();

$multipayments->setBoleto('2016-09-30', 'https://logo-uri.com', array('Primeira linha se instrução',
                                                                      'Segunda linha se instrução',
                                                                      'Terceira linha se instrução'))
              ->execute();

Response:

201 (Created)
Content-Type: application/json
{
  "id": "MPY-7X3JO2E2AMFL",
  "status": "WAITING",
  "amount": {
    "currency": "BRL",
    "total": 8000
  },
  "installmentCount": 1,
  "fundingInstrument": {
    "boleto": {
      "expirationDate": "2016-09-30",
      "lineCode": "23793.39126 60000.032957 96001.747904 7 69330000008000",
      "instructionLines": {
        "third": "Terceira linha se instrução",
        "second": "Segunda linha se instrução",
        "first": "Primeira linha se instrução"
      }
    },
    "method": "BOLETO"
  },
  "payments": [
    {
      "id": "PAY-FJ6MWU4YM7YO",
      "status": "WAITING",
      "amount": {
        "fees": 155,
        "refunds": 0,
        "liquid": 3845,
        "currency": "BRL",
        "total": 4000
      },
      "installmentCount": 1,
      "fundingInstrument": {
        "boleto": {
          "expirationDate": "2016-09-30",
          "instructionLines": {
            "third": "Terceira linha se instrução",
            "second": "Segunda linha se instrução",
            "first": "Primeira linha se instrução"
          }
        },
        "method": "BOLETO"
      },
      "fees": [
        {
          "type": "TRANSACTION",
          "amount": 155
        }
      ],
      "events": [
        {
          "createdAt": "2015-01-14T14:08:27-0200",
          "type": "PAYMENT.CREATED"
        },
        {
          "createdAt": "2015-01-14T14:08:27-0200",
          "type": "PAYMENT.WAITING"
        }
      ],
      "_links": {
        "order": {
          "title": "ORD-OK8E3Z5FDBHQ",
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-OK8E3Z5FDBHQ"
        },
        "self": {
          "href": "https://sandbox.moip.com.br/v2/payments/PAY-FJ6MWU4YM7YO"
        }
      },
      "updatedAt": "2015-01-14T14:08:27-0200",
      "createdAt": "2015-01-14T14:08:27-0200"
    },
    {
      "id": "PAY-TRYJXY9V2KR0",
      "status": "WAITING",
      "amount": {
        "fees": 155,
        "refunds": 0,
        "liquid": 3845,
        "currency": "BRL",
        "total": 4000
      },
      "installmentCount": 1,
      "fundingInstrument": {
        "boleto": {
          "expirationDate": "2016-09-30",
          "instructionLines": {
            "third": "Terceira linha se instrução",
            "second": "Segunda linha se instrução",
            "first": "Primeira linha se instrução"
          }
        },
        "method": "BOLETO"
      },
      "fees": [
        {
          "type": "TRANSACTION",
          "amount": 155
        }
      ],
      "events": [
        {
          "createdAt": "2015-01-14T14:08:27-0200",
          "type": "PAYMENT.CREATED"
        },
        {
          "createdAt": "2015-01-14T14:08:27-0200",
          "type": "PAYMENT.WAITING"
        }
      ],
      "_links": {
        "order": {
          "title": "ORD-5D7RIISYWZRI",
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-5D7RIISYWZRI"
        },
        "self": {
          "href": "https://sandbox.moip.com.br/v2/payments/PAY-TRYJXY9V2KR0"
        }
      },
      "updatedAt": "2015-01-14T14:08:27-0200",
      "createdAt": "2015-01-14T14:08:27-0200"
    }
  ],
  "_links": {
    "multiorder": {
      "href": "https://sandbox.moip.com.br/v2/multiorders/MOR-QXZKIF6GPN5V"
    },
    "self": {
      "href": "https://sandbox.moip.com.br/v2/multipayments/MPY-7X3JO2E2AMFL"
    },
    "checkout": {
      "payBoleto": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/boleto/MPY-7X3JO2E2AMFL"
      }
    }
  }
}

Exemplo de pagamento com débito online

POST https://sandbox.moip.com.br/v2/multiorders/MOR-BZ1UC1FEZUWG/multipayments

Request:

Content-Type: application/json
Authorization: "OAuth qguusgp05mxaa9adyy8kvo4nuq380z7"
{
  "fundingInstrument": {
    "method": "ONLINE_BANK_DEBIT",
    "onlineBankDebit": {
      "bankNumber": "001",
      "expirationDate": "2016-12-30",
      "returnUri": "http://"
    }
  }
}
require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

values = {
  "fundingInstrument": {
    "method": "ONLINE_BANK_DEBIT",
    "onlineBankDebit": {
      "bankNumber": "001",
      "expirationDate": "2016-12-30",
      "returnUri": "http://"
    }
  }
}
from urllib2 import Request, urlopen

values = """
{
  "fundingInstrument": {
  "fundingInstrument": {
    "method": "ONLINE_BANK_DEBIT",
    "onlineBankDebit": {
      "bankNumber": "001",
      "expirationDate": "2016-12-30",
      "returnUri": "http://"
    }
  }
}"""

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'OAuth qguusgp05mxaa9adyy8kvo4nuq380z7'
}
request = Request('https://sandbox.moip.com.br/v2/multiorders/id/multipayments', data=values, headers=headers)

response_body = urlopen(request).read()
print response_body
String endpoint = "sandbox.moip.com.br";
String accessToken = "m9mq5lni241ngslgpl910ew45bxnnez";

Moip moip = new Moip(new MoipOAuth(accessToken), endpoint);

Payment multipayment = moip.multiorders().get("MOR-8H8VSF36G5HY").multipayments();

multipayment.setOnlineBankDebit("001", "2016-12-30", "https://return-uri.com")
            .execute();
<?php
require 'vendor/autoload.php';

use Moip\Moip;
use Moip\MoipBasicAuth;

$endpoint = 'sandbox.moip.com.br';
$accessToken = 'qguusgp05mxaa9adyy8kvo4nuq380z7';

$moip = new Moip(new MoipOAuth($accessToken), $endpoint);

$multipayments = $moip->multiorders()->get('MOR-8H8VSF36G5HT')->multipayments();

$multipayments->setOnlineBankDebit('001', '2016-12-30', 'https://return-uri.com')
              ->execute();

Response:

201 (Created)
Content-Type: application/json
{
  "id": "MPY-EP4WDATHIPPU",
  "status": "WAITING",
  "amount": {
    "currency": "BRL",
    "total": 8000
  },
  "installmentCount": 1,
  "payments": [
    {
      "id": "PAY-ET37WTEKYWG4",
      "status": "WAITING",
      "amount": {
        "fees": 155,
        "refunds": 0,
        "liquid": 3845,
        "currency": "BRL",
        "total": 4000
      },
      "installmentCount": 1,
      "fundingInstrument": {
        "method": "ONLINE_BANK_DEBIT",
        "onlineBankDebit": {
          "expirationDate": "2016-12-30",
          "bankNumber": "001",
          "bankName": "BANCO DO BRASIL S.A."
        }
      },
      "fees": [
        {
          "type": "TRANSACTION",
          "amount": 155
        }
      ],
      "events": [
        {
          "createdAt": "2015-01-14T14:15:23-0200",
          "type": "PAYMENT.CREATED"
        },
        {
          "createdAt": "2015-01-14T14:15:23-0200",
          "type": "PAYMENT.WAITING"
        }
      ],
      "_links": {
        "order": {
          "title": "ORD-HWF5X38EW20T",
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-HWF5X38EW20T"
        },
        "self": {
          "href": "https://sandbox.moip.com.br/v2/payments/PAY-ET37WTEKYWG4"
        }
      },
      "updatedAt": "2015-01-14T14:15:23-0200",
      "createdAt": "2015-01-14T14:15:23-0200"
    },
    {
      "id": "PAY-U70D39R97FNV",
      "status": "WAITING",
      "amount": {
        "fees": 155,
        "refunds": 0,
        "liquid": 3845,
        "currency": "BRL",
        "total": 4000
      },
      "installmentCount": 1,
      "fundingInstrument": {
        "method": "ONLINE_BANK_DEBIT",
        "onlineBankDebit": {
          "expirationDate": "2016-12-30",
          "bankNumber": "001",
          "bankName": "BANCO DO BRASIL S.A."
        }
      },
      "fees": [
        {
          "type": "TRANSACTION",
          "amount": 155
        }
      ],
      "events": [
        {
          "createdAt": "2015-01-14T14:15:23-0200",
          "type": "PAYMENT.CREATED"
        },
        {
          "createdAt": "2015-01-14T14:15:23-0200",
          "type": "PAYMENT.WAITING"
        }
      ],
      "_links": {
        "order": {
          "title": "ORD-KUKNFDIXWZ5T",
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-KUKNFDIXWZ5T"
        },
        "self": {
          "href": "https://sandbox.moip.com.br/v2/payments/PAY-U70D39R97FNV"
        }
      },
      "updatedAt": "2015-01-14T14:15:23-0200",
      "createdAt": "2015-01-14T14:15:23-0200"
    }
  ],
  "_links": {
    "multiorder": {
      "href": "https://sandbox.moip.com.br/v2/multiorders/MOR-BZ1UC1FEZUWG"
    },
    "self": {
      "href": "https://sandbox.moip.com.br/v2/multipayments/MPY-EP4WDATHIPPU"
    },
    "checkout": {
      "payOnlineBankDebitItau": {
        "redirectHref": "https://checkout-sandbox.moip.com.br/debit/itau/MPY-EP4WDATHIPPU"
      }
    }
  }
}

Parâmetros:

Nome Descrição Tipo
_____________________________
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), opcional
delayCapture 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. boolean, opcional
fundingInstrument Meio de pagamento utilizado. structured
├─method Meio de pagamento. Valores possíveis: CREDIT_CARD, BOLETO, ONLINE_BANK_DEBIT, WALLET. string, obrigatório
├─creditCard 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. structured
├ ├─id Identificador do cartão de crédito no previamente salvo no Moip. string(16), condicional
├ ├─hash Dados criptografados do cartão de crédito. string, condicional
├ ├─number Número do cartão de crédito. Requer certificação PCI. string(19), condicional
├ ├─expirationMonth Mês de expiração do cartão. Requer certificação PCI. integer(2), obrigatório se utilizado o number
├ ├─expirationYear Ano de expiração do cartão. Requer certificação PCI. integer(4), obrigatório se utilizado o number
├ ├─cvc 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, opcional
├ ├─holder Portador do cartão. structured, caso esteja utilizando o id não enviar
├ ├─├─fullname Nome do portador impresso no cartão. string(90), obrigatório *
├ ├─├─birthdate Data de nascimento do portador. date(AAAA-MM-DD), obrigatório *
├ ├─├─phone Telefone do cliente. structured
├ ├─├ ├─countryCode DDI (código internacional) do telefone. Valores possíveis: 55. integer(2), opcional *
├ ├─├ ├─areaCode DDD (código local) do telefone. integer(2), opcional *
├ ├─└ └─number Número do telefone. integer(9), opcional *
├ ├─├─taxDocument Documento fiscal. structured
├ ├─├ ├─type Tipo do documento. Valores possíveis: CPF, CNPJ. string(3), opcional *
├ ├─└ └─number Número do documento. string(11), opcional *
├ └─└─billingAddress Endereços de cobrança do cartão de crédito. object Endereço opcional *
├─boleto Dados do boleto utilizado no pagamento. structured
├ ├─expirationDate Data de expiração de um boleto. date, obrigatório
├ ├─instructionLines Instruções impressas no boleto. structured
├ ├─├─first Primeira linha de instrução. string, opcional
├ ├─├─second Segunda linha de instrução. string, opcional
├ ├─└─third Terceira linha de instrução. string, opcional
├ └─logoUri Endereço de uma imagem com o logotipo a ser impresso no boleto. Ainda não disponível nesta versão da API. link, opcional
├─onlineBankDebit Dados para o débito online. structured
├ ├─bankNumber Número do banco. Valores possíveis: 001, 237, 341, 041. Ver lista de bancos e códigos FEBRABAN string, condicional
├ ├─expirationDate Data de expiração do débito. date, condicional
└ └─returnUri Url de redirecionamento. Ainda não disponível nesta versão da API. link, condicional

*Campos obrigatórios para que a transação seja elegível ao Venda Protegida

Consultar multipagamento [GET]

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

Endpoint

GEThttps://sandbox.moip.com.br/v2/multipayments/{multipayment_id}

AUTENTICAÇÃO: OAuth

Exemplo

GET https://sandbox.moip.com.br/v2/multipayments/MPY-8MMS9Y8TE2IK

Request:

Content-Type: application/json
Authorization: "OAuth qguusgp05mxaa9adyy8kvo4nuq380z7"

require 'rubygems' if RUBY_VERSION < '1.9'
require 'rest_client'

headers = {
  :content_type => 'application/json',
  :authorization => 'OAuth qguusgp05mxaa9adyy8kvo4nuq380z7'
}

response = RestClient.get 'https://sandbox.moip.com.br/v2/multipayments/id', headers
puts response
from urllib2 import Request, urlopen

headers = {
  'Content-Type': 'application/json',
  'Authorization': 'OAuth qguusgp05mxaa9adyy8kvo4nuq380z7'
}
request = Request('https://sandbox.moip.com.br/v2/multipayments/id', headers=headers)

response_body = urlopen(request).read()
print response_body
String endpoint = "sandbox.moip.com.br";
String accessToken = "m9mq5lni241ngslgpl910ew45bxnnez";

Moip moip = new Moip(new MoipOAuth(accessToken), endpoint);

Payment multipayment = moip.multiorders().get("MOR-8H8VSF36G5HY").multipayments().get("MPY-8MMS9Y8TE2IK");
<?php
require 'vendor/autoload.php';

use Moip\Moip;
use Moip\MoipBasicAuth;

$endpoint = 'sandbox.moip.com.br';
$accessToken = 'qguusgp05mxaa9adyy8kvo4nuq380z7';

$moip = new Moip(new MoipOAuth($accessToken), $endpoint);

$multipayments = $moip->multiorders()->get('MOR-8H8VSF36G5HT')->multipayments()->get('MPY-8MMS9Y8TE2IK');

Response:

200 (Ok)
Content-Type: application/json
 {
  "id": "MPY-8MMS9Y8TE2IK",
  "status": "AUTHORIZED",
  "amount": {
    "currency": "BRL",
    "total": 8000
  },
  "installmentCount": 1,
  "payments": [
    {
      "id": "PAY-YVP2NVPMV6YC",
      "status": "AUTHORIZED",
      "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:42-0200",
          "type": "PAYMENT.AUTHORIZED"
        },
        {
          "createdAt": "2015-01-14T14:07:37-0200",
          "type": "PAYMENT.IN_ANALYSIS"
        },
        {
          "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:42-0200",
      "createdAt": "2015-01-14T14:07:32-0200"
    },
    {
      "id": "PAY-78WM5WUDITVI",
      "status": "AUTHORIZED",
      "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:42-0200",
          "type": "PAYMENT.AUTHORIZED"
        },
        {
          "createdAt": "2015-01-14T14:07:37-0200",
          "type": "PAYMENT.IN_ANALYSIS"
        },
        {
          "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:42-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"
    }
  }
}
Nome Descrição Tipo
id Id do multipagamento em formato de hash. string(16), obrigatório

Permissões de terceiros (OAuth)

Para todas as requisições que envolvam mais de uma Conta Moip diretamente, será necessária autenticação por meio de um token OAuth. Usando o padrão OAuth 2.0 é possível se autenticar nas APIs do Moip e solicitar o uso das APIs em nome de outro usuário. Desta forma, outro usuário Moip pode lhe conceder as mais diversas permissões, desde receber pagamentos como recebedor secundário até mesmo ações especiais como reembolso de um pagamento.

O OAuth do Moip foi desenvolvido seguindo as especificações do OAuth 2.0 Authorization Framework.

  • Registrando seu aplicativo
  • Solicitando permissões dos usuários para seu aplicativo
  • Gerar token de acesso

Importante: As URLs para obtenção dos tokens OAuth são diferentes das URLs padrão de Produção e Sandbox.

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

Registrando seu aplicativo

Para gerenciar os pagamentos em nome de seus usuários vendedores é necessário que você crie um Aplicativo no Moip. Para isso durante o beta você deve solicitar a criação do seu APP para nosso time, acesse aqui e solicite o cadastro de seu APP.

Você irá receber as seguintes informações:

  • ID do aplicativo id
  • Chave privada do aplicativo secret
  • Token de autenticação do aplicativo accessToken
  • Data de criação createAt
  • Data de atualização updatedAt

Com elas você irá montar o link para solicitar permissão e para a gerar o token OAuth(accessToken) da conta Moip do seu usuário.

Solicitando permissões ao usuário [GET]

Para solicitar as permissões você deverá montar a URL com os parâmetros descritos abaixo e redirecionar o usuário para esta URL.

Após o usuário conceder a permissão, você receberá um novo code para utilizar em uma nova requisição server-side para de fato receber o token de acesso que lhe permita r

Endpoint

GET https://connect-sandbox.moip.com.br/oauth/authorize

Atributos:

Nome Descrição Detalhes
_____________________________
response_type Define o tipo de resposta a ser obtido. Valores possíveis: CODE string(4), obrigatório
client_id Identificador único do aplicativo que será realizada a solicitação. string(16) obrigatório
redirect_uri URI de redirecionamento do cliente string(255) obrigatório
scope Permissões que deseja (Valores possíveis de acordo com o recurso.) string(255) obrigatório

Scopes disponíveis:

Nome Descrição
RECEIVE_FUNDS Permissão para criação e consulta de PEDIDOS, PAGAMENTOS, MULTIPEDIDOS, MULTIPAGAMENTOS, CLIENTES e consulta de LANÇAMENTOS.
REFUND Permissão para criação e consultas de reembolsos de PEDIDOS, PAGAMENTOS.
MANAGE_ACCOUNT_INFO Permissão para consulta de informações cadastrais de ACCOUNTS.
RETRIEVE_FINANCIAL_INFO Permissão para consulta de saldo de através do endpoint ACCOUNTS.
TRANSFER_FUNDS Permissão para transferências bancárias ou para contas Moip através do endpoint TRANSFERS.
DEFINE_PREFERENCES Permissão para criação, alteração e exclusão de preferências de notificação através do endpoint PREFERENCES

Exemplo

https://connect-sandbox.moip.com.br/oauth/authorize?response_type=code&client_id=APP-M11STAPPOAUt&redirect_uri=https://url.com.br/callback.php&scope=RECEIVE_FUNDS,REFUND,MANAGE_ACCOUNT_INFO

Assim que o cliente for redirecionado, o Moip checará se ele está logado. Se estiver, serão exibidas as opções de aceitar ou recusar o vínculo com informações de seu aplicativo.

User_permission

Em caso se permissão concedida, o usuário será redirecionado para a sua URL de redirecionamento com o code referente a confirmação do aceite do usuário.

Exemplo

http://meusite.com.br/?code=ohgrvfk2kdq92w27w66mlntasfh24je

Caso ele não esteja logado, ele será redirecionado para página de login, e após o login ele volta para o fluxo descrito acima.

Gerar token OAuth (accessToken) [POST]

Com a permissão concedida, você receberá um code que lhe permitira recuperar o accessToken de autenticação e processar requisições envolvendo outro usuário. Seguindo a especificação do OAuth 2.0 Authorization Framework esse request é feita com os atributos em x-www-form-urlencoded, ao invés de um JSON.

Atributos:

Nome Descrição Detalhes
_____________________________
appId Identificador único do aplicativo que está realizando a solicitação DEPRECATED string(4), obrigatório
appSecret Chave privada do aplicativo DEPRECATED string(32) obrigatório
redirectUri Url de redirecionamento do cliente (deve ser a mesma utilizada na ação de solicitação de permissão) DEPRECATED string obrigatório
grantType Tipo de solicitação desejada. Valores possíveis: AUTHORIZATION_CODE. DEPRECATED string(18) obrigatório
accessToken Token de acesso e autenticação DEPRECATED string(32) response
moipAccountId Identificador de Conta Moip que lhe deu permissão DEPRECATED string(16) response
client_id Identificador único do aplicativo que está realizando a solicitação. string(4), obrigatório
client_secret Chave privada do aplicativo string(32) obrigatório
redirect_uri Url de redirecionamento do cliente (deve ser a mesma utilizada na ação de solicitação de permissão). string obrigatório
grant_type Tipo de solicitação desejada. Valores possíveis: AUTHORIZATION_CODE string(18) obrigatório
access_token Token de acesso e autenticação no padrão clássico para integração com SDKs genéricos string(35) response
refresh_token Token para atualizar o token de autenticação string(35) response
code Código de validação para recuperar o token de acesso string(32) obrigatório
scope Permissões as quais foram concedidas (Valores possíveis de acordo com o recurso) string response
moipAccount Conta Moip associada ao lançamento structured
└─id Id da Conta Moip. string

Endpoint

POST https://connect-sandbox.moip.com.br/oauth/token

AUTENTICAÇÃO: Basic Authentication

Request:

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: Basic Tk0wRTdZR1hGUFhURVVZM0NUNjhJRlJBUEVWRjhNRkU6S0FSVlI0RFZDNVVHVEJLMUwzR01JTUI0TkdTUkZDVUVaSVFLUUJTRg==" -H "Cache-Control: no-cache" -d 'client_id=APP-M11STAPPOAU&client_secret=SplxlOBeZQQYbYS6WxSbIA&grant_type=authorization_code&code=4d9e0466bc14aad85b894237145b217219e9a825&redirect_uri=http://urlteste.com.br' 
"https://connect-sandbox.moip.com.br/oauth/token"

Response:

200 (Ok)
Content-Type: application/json
{
  "accessToken": "39a3099b45634f6eb511991fbbe83752_v2",
  "access_token": "39a3099b45634f6eb511991fbbe83752_v2",
  "expires_in": "2026-09-14",
  "refreshToken": "1defad3474a8423f87a04adc588e7c7b_v2",
  "refresh_token": "1defad3474a8423f87a04adc588e7c7b_v2",
  "scope": "RECEIVE_FUNDS,REFUND,MANAGE_ACCOUNT_INFO",
  "moipAccount": {
    "id": "MPA-SVOAZT7WWHGB"
  }
}

Atualizar token OAuth (refresh_token) [POST]

Você a qualquer momento pode atualizar o access_token que foi concedido pelo cliente, esse tipo de ação é aconselhável para aumentar ainda mais a segurança de sua aplicação.

Por padrão o access_token gerado pelo Moip tem validade de 10 anos, mas sugerimos que você faça o refresh_token uma vez por mês.

Atributos:

Nome Descrição Detalhes
_____________________________
grant_type Tipo de solicitação desejada. Valores possíveis: refresh_token string(18) obrigatório
refresh_token Token para atualizar o token de autenticação string(35) obrigatório

Endpoint

POST https://connect-sandbox.moip.com.br/oauth/token

AUTENTICAÇÃO: Basic Authentication

Request:

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: Basic Tk0wRTdZR1hGUFhURVVZM0NUNjhJRlJBUEVWRjhNRkU6S0FSVlI0RFZDNVVHVEJLMUwzR01JTUI0TkdTUkZDVUVaSVFLUUJTRg==" -H "Cache-Control: no-cache" -H "Postman-Token: 875e18a9-0c79-6306-3ddf-04d1a111fda5" -d 'grant_type=refresh_token&refresh_token=2381dfbbcbd645268af1dd0e4456bfe1_v2' "https://connect-sandbox.moip.com.br/oauth/token"

Response:

200 (Ok)
Content-Type: application/json
{
  "accessToken": "39a3099b45634f6eb511991fbbe83752_v2",
  "access_token": "39a3099b45634f6eb511991fbbe83752_v2",
  "expires_in": "2026-09-14",
  "refreshToken": "1defad3474a8423f87a04adc588e7c7b_v2",
  "refresh_token": "1defad3474a8423f87a04adc588e7c7b_v2",
  "scope": "RECEIVE_FUNDS,REFUND,MANAGE_ACCOUNT_INFO",
  "moipAccount": {
    "id": "MPA-SVOAZT7WWHGB"
  }
}

Contas Moip

A Conta Moip é a conta de pagamentos de uma pessoa ou negócio. Esta API permite a criação e a consulta dos dados de uma determinada conta.

Atributos:

Nome Descrição Detalhes
____________________________
id Id da conta. string, response
externalId Id da conta. DEPRECATED Removido em 15/01/16. string, response
accessToken Token utilizado por plataformas ou marketplaces para manipular a Conta Moip. Retornado apenas na criação de Contas Transparentes. string, response
channelId Identificador do aplicativo que criou a Conta. string, response
setPassword Link para definição de senha da conta Moip. string, response
email E-mail da conta. structured
├─address Endereço de email da conta. Será usado como login. string
└─confirmed Se o endereço de email já foi verificado. boolean
login Login para acessar a conta. Será igual ao endereço de email principal. string, response
person Dados da pessoa física. Se o cadastro for de pessoa jurídica os dados devem ser de um dos sócios ou procuradores. structured
├─name Nome. string
├─lastName Sobrenome. string
├─taxDocument Documento fiscal. structured
├─├─type Tipo do documento. Valores possíveis: CPF. string
├─└─number Número do documento. string
├─identityDocument Documento de identidade. structured
├─├─type Tipo do documento. Valores possíveis: RG. string
├─├─number Número do documento. string
├─├─issuer Emissor do documento. string
├─└─issueDate Data de emissão do documento. Formato 2011-01-01. date
├─birthDate Data de nascimento. date (AAAA-MM-DD)
├─nationality País de nascimento. Abreviação com 3 letras string
├─birthPlace Cidade de nascimento. string
├─parentsName Filiação. structured
├─├─mother Nome da mãe. string
├─└─father Nome do pai. string
├─phone Telefone de contato. structured
├─├─countryCode DDI (código internacional) do telefone. Valores possíveis: 55. string
├─├─areaCode DDD (código local) do telefone. string
├─└─number Número do telefone. string
├─alternativePhones Telefones alternativos de contato. structured list
├─├─countryCode DDI (código internacional) do telefone. Valores possíveis: 55. string
├─├─areaCode DDD (código local) do telefone. string
├─└─number Número do telefone. string
├─address Endereço. structured
├─├─street Nome da rua. string
├─├─streetNumber Número. string
├─├─complement Complemento. string
├─├─district Bairro. string
├─├─zipcode CEP. DEPRECATED Removido em 15/01/16. string
├─├─zipCode CEP. string
├─├─city Cidade. string
├─├─state Estado. Abreviação com 2 letras string
└─└─country País. Abreviação com 3 letras string
company Dados da empresa. Utilizado para contas empresariais structured
├─name Nome fantasia. string
├─businessName Razão social. string
├─taxDocument Documento fiscal da empresa. structured
├─├─type Tipo do documento. Valores possíveis: CNPJ. string
├─└─number Número do documento. string
├─mainActivity Ramo de atividade principal. structured
├─├─cnae Código CNAE de atividade. Exemplo 82.91-1/00 string
├─└─description Descrição da atividade. Exemplo Atividades de cobranças e informações cadastrais string
├─openingDate Data de abertura. Formato 2011-01-01. date
├─phone Telefone de contato da empresa. structured
├─├─countryCode DDI (código internacional) do telefone. Valores possíveis: 55. string
├─├─areaCode DDD (código local) do telefone. string
├─└─number Número do telefone. string
├─address Endereço. structured
├─├─street Nome da rua. string
├─├─streetNumber Número. string
├─├─complement Complemento. string
├─├─district Bairro. string
├─├─zipcode CEP. DEPRECATED Removido em 15/01/16. string
├─├─zipCode CEP. string
├─├─city Cidade. string
├─├─state Estado. Abreviação com 2 letras string
└─└─country País. Abreviação com 3 letras string
businessSegment Categoria do negócio. structured
├─id Identificador da categoria, de acordo com a relação de categorias. Ver a Tabela de categorias para ver os valores possíveis. string
├─name Nome da categoria. string, Response
└─mcc Merchant Category Code. Padrão utilizado pelas bandeiras de cartão. string, Response
site Endereço do site. string
type Tipo da conta. Valores possíveis: CONSUMER, MERCHANT. string
transparentAccount Se a conta é uma Conta transparente criada por uma plataforma ou marketplace. boolean
tosAcceptance Dados do aceite de termos de uso. structured
├─acceptedAt Data de aceite dos termos de uso datetime
├─ip Endereço de IP do usuário ao aceitar os termos de uso. string
└─userAgent Agente utilizado pelo usuário no momento do aceite dos termos de uso. string
createdAt Data de criação do recurso. datetime
_links Links do recurso. structured, response
├─self Hyperlink para o próprio recurso. structured
└─└─href URI do próprio recurso. link

Criar conta moip [POST]

Por meio desta API é possível criar uma Conta no Moip.

Endpoint

POST https://sandbox.moip.com.br/v2/accounts

AUTENTICAÇÃO OAuth

Request:

Content-Type: application/json
Authorization: "OAuth 1tldio91gi74r34zv30d4saz8yuuws5"

{
    "email": {
        "address": "dev.moip@labs.moip.com.br"
    },
    "person": {
        "name": "Runscope",
        "lastName": "Random 9123",
        "taxDocument": {
            "type": "CPF",
            "number": "123.456.798-91"
        }, 
          "identityDocument": {
          "type" : "RG",
          "number": "434322344",
          "issuer": "SSP",
          "issueDate": "2000-12-12" 
          }, 
        "birthDate": "1990-01-01",
        "phone": {
            "countryCode": "55",
            "areaCode": "11",
            "number": "965213244"
        },
        "address": {
            "street": "Av. Brigadeiro Faria Lima",
            "streetNumber": "2927",
            "district": "Itaim",
            "zipCode": "01234-000",
            "city": "São Paulo",
            "state": "SP",
            "country": "BRA"
        }
    },
    "type": "MERCHANT"
}

# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

201 (Created)
Content-Type: application/json
{
  "id": "MPA-3C5358FF2296",
  "accessToken": "580590c8d42b422d842b4f38c01a8d75_v2",
  "channelId": "APP-MOIPSANDBOXX",
  "type": "MERCHANT",
  "transparentAccount": false,
  "createdAt": "2016-09-14T01:18:26.534Z",
  "person": {
    "name": "Runscope",
    "lastName": "Random 9123",
    "birthDate": "1990-01-01",
    "taxDocument": {
      "number": "123.456.798-91",
      "type": "CPF"
    },
    "identityDocument": {
      "number": "434322344",
      "issuer": "SSP",
      "issueDate": "2000-12-12",
      "type": "RG"
    },
    "phone": {
      "number": "965213244",
      "areaCode": "11",
      "countryCode": "55"
    },
    "address": {
      "street": "Av. Brigadeiro Faria Lima",
      "streetNumber": "2927",
      "district": "Itaim",
      "zipcode": "01234000",
      "city": "São Paulo",
      "state": "SP",
      "country": "BRA",
      "zipCode": "01234000"
    }
  },
  "email": {
    "address": "dev.moip@labs.moip.com.br",
    "confirmed": false
  },
  "_links": {
    "self": {
      "href": "https://sandbox.moip.com.br/moipaccounts/MPA-3C5358FF2296"
    },
    "setPassword": {
      "href": "https://desenvolvedor.moip.com.br/sandbox/AskForNewPassword.do?method=confirm&email=dev.moip%40labs.moip.com.br&code=8e3b306d59907f4a47508913956c96ba"
    }
  },
  "login": "dev.moip@labs.moip.com.br"
}

Parâmetros:

Nome Descrição Detalhes
____________________________
email E-mail da conta. structured
└─address Endereço de email da conta. Será usado como login. Para Contas Transparentes o email é utilizado apenas para localizar uma conta no Moip uma vez que nenhuma comunicação é enviada ao dono da conta. string, obrigatório
person Dados da pessoa física. Se o cadastro for de pessoa jurídica os dados devem ser de um dos sócios ou procuradores. structured
├─name Nome. string, obrigatório
├─lastName Sobrenome. string, obrigatório
├─taxDocument Documento fiscal. structured
├─├─type Tipo do documento. Valores possíveis: CPF. string, obrigatório
├─└─number Número do documento. string, obrigatório
├─identityDocument Documento de identidade. structured, obrigatório
├─├─type Tipo do documento. Valores possíveis: RG. string
├─├─number Número do documento. string
├─├─issuer Emissor do documento. string
├─└─issueDate Data de emissão do documento. Formato 2011-01-01. date
├─birthDate Data de nascimento. date (AAAA-MM-DD)
├─nationality País de nascimento. Abreviação com 3 letras string
├─birthPlace Cidade de nascimento. string
├─parentsName Filiação. structured
├─├─mother Nome da mãe. string
├─└─father Nome do pai. string
├─phone Telefone de contato. structured
├─├─countryCode DDI (código internacional) do telefone. Valores possíveis: 55. string, obrigatório
├─├─areaCode DDD (código local) do telefone. string, obrigatório
├─└─number Número do telefone. string, obrigatório
├─alternativePhones Telefones alternativos de contato. structured list
├─├─countryCode DDI (código internacional) do telefone. Valores possíveis: 55. string
├─├─areaCode DDD (código local) do telefone. string
├─└─number Número do telefone. string
├─address Endereço. structured
├─├─street Nome da rua. string, obrigatório
├─├─streetNumber Número. string, obrigatório
├─├─complement Complemento. string
├─├─district Bairro. string, obrigatório
├─├─zipcode CEP. DEPRECATED Removido em 15/01/16. string, obrigatório
├─├─zipCode CEP. string, obrigatório
├─├─city Cidade. string, obrigatório
├─├─state Estado. Abreviação com 2 letras string, obrigatório
└─└─country País. Abreviação com 2 letras string, obrigatório
company Dados da empresa. Utilizado para contas empresariais structured
├─name Nome fantasia. string, condicional
├─businessName Razão social. string, condicional
├─taxDocument Documento fiscal da empresa. structured
├─├─type Tipo do documento. Valores possíveis: CNPJ. string, condicional
├─└─number Número do documento. string, condicional
├─mainActivity Ramo de atividade principal. structured
├─├─cnae Código CNAE de atividade. Exemplo 82.91-1/00 string
├─└─description Descrição da atividade. Exemplo Atividades de cobranças e informações cadastrais string
├─openingDate Data de abertura. Formato 2011-01-01. date
├─phone Telefone de contato da empresa. structured
├─├─countryCode DDI (código internacional) do telefone. Valores possíveis: 55. string, condicional
├─├─areaCode DDD (código local) do telefone. string, condicional
├─└─number Número do telefone. string, condicional
├─address Endereço. structured
├─├─street Nome da rua. string, condicional
├─├─streetNumber Número. string, condicional
├─├─complement Complemento. string
├─├─district Bairro. string, condicional
├─├─zipcode CEP. DEPRECATED Removido em 15/01/16. string, condicional
├─├─zipCode CEP. string, condicional
├─├─city Cidade. string, condicional
├─├─state Estado. Abreviação com 2 letras string, condicional
└─└─country País. Abreviação com 2 letras string, condicional
businessSegment Categoria do negócio. structured
└─id Identificador da categoria, de acordo com a relação de categorias. Ver a Tabela de categorias para ver os valores possíveis. string
site Endereço do site. string
type Tipo da conta. Valores possíveis: CONSUMER, MERCHANT. Plataformas e Marketplaces devem utilizar o valor MERCHANTpara criar contas para os seus usuários. string, obrigatório
transparentAccount Utilizada para criar Contas transparentes dentro do contexto de plataformas e marketplaces. Contas transparentes são gerenciadas pelas plataformas e o Moip não envia nenhuma comunicação para o usuário. Ver mais detalhes na documentação de negócios (incluir o link). boolean
tosAcceptance Dados do aceite de termos de uso. structured
├─acceptedAt Data de aceite dos termos de uso datetime
├─ip Endereço de IP do usuário ao aceitar os termos de uso. string
└─userAgent Agente utilizado pelo usuário no momento do aceite dos termos de uso. string

Consultar conta moip [GET]

Por meio desta API é possível consultar os dados de uma Conta Moip.

Endpoint

GET https://sandbox.moip.com.br/v2/accounts/{id}

AUTENTICAÇÃO OAuth

Exemplo

GET https://sandbox.moip.com.br/v2/accounts/MPA-8307EF11B83E

Request:

Content-Type: application/json
Authorization: "OAuth 1tldio91gi74r34zv30d4saz8yuuws5"

{}
# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

200 (Ok)
Content-Type: application/json
{
    "id": "MPA-8307EF11B83E",
    "channelId": "APP-7KHGFTMYHGLO",
    "type": "MERCHANT",
    "transparentAccount": false,
    "createdAt": "2015-10-29T16:53:25.957Z",
    "person": {
        "name": "Runscope",
        "lastName": "Random 9123",
        "birthDate": "1990-01-01",
        "taxDocument": {
            "number": "742.520.863-61",
            "type": "CPF"
        },
        "phone": {
            "number": "965213244",
            "areaCode": "11",
            "countryCode": "55"
        },
        "address": {
            "street": "Av. Brigadeiro Faria Lima",
            "streetNumber": "2927",
            "district": "Itaim",
            "zipCode": "01234000",
            "city": "São Paulo",
            "state": "SP",
            "country": "BRA"
        }
    },
    "email": {
        "address": "dobxerg0a8@labs.moip.com.br",
        "confirmed": false
    },
    "_links": {
        "self": {
            "href": "https://sandbox.moip.com.br/v2/accounts/MPA-8307EF11B83E"
        }
    },
    "login": "dobxerg0a8@labs.moip.com.br",
    "externalId": "MPA-8307EF11B83E"
}

Parâmetros:

Nome Descrição Detalhes
_____
id Identificador da Conta Moip. string, obrigatório

Contas Bancárias

A Conta bancária é o domicílio bancário de uma determinada Conta Moip. Esta API permite a criação, a consulta e a alteração dos dados de uma Conta Bancária.

Atributos:

Nome Descrição Tipo
_____________________________
id Identificador da conta bancária. string, response
type Tipo da conta. Valores possíveis: CHECKING, SAVING. string
status Status da conta. Valores possíveis: NOT_VERIFIED, IN_VERIFICATION, VERIFIED, INVALID. string, response
bankNumber Número do banco (padrão FEBRABAN). Veja lista de bancos disponíveis aqui. string
bankName Nome do banco (padrão FEBRABAN). string, response
agencyNumber Número da agência. integer
agencyCheckNumber Dígito verificador da agência. integer
accountNumber Número da conta. integer
accountCheckNumber Dígito verificador da conta. integer
holder Titular da conta. structured
├─fullname Nome do titular da conta. string
├─taxDocument Documento fiscal do titular. structured
├ ├─type Tipo do documento. Valores possíveis: CPF,CNPJ. string
└ └─number Número do documento. integer
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

Criar conta bancária [POST]

Por meio desta API é possível criar uma Conta Bancária associada a uma Conta Moip.

Endpoint

POST https://sandbox.moip.com.br/v2/accounts/{id}/bankaccounts

AUTENTICAÇÃO OAuth

Exemplo

POST https://sandbox.moip.com.br/v2/accounts/MPA-8307EF11B83E/bankaccounts

Request:

Content-Type: application/json
Authorization: "OAuth 1tldio91gi74r34zv30d4saz8yuuws5"

{
    "bankNumber": "237",
    "agencyNumber": "12345",
    "agencyCheckNumber": "0",
    "accountNumber": "12345678",
    "accountCheckNumber": "7",
    "type": "CHECKING",
    "holder": {
        "taxDocument": {
            "type": "CPF",
            "number": "622.134.533-22"
        },
        "fullname": "Demo Moip"
    }
}

# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

201 (Created)
Content-Type: application/json
{
    "id": "BKA-DN6831N81J7K",
    "agencyNumber": 12345,
    "holder": {
        "taxDocument": {
            "number": "622.134.533-22",
            "type": "CPF"
        },
        "fullname": "Demo Moip"
    },
    "accountNumber": 12345678,
    "status": "NOT_VERIFIED",
    "createdAt": "2015-10-29T15:50:27.746-02:00",
    "accountCheckNumber": "7",
    "_links": {
        "self": {
            "href": "https://sandbox.moip.com.br/v2/accounts/MPA-8307EF11B83E/bankaccounts"
        }
    },
    "bankName": "BANCO BRADESCO S.A.",
    "type": "CHECKING",
    "agencyCheckNumber": "0",
    "bankNumber": "237"
}

Parâmetros:

Nome Descrição Tipo
_____________________________
type Tipo da conta. Valores possíveis: CHECKING, SAVING. string, obrigatório
bankNumber Número do banco (padrão FEBRABAN). string, obrigatório
agencyNumber Número da agência. integer, obrigatório
agencyCheckNumber Dígito verificador da agência. integer, obrigatório
accountNumber Número da conta. integer, obrigatório
accountCheckNumber Dígito verificador da conta. integer, obrigatório
holder Titular da conta. structured
├─fullname Nome do titular da conta. string, obrigatório
├─taxDocument Documento fiscal do titular. structured
├ ├─type Tipo do documento. Valores possíveis: CPF,CNPJ. string, obrigatório
└ └─number Número do documento. integer, obrigatório

Consultar conta bancária [GET]

Por meio desta API é possível consultar uma Conta Bancária.

Endpoint

GET https://sandbox.moip.com.br/v2/bankaccounts/{id}

AUTENTICAÇÃO OAuth

Exemplo

GET https://sandbox.moip.com.br/v2/bankaccounts/MPA-8307EF11B83E

Request:

Content-Type: application/json
Authorization: "OAuth 1tldio91gi74r34zv30d4saz8yuuws5"

{}
# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

200 (Ok)
Content-Type: application/json
{
    "id": "BKA-DN6831N81J7K",
    "agencyNumber": 12345,
    "holder": {
        "taxDocument": {
            "number": "622.134.533-22",
            "type": "CPF"
        },
        "fullname": "Demo Moip"
    },
    "accountNumber": 12345678,
    "status": "NOT_VERIFIED",
    "createdAt": "2015-10-29T15:50:27.746-02:00",
    "accountCheckNumber": "7",
    "_links": {
        "self": {
            "href": "https://sandbox.moip.com.br/v2/accounts/MPA-8307EF11B83E/bankaccounts"
        }
    },
    "bankName": "BANCO BRADESCO S.A.",
    "type": "CHECKING",
    "agencyCheckNumber": "0",
    "bankNumber": "237"
}

Parâmetros:

Nome Descrição Tipo
____
id Identificador da conta bancária. string, obrigatório

Deletar conta bancária [DELETE]

Por meio desta API é possível consultar uma Conta Bancária.

Endpoint

DELETE https://sandbox.moip.com.br/v2/bankaccounts/{id}

AUTENTICAÇÃO OAuth

Exemplo

DELETE https://sandbox.moip.com.br/v2/bankaccounts/BKA-DN6831N81J7K

Request:

Content-Type: application/json
Authorization: "OAuth 1tldio91gi74r34zv30d4saz8yuuws5"

{}
# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

200 (Ok)
Content-Type: application/json

Parâmetros:

Nome Descrição Tipo
_____
id Identificador da conta bancária. string, obrigatório

Atualizar conta bancária [PUT]

Por meio desta API é possível alterar os dados de uma Conta Bancária.

Endpoint

PUT https://sandbox.moip.com.br/v2/bankaccounts/{id}

AUTENTICAÇÃO OAuth

Exemplo

PUT https://sandbox.moip.com.br/v2/bankaccounts/BKA-DN6831N81J7K

Request:

Content-Type: application/json
Authorization: "OAuth 1tldio91gi74r34zv30d4saz8yuuws5"

{
    "accountCheckNumber": "8"
}

# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

201 (Created)
Content-Type: application/json
{
    "id": "BKA-DN6831N81J7K",
    "agencyNumber": 12345,
    "holder": {
        "taxDocument": {
            "number": "622.134.533-22",
            "type": "CPF"
        },
        "fullname": "Demo Moip"
    },
    "accountNumber": 12345678,
    "status": "NOT_VERIFIED",
    "createdAt": "2015-10-29T15:50:27.746-02:00",
    "accountCheckNumber": "8",
    "_links": {
        "self": {
            "href": "https://sandbox.moip.com.br/v2/accounts/MPA-8307EF11B83E/bankaccounts"
        }
    },
    "bankName": "BANCO BRADESCO S.A.",
    "type": "CHECKING",
    "agencyCheckNumber": "0",
    "bankNumber": "237"
}

Parâmetros:

Nome Descrição Tipo
____
id Identificador da conta bancária. string, obrigatório

Listar todas contas bancárias [GET]

Por meio desta API é possível listar as Contas Bancárias de uma determinada Conta Moip.

Endpoint

GET https://sandbox.moip.com.br/v2/accounts/{id}/bankaccounts

AUTENTICAÇÃO OAuth

Exemplo

GET https://sandbox.moip.com.br/v2/accounts/MPA-NOHLMGSQ5KKA/bankaccounts

Request:

Content-Type: application/json
Authorization: "OAuth 1tldio91gi74r34zv30d4saz8yuuws5"

{}

# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

200 (Ok)
Content-Type: application/json
{
    "summary": {
        "count": 2,
        "amount": 2
    },
    "bankAccounts": [
        {
            "id": "BKA-DN6831N81J7K",
            "agencyNumber": 12345,
            "holder": {
                "taxDocument": {
                    "number": "622.134.533-22",
                    "type": "CPF"
                },
                "fullname": "Demo Moip"
            },
            "accountNumber": 12345678,
            "status": "NOT_VERIFIED",
            "createdAt": "2015-10-29T15:50:27.746-02:00",
            "accountCheckNumber": "7",
            "_links": {
                "self": {
                    "href": "https://sandbox.moip.com.br/v2/accounts/MPA-NOHLMGSQ5KKA/bankaccounts"
                }
            },
            "bankName": "BANCO BRADESCO S.A.",
            "type": "CHECKING",
            "agencyCheckNumber": "0",
            "bankNumber": "237"
        },
        {
            "id": "BKA-DN6831N81J7K",
            "agencyNumber": 12345,
            "holder": {
                "taxDocument": {
                    "number": "622.134.533-22",
                    "type": "CPF"
                },
                "fullname": "Demo Moip"
            },
            "accountNumber": 12345678,
            "status": "NOT_VERIFIED",
            "createdAt": "2015-10-29T15:50:27.746-02:00",
            "accountCheckNumber": "7",
            "_links": {
                "self": {
                    "href": "https://sandbox.moip.com.br/v2/accounts/MPA-NOHLMGSQ5KKA/bankaccounts"
                }
            },
            "bankName": "BANCO BRADESCO S.A.",
            "type": "CHECKING",
            "agencyCheckNumber": "0",
            "bankNumber": "237"
        }
    ],
    "_links": {
        "next": {
            "href": "https://sandbox.moip.com.br/v2/accounts/MPA-NOHLMGSQ5KKA/bankaccounts/&limit=3&offset=2"
        },
        "previous": {
            "href": "https://sandbox.moip.com.br/v2/accounts/MPA-NOHLMGSQ5KKA/bankaccounts/&limit=3&offset=0"
        }
    }
}

Parâmetros:

Nome Descrição Tipo
_____________________________
id Identificador da Conta Moip. string, obrigatório

Saldos

O Saldo é a composição de valores atuais disponíveis, indisponíveis (bloqueados) e futuros de uma determinada Conta Moip.

Atributos:

Nome Descrição Tipo
_____________________________
unavailable Saldo bloqueado. Valores retidos por contestações recebidas ou para garantir contestações futuras. structured list
├─amount Valor do saldo em centavos. Ex: R$10,32 será informado 1032. integer
├─currency Moeda. Valores possíveis: BRL. string
future Saldo futuro. Soma dos lançamentos ainda não liquidados (em aberto). structured list
├─amount Valor do saldo em centavos. Ex: R$10,32 será informado 1032. integer
├─currency Moeda. Valores possíveis: BRL. string
current Saldo total em conta. Soma de todos os lançamentos liquidados da Conta. structured list
├─amount Valor do saldo em centavos. Ex: R$10,32 será informado 1032. integer
├─currency Moeda. Valores possíveis: BRL. string

Consultar saldos [GET]

Por meio desta API é possível consultar os saldos de uma Conta Moip.

Endpoint

GET https://sandbox.moip.com.br/v2/balances

Exemplo

GET https://sandbox.moip.com.br/v2/balances

Request:

Content-Type: application/json
Authorization: "OAuth 1tldio91gi74r34zv30d4saz8yuuws5"
Accept: application/json;version=2.1

{}
# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

200 (Ok)
Content-Type: application/json
{
    "unavailable": [
        {
            "amount": 0,
            "currency": "BRL"
        }
    ],
    "future": [
        {
            "amount": 0,
            "currency": "BRL"
        }
    ],
    "current": [
        {
            "amount": 44592168,
            "currency": "BRL"
        }
    ]
}

Lançamentos

O Lançamento é um crédito ou débito no extrato ou no saldo futuro da conta de um recebedor. Ele é gerado quando um pagamento é autorizado, um reembolso é realizado ou em qualquer outra situação em que ocorram movimentações de valores na conta Moip de um lojista.

Atributo Descrição Tipo
__________________
id Id do Lançamento. integer
event Id do recurso que originou o lançamento. string
type Tipo do lançamento. Valores possíveis: CREDIT_CARD, CREDIT_CARD_INSTALLMENT, DEBIT_CARD, BOLETO, BANK_FINANCING, BANK_DEBIT, MOIP_WALLET, COMMISSION, COMMISSION_INSTALLMENT, TRANSFER_TO_MOIP_ACCOUNT_RECEIVED, TRANSFER_TO_BANK_ACCOUNT_CANCELLED, DEPOSIT, AMOUNT_UNBLOCKED, TRANSFER_TO_BANK_ACCOUNT, TRANSFER_TO_MOIP_ACCOUNT_PAID, PAYMENT_REVERSE, PAYMENT_INSTALLMENT_REVERSE, COMMISSION_REVERSE, COMMISSION_INSTALLMENT_REVERSE, PAYMENT_REFUND, PAYMENT_INSTALLMENT_REFUND, PAYMENT_PARCIAL_REFUND, PAYMENT_PARCIAL_INSTALLMENT_REFUND, COMMISSION_REFUND, COMMISSION_INSTALLMENT_REFUND, MOIP_WALLET_PAYMENT, PRE_PAYMENT_FEE, PENALTY, MOIP_RECURRING_CHARGE, AMOUNT_BLOCKED, JUDICIAL_DEBIT, MOIP_FINANCIAL_ADJUSTEMENT, BALANCE_ADJUSTMENT, REFUND_REVOKE, PAYMENT_PARCIAL_REFUND_REVOKE, PAYMENT_PARCIAL_INSTALLMENT_REFUND_REVOKE, COMMISSION_REFUND_REVOKE, COMMISSION_INSTALLMENT_REFUND_REVOKE, REMITTANCE_CREDIT, REMITTANCE_DEBIT, TRANSFER_TO_MOIP_ACCOUNT_PAID_REVERTED, TRANSFER_TO_MOIP_ACCOUNT_RECEIVED_REVERTED. string
status Status do lancámento. Valores possíveis: SCHEDULED, SETTLED. string
operation Tipo de operação. Valores possíveis: CREDIT, DEBIT. string
amount Valores do lançamento structured
├─total Valor bruto integer
├─fee Valor da tarifa aplicada ao lançamento integer
├─liquid Valor líquido do lançamento integer
└─currency Moeda. Valores possíveis BRL. string
description Descrição do lançamento. string
occurrence Parcelas quando recebimento parcelado. structured
├─in Total de parcelas quando recebimento parcelado. integer
└─to Número da parcela em questão. integer
moipAccount Conta Moip associada ao lançamento structured
└─id Id da Conta Moip. string
fees Detalhamento das tarifas aplicadas ao lançamento structured list
├─type Tipo da tarifa. Valores possíveis: TRANSACTION, FIXED_FEE, MANUAL_RAV, AUTOMATIC_RAV. integer
└─amount Valor da tarifa em centavos. integer
scheduledFor Data prevista para a liquidação. datetime
settledAt Data em que a liquidação foi efetivada. datetime
updatedAt Data da última atualização do Lançamento. datetime
createdAt Data da criação do Lançamento. datetime
_links Hyperlinks do recurso. structured
├─self Próprio recurso. structured
└─└─href Link. string

Consultar lançamento [GET]

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

Endpoint

GET https://sandbox.moip.com.br/v2/entries/{entry_id}

Exemplo

GET https://sandbox.moip.com.br/v2/entries/ENT-PHZ9VIPPOM98

Request:

# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.
Accept: application/json;version=2.1
Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

Response:

200 (OK)
Content-Type: application/json
{
  "scheduledFor": "2016-06-19T10:46:04.000-03",
  "status": "SCHEDULED",
  "moipAccount": {
    "id": "MPA-CULBBYHD11"
  },
  "_links": {
    "order": {
      "title": "ORD-2BNFRCXP0QYD",
      "href": "https://sandbox.moip.com.br/v2/orders/ORD-2BNFRCXP0QYD"
    },
    "payment": {
      "title": "PAY-33MXXRM3YKK4",
      "href": "https://sandbox.moip.com.br/v2/payments/PAY-33MXXRM3YKK4"
    },
    "self": {
      "title": "ENT-PHZ9VIPPOM98",
      "href": "https://sandbox.moip.com.br/v2/entries/ENT-PHZ9VIPPOM98"
    }
  },
  "fees": [
    {
      "amount": 128,
      "type": "TRANSACTION"
    }
  ],
  "type": "CREDIT_CARD",
  "ownId": "1466171152",
  "updatedAt": "2016-06-17T10:46:05.000-03",
  "id": "ENT-PHZ9VIPPOM98",
  "amount": {
    "fee": 128,
    "total": 1200,
    "liquid": 1072,
    "currency": "BRL"
  },
  "operation": "CREDIT",
  "event": "PAY-33MXXRM3YKK4",
  "description": "Cartao de credito - Pedido PAY-33MXXRM3YKK4",
  "createdAt": "2016-06-17T10:46:05.000-03",
  "occurrence": {
    "to": 1,
    "in": 1
  },
  "additionalId": 20751529
}

Parâmetros:

Nome Descrição Detalhes
id Id do lançamento em formato de hash. string(16), obrigatório

Listar todos lançamentos [GET]

Por meio desta API é possível listar todas lançamentos de uma Conta Moip. Os lançamentos são ordenadas pela data de criação, das mais recentes para os mais antigos. Também é possível filtrar os resultados conforme a listagem de parâmetros disponíveis do método.

Endpoint

GET https://sandbox.moip.com.br/v2/entries

Exemplo

GET https://sandbox.moip.com.br/v2/entries

Request:

Accept: application/json;version=2.1
Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{}
# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

200 (Ok)
Content-Type: application/json
{
  "summary": {
    "amount": -4171,
    "count": 1
  },
  "_links": {
    "previous": {
      "href": "https://sandbox.moip.com.br/v2/entries?offset=0&limit=20"
    },
    "next": {
      "href": "https://sandbox.moip.com.br/v2/entries?offset=20&limit=20"
    }
  },
  "entries": [
    {
      "scheduledFor": "2016-07-01T10:21:29.000-03",
      "status": "SCHEDULED",
      "_links": {
        "order": {
          "title": "ORD-KSLKYW4AH9AM",
          "href": "https://sandbox.moip.com.br/v2/orders/ORD-KSLKYW4AH9AM"
        },
        "payment": {
          "title": "PAY-3WFBCN7O4VYG",
          "href": "https://sandbox.moip.com.br/v2/payments/PAY-3WFBCN7O4VYG"
        },
        "refund": {
          "title": "REF-YFOSIEHAB4QG",
          "href": "https://sandbox.moip.com.br/v2/refunds/REF-YFOSIEHAB4QG"
        },
        "self": {
          "title": "ENT-AEJQ2EZ81G8N",
          "href": "https://sandbox.moip.com.br/v2/entries/ENT-AEJQ2EZ81G8N"
        }
      },
      "type": "PAYMENT_REFUND",
      "ownId": "14694241-9bb654e7-e4a4-4875-ae27-43b93cd15124",
      "updatedAt": "2016-06-17T10:58:50.000-03",
      "id": "ENT-AEJQ2EZ81G8N",
      "amount": {
        "fee": 0,
        "total": -4171,
        "liquid": -4171,
        "currency": "BRL"
      },
      "operation": "DEBIT",
      "event": "REF-YFOSIEHAB4QG",
      "description": "Reembolso do Pagamento PAY-3WFBCN7O4VYG",
      "createdAt": "2016-06-17T10:58:50.000-03",
      "occurrence": {
        "to": 1,
        "in": 1
      },
      "additionalId": 20755322
    }
  ]
}

Parâmetros:

Nome Descrição Tipo
_____________________________
type Tipo do lançamento. Valores possíveis: CREDIT_CARD, CREDIT_CARD_INSTALLMENT, DEBIT_CARD, BOLETO, BANK_FINANCING, BANK_DEBIT, MOIP_WALLET, COMMISSION, COMMISSION_INSTALLMENT, TRANSFER_TO_MOIP_ACCOUNT_RECEIVED, TRANSFER_TO_BANK_ACCOUNT_CANCELLED, DEPOSIT, AMOUNT_UNBLOCKED, TRANSFER_TO_BANK_ACCOUNT, TRANSFER_TO_MOIP_ACCOUNT_PAID, PAYMENT_REVERSE, PAYMENT_INSTALLMENT_REVERSE, COMMISSION_REVERSE, COMMISSION_INSTALLMENT_REVERSE, PAYMENT_REFUND, PAYMENT_INSTALLMENT_REFUND, PAYMENT_PARCIAL_REFUND, PAYMENT_PARCIAL_INSTALLMENT_REFUND, COMMISSION_REFUND, COMMISSION_INSTALLMENT_REFUND, MOIP_WALLET_PAYMENT, PRE_PAYMENT_FEE, PENALTY, MOIP_RECURRING_CHARGE, AMOUNT_BLOCKED, JUDICIAL_DEBIT, MOIP_FINANCIAL_ADJUSTEMENT, BALANCE_ADJUSTMENT, REFUND_REVOKE, PAYMENT_PARCIAL_REFUND_REVOKE, PAYMENT_PARCIAL_INSTALLMENT_REFUND_REVOKE, COMMISSION_REFUND_REVOKE, COMMISSION_INSTALLMENT_REFUND_REVOKE, REMITTANCE_CREDIT, REMITTANCE_DEBIT, TRANSFER_TO_MOIP_ACCOUNT_PAID_REVERTED, TRANSFER_TO_MOIP_ACCOUNT_RECEIVED_REVERTED. Utilize o delimitador in. string, opcional
event Id do recurso que originou o lançamento. Exemplo: PAY-KY08LH1MBMXW string, response
scheduledFor Data prevista para a liquidação. Permite o uso de todos os delimitadores. date, opcional
limit Quantidade de registros por busca (página). Valor default é 100. integer, opcional
offset Registro a partir do qual a busca vai retornar. Valor default é 0. integer, opcional

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 líquido dos lançamentos retornados. Em centavos Ex: R$10,32 será informado 1032 integer(12)
entries Lista com a representação mínima dos Lançamentos Coleção de Lançamentos
_links Estrutura de links Hypermedia (HATEOAS) do recurso. structured

Atributos (representação mínima retornada na lista):

Atributo Descrição Tipo
__________________
id Id do Lançamento. integer
event Id do recurso que originou o lançamento. string
type Tipo do lançamento. Valores possíveis: CREDIT_CARD, CREDIT_CARD_INSTALLMENT, DEBIT_CARD, BOLETO, BANK_FINANCING, BANK_DEBIT, MOIP_WALLET, COMMISSION, COMMISSION_INSTALLMENT, TRANSFER_TO_MOIP_ACCOUNT_RECEIVED, TRANSFER_TO_BANK_ACCOUNT_CANCELLED, DEPOSIT, AMOUNT_UNBLOCKED, TRANSFER_TO_BANK_ACCOUNT, TRANSFER_TO_MOIP_ACCOUNT_PAID, PAYMENT_REVERSE, PAYMENT_INSTALLMENT_REVERSE, COMMISSION_REVERSE, COMMISSION_INSTALLMENT_REVERSE, PAYMENT_REFUND, PAYMENT_INSTALLMENT_REFUND, PAYMENT_PARCIAL_REFUND, PAYMENT_PARCIAL_INSTALLMENT_REFUND, COMMISSION_REFUND, COMMISSION_INSTALLMENT_REFUND, MOIP_WALLET_PAYMENT, PRE_PAYMENT_FEE, PENALTY, MOIP_RECURRING_CHARGE, AMOUNT_BLOCKED, JUDICIAL_DEBIT, MOIP_FINANCIAL_ADJUSTEMENT, BALANCE_ADJUSTMENT, REFUND_REVOKE, PAYMENT_PARCIAL_REFUND_REVOKE, PAYMENT_PARCIAL_INSTALLMENT_REFUND_REVOKE, COMMISSION_REFUND_REVOKE, COMMISSION_INSTALLMENT_REFUND_REVOKE, REMITTANCE_CREDIT, REMITTANCE_DEBIT, TRANSFER_TO_MOIP_ACCOUNT_PAID_REVERTED, TRANSFER_TO_MOIP_ACCOUNT_RECEIVED_REVERTED. string
status Status do lançamento. Valores possíveis: SCHEDULED, SETTLED. string
operation Tipo de operação. Valores possíveis: CREDIT, DEBIT. string
amount Valores do lançamento structured
├─total Valor bruto integer
├─fee Valor da tarifa aplicada ao lançamento integer
├─liquid Valor líquido do lançamento integer
└─currency Moeda. Valores possíveis BRL. string
description Descrição do lançamento. string
occurrence Parcelas quando recebimento parcelado. structured
├─in Total de parcelas quando recebimento parcelado. integer
└─to Número da parcela em questão. integer
scheduledFor Data prevista para a liquidação. datetime
settledAt Data em que a liquidação foi efetivada. datetime
updatedAt Data da última atualização do Lançamento. datetime
createdAt Data da criação do Lançamento. datetime
_links Hyperlinks do recurso. structured
├─self Próprio recurso. structured
└─└─href Link. string

Transferências

A Transferência é uma movimentação de fundos entre uma Conta Moip e outra conta de pagamento (pode ser uma Conta bancária ou uma determinada Conta Moip). Transferência entre Contas Moip são permitidas apenas dentro de Marketplaces que utilizam Contas transparentes.

Atributos:

Nome Descrição Detalhes
__________________
id Id da transferência. string, response
ownId Id próprio da transferência. Referência externa. string
fee Tarifa cobrada pela transferência. integer, response
amount Valor a ser transferido (sem a vírgula como separador). integer
description Descritivo sobre o motivo da transferência. string
status Status da transferência. Valores possíveis: REQUESTED, COMPLETED, FAILED, REVERSED. string, response
role Papel do usuário na transferência. Valores possíveis: PAYER, RECEIVER. string, response
transferInstrument Conta destino. structured
├─method Método de transferência. Valores possíveis: BANK_ACCOUNT,MOIP_ACCOUNT string
├─bankAccount Conta bancária. structured
├─├─id Identificador da conta bancária. string
├─├─type Tipo da conta. Valores possíveis: CHECKING, SAVING. string
├─├─bankNumber Número do banco (padrão FEBRABAN).Ver lista de bancos e códigos FEBRABAN. string
├─├─bankName Nome do banco (padrão FEBRABAN). string
├─├─agencyNumber Número da agência. integer
├─├─agencyCheckNumber Dígito verificador da agência. integer
├─├─accountNumber Número da conta. integer
├─├─accountCheckNumber Dígito verificador da conta. integer
├─├─holder Titular da conta. Deve ser igual ao titular da conta Moip structured
├─├─├─fullname Nome do titular da conta. string
├─├─├─taxDocument Documento fiscal do titular. structured
├─├─├─├─type Tipo do documento. Valores possíveis: CPF,CNPJ. string
└─└─└─└─number Número do documento. integer
├─moipAccount Conta Moip structured
├─├─id Identificador de conta Moip: Ex. MPA-1A23BC4D5E6F. string
├─├─login Login da conta Moip. string, response
└─├─fullname Nome do proprietário da conta Moip. string, response
└─└─email Email principal do proprietário da conta Moip. string, 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: TRANSFER.REQUESTED, TRANSFER.COMPLETED, TRANSFER.FAILED, TRANSFER.REVERSED. .
└─description Descrição do evento. string(65), response
cancellationDetails Detalhes do cancelamento de transferência bancárias. structured
├─cancelledBy Responsável pelo cancelamento. Valores possíveis: MOIP ou BANK. string, response
├─code Código do motivo de cancelamento. Valores possíveis: ver lista de detalhes de cancelamento integer, response
└─description Descrição do motivo de cancelamento. string, response
createdAt Data de criação do recurso. datetime
updatedAt Data da última atualização do recurso. datetime
├─self Hyperlink para o próprio recurso. structured
└─└─href URI do próprio recurso. link

Criar transferência [POST]

Por meio desta API é possível realizar uma transferência para Contas Bancárias ou Contas Moip.

Endpoint

POST https://sandbox.moip.com.br/v2/transfers

AUTENTICAÇÃO OAuth

Exemplo

POST https://sandbox.moip.com.br/v2/transfers

Request:

Content-Type: application/json
Authorization: "OAuth qguusgp05mxaa9adyy8kvo4nuq380z7"

{
    "amount": 500,
    "transferInstrument": {
        "method": "BANK_ACCOUNT",
        "bankAccount": {
            "type": "CHECKING",
            "bankNumber": "001",
            "agencyNumber": "1111",
            "agencyCheckNumber": "2",
            "accountNumber": "9999",
            "accountCheckNumber": "8",
            "holder": {
                "fullname": "Nome do Portador",
                "taxDocument": {
                    "type": "CPF",
                    "number": "22222222222"
                }
            }
        }
    }
}

# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

201 (Created)
Content-Type: application/json
{
    "updatedAt": "2015-10-01T17:24:25.160-03",
    "fee": 0,
    "amount": 500,
    "id": "TRA-28HRLYNLMUFH",
    "transferInstrument": {
        "method": "BANK_ACCOUNT",
        "bankAccount": {
            "id": "BKA-I268MOXX85BF",
            "agencyNumber": "1111",
            "holder": {
                "taxDocument": {
                    "number": "033.575.852-51",
                    "type": "CPF"
                },
                "fullname": "Integração Taxa por canal"
            },
            "accountNumber": "9999",
            "accountCheckNumber": "8",
            "bankName": "BANCO DO BRASIL S.A.",
            "type": "CHECKING",
            "agencyCheckNumber": "2",
            "bankNumber": "001"
        }
    },
    "status": "REQUESTED”,
    "createdAt": "2015-10-01T17:24:25.160-03",
    "events": [
        {
            "createdAt": "2015-10-01T17:24:25.000-03",
            "description": "Requested",
            "type": "TRANSFER.REQUESTED"
        }
    ],
    "entries": [
        {
            "external_id": "ENT-X3CG3TR5DRW4",
            "scheduledFor": "2015-10-01T17:24:25.000-03",
            "status": "SETTLED",
            "moipAccount": {
                "account": "MPA-UVJPXXO25KYX"
            },
            "fees": [
                {
                    "amount": 0,
                    "type": "FIXED_FEE"
                }
            ],
            "type": "TRANSFER_TO_BANK_ACCOUNT",
            "grossAmount": -500,
            "moipAccountId": 9125,
            "updatedAt": "2015-10-01T17:24:25.835-03",
            "id": 197194,
            "installment": {
                "amount": 1,
                "number": 1
            },
            "references": [
                {
                    "value": "APP-GLQRIP429OK7",
                    "type": "CHANNEL"
                }
            ],
            "eventId": "TRA-28HRLYNLMUFH",
            "createdAt": "2015-10-01T17:24:25.775-03",
            "description": "Transferencia para conta bancaria - Transferencia TRA-28HRLYNLMUFH",
            "settledAt": "2015-10-01T17:24:25.835-03",
            "liquidAmount": -500
        }
    ],
    "_links": {
        "self": {
            "href": "https://sandbox.moip.com.br/v2/transfers/TRA-28HRLYNLMUFH"
        }
    }
}

Parâmetros:

Nome Descrição Detalhes
__________________
ownId Id próprio da transferência. Referência externa. string
amount Valor a ser transferido (sem a vírgula como separador) integer
description Descritivo sobre o motivo da transferência. string
transferInstrument Conta destino structured
├─method Método de transferência. Valores possíveis: BANK_ACCOUNT,MOIP_ACCOUNT. string, obrigatório
├─bankAccount Conta bancária. É necessário enviar o id de uma conta previamente salva ou a coleção de dados para criar uma nova conta bancária. structured
├─├─id Identificador da conta bancária. string, obrigatório se utilizada conta previamente salva
├─├─type Tipo da conta. Valores possíveis: CHECKING, SAVING. string, obrigatório se id não for usado
├─├─bankNumber Número do banco (padrão FEBRABAN).Ver lista de bancos e códigos FEBRABAN string, obrigatório se id não for usado
├─├─agencyNumber Número da agência. integer, obrigatório se id não for usado
├─├─agencyCheckNumber Dígito verificador da agência. integer, opcional
├─├─accountNumber Número da conta. integer, obrigatório se id não for usado
├─├─accountCheckNumber Dígito verificador da conta. integer, obrigatório se id não for usado
├─├─holder Titular da conta. Deve ser igual ao titular da conta Moip structured
├─├─├─fullname Nome do titular da conta. string, obrigatório se id não for usado
├─├─├─taxDocument Documento fiscal do titular. structured
├─├─├─├─type Tipo do documento. Valores possíveis: CPF,CNPJ. string, obrigatório se id não for usado
└─└─└─└─number Número do documento. integer, obrigatório se id não for usado
├─moipAccount Dados da Conta Moip. structured
└─└─id Identificador de conta Moip: Ex. MPA-1A23BC4D5E6F. Somente podem ser utilizadas Contas transparentes conectadas a um aplicativo. string, obrigatório se método for MOIP_ACCOUNT

Consultar transferência [GET]

Por meio desta API é possível consultar os dados de uma transferência para Contas Bancárias ou Contas Moip.

Endpoint

GET https://sandbox.moip.com.br/v2/transfers/{id}

AUTENTICAÇÃO OAuth

Exemplo

GET https://sandbox.moip.com.br/v2/transfers/TRA-28HRLYNLMUFH

Request:

Content-Type: application/json
Authorization: "OAuth qguusgp05mxaa9adyy8kvo4nuq380z7"

{}

# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

200 (Ok)
Content-Type: application/json
{
    "updatedAt": "2015-10-01T17:24:25.160-03",
    "fee": 0,
    "amount": 500,
    "id": "TRA-28HRLYNLMUFH",
    "transferInstrument": {
        "method": "BANK_ACCOUNT",
        "bankAccount": {
            "id": "BKA-I268MOXX85BF",
            "agencyNumber": "1111",
            "holder": {
                "taxDocument": {
                    "number": "033.575.852-51",
                    "type": "CPF"
                },
                "fullname": "Integração Taxa por canal"
            },
            "accountNumber": "9999",
            "accountCheckNumber": "8",
            "bankName": "BANCO DO BRASIL S.A.",
            "type": "CHECKING",
            "agencyCheckNumber": "2",
            "bankNumber": "001"
        }
    },
    "status": "REQUESTED",
    "createdAt": "2015-10-01T17:24:25.160-03",
    "events": [
        {
            "createdAt": "2015-10-01T17:24:25.000-03",
            "description": "Requested",
            "type": "TRANSFER.REQUESTED"
        }
    ],
    "entries": [
        {
            "external_id": "ENT-X3CG3TR5DRW4",
            "scheduledFor": "2015-10-01T17:24:25.000-03",
            "status": "SETTLED",
            "moipAccount": {
                "account": "MPA-UVJPXXO25KYX"
            },
            "fees": [
                {
                    "amount": 0,
                    "type": "FIXED_FEE"
                }
            ],
            "type": "TRANSFER_TO_BANK_ACCOUNT",
            "grossAmount": -500,
            "moipAccountId": 9125,
            "updatedAt": "2015-10-01T17:24:25.835-03",
            "id": 197194,
            "installment": {
                "amount": 1,
                "number": 1
            },
            "references": [
                {
                    "value": "APP-GLQRIP429OK7",
                    "type": "CHANNEL"
                }
            ],
            "eventId": "TRA-28HRLYNLMUFH",
            "createdAt": "2015-10-01T17:24:25.775-03",
            "description": "Transferencia para conta bancaria - Transferencia TRA-28HRLYNLMUFH",
            "settledAt": "2015-10-01T17:24:25.835-03",
            "liquidAmount": -500
        }
    ],
    "_links": {
        "self": {
            "href": "https://sandbox.moip.com.br/v2/transfers/TRA-28HRLYNLMUFH"
        }
    }
}

Parâmetros:

Nome Descrição Detalhes
__________________
id Identificador da transferência. Exemplo TRA-28HRLYNLMUFH string, obrigatório

Reverter transferência [POST]

Por meio desta API é possível realizar a reversão de transferência feita para uma conta Moip.

Endpoint

POST https://sandbox.moip.com.br/v2/transfers/{id}/reverse

AUTENTICAÇÃO OAuth

Exemplo

POST https://sandbox.moip.com.br/v2/transfers/TRA-A1B2C3D4E5F6/reverse

Request:

Content-Type: application/json
Authorization: "OAuth qguusgp05mxaa9adyy8kvo4nuq380z7"

{}

# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

201 (Created)
Content-Type: application/json
{
  "fee": 0,
  "amount": 1000,
  "id": "TRA-B0W5FD5FCADG",
  "transferInstrument": {
    "moipAccount": {
      "id": "MPA-AE2OAL41CBB1",
      "email": "iori@labs.moip.com.br",
      "login": "iori@labs.moip.com.br",
      "fullname": "Iori Yagami"
    },
    "method": "MOIP_ACCOUNT"
  },
  "status": "REVERSED",
  "createdAt": "2015-10-15T16:18:41-0300",
  "_links": {
    "self": {
      "href": "https://sandbox.moip.com.br/v2/transfers/TRA-B0W5FD5FCADG"
    }
  }
}

Listar todas transferências [GET]

Por meio desta API é possível listar todas tranferências criadas de uma Conta Moip. As transferências são ordenadas pela data de criação, das mais recentes para as mais antigas. Também é possível filtrar os resultados conforme a listagem de parâmetros disponíveis do método.

Endpoint

GET https://sandbox.moip.com.br/v2/transfers

Exemplo

GET https://sandbox.moip.com.br/v2/transfers

Request:

Content-Type: application/json
Authorization: "OAuth qguusgp05mxaa9adyy8kvo4nuq380z7"

{}

# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

200 (Ok)
Content-Type: application/json
{
    "summary": {
        "amount": 2,
        "count": 2
    },
    "transfers": [
        {
            "fee": 0,
            "amount": 500,
            "updatedAt": "2015-10-22T17:33:49.000-02",
            "id": "TRA-08T6Z0ELJIPB",
            "transferInstrument": {
                "method": "BANK_ACCOUNT",
                "bankAccount": {
                    "id": "BKA-RYW7ICQBW126",
                    "agencyNumber": "1111",
                    "holder": {
                        "taxDocument": {
                            "number": "255.328.259-12",
                            "type": "CPF"
                        },
                        "fullname": "Jose Silva dos Santos"
                    },
                    "accountNumber": "9999",
                    "accountCheckNumber": "8",
                    "bankName": "BANCO DO BRASIL S.A.",
                    "type": "CHECKING",
                    "agencyCheckNumber": "2",
                    "bankNumber": "001"
                }
            },
            "status": "REQUESTED",
            "createdAt": "2015-10-22T17:33:49.000-02",
            "_links": {
                "self": {
                    "href": "https://sandbox.moip.com.br/v2/transfers/TRA-08T6Z0ELJIPB"
                }
            }
        },
        {
            "fee": 0,
            "amount": 1199,
            "updatedAt": "2015-10-26T12:01:38.000-02",
            "id": "TRA-BVVSKE5K26GG",
            "transferInstrument": {
                "moipAccount": {
                    "id": "MPA-Y51WUXLPHBJJ",
                    "email": "ryu@labs.moip.com.br",
                    "login": "ryu@labs.moip.com.br",
                    "fullname": "Ryu Silva"
                },
                "method": "MOIP_ACCOUNT"
            },
            "status": "COMPLETED",
            "createdAt": "2015-10-26T12:01:38.000-02",
            "_links": {
                "self": {
                    "href": "https://sandbox.moip.com.br/v2/transfers/TRA-BVVSKE5K26GG"
                }
            }
        }
    ],
    "_links": {
        "previous": {
            "href": "https://sandbox.moip.com.br/v2/transfers?offset=0&limit=20"
        },
        "next": {
            "href": "https://sandbox.moip.com.br/v2/transfers?offset=20&limit=20"
        }
    }
}

Parâmetros:

Nome Descrição Tipo
_____________________________
createdAt Data de criação do recurso. datetime, opcional
updatedAt Data da última atualização do recurso. datetime, opcional
method Método de transferência. Valores possíveis: BANK_ACCOUNT,MOIP_ACCOUNT string, opcional
status Status da transferência. Valores possíveis: REQUESTED, COMPLETED, FAILED string, response
limit Quantidade de registros por busca (página). Valor default é 100. integer, opcional
offset Registro a partir do qual a busca vai retornar. Valor default é 0. integer, opcional

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)
transfers Lista com a representação mínima dos Transferências Coleção de Trasnferências
_links Estrutura de links Hypermedia (HATEOAS) do recurso. structured

Atributos (representação mínima retornada na lista):

Nome Descrição Detalhes
__________________
id Id da transferências string, response
fee Tarifa cobrada pela transferência integer, response
amount Valor a ser transferido (sem a vírgula como separador) integer
status Status da transferência. Valores possíveis: REQUESTED, COMPLETED, FAILED string, *** response ***
role Papel do usuário na transferência. Valores possíveis: PAYER, RECEIVER. string, response
transferInstrument Conta destino structured
├─method Método de transferência. Valores possíveis: BANK_ACCOUNT,MOIP_ACCOUNT string
├─bankAccount Conta bancária structured
├─├─type Tipo da conta. Valores possíveis: CHECKING, SAVING. string
├─├─bankNumber Número do banco (padrão FEBRABAN).Ver lista de bancos e códigos FEBRABAN string
├─├─bankName Nome do banco (padrão FEBRABAN). string
├─├─agencyNumber Número da agência. integer
├─├─agencyCheckNumber Dígito verificador da agência. integer
├─├─accountNumber Número da conta. integer
├─├─accountCheckNumber Dígito verificador da conta. integer
├─├─holder Titular da conta. Deve ser igual ao titular da conta Moip structured
├─└─└─fullname Nome do titular da conta. string
├─moipAccount Conta Moip structured
├─├─id Identificador de conta Moip: Ex. MPA-1A23BC4D5E6F. string
├─├─login Login da conta Moip. string, response
└─├─fullname Nome do proprietário da conta Moip. string, response
└─└─email Email principal do proprietário da conta Moip. string, response
createdAt Data de criação do recurso. datetime
updatedAt Data da última atualização do recurso. datetime
├─self Hyperlink para o próprio recurso. structured
└─└─href URI do próprio recurso. link

Conciliação Financeira

Obter arquivo de vendas [GET]

Por meio desta API é possível fazer o download do arquivo de vendas.

O arquivo de vendas é gerado com os eventos do dia anterior que geraram lançamentos. Utilizado para fazer o batimento de vendas e do sistema do cliente com o Moip e para obeter o fluxo de caixa previsto.

Para obter o arquivo, primeiramente será necessário fazer uma request na API de conciliação e baixar o arquivo através do link retornado no response.

Atributos da request:

Nome Descrição Detalhes
__________________
id Id do arquivo. string(16)
type Tipo do arquivo. Valores possíveis: SALES. string(16)
date Data de referencia do arquivo (mesma data informada na URL da requisição) date(AAAA-MM-DD)
_links Link do arquivo. structured
├─file Link para downoad do arquivo link

Atributos do arquivo:

Nome Descrição Detalhes
__________________
createdAt Data e hora da geração do arquivo. date
authorizedPayments Estrutura com as autorizações de pagamento structured
├─summary Resumo. structured
├─├─count Número de eventos de autorização. integer
├─├─amount Valor total dos eventos de autorização. integer
└─└─resources Lista com os eventos do tipo PAYMENT.AUTHORIZED. list Resources
refundedPayments Estrutura com os reembolsos de pagamento. structured
├─summary Resumo. structured
├─├─count Número de eventos de reembolso. integer
├─├─amount Valor total dos eventos de reembolso. integer
└─└─resources Lista com os eventos do tipo PAYMENT.REFUNDED. list Resources
reversedPayments Estrutura com os chargebacks. structured
├─summary Resumo. structured
├─├─count Número de eventos de reembolso. integer
├─├─amount Valor total dos eventos de reembolso. integer
└─└─resources Lista com os eventos do tipo PAYMENT.REVERSED. list Resources

Os atributos contidos dentro do array RESOURCES seguem o padrão de response dos GETs do recurso payments.

Endpoint

GET https://sandbox.moip.com.br/v2/reconciliations/sales/yyyymmdd

Exemplo

GET https://sandbox.moip.com.br/v2/reconciliation/ssales/20151231

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{}

# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

200 (Ok)
Content-Type: application/json
{
  "id": "REC-UFNPPHZVCKY0",
  "date": "2016-10-13",
  "type": "SALES",
  "_links": {
    "file": "https://s3.amazonaws.com/moip-conciliations/v2/MPA-M1NHVC0NTV/20151231/REC-C0NC1L1VT10N.json"
  }
}

Além do arquivo disponível para consulta você poderá receber o evento automaticamente via webhook, veja abaixo a estrutura de parâmetros dos eventos enviados.

Atributos do evento:

Nome Descrição Detalhes
__________________
event Tipo do evento. string(16)
createdAt Data da criação do evento. date
resource Estrutura do recurso que gerou o evento. Ver recurso Pagamento string(16)

Obter arquivo financeiro [GET]

Por meio desta API é possível realizar o download do arquivo financeiro. EM CONSTRUÇÃO

O arquivo financeiro é gerado com as moviventações financeiroas do dia anterior. Utilizado para obter o fluxo de caixa realizado.

Atributos:

Nome Descrição Detalhes
__________________
id Id do arquivo. string(16)
type Tipo do arquivo. Valores possíveis: FINANCIAL. string(16)
date Data de referencia do arquivo. date(AAAA-MM-DD)
createdAt Data e hora da geração do arquivo. date
credits Estrutura com liquidações positivas structured
├─summary Resumo. structured
├─├─count Número de eventos de liquidação que geraram entradas positivas no extrato. integer
├─├─amount Valor total dos eventos. integer
└─└─events Lista com os eventos. list Events
debits Estrutura com liquidações positivas structured
├─summary Resumo. structured
├─├─count Número de eventos de liquidação que geraram entradas negativas no extrato. integer
├─├─amount Valor total dos eventos de liquidação. integer
└─└─events Lista com os eventos. list Events
_links Links do recurso. structured
├─self Hyperlink para o próprio recurso. structured
└─└─href URI do próprio recurso. link

Endpoint

GET https://sandbox.moip.com.br/v2/financialconciliations&filters=date::in({data_do_arquivo})

Exemplo

GET https://sandbox.moip.com.br/v2/financialconciliations&filters=date::in(2015-10-19)

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{}

# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

200 (Ok)
Content-Type: application/json
{
  "id": "REC-1MY386M5WEHZ",
  "createdAt": "2015-10-19T16:18:42-0300",
  "type": "FINANCIAL",
  "credits": {
    "summary": {
      "count": 2,
      "amount": 20000
    },
    "events": [
      {
        "id": "ENT-DWN6FKYX6GSW",
        "event": "PAY-RH0GUD8Z0BYX",
        "status": "SETTLED",
        "operation": "CREDIT",
        "amount": {
          "total": 10000,
          "fee": 618,
          "liquid": 9382,
          "currency": "BRL"
        },
        "description": "Cartao de credito - Pedido PAY-RH0GUD8Z0BYX",
        "occurrence": {
          "in": "1",
          "to": "1"
        },
        "scheduledFor": "2015-10-19T17:21:56-0200",
        "updatedAt": "2015-10-10T17:21:56-0200",
        "createdAt": "2015-10-10T17:21:56-0200",
        "_links": {
          "order": {
            "title": "ORD-Z2VYYKT1TN48",
            "href": "https://sandbox.moip.com.br/v2/orders/ORD-Z2VYYKT1TN48"
          },
          "payment": {
            "title": "PAY-RH0GUD8Z0BYX",
            "href": "https://sandbox.moip.com.br/v2/payments/PAY-RH0GUD8Z0BYX"
          },
          "self": {
            "href": "https://sandbox.moip.com.br/v2/entries/ENT-DWN6FKYX6GSW"
          }
        }
      },
      {
        "id": "ENT-MB5X0ZI5YXIY",
        "event": "PAY-TXWOH5R80N6R",
        "status": "SETTLED",
        "operation": "CREDIT",
        "amount": {
          "total": 10000,
          "fee": 618,
          "liquid": 9382,
          "currency": "BRL"
        },
        "description": "Cartao de credito - Pedido PAY-TXWOH5R80N6R",
        "occurrence": {
          "in": "1",
          "to": "1"
        },
        "scheduledFor": "2015-10-19T17:21:56-0200",
        "updatedAt": "2015-10-06T20:53:04-0200",
        "createdAt": "2015-10-06T20:53:04-0200",
        "_links": {
          "order": {
            "title": "ORD-N0HRQGLBYFS3",
            "href": "https://sandbox.moip.com.br/v2/orders/ORD-N0HRQGLBYFS3"
          },
          "payment": {
            "title": "PAY-TXWOH5R80N6R",
            "href": "https://sandbox.moip.com.br/v2/payments/PAY-TXWOH5R80N6R"
          },
          "self": {
            "href": "https://sandbox.moip.com.br/v2/entries/ENT-MB5X0ZI5YXIY"
          }
        }
      }
    ]
  },
  "debits": {
    "summary": {
      "count": 1,
      "amount": -3665
    },
    "events": [
      {
        "id": "ENT-TKHZ0YWE5WNQ",
        "event": "PAY-5ZR6GU9Z6W4O",
        "status": "SETTLED",
        "operation": "DEBIT",
        "amount": {
          "total": -3665,
          "fee": 0,
          "liquid": -3665,
          "currency": "BRL"
        },
        "description": "Reembolso do Pagamento PAY-5ZR6GU9Z6W4O",
        "occurrence": {
          "in": "1",
          "to": "1"
        },
        "scheduledFor": "2015-10-19T17:21:56-0200",
        "updatedAt": "2015-10-04T17:21:56-0200",
        "createdAt": "2015-10-04T17:21:56-0200",
        "_links": {
          "order": {
            "title": "ORD-CVFRD3QW64LP",
            "href": "https://sandbox.moip.com.br/v2/orders/ORD-CVFRD3QW64LP"
          },
          "payment": {
            "title": "PAY-5ZR6GU9Z6W4O",
            "href": "https://sandbox.moip.com.br/v2/payments/PAY-5ZR6GU9Z6W4O"
          },
          "self": {
            "href": "https://sandbox.moip.com.br/v2/entries/ENT-TKHZ0YWE5WNQ"
          }
        }
      }
    ]
  }
}

Além do arquivo disponível para consulta você poderá receber o evento automáticamente via webhook, veja abaixo a estrutura de parâmetros dos eventos enviados.

Webhooks

Webhooks são as notificações enviadas pelo Moip para o seu sistema em casos de mudança de estado de algum recurso. Por meio do uso dos webhooks, é possível sincronizar o seu sistema com o Moip em tempo real. Para receber as notificações, você deve cadastrar URLs na sua Conta Moip ou no seu App.

Atributos:

Nome Descrição Detalhes
____________
event Evento que gerou o webhook. Valores possíveis apresentados na lista abaixo. string
createdAt Data da criação do evento. string
resource Estrutura de recurso que gerou o webhook. string

Reenviar webhook [POST]

Por meio desta API é possível efetuar o reenvio dos seus webhooks originados pela V2.

Parâmetros:

Nome Descrição Detalhes
____________________
resourceId Id do recurso a ser reenviado. string(16), obrigatório
event Evento do recurso. string(32), opcional

Endpoint

POST https://sandbox.moip.com.br/v2/webhooks/

AUTENTICAÇÃO: Basic Authentication

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{
    "resourceId": "ORD-PRRGC3Z3RS65",
    "event": "ORDER.CREATED"
}

# Exemplo não disponível no SDK, use o exemplo em JSON.
# Exemplo não disponível no SDK, use o exemplo em JSON.
# Exemplo não disponível no SDK, use o exemplo em JSON.
# Exemplo não disponível no SDK, use o exemplo em JSON.

Response:

201 (Created)
Content-Type: application/json
{
    "id": "EVE-5JCOX7NUFBY5",
    "resourceId": "ORD-PRRGC3Z3RS65",
    "event": "ORDER.CREATED",
    "url": "http://requestb.in/1h1enyc1",
    "status": "CREATED",
    "sentAt": "Jun 11, 2015 6:09:49 PM"
}

Consultar webhooks enviados [GET]

Por meio desta API é possível consultar os webhooks já enviados pelo Moip, você ainda pode utilizar filtros (query-string) para otimizar sua busca e obter informações sobre algum webhooks específico.

Filtros:

Nome Descrição Detalhes
limit Define um limite no retorno dos eventos. integer(4), opcional
offset Define um offset no retorno dos eventos. integer(4), opcional
resourceId Efetua busca utilizando o id de um recurso em específico. string(16), opcional
event Define o evento como filtro para busca. string(32), opcional

Endpoint

GET https://sandbox.moip.com.br/v2/webhooks

AUTENTICAÇÃO: Basic Authentication

Exemplo

GET https://sandbox.moip.com.br/v2/webhooks?resourceId=PAY-7ADJ5MGOM5Y1

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

# Exemplo não disponível no SDK, use o exemplo em JSON.
# Exemplo não disponível no SDK, use o exemplo em JSON.
# Exemplo não disponível no SDK, use o exemplo em JSON.
# Exemplo não disponível no SDK, use o exemplo em JSON.

Response:

200 (OK)
Content-Type: application/json
{
  "webhooks": [
    {
      "id": "EVE-5JCOX7NUFBY5",
      "resourceId": "PAY-7ADJ5MGOM5Y1",
      "event": "PAYMENT.AUTHORIZED",
      "url": "http://requestb.in/1h1enyc1",
      "status": "SENT",
      "sentAt": "2015-09-17T14:42:24.908Z"
    },
    {
      "id": "EVE-5C0TJ6D1A4PD",
      "resourceId": "PAY-7ADJ5MGOM5Y1",
      "event": "PAYMENT.PRE_AUTHORIZED",
      "url": "http://requestb.in/1h1enyc1",
      "status": "SENT",
      "sentAt": "2015-09-17T14:39:38.343Z"
    },
    {
      "id": "EVE-V3FIREPPGQGE",
      "resourceId": "PAY-7ADJ5MGOM5Y1",
      "event": "PAYMENT.IN_ANALYSIS",
      "url": "http://requestb.in/1h1enyc1",
      "status": "SENT",
      "sentAt": "2015-09-17T14:39:37.440Z"
    }
  ]
}

Lista de webhooks disponíveis

Pedidos

As informações do pedido estarão disponíveis no recurso resource.order dentro do JSON de webhook.

  • ORDER.CREATED - Criação de um novo pedido
  • ORDER.WAITING - Atualização de status de pedido para Aguardando pagamento
  • ORDER.PAID - Atualização de status de pedido para Pago
  • ORDER.NOT_PAID - Atualização de status de pedido para Não Pago
  • ORDER.REVERTED - Atualização de status de pedido para Revertido

Pagamentos

As informações do pagamento estarão disponíveis no recurso resource.payment dentro do JSON de webhook.

  • PAYMENT.WAITING - Atualização de status para Aguardando, indica que o Moip está aguardando confirmação de pagamento.
  • PAYMENT.IN_ANALYSIS - Atualização de status para Em Análise, indica que o pagamento está passando por uma análise de risco dentro do Moip, pode ser automática ou manual.
  • PAYMENT.PRE_AUTHORIZED Atualização de status para Pré-autorizado, esse status indica apenas a reserva do valor no cartão do cliente, passível de captura ou descarte dentro do período máximo de 5 dias corridos.
  • PAYMENT.AUTHORIZED - Atualização de status para Autorizado, significa que o pagamento foi capturado e debitado no cartão do cliente ou reconhecido junto a instituição bancária, esse status é o indicador de que o pagamento foi efetivado e você deve proceder com a entrega da compra.
  • PAYMENT.CANCELLED - Atualização de status para Cancelado, o pagamento não foi efetivado.
  • PAYMENT.REFUNDED - Atualização de status de pagamento para Reembolsado.
  • PAYMENT.REVERSED - Atualização de status de pagamento para Estornado (O Estorno é a contestação do pagamento feita pelo comprador direto na operadora de cartão, como por exemplo pelo motivo de não reconhecimento do pagamento em sua fatura)
  • PAYMENT.SETTLED- Atualização de status de pagamento para Concluído, valor disponível para transferência em conta bancária(saque).

Reembolsos

As informações do reembolso estarão disponíveis no recurso resource.refund dentro do JSON de webhook.

  • REFUND.REQUESTED - Criação de um novo reembolso
  • REFUND.COMPLETED - Atualização de status de reembolso para Completo
  • REFUND.FAILED - Atualização de status de reembolso para Falha

Multipedidos

As informações do multi-pedido estarão disponíveis no recurso resource.multiorder dentro do JSON de webhook.

  • MULTIORDER.CREATED - Criação de um novo pedido
  • MULTIORDER.PAID - Atualização de status de pedido para Pago
  • MULTIORDER.NOT_PAID - Atualização de status de pedido para Não Pago
  • MULTIORDER.REVERTED - Atualização de status de pedido para Revertido

Multipagamentos

As informações do multi-pagamento estarão disponíveis no recurso resource.multipayment dentro do JSON de webhook.

  • MULTIPAYMENT.WAITING - Atualização de status para Aguardando, indica que o Moip está aguardando confirmação de pagamento.
  • MULTIPAYMENT.IN_ANALYSIS - Atualização de status de pagamento para Em Análise
  • MULTIPAYMENT.AUTHORIZED - Atualização de status de pagamento para Autorizado
  • MULTIPAYMENT.CANCELLED - Atualização de status de pagamento para Cancelado
  • MULTIPAYMENT.REFUNDED - Atualização de status de pagamento para Reembolsado.

Lançamentos

As informações de liquidação financeira estarão disponíveis no recurso resource.entry dentro do JSON de webhook.

  • ENTRY.SCHEDULED - Indica que um novo lançamento foi agendado, status de lançamento Agendado.
  • ENTRY.SETTLED - Atualização de status de lançamento para Concluído

Transferências

As informações de tranferência bancária financeira estarão disponíveis no recurso resource.tranfer dentro do JSON de webhook.

  • TRANSFER.REQUESTED - Criação de uma nova tranferência
  • TRANSFER.COMPLETED - Atualização de status da tranferência para Concluído
  • TRANSFER.FAILED - Atualização de status da tranferência para Falha

Preferências de notificação

São as configurações das notificações (webhooks e e-mails) da sua Conta Moip ou do seu Aplicativo. Utilizadas para informar ao Moip quais as URLs que devem receber webhooks e quais webhooks devem ser enviados para cada URL.

Atributos:

Nome Descrição Detalhes
__________________
id Identificador da preferência. string(16), response
events Eventos configurados para serem enviados. Exemplo: PAYMENT.AUTHORIZED. Valores possíveis: ver lista de webhooks. string list
target URL de notificação. string
media Tipo da notificação. Valores possíveis: WEBHOOK. string
token Hash utilizado para assinar as notificações. O token será enviado em todas as notificações enviadas pelo Moip para esta preferência. string, response

Criar preferência de notificação [POST]

Através dessa API você cria preferências de notificação webhook em sua conta Moip ou em seu Aplicativo. Será com base nessas preferências que o Moip saberá para quais recursos e em quais URLs devem ser utilizados nas notificações.

Endpoint

POST https://sandbox.moip.com.br/v2/preferences/notifications

Exemplo

No exemplo abaixo todos eventos do Pedido sendo indicado por ORDER.* e os eventos de Pagamento autorizado e Pagamento cancelado indicados por PAYMENT.AUTHORIZED e PAYMENT.CANCELLED, serão configurados.

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{
  "events": [
    "ORDER.*",
    "PAYMENT.AUTHORIZED",
    "PAYMENT.CANCELLED"
  ],
  "target": "http://requestb.in/1dhjesw1",
  "media": "WEBHOOK"
}       

Response:

200 (OK)
Content-Type: application/json
{
  "events": [
    "ORDER.*",
    "PAYMENT.AUTHORIZED",
    "PAYMENT.CANCELLED"
  ],
  "target": "http://requestb.in/1dhjesw1",
  "media": "WEBHOOK",
  "token": "0081d6af29ec431b9a1f25a4ef7b6d9f",
  "id": "NPR-DV61EEGGUFCQ"
}

Parâmetros:

Nome Descrição Detalhes
__________________
events Eventos configurados para serem enviados. Exemplo: PAYMENT.AUTHORIZED. Valores possíveis: ver lista de webhooks. string list, obrigatório
target URL de notificação. string, obrigatório
media Tipo da notificação. Valores possíveis: WEBHOOK. string, obrigatório

Consultar preferência de notificação [GET]

Através dessa API você pode consultar uma preferência de notificação previamente criada.

Endpoint

GET https://sandbox.moip.com.br/v2/preferences/notifications/{id}

Exemplo

GET https://sandbox.moip.com.br/v2/preferences/notifications/NPR-DV61EEGGUFCQ

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="

{}       

Response:

200 (OK)
Content-Type: application/json
{
  "events": [
    "ORDER.*",
    "PAYMENT.AUTHORIZED",
    "PAYMENT.CANCELLED"
  ],
  "target": "http://requestb.in/1dhjesw1",
  "media": "WEBHOOK",
  "token": "0081d6af29ec431b9a1f25a4ef7b6d9f",
  "id": "NPR-DV61EEGGUFCQ"
}

Parâmetros:

Nome Descrição Detalhes
__________________
id Identificador da preferência. string(16), obrigatório

Remover preferência de notificação [DELETE]

Através dessa API você pode remover uma determinada preferência de notificação.

Endpoint

DELETE https://sandbox.moip.com.br/v2/preferences/notifications/{id}

Exemplo

DELETE https://sandbox.moip.com.br/v2/preferences/notifications/NPR-DV61EEGGUFCQ

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="


{}      
# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

204 No Content
Content-Type: application/json

Parâmetros:

Nome Descrição Detalhes
__________________
id Identificador da preferência. string(16), obrigatório

Listar todas preferências de notificação [GET]

Através dessa API você pode consultar as preferências de notificação já criadas.

Endpoint

GET https://sandbox.moip.com.br/v2/preferences/notifications

Exemplo

GET https://sandbox.moip.com.br/v2/preferences/notifications

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="   

# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

200 Ok
Content-Type: application/json
[
    {
        "events": [
            "ORDER.CREATED"
        ],
        "target": "http://requestb.in/v5go4mv5",
        "media": "WEBHOOK",
        "token": "284cfacf061249499f1605e5c2c421de",
        "id": "NPR-88PSYFAH6JFM"
    },
    {
        "events": [
            "PAYMENT.IN_ANALYSIS"
        ],
        "target": "http://requestb.in/1818jzw1",
        "media": "WEBHOOK",
        "token": "a6408477584e4e93b34d86bfaef158d4",
        "id": "NPR-WQ6XOQCPPY2I"
    },
    {
        "events": [
            "ORDER.PAID"
        ],
        "target": "https://moip.com.br/webhook",
        "media": "WEBHOOK",
        "token": "7c4649abe9c64d56ad5f2288ce71888d",
        "id": "NPR-9XSBSCS09RZ2"
    }
]

Simuladores

O simulador permitirá com que você simule os mais diversos status de um recurso dentro do Moip.

Atributos:

Nome Descrição Tipo
_____________________________
payment_id Identificador Moip do pagamento. string(16)
amount Valor a ser autorizado no pagamento. numeric

Autorizar pagamento [GET]

Por meio desta API é possível forçar a autorização de pagamento. Essa autorização só é possível em status de pagamentos intermediários, ou seja que não sejam status finais.

Status possíveis de simular:

  • Cartão de crédito: IN_ANALYSIS
  • Boleto: WAITING

Endpoint

GET https://sandbox.moip.com.br/simulador/authorize?payment_id={paymen_id}&amount={amount}

AUTENTICAÇÃO Basic

Exemplo

GET https://sandbox.moip.com.br/simulador/authorize?payment_id=PAY-VZ1HI48256ZX&amount=2000

Request:

Content-Type: application/json
Authorization: "Basic MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE6QUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQg=="   

# Por enquanto não disponível no SDK Ruby, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK Python, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK JAVA, veja nosso exemplo em JSON.
# Por enquanto não disponível no SDK PHP, veja nosso exemplo em JSON.

Response:

200 (Ok)
Content-Type: application/json

Parâmetros:

Nome Descrição Tipo
_____________________________
payment_id Identificador Moip do pagamento. string(16)
amount Valor a ser autorizado no pagamento. numeric

Objetos compartilhados

Endereço

O Endereço é o conjunto de dados que representam um local associado ao Cliente como endereço para entrega(shippingAddress) ou associado ao Cartão de crédito como endereço de cobrança(billingAddress).

Atributos:

Atributo Descrição Tipo
street Logradouro do endereço. string(45), obrigatório
streetNumber Número. string(10), obrigatório
streetNumber Número. string(20), obrigatório
complement Complemento do endereço. string(45), condicional
district Bairro. string(45), obrigatório
city Cidade. string(32), obrigatório
state Estado. string(32), obrigatório
country País em formato ISO-alpha3, exemplo BRA. string(3), obrigatório
zipCode O CEP do endereço de cobrança. string(9), obrigatório

Exemplo:

{
  "street": "Avenida Faria Lima",
  "streetNumber": "2927",
  "complement": "8",
  "district": "Itaim",
  "city": "Sao Paulo",
  "state": "SP",
  "country": "BRA",
  "zipCode": "01234000"
}

Meio de pagamento

Atributo Descrição Tipo
creditCard Cartão de crédito Cartão de crédito
boleto Boleto Boleto de cobrança.
onlineBankDebit Internet banking Transferência online.

Cartão de crédito

O Cartão de crédito é o cartão utilizado pelo Cliente para pagar um Pedido.

Atributos:

Nome Descrição Tipo
____________________________________ __ _
id Identificador do cartão de crédito no Moip. string(16), response
hash Dados criptografados do cartão de crédito. string, opcional
number Número do cartão de crédito. (Necessário estar dentro do escopo PCI para enviar esse campo sem criptografia) string(19), opcional
expirationMonth Mês de expiração do cartão. (Necessário estar dentro do escopo PCI para enviar esse campo sem criptografia) integer(2), opcional
expirationYear Ano de expiração do cartão. (Necessário estar dentro do escopo PCI para enviar esse campo sem criptografia) integer(4), opcional
cvc Código de segurança do cartão. (Necessário estar dentro do escopo PCI para enviar esse campo sem criptografia) integer, opcional
brand Bandeira do cartão. Valores possíveis: VISA, MASTERCARD, AMEX, DINERS, ELO, HIPER,HIPERCARD. string, response
first6 Primeiros 6 dígitos do cartão. string, response
last4 Últimos 4 dígitos do cartão. string, response
holder Portador do cartão. structured, obrigatório
├─fullname Nome do portador impresso no cartão. string(90), obrigatório
├─birthDate Data de nascimento do cliente. date(AAAA-MM-DD), opcional *
├─phone Telefone do cliente. structured, obrigatório *
├ ├─countryCode DDI (código internacional) do telefone. Valores possíveis: 55. integer(2), obrigatório
├ ├─areaCode DDD (código local) do telefone. integer(2), obrigatório
└ └─number Número do telefone. integer(9), obrigatório
├─taxDocument Documento fiscal. structured, obrigatório *
├ ├─type Tipo do documento. Valores possíveis: CPF. string(3), obrigatório
└ └─number Número do documento. string(11), obrigatório
└─billingAddress Endereços de cobrança do cartão de crédito. object Endereço opcional *

* Campos obrigatórios para o Venda Protegida

Exemplo:

{
  "expirationMonth": "05",
  "expirationYear": "18",
  "number": "4012001038443335",
  "cvc": "123",
  "holder": {
    "fullname": "Jose Portador da Silva",
    "birthdate": "1988-12-30",
    "taxDocument": {
      "type": "CPF",
      "number": "22222222222"
    },
    "phone": {
      "countryCode": "55",
      "areaCode": "11",
      "number": "66778899"
    }
  }
}

Boleto

O Boleto é um título bancário utilizado no Brasil como meio de pagamento. O título é emitido no momento da finalização do checkout e pode ser pago na rede bancária.

Atributos:

Nome Descrição Tipo
_______________________
lineCode Linha digitável de um boleto. string
expirationDate Data de expiração de um boleto. date
instructionLines Instruções impressas no boleto. structured
├─first Primeira linha de instrução. string
├─second Segunda linha de instrução. string
└─third Terceira linha de instrução. string
logoUri Endereço de uma imagem com o logotipo a ser impresso no boleto. Ainda não disponível nesta versão da API. link

Exemplo:

{
  "expirationDate": "2016-09-30",
  "instructionLines": {
    "first": "Primeira linha se instrução",
    "second": "Segunda linha se instrução",
    "third": "Terceira linha se instrução"
  },
  "logoUri": "http://meusite.com.br/logo.jpg"
}

Débito Online

O Débito online é o meio de pagamento disponibilizado pelos bancos para débito em conta corrente. Ao selecionar está opção o Cliente é redirecionado ao internet banking escolhido para finalização do seu pagamento.

Atributos:

Nome Descrição Tipo
_____________________________
bankNumber Número do banco. Valores possíveis: 001, 237, 341, 041. Ver lista de bancos e códigos FEBRABAN string, obrigatório
bankName Nome do banco. string, response
expirationDate Data de expiração do débito. date, obrigatório
returnUri Url de redirecionamento. Ainda não disponível nesta versão da API. link, obrigatório

Exemplo:

{
  "bankNumber": "001",
  "expirationDate": "2016-09-30",
  "returnUri": "http://meusite.com.br/retorno"
}

Carteira eletrônica

A Carteira eletrônica é o meio de pagamento disponibilizado pelo Moip em que o Cliente pode usar o seu saldo para realizar pagamentos. Este objeto ainda não está disponível nesta versão da API.

Atributos:

Nome Descrição Tipo
____________________
moipAccount Node MPA da conta do comprador. structured, obrigatório
id Identificador da conta Moip.. string, obrigatório

Conta bancária

A Conta bancária é o domicílio bancário de um determinado vendedor ou de um Cliente.

Atributos:

Nome Descrição Tipo
_____________________________
type Tipo da conta. Valores possíveis: CHECKING, SAVING. string, obrigatório
bankNumber Número do banco (padrão Febraban).Ver lista de bancos e códigos FEBRABAN string, obrigatório
agencyNumber Número da agência. integer, obrigatório
agencyCheckNumber Dígito verificador da agência. integer, obrigatório
accountNumber Número da conta. integer, obrigatório
accountCheckNumber Dígito verificador da conta. integer, obrigatório
holder Titular da conta. structured, obrigatório
├─fullname Nome do titular da conta. string
├─taxDocument Documento fiscal do titular. structured
├ ├─type Tipo do documento. Valores possíveis: CPF,CNPJ. string
└ └─number Número do documento. integer

Exemplo:

{
  "type": "CHECKING",
  "bankNumber": "001",
  "agencyNumber": "1111",
  "agencyCheckNumber": "2",
  "accountNumber": "9999",
  "accountCheckNumber": "8",
  "holder": {
    "fullname": "Nome do Portador",
    "taxDocument": {
      "type": "CPF",
      "number": "22222222222"
    }
  }
}

Ordem de pagamento

A Ordem de pagamento é um dos métodos disponíveis para reembolso de um Pedido. Usado nos casos em que o Cliente não possui uma conta bancária.

Atributos:

Nome Descrição Tipo
_____________________________
bankNumber Número do banco (padrão Febraban).Ver lista de bancos e códigos FEBRABAN string, obrigatório
agencyNumber Número da agência. integer, obrigatório
agencyCheckNumber Dígito verificador da agência. integer, obrigatório
holder Titular da conta. structured, obrigatório
├─fullname Nome do titular da conta. string
├─taxDocument Documento fiscal do titular. structured
├ ├─type Tipo do documento. Valores possíveis: CPF. string
└ └─number Número do documento. integer

Custódia

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

Atributos:

Atributo Descrição Tipo
_____________________________
status Status da custódia. Valores possíveis: ON_HOLD, RELEASED. string
createdAt Data da criação do recurso. datetime
updatedAt Data da última atualização do recurso. datetime

Checkout Moip

O Checkout Moip é a interface de pagamento criada e mantida pelo Moip, os links presentes nessa estrutura devem ser utilizados para redirecionar o cliente final (pagador) ao ambiente seguro Moip.

Atributos:

Atributo Descrição Tipo
____________________________________
payCreditCard Estrutura de link structured
└─redirectHref Checkout Moip para Cartão de crédito, ambiente seguro e em conformidade PCI Compliance. link
payBoleto Estrutura de link structured
└─redirectHref Checkout Moip para exibição e impressão de boleto bancário link
payOnlineBankDebitItau Estrutura de link structured
└─redirectHref Redirecionamento automático para internet-banking Itaú link
payOnlineBankDebitBradesco Estrutura de link structured
└─redirectHref Redirecionamento automático para internet-banking Bradesco link
payOnlineBankDebitBB Estrutura de link structured
└─redirectHref Redirecionamento automático para internet-banking Banco do Brasil link
payOnlineBankDebitBanrisul Estrutura de link structured
└─redirectHref Redirecionamento automático para internet-banking Banrisul link

Lista de instituições bancárias

Lista de instituições bancárias e seus códigos de identificação FEBRABAN.

Id Nome do banco
001 BANCO DO BRASIL S.A. (Banco do Brasil)
237 BANCO BRADESCO S.A. (Bradesco)
341 BANCO ITAU S.A. (Itaú)
356 BANCO ABN AMRO REAL S.A. (Real)
409 UNIBANCO UNIAO DE BANCOS BRASILEIROS S.A. (Unibanco)
041 BANCO DO ESTADO DO RIO GRANDE DO SUL S.A. (Banrisul)
104 CAIXA ECONOMICA FEDERAL (Caixa Econômica Federal)
033 BANCO SANTANDER S.A. (Santander Banespa)
399 HSBC BANK BRASIL S.A.BANCO MULTIPLO (HSBC)
745 BANCO CITIBANK S.A.
151 BANCO NOSSA CAIXA S.A (Nossa Caixa)
389 BANCO MERCANTIL DO BRASIL S.A. (Mercantil do Brasil)
004 BANCO DO NORDESTE DO BRASIL S.A (Banco do Nordeste (BNB) )
021 BANESTES S.A BANCO DO ESTADO DO ESPIRITO SANTO (Banestes)
422 BANCO SAFRA S.A. (Safra)
003 BANCO DA AMAZONIA S.A. (Banco da Amazônia (Basa))
047 Banco do Estado de Sergipe S.A (Banese)
070 Banco de Brasília S.A. (BRB)
655 Banco Votorantim S.A (Votorantim)
107 Banco BBM S.A (BBM)
025 Banco Alfa S.A (Alfa)
263 Banco Cacique S. A. (Cacique)
229 BANCO CRUZEIRO DO SUL S.A. (Cruzeiro do Sul)
252 BANCO FININVEST S.A. (Fininvest)
063 BANCO IBI S.A - BANCO MULTIPLO (Banco IBI)
623 BANCO PANAMERICANO S.A. (PanAmericano)
633 BANCO RENDIMENTO S.A. (Banco Rendimento)
749 BANCO SIMPLES S.A. (Banco Simples)
215 BANCO ACOMERCIAL E DE INVESTIMENTO SUDAMERIS S.A. (Sudameris)
756 BANCO COOPERATIVO DO BRASIL S.A. - (BANCOOB)
748 BANCO COOPERATIVO SICREDI S.A. (SICREDI)
065 LEMON BANK BANCO MÚLTIPLO S..A (Lemon Bank)
069 BPN BRASIL BANCO MÚLTIPLO S.A. (BPN)
719 BANIF - BANCO INTERNACIONAL DO FUNCHAL (BRASIL), S.A. (Banif)
318 BANCO BMG S.A. (BMG)
027 BANCO DO ESTADO DE SANTA CATARINA S.A.
208 BANCO UBS PACTUAL S.A.
479 BANCO ITAUBANK S.A.
077 BANCO INTERMEDIUM S.A.
212 BANCO ORIGINAL
085 CECRED-COOPERATIVA CENTRAL DE CREDITO URBANO

Tabela de categorias de estabelecimento

Lista com identificadores e descrição das categorias de tipos de estabelecimentos usados pelos adquirentes.

ID Nome MCC
_____
1 Produtos para Esporte -
2 Roupas / Acessórios 5691
3 Eletrônicos / Jogos de vídeo game 7622
4 Mobílias -
5 Antiguidades / Negociante de artes / Galerias 5971
6 Flores / Presentes 5945
7 Supermercado / Comércio de Alimentos ou Bebidas 5499
8 Hardware / Equipamentos / Suprimentos 7622
9 Bancas de Jornal / Livraria 5943
10 Brinquedos / Passatempo 5945
11 Feiras Livres 5499
12 Sex Shop -
13 Clube de Compras -
14 Outro tipo de Varejo -
15 Carrinho de Lanches 5411
16 Refeições Coletivas por Entrega ou Buffet 5814
17 Acomodação -
18 Bar / Casa Noturna 5813
19 Cafeteria / Padaria / Confeitaria 5462
20 Restaurante 5812
21 Serviços Automotivos -
22 Serviços de Limpeza -
23 Educação 8299
24 Serviços ou Consultoria de TI -
25 Paisagismo / Decoração -
26 Serviços Pessoais -
27 Taxi / Limusine 4121
28 Serviços de Contabilidade, Jurídicos ou Negócios -
29 Serviço de Delivery / Carreto -
30 Marido de Aluguel / Construção / Pedreiro -
31 Software as a Service -
32 Doações / Crowdfunding -
33 Jogos online -
34 Conteúdo Adulto -
35 Música / Cinema 5735
36 Recreação / Entretenimento -
37 Turismo -
38 Arte / Artesanato / Desenho 5970
39 Eventos / Ingressos 7399
40 Cabeleireiro / Barbeiro / Spa 7230
41 Dentistas 8021
42 Médicos e Serviços Médicos 8021
43 Esporte / Fitness 7298
44 Veterinário / Cuidados com animais 5995
45 Sociedade / Organizações Políticas 8661
46 Organizações beneficentes 8661

Detalhes de cancelamento de pagamentos

Os detalhes de cancelamento de pagamentos te ajudam a tomar decisões mais assertivas na tentativa de recuperação de pagamentos cancelados por cartão de crédito.

Valores possíveis:

Código Descrição Detalhes Recupera bilidade Cancelado por
_____ _____ _____________________________ ______ _____________
1 Dados inválidos Os dados digitados pelo Comprador estão incorretos: Número do Cartão, CVV ou Data de Vencimento. Solicite ao Comprador verificar os dados informados e corrigi-los para concluir a compra.

Sugestão de mensagem ao comprador: Dados informados inválidos. Você digitou algo errado durante o preenchimento dos dados do seu Cartão. Certifique-se de que está usando o Cartão correto e faça uma nova tentativa.
Alta ACQUIRER
2 Falha na comunicação com o Banco Emissor Houve uma falha na comunicação com o Banco, o Comprador deve fazer uma nova tentativa. Solicite ao Comprador tentar novamente. Caso não consiga, sugira outra forma de pagamento.

Sugestão de mensagem ao comprador: Houve uma falha de comunicação com o Banco Emissor do seu Cartão, tente novamente.
Alta ACQUIRER
3 Política do Banco Emissor Transação não autorizada pelas políticas do Banco Emissor. Dentre os possíveis motivos estão: análise de risco, comportamento de compra ou outro motivo semelhante. O Comprador deve entrar em contato com o Banco Emissor antes de tentar novamente. Solicite ao Comprador entrar em contato com o Banco parar liberar a transação e, depois, peça para concluí-la.

Sugestão de mensagem ao comprador: O pagamento não foi autorizado pelo Banco Emissor do seu Cartão. Entre em contato com o Banco para entender o motivo e refazer o pagamento.
Média ACQUIRER
4 Cartão vencido A validade do Cartão foi excedida. Ofereça outro meio de pagamento ao Comprador. Exemplo: outro Cartão, Boleto ou Transferência.

Sugestão de mensagem ao comprador: A validade do seu Cartão expirou. Escolha outra forma de pagamento para concluir o pagamento.
Alta ACQUIRER
5 Transação não autorizada O Banco Emissor não autorizou a compra. Um dos motivos possíveis é a falta de limite do Cartão para concluir o pagamento. Ofereça outro meio de pagamento para a compra ser finalizada.

Sugestão de mensagem ao comprador: O pagamento não foi autorizado. Entre em contato com o Banco Emissor do seu Cartão.
Média ACQUIRER
6 Transação duplicada O pagamento já foi realizado por outra transação. Informe o Comprador que a compra já foi concluída. Caso ele não encontre o outro pagamento, peça para entrar em contato com o Vendedor.

Sugestão de mensagem ao comprador: Esse pagamento já foi realizado. Caso não encontre nenhuma referência ao pagamento anterior, por favor entre em contato com o nosso Atendimento.
- ACQUIRER
7 Política do Moip A transação possuía um risco muito elevado e, após os procedimentos de análise, ela foi negada.

Sugestão de mensagem ao comprador: O pagamento não foi autorizado. Para mais informações, entre em contato com o nosso atendimento
Média MOIP
8 Solicitado pelo Comprador O Comprador solicitou o cancelamento da transação diretamente ao Moip. Entre em contato com o Comprador para entender o ocorrido. - MOIP
9 Solicitado pelo Vendedor O Vendedor solicitou o cancelamento da transação diretamente ao Moip - MOIP
10 Transação não processada Houve uma falha na comunicação do Moip. Solicite ao Comprador tentar finalizar a compra novamente. Caso ele não consiga, informe o Moip do ocorrido.

Sugestão de mensagem ao comprador: O pagamento não pode ser processado. Por favor, tente novamente. Caso o erro persista, entre em contato com o nosso atendimento
Alta MOIP
11 Desconhecido Houve uma falha desconhecida no Banco Emissor. Informe o comprador que houve uma falha desconhecida no Banco Emissor. Caso o erro persista, entre em contato com o Moip.

Sugestão de mensagem ao comprador: Houve uma falha de comunicação com o Banco Emissor do seu Cartão, tente novamente.
Média ACQUIRER
12 Política de segurança do Banco Emissor O Cartão foi negado e não será possível concluir a compra com este Cartão. Informe o Comprador que houve um problema em seu Cartão e ele deve entrar em contato com o Banco para entender o ocorrido.

Sugestão de mensagem ao comprador: Pagamento não autorizado para este Cartão. Entre em contato com o Banco Emissor para mais esclarecimentos.
Baixa ACQUIRER
13 Valor inválido A transação possui um valor inválido para o Banco Emissor: valor total da transação está abaixo do mínimo (menor que 1 real); valor da parcela da transação está abaixo do mínimo (5 reais); Valor total da transação é muito alto (exemplo R$999.999,00). Entre em contato com o Moip para esclarecer esse aspecto da sua integração.

Sugestão de mensagem ao comprador: Pagamento não autorizado. Entre em contato com o Atendimento e informe o ocorrido.
- MOIP
14 Política de segurança do Moip O Cartão foi negado e não será possível concluir a compra com este Cartão. Informe o Comprador que houve um problema em seu Cartão e ele deve entrar em contato com o Banco para entender o ocorrido.

Sugestão de mensagem ao comprador: Pagamento não autorizado
Baixa MOIP

Detalhes de cancelamento de transferências

Os detalhes de cancelamento de transferências te mostram os motivos de rejeição de transferências para contas bancárias.

Valores possíveis:

Código Descrição Detalhes Recupera bilidade Cancelado por
_____ _____ _____________________________ ______ _____________
1 Banco do favorecido inválido Verificar se o código do banco informado está correto. Alta BANCO
2 Agência inválida Verificar dados da agência bancária informada na transferência. Alta BANCO
3 Conta corrente/poupança inválida Verificar dados da conta bancária informada na transferência. Alta BANCO
4 Nome do favorecido inválido Verificar dados do titular da conta informados na transferência. Alta BANCO
5 CPF/CNPJ do favorecido inválido Verificar se o cpf/cnpj informado pertence ao titular da conta bancária. Alta BANCO
6 TED/DOC devolvido, por favor verificar dados bancários Verificar dados da agência/conta utilizada e dados do titular. Alta BANCO
7 Conta corrente/poupança bloqueada ou encerrada Entrar em contato com o usuário e solicitar o uso de uma nova conta. Alta BANCO
8 Erro inesperado. Favor entrar em contato com o atendimento Erro inesperado. Alta MOIP
9 Cancelado por política do Moip Entrar em contato com o Moip para maiores informações. Alta MOIP

Lista de erros

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 400 para sua aplicação. Caso você receba um http status 500 para uma requisição válida por gentileza entre em contato conosco.

Exemplo

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

Erros Pedido

Contém também erros do recurso Customer quando usado na criação de um pedido.

Code path description
___________
ORD-001 ownId É necessario informar seu identificador próprio
ORD-002 ownId O identificador próprio de pedido deve ter no máximo 45 caracteres
ORD-003 order.receiver O pedido precisa de um recebedor do tipo PRIMARY`
ORD-004 amount.currency Moeda informada é inválida. Atualmente apenas BRL é válido.
ORD-005 amount.subtotals.shipping O valor de frete deve ser maior que zero
ORD-006 amount.subtotals.addition O valor adicional deve ser maior que zero
ORD-007 amount.subtotals.discount O valor de desconto deve ser maior que zero
ORD-008 amount.subtotals.items O valor dos itens deve ser maior que zero
ORD-009 amount Todos os valores devem ser maiores que zero
ORD-010 items É necessario informar pelo menos um item.
ORD-011 items.product Informe o nome do produto
ORD-012 items.product O nome do item deve ter no máximo 250 caracteres
ORD-013 items.detail A descrição do produto deve ter no máximo 250 caracteres
ORD-014 items.price O item deve ter um valor
ORD-015 receivers.moipAccount Informe o identificador da conta Moip
ORD-016 receivers.type Informe o tipo do recebedor. Deve ser PRIMARY ou SECONDARY
ORD-017 receivers.type Tipo de recebedor inválido. Deve ser PRIMARY ou SECONDARY
ORD-018 receivers.amount É necessario informar o valor de recebimento
CUS-001 customer.ownId O identificador próprio não foi informado
CUS-002 customer.fullname O nome não foi informado
CUS-003 customer.fullname O nome informado não é válido
CUS-004 customer.fullname O nome informado não pode conter só números
CUS-005 customer.email O e-mail não foi informado
CUS-006 customer.email O e-mail informado é inválido
CUS-007 customer.birthDate A data de nascimento informada é inválida

Erros Reembolso

Code path description
_____________
REF-001 amount O valor deve ser informado em centavos
REF-002 amount Valor solicitado para reembolso maior que o valor do pagamento ou inválido
REF-003 amount O valor solicitado somado aos reembolsos parciais é maior que o valor disponível para reembolso.
REF-004 amount Reembolso já realizado
REF-005 payment.status O reembolso não pode ser realizado pois o pagamento não foi autorizado
REF-006 order.status O reembolso não pode ser realizado pois o pedido ainda nao foi pago
REF-007 refundingInstrument.method Valor inválido para o campo, consulte a documentação
REF-008 bankAccount.type Tipo de conta bancária inválido
REF-009 bankAccount.bankNumber O identificador do banco deve ser numérico
REF-010 bankAccount.bankNumber O identificador de banco informado é inválido, consulte lista de bancos disponíveis para reembolso
REF-011 bankAccount.agencyNumber A agência bancária deve ser numérica
REF-012 bankAccount.agencyCheckNumber O digito verificador da agência bancária deve ser numérico ou caracter x.
REF-013 bankAccount.accountNumber O número da conta bancária deve ser numérico
REF-014 bankAccount.accountCheckNumber O digito verificador da conta bancária deve ser numérico
REF-015 holder É necessario informar os dados do portador da conta bancária
REF-016 holder.fullName Informe o nome completo do titular da conta bancária
REF-017 holder.taxDocument É necessario informar o documento do portador da conta bancária
REF-018 holder.taxDocument.type Informe o tipo do documento
REF-019 holder.taxDocument.type O tipo de documento informado é inválido
REF-020 holder.taxDocument.number O número do documento deve ser informado
REF-021 holder.taxDocument.number O número do documento deve ser numérico
REF-023 refundingInstrument.creditCard Prazo limite de reembolso em cartão de crédito exercido, tente realizar o reembolso em uma conta bancária.
REF-024 refundingInstrument.moipAccount Cliente não possui conta Moip, tente realizar o reembolso em uma conta bancária.
REF-025 refundingInstrument.bankAccount.holder.number Reembolso só pode ser realizado para conta bancária do mesmo titular do pagamento.
REF-026 refundingInstrument.creditCard Pagamento só pode ser reembolsado no próprio cartão de crédito no período inferior a 90 dias após pagamento.
REF-027 order.receivers.moipAccount Um dos recebedores do pagamento não possui saldo suficiente para o reembolso
REF-028 order.receivers.moipAccount Uma das contas informadas não é recebedora do pagamento
REF-029 receiversDebited.moipAccount O recebedor primário não pode assumir o reembolso do recebedor secundário
REF-030 receiversDebited.amount O recebedor secundário não pode reembolsar um valor maior do que o recebido no pagamento

Erros Permissão de Terceiros (Oauth)

Code path description
_________
APP-001 grantType Usuário e ou senha inválido
APP-002 grantType Tipo de autenticação não suportada
APP-003 appSecret Chave privada inválida
APP-004 appId Aplicativo não encontrado
APP-005 scope Escopo não disponível para o aplicativo
APP-006 scope O escopo do pedido não foi concedido pelo usuário
APP-007 redirectUri Parâmetro redirectUri não corresponde ao registrado pelo aplicativo
APP-008 code Code inexistente ou inválido
APP-009 redirectUri Parâmetro redirectUri não informado
APP-010 password Parâmetro obrigário não informado
APP-011 assertionType Parâmetro assertionType deve ser uma URI absoluta

Erros Transferência

Code path description
_________
TRA-001 transfers deve existir
TRA-002 transfers deve ser numerico
TRA-003 transfers deve ser uma string nao vazia
TRA-004 transfers deve ser uma data-hora valida
TRA-005 transfers deve ser uma data valida
TRA-006 transfers deve ser um dos valores possiveis: {values}
TRA-007 transfers excedeu o tamanho maximo de {max} caracteres
TRA-100 transfers Conta bancaria indicada nao foi encontrada
TRA-101 transfers Saldo disponivel insuficiente para essa operacao
TRA-102 transfers Identidade da conta bancaria nao encontrado
TRA-103 transfers CPF/CNPJ com formato invalido
TRA-104 transfers Divergencia entre dados de CPF/CNPJ
TRA-105 transfers Limite para saque alcançado
TRA-106 transfers Erro de comunicação com o Financial
TRA-107 transfers Sem integração com o Financial
TRA-108 transfers Aconteceu um erro interno ao processar transferência
TRA-109 transfers Valor requisitado inferior ao permitido
TRA-110 transfers Conta moip origem da transferência nao existe
TRA-111 transfers Conta moip destino da transferência nao existe
Topo