{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"33ba1d21-6a6e-3f8d-46d7-a99c40cbfb99","name":"Integração Opa!","description":"# Introdução\r\nVeja abaixo a documentação para a integração via API do Opa! Pagamentos. \r\n<br>Nossa API é arquitetada em REST de forma simples. \r\n<br>Com ela você pode:\r\n- Enviar pagamentos automaticamente do seu sistema para usuários Opa!.\r\n- Enviar cobranças para seus clientes.\r\n\r\n# URLS da API\r\n## Produção\r\nhttps://api.opapagamentos.com.br\r\n\r\n# Portal Opa Pro\r\n## Produção\r\nhttps://proweb.opapagamentos.com.br\r\n\r\n \r\n# URLS de notificação de alteração de status\r\nPara receber os avisos de alteração de status de transferências, cobranças ou vendas de cartão é necessário configurar no portal Opa! web as URLs que serão requisitadas pelo sistema do Opa! quando o status for alterado.\r\n\r\n<br>\r\n\r\nCada notificação possui uma requisição específica, de acordo com a operação a que ela se refere.\r\n\r\nAs requisições serão feitas até receber como resposta um HTTP Status OK (200). \r\nEm caso de falha de requisição, ou qualquer retorno diferente de OK novas tentativas serão feitas em um intervalo de tempo padrão. Com o limite de 5 tentativas.\r\n\r\nAs seguintes operações trabalham com envio de notificações:\r\n\r\n* Alteração de status de cobrança;\r\n* Alteração de pedido de cobrança por QR code;\r\n* Alteração pedido de cartão;\r\n* Cancelamento de plano de usuário;\r\n* Alteração de status de envio de dinheiro;\r\n* Alteração de status de cobrança por boleto;\r\n* Alteração de status de cobrança por cartão de crédito;\r\n* Alteração de status de cobrança por transferência bancária;\r\n* Alteração de status de saque de Subconta;\r\n* Alteração de status de TED;\r\n\r\n## Lista de Notificações\r\nAbaixo a lista detalhada com os tipos de notificação enviados pela API do Opa!\r\n\r\n**Alteração de status de cobrança**\r\n\r\nEnviada a cada mudança de status de uma cobrança\r\n\r\nMétodo: POST\r\n\r\nRequisição:\r\n\r\n<table>\r\n    <tr>\r\n        <td>**Campo**</td>\r\n        <td>**Descrição**</td>\r\n        <td>**Exemplo**</td>\r\n    </tr>\r\n    <tr>\r\n         <td>transactionId</td>\r\n         <td>Código da cobrança</td>\r\n        <td>1ce41386-a0c1-4af2-bfb5-25b4b471cd3a</td>\r\n    </tr>\r\n  \r\n</table>\r\n\r\nExemplo de Requisição\r\n<code>\r\n{\r\n     \"transactionId\":\"1ce41386-a0c1-4af2-bfb5-25b4b471cd3a\"\r\n}\r\n</code>\r\n\r\nAo receber a notificação consultar o status da cobrança através do método: \r\n/integration/transaction/chargestatus passando o \"transactionId\" recebido na notificação.\r\n\r\n**Alteração de status de cobrança por QR Code**\r\n\r\nEnviada a cada mudança de status de uma cobrança feita por QR Code.\r\n\r\nMétodo: POST\r\n\r\nRequisição:\r\n\r\n<table>\r\n    <tr>\r\n        <td>**Campo**</td>\r\n        <td>**Descrição**</td>\r\n        <td>**Exemplo**</td>\r\n    </tr>\r\n    <tr>\r\n         <td>orderCode</td>\r\n         <td>Código da cobrança</td>\r\n        <td>1ce41386-a0c1-4af2-bfb5-25b4b471cd3a</td>\r\n    </tr>\r\n    <tr>\r\n         <td>reference</td>\r\n         <td>Código de referência</td>\r\n        <td>d3Sc6-e8ce-14f5-df14-tgfdg15r0dc63</td>\r\n    </tr>\r\n  </table>\r\n\r\nExemplo de Requisição\r\n<code>\r\n{\r\n     \"orderCode\":\"1ce41386-a0c1-4af2-bfb5-25b4b471cd3a\"\r\n     \"reference\":\"d3Sc6-e8ce-14f5-df14-tgfdg15r0dc63\"\r\n}\r\n</code>\r\n\r\nAo receber a notificação consultar o status da cobrança através do método: \r\n/integration/checkout/getpurchasestatus passando o \"orderCode\" recebido na notificação.\r\n\r\n<br/>\r\n\r\n**Alteração de status de cartão**\r\n\r\nEnviada a cada mudança de status de um cartão.\r\n\r\nMétodo: POST\r\n\r\nRequisição:\r\n\r\n<table>\r\n    <tr>\r\n        <td>**Campo**</td>\r\n        <td>**Descrição**</td>\r\n        <td>**Exemplo**</td>\r\n    </tr>\r\n    <tr>\r\n         <td>CPF</td>\r\n         <td>CPF do usuário</td>\r\n         <td>36957704572</td>\r\n    </tr>\r\n  </table>\r\n\r\nExemplo de Requisição\r\n<code>\r\n{\r\n     \"cpf\":\"36957704572\"\r\n}\r\n</code>\r\n<br/>\r\n\r\nTabela de Status\r\n\r\n<table><tr><td>**Status**</td><td>**StatusDescription**</td></tr><tr><td>0</td><td>Desconhecido</td></tr><tr><td>1</td><td>Aguardando pagamento</td></tr><tr><td>2</td><td>Cartão solicitado</td></tr><tr><td>3</td><td>Não pago / pagamento recusado</td></tr><tr><td>4</td><td>Pago, aguardando solicitação do cartão</td></tr><tr><td>5</td><td>Cartão ativado</td></tr><tr><td>6</td><td>Cartão bloqueado</td></tr></table>\r\n<br/>\r\n\r\n**Cancelamento de plano de usuário**\r\n\r\nEnviada quando um usuário solicita o cancelamento do plano atual.\r\n\r\nMétodo: POST\r\n\r\nRequisição:\r\n\r\n<table>\r\n    <tr>\r\n        <td>**Campo**</td>\r\n        <td>**Descrição**</td>\r\n        <td>**Exemplo**</td>\r\n    </tr>\r\n    <tr>\r\n         <td>CPF</td>\r\n         <td>Código da cobrança</td>\r\n         <td>36957704572</td>\r\n    </tr>\r\n  </table>\r\n  \r\n<code>\r\n{\r\n     \"cpf\":\"36957704572\"\r\n}\r\n</code>\r\n\r\n**Alteração de status de envio de dinheiro**\r\n\r\nEnviada a cada mudança de status de um pagamento\r\n\r\nMétodo: POST\r\n\r\nRequisição:\r\n\r\n<table>\r\n    <tr>\r\n        <td>**Campo**</td>\r\n        <td>**Descrição**</td>\r\n        <td>**Exemplo**</td>\r\n    </tr>\r\n    <tr>\r\n         <td>transactionId</td>\r\n         <td>Código do pagamento</td>\r\n        <td>1ce41386-a0c1-4af2-bfb5-25b4b471cd3a</td>\r\n    </tr>\r\n  \r\n</table>\r\n\r\nExemplo de Requisição\r\n<code>\r\n{\r\n     \"transactionId\":\"1ce41386-a0c1-4af2-bfb5-25b4b471cd3a\"\r\n}\r\n</code>\r\n\r\nAo receber a notificação consultar o status da cobrança através do método: \r\n/integration/transaction/status passando o \"transactionId\" recebido na notificação.\r\n\r\n\r\n**Alteração de status de boleto**\r\n\r\nEnviada a cada mudança de status de uma cobrança por boleto\r\n\r\nMétodo: POST\r\n\r\nRequisição:\r\n\r\n<table>\r\n    <tr>\r\n        <td>**Campo**</td>\r\n        <td>**Descrição**</td>\r\n        <td>**Exemplo**</td>\r\n    </tr>\r\n    <tr>\r\n         <td>transactionId</td>\r\n         <td>Código da cobrança</td>\r\n        <td>fa9b5b25-ad5f-4d7b-993f-fa55f5eef1dd</td>\r\n    </tr>\r\n  \r\n</table>\r\n\r\nExemplo de Requisição\r\n<code>\r\n{\r\n     \"transactionId\":\"fa9b5b25-ad5f-4d7b-993f-fa55f5eef1dd\"\r\n}\r\n</code>\r\n\r\nAo receber a notificação consultar o status da cobrança através do método: \r\n/integration/checkout/getboletostatus passando o \"transactionId\" recebido na notificação.\r\n\r\n\r\n\r\n**Alteração de status de cartão de crédito**\r\n\r\nEnviada a cada mudança de status de uma cobrança por cartão de crédito\r\n\r\nMétodo: POST\r\n\r\nRequisição:\r\n\r\n<table>\r\n    <tr>\r\n        <td>**Campo**</td>\r\n        <td>**Descrição**</td>\r\n        <td>**Exemplo**</td>\r\n    </tr>\r\n    <tr>\r\n         <td>transactionId</td>\r\n         <td>Código da cobrança</td>\r\n        <td>b46162e3-4e22-4fac-8214-bdab94f5260f</td>\r\n    </tr>\r\n  \r\n</table>\r\n\r\nExemplo de Requisição\r\n<code>\r\n{\r\n     \"transactionId\":\"b46162e3-4e22-4fac-8214-bdab94f5260f\"\r\n}\r\n</code>\r\n\r\nAo receber a notificação consultar o status da cobrança através do método: \r\n/integration/checkout/getcreditcardtransactionstatus passando o \"transactionId\" recebido na notificação.\r\n\r\n\r\n**Alteração de status de transferência bancária**\r\n\r\nEnviada a cada mudança de status de uma cobrança por transferência bancária\r\n\r\nMétodo: POST\r\n\r\nRequisição:\r\n\r\n<table>\r\n    <tr>\r\n        <td>**Campo**</td>\r\n        <td>**Descrição**</td>\r\n        <td>**Exemplo**</td>\r\n    </tr>\r\n    <tr>\r\n         <td>transactionId</td>\r\n         <td>Código da cobrança</td>\r\n        <td>3fd1f606-9df4-45ec-92b7-42d1b94e1ee1</td>\r\n    </tr>\r\n  \r\n</table>\r\n\r\nExemplo de Requisição\r\n<code>\r\n{\r\n     \"transactionId\":\"3fd1f606-9df4-45ec-92b7-42d1b94e1ee1\"\r\n}\r\n</code>\r\n\r\nAo receber a notificação consultar o status da cobrança através do método: \r\n/integration/checkout/getbanktransferstatus passando o \"transactionId\" recebido na notificação.\r\n\r\n\r\n**Alteração de status de saque de subconta**\r\n\r\nEnviada a cada mudança de status de um saque de subconta\r\n\r\nMétodo: POST\r\n\r\nRequisição:\r\n\r\n<table>\r\n    <tr>\r\n        <td>**Campo**</td>\r\n        <td>**Descrição**</td>\r\n        <td>**Exemplo**</td>\r\n    </tr>\r\n    <tr>\r\n         <td>externalReferenceId</td>\r\n         <td>Código do saque</td>\r\n        <td>de16ee30-8fce-426a-863a-c90cbddde4c</td>\r\n    </tr>\r\n  \r\n</table>\r\n\r\nExemplo de Requisição\r\n<code>\r\n{\r\n     \"externalReferenceId\":\"de16ee30-8fce-426a-863a-c90cbddde4c\"\r\n}\r\n</code>\r\n\r\nAo receber a notificação consultar o status da cobrança através do método: \r\n/integration/integrationsubaccount/getwithdrawstatus passando o \"externalReferenceId\" recebido na notificação.\r\n\r\n**Alteração de status de TED**\r\n\r\nEnviada a cada mudança de status de um TED\r\n\r\nMétodo: POST\r\n\r\nRequisição:\r\n\r\n<table>\r\n    <tr>\r\n        <td>**Campo**</td>\r\n        <td>**Descrição**</td>\r\n        <td>**Exemplo**</td>\r\n    </tr>\r\n    <tr>\r\n         <td>referenceId</td>\r\n         <td>Código do saque</td>\r\n        <td>a2d8dd56-2bdf-4920-8f02-7c8075a4ae16</td>\r\n    </tr>\r\n  \r\n</table>\r\n\r\nExemplo de Requisição\r\n<code>\r\n{\r\n     \"referenceId\":\"a2d8dd56-2bdf-4920-8f02-7c8075a4ae16\"\r\n}\r\n</code>\r\n\r\nAo receber a notificação consultar o status da cobrança através do método: \r\n/integration/integrationted/getstatus passando o \"referenceId\" recebido na notificação.\r\n\r\n# Códigos de erro\r\nA API utiliza os códigos de resposta padrão do protocolo HTTP para indicar o status da requisição.\r\n\r\n<table>\r\n    <tr>\r\n        <td>**Código**</td>\r\n        <td>**Nome**</td>\r\n        <td>**Descrição**</td>\r\n    </tr>\r\n    <tr>\r\n         <td>400</td>\r\n         <td>Bad Request</td>\r\n        <td>A requisição não foi feita no formato estabelecido</td>\r\n    </tr>\r\n    <tr>\r\n         <td>404</td>\r\n         <td>Not Found</td>\r\n        <td>Serviço não encontrado</td>\r\n    </tr>\r\n    <tr>\r\n        <td>500</td>\r\n        <td>Internal Server Error</td>\r\n        <td>Erro interno no servidor</td>\r\n    </tr>\r\n    <tr>\r\n        <td>504</td>\r\n        <td>Timeout</td>\r\n        <td>Tempo de requisição excedido</td>\r\n    </tr>\r\n</table>\r\n\r\nPorém cada requisição possui códigos de erros específicos, conforme consta na documentação da requisição em si. Para saber de qual erro se trata, você pode consultar a tabela de código de erros específico da requisição.\r\n\r\nAbaixo um exemplo de retorno de um código de erro.\r\n\r\n<code>\r\n{\r\n    \"ErrorId\": 10051,\r\n    \"ErrorMessage\": \"Código de banco inválido.\",\r\n    \"StackTrace\": null\r\n}\r\n</code>\r\n\r\n\r\n# Changelog\r\n**21/01/2019 - v1.5.0**\r\n- Atualizados métodos de cadastro de subcontas\r\n- Atualização de método de saque de subconta\r\n- Atualização dos métodos que usam notificação\r\n\r\n**21/05/2018 - v1.4.0**\r\n- Criado serviço de cadastro de subcontas\r\n- Criado serviço para integração de cartão de crédito\r\n- Criado serviço para integração de transferência bancária\r\n\r\n**14/05/2018 - v1.3.0**\r\n- Criado serviço para integração de Boletos\r\n\r\n**07/05/2018 - v1.2.0**\r\n- Criado serviço para realização de TEDs via API\r\n\r\n**15/12/2017 - v1.1.0**\r\n- Criado serviço para cadastro no Opa!\r\n- Criado serviço para upload de documentação\r\n- Criado serviço para inserir saldo em sua conta Opa! Pro\r\n- Criado serviço para enviar dinheiro da conta sua conta Opa! Pro para uma conta Opa!\r\n- Criado serviço para cobrar seus clientes Opa!\r\n\r\n**19/05/2017 - v1.0.0**\r\n- Criado serviço para cobrar clientes por QR Code","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"3156896","collectionId":"33ba1d21-6a6e-3f8d-46d7-a99c40cbfb99","publishedId":"7LhjRZb","public":true,"publicUrl":"https://apidocs.opapagamentos.com.br","privateUrl":"https://go.postman.co/documentation/3156896-33ba1d21-6a6e-3f8d-46d7-a99c40cbfb99","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"00A833"},"documentationLayout":"classic-double-column","version":"8.10.1","publishDate":"2017-12-21T13:20:13.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[{"name":"Sandbox.template","id":"8baccf94-ca25-e1b0-cbb6-9e5de7050d29","owner":"3156896","values":[],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/768118b36f06c94b0306958b980558e6915839447e859fe16906e29d683976f0","favicon":"https://opapagamentos.com.br/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"Sandbox.template","value":"3156896-8baccf94-ca25-e1b0-cbb6-9e5de7050d29"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/7LhjRZb"}