Os pedidos são identificados pelo elemento orderID. Nos casos a seguir, um único orderID, pode ter mais de uma transação (transactionID):
- Autorização e captura separadas são duas transações agrupadas no mesmo OrderID.
- Recorrência (todas as transações de uma recorrência têm o mesmo orderID).
- Boleto (Existe a possibilidade de emitir mais de um boleto no mesmo OrderID, como por exemplo uma remissão trocando apenas data de vencimento).
Para estes casos (especialmente as recorrências) pode ser muito útil pesquisar pelo orderID para ver todas as transações agrupadas no mesmo orderID.
Para filtrar uma única transação deve-se usar o elemento </filterOptions>, dentro da tag </request>:
Controle de Rate Limit na API de Relatórios
O rate limit é um mecanismo que define o número máximo de requisições que podem ser realizadas em um determinado intervalo de tempo. Ele serve para proteger as aplicações contra excesso de chamadas e garantir a estabilidade dos serviços.
Na API de relatórios do gateway maxiPago!, o rate limit determina quantas requisições podem ser feitas por segundo em cada rota. Caso o limite seja ultrapassado, o sistema retorna o erro 429 com a mensagem: “Rate limit excedido para merchant_id=xxxxx”, onde xxxxx corresponde ao identificador da loja (merchant id) no maxiPago!.
Segue abaixo o limite configurado para a rota de relatórios:
| Rota | Método | Requisições por tempo |
| https://api.maxipago.net/ReportsAPI/servlet/ReportsAPI | POST | 60reqs/10s |
Observação: Caso a sua aplicação envio mais requisições que o permitido no intervalo de tempo haverá o bloqueio temporário por 9 segundos restantes.
É importante observar esse limite ao integrar suas aplicações para evitar bloqueios temporários de acesso à API.
Consultar Pedido – URLs Para Envio dos Dados
SANDBOX: https://testapi.maxipago.net/ReportsAPI/servlet/ReportsAPI
PRODUÇÃO: https://api.maxipago.net/ReportsAPI/servlet/ReportsAPI
Consultar Pedido – Exemplo de Requisição
<?xml version="1.0" encoding="UTF-8"?>
<rapi-request>
<verification>
<merchantId>store-id</merchantId>
<merchantKey>store-key</merchantKey>
</verification>
<command>transactionDetailReport</command>
<request>
<filterOptions>
<orderId>0A011599:015C44CF07A1:C036:70C0D3C1</orderId>
</filterOptions>
</request>
</rapi-request>
Consultar Pedido – Exemplo de Retorno em Caso de Sucesso
<?xml version="1.0" encoding="UTF-8"?>
<rapi-response>
<header>
<errorCode>0</errorCode>
<errorMsg/>
<command>transactionDetailReport</command>
<time>05-26-2017 10:00:18</time>
</header>
<result>
<resultSetInfo>
<totalNumberOfRecords>1</totalNumberOfRecords>
<pageToken>temp1495803618529.1</pageToken>
<pageNumber>1</pageNumber>
<numberOfPages>1</numberOfPages>
</resultSetInfo>
<records>
<record>
<transactionId>176890900</transactionId>
<referenceNumber>
<![CDATA[123456789]]>
</referenceNumber>
<transactionType>Sale</transactionType>
<transactionAmount>1.00</transactionAmount>
<taxAmount>0.00</taxAmount>
<shippingAmount>0.00</shippingAmount>
<transactionDate>05/26/2017 09:50:37 AM</transactionDate>
<orderId>
<![CDATA[0A011599:015C44CF07A1:C036:70C0D3C1]]>
</orderId>
<splitPaymentOrderId/>
<userId/>
<customerId/>
<companyName>
<![CDATA[maxiPago]]>
</companyName>
<responseCode>0</responseCode>
<approvalCode>123456</approvalCode>
<paymentType>(Hipercard) ...6688</paymentType>
<bankRoutingNumber/>
<achAccountNumber/>
<avsResponseCode>YYY</avsResponseCode>
<billingName>
<![CDATA[Fulano de Tal]]>
</billingName>
<billingAddress1>
<![CDATA[Av. Republica Brasil, 230]]>
</billingAddress1>
<billingAddress2>
<![CDATA[14 Andar]]>
</billingAddress2>
<billingCity>Sao Paulo</billingCity>
<billingState>SP</billingState>
<billingCountry>BR</billingCountry>
<billingZip>01031170</billingZip>
<billingPhone>1140099400</billingPhone>
<billingEmail>
<![CDATA[fulanodetal@email.com]]>
</billingEmail>
<comments/>
<transactionStatus>Approved</transactionStatus>
<transactionState>3</transactionState>
<recurringPaymentFlag/>
<processorReturnedData/>
<gatewayDebitNetworkID/>
<creditCardType>HIPERCARD</creditCardType>
<boletoUrl/>
<boletoNumber/>
<expirationDate/>
<processorID>SIMULATOR</processorID>
<dateOfPayment/>
<dateOfFunding/>
<bankOfPayment/>
<branchOfPayment/>
<paidAmount/>
<bankFee/>
<netAmount/>
<returnCode>A</returnCode>
<clearingCode/>
<customField1/>
<customField2/>
<customField3/>
<customField4/>
<customField5/>
<numberOfInstallments/>
<chargeInterest/>
</record>
</records>
</result>
</rapi-response>
Consultar Pedido – Exemplo de Retorno Caso não Localize o Pedido
<?xml version="1.0" encoding="UTF-8"?>
<rapi-response>
<header>
<errorCode>0</errorCode>
<errorMsg/>
<command>transactionDetailReport</command>
<time>05-26-2017 10:40:03</time>
</header>
<result>
<resultSetInfo>
<totalNumberOfRecords>0</totalNumberOfRecords>
<pageNumber>1</pageNumber>
</resultSetInfo>
<records/>
</result>
</rapi-response>
O elemento contém as informações da requisição de consulta, com os seguintes campos:
Já o elemento <resultSetInfo/> traz o total de registros encontrados e os dados do sistema de paginação:
O elemento contém os detalhes das transações individuais. Nem todos os campos são sempre retornados: