{"_id":"5845b77739950c1b002afe4f","isReference":false,"sync_unique":"","updates":[],"user":"57ea79f61780cd170064f273","createdAt":"2016-12-05T18:52:39.069Z","link_external":false,"link_url":"","project":"5845b77639950c1b002afe49","slug":"getting-started","api":{"url":"","auth":"required","params":[],"results":{"codes":[]},"settings":""},"category":"5845b77739950c1b002afe4d","excerpt":"SDK de integração para iOS.","hidden":false,"type":"basic","__v":0,"body":"Essa SDK permite que soluções móveis Android disponibilizem meio de pagamento direto em sua plataforma, via transações realizadas com cartão de crédito e débito.\n\nA documentação a seguir descreve como deve ser feita a integração.\n\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Funcionalidades\"\n}\n[/block]\n- Ativação do Stone Code\n\n- Criação de sessão com o pinpad\n\n- Download / carragamento das tabelas AID e CAPK\n\n- Envio transações\n\n- Cancelamento de transações\n\n- Listagem das transações\n\n- Envio de recibo por email\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Requisitos\"\n}\n[/block]\n- iOS 8.0+\n\n- Xcode 7.1+\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Contato\"\n}\n[/block]\nEm caso de problemas entrar em contato pelo email [suporteios@stone.com.br](mailto:suporteios@stone.com.br).\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Instalação\"\n}\n[/block]\nAntes de começar a usar o StoneSDK é necessario seguir alguns procedimentos.\n\nNo target do projeto acesse a guia General e em Embedded Binaries adicione o StoneSDK.framework (é necessario que o arquivo esteja no diretorio do projeto).\n\nAinda no target do projeto, na guia Info adicione a propriedade Supported external accessory protocols em Custom iOS Target Properties e adicione os protocolos dos dispositivos bluetooth que terão permissão de se comunicar com o aplicativo.\n\nNa guia Build Settings, em Build Options, selecione No para a configuração Enable Bitcode.\n\nÉ necessário que a aplicação habilite TLS v1.2 para a comunicação com nossos servidores. Para isso adicione as linhas de código a seguir no Info.plist (clique no arquivo Info.plist com o botão direito do mouse e selecione Open As > Source Code):\n\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<key>NSAppTransportSecurity</key>\\n    <dict>\\n        <key>NSExceptionDomains</key>\\n        <dict>\\n            <key>stone.com.br</key>\\n            <dict>\\n                <key>NSExceptionMinimumTLSVersion</key>\\n                <string>TLSV1.2</string>\\n                <key>NSExceptionRequiresForwardSecrecy</key>\\n                <false/>\\n                <key>NSIncludesSubdomains</key>\\n                <true/>\\n            </dict>\\n        </dict>\\n    </dict>\",\n      \"language\": \"xml\",\n      \"name\": \"Info.plist\"\n    }\n  ]\n}\n[/block]\nO mesmo deverá ficar como na imagem abaixo:\n\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/c60a300-plist.png\",\n        \"plist.png\",\n        409,\n        274,\n        \"#2d2c34\"\n      ]\n    }\n  ]\n}\n[/block]","githubsync":"","next":{"pages":[],"description":""},"order":0,"title":"Introdução","version":"5845b77639950c1b002afe4c","parentDoc":null,"childrenPages":[]}

Introdução

SDK de integração para iOS.

Essa SDK permite que soluções móveis Android disponibilizem meio de pagamento direto em sua plataforma, via transações realizadas com cartão de crédito e débito. A documentação a seguir descreve como deve ser feita a integração. [block:api-header] { "type": "basic", "title": "Funcionalidades" } [/block] - Ativação do Stone Code - Criação de sessão com o pinpad - Download / carragamento das tabelas AID e CAPK - Envio transações - Cancelamento de transações - Listagem das transações - Envio de recibo por email [block:api-header] { "type": "basic", "title": "Requisitos" } [/block] - iOS 8.0+ - Xcode 7.1+ [block:api-header] { "type": "basic", "title": "Contato" } [/block] Em caso de problemas entrar em contato pelo email [suporteios@stone.com.br](mailto:suporteios@stone.com.br). [block:api-header] { "type": "basic", "title": "Instalação" } [/block] Antes de começar a usar o StoneSDK é necessario seguir alguns procedimentos. No target do projeto acesse a guia General e em Embedded Binaries adicione o StoneSDK.framework (é necessario que o arquivo esteja no diretorio do projeto). Ainda no target do projeto, na guia Info adicione a propriedade Supported external accessory protocols em Custom iOS Target Properties e adicione os protocolos dos dispositivos bluetooth que terão permissão de se comunicar com o aplicativo. Na guia Build Settings, em Build Options, selecione No para a configuração Enable Bitcode. É necessário que a aplicação habilite TLS v1.2 para a comunicação com nossos servidores. Para isso adicione as linhas de código a seguir no Info.plist (clique no arquivo Info.plist com o botão direito do mouse e selecione Open As > Source Code): [block:code] { "codes": [ { "code": "<key>NSAppTransportSecurity</key>\n <dict>\n <key>NSExceptionDomains</key>\n <dict>\n <key>stone.com.br</key>\n <dict>\n <key>NSExceptionMinimumTLSVersion</key>\n <string>TLSV1.2</string>\n <key>NSExceptionRequiresForwardSecrecy</key>\n <false/>\n <key>NSIncludesSubdomains</key>\n <true/>\n </dict>\n </dict>\n </dict>", "language": "xml", "name": "Info.plist" } ] } [/block] O mesmo deverá ficar como na imagem abaixo: [block:image] { "images": [ { "image": [ "https://files.readme.io/c60a300-plist.png", "plist.png", 409, 274, "#2d2c34" ] } ] } [/block]
Essa SDK permite que soluções móveis Android disponibilizem meio de pagamento direto em sua plataforma, via transações realizadas com cartão de crédito e débito. A documentação a seguir descreve como deve ser feita a integração. [block:api-header] { "type": "basic", "title": "Funcionalidades" } [/block] - Ativação do Stone Code - Criação de sessão com o pinpad - Download / carragamento das tabelas AID e CAPK - Envio transações - Cancelamento de transações - Listagem das transações - Envio de recibo por email [block:api-header] { "type": "basic", "title": "Requisitos" } [/block] - iOS 8.0+ - Xcode 7.1+ [block:api-header] { "type": "basic", "title": "Contato" } [/block] Em caso de problemas entrar em contato pelo email [suporteios@stone.com.br](mailto:suporteios@stone.com.br). [block:api-header] { "type": "basic", "title": "Instalação" } [/block] Antes de começar a usar o StoneSDK é necessario seguir alguns procedimentos. No target do projeto acesse a guia General e em Embedded Binaries adicione o StoneSDK.framework (é necessario que o arquivo esteja no diretorio do projeto). Ainda no target do projeto, na guia Info adicione a propriedade Supported external accessory protocols em Custom iOS Target Properties e adicione os protocolos dos dispositivos bluetooth que terão permissão de se comunicar com o aplicativo. Na guia Build Settings, em Build Options, selecione No para a configuração Enable Bitcode. É necessário que a aplicação habilite TLS v1.2 para a comunicação com nossos servidores. Para isso adicione as linhas de código a seguir no Info.plist (clique no arquivo Info.plist com o botão direito do mouse e selecione Open As > Source Code): [block:code] { "codes": [ { "code": "<key>NSAppTransportSecurity</key>\n <dict>\n <key>NSExceptionDomains</key>\n <dict>\n <key>stone.com.br</key>\n <dict>\n <key>NSExceptionMinimumTLSVersion</key>\n <string>TLSV1.2</string>\n <key>NSExceptionRequiresForwardSecrecy</key>\n <false/>\n <key>NSIncludesSubdomains</key>\n <true/>\n </dict>\n </dict>\n </dict>", "language": "xml", "name": "Info.plist" } ] } [/block] O mesmo deverá ficar como na imagem abaixo: [block:image] { "images": [ { "image": [ "https://files.readme.io/c60a300-plist.png", "plist.png", 409, 274, "#2d2c34" ] } ] } [/block]
{"_id":"59f0855e9b843f00308421b4","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","category":"5845b77739950c1b002afe4d","user":"59de082aed35e800383f94b6","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-10-25T12:36:46.338Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":1,"body":"O SDK iOS(Software Development Kit), é um conjunto de ferramentas de aplicações, assim o desenvolvedor não precisa se preocupar em programar a parte do meios de pagamentos, como a captura e processamento dos dados da transação, se preocupando apenas de fazer a aplicação de negócio conforme suas necessidades.","excerpt":"","slug":"objetivo","type":"basic","title":"Objetivo","__v":0,"parentDoc":null,"childrenPages":[]}

Objetivo


O SDK iOS(Software Development Kit), é um conjunto de ferramentas de aplicações, assim o desenvolvedor não precisa se preocupar em programar a parte do meios de pagamentos, como a captura e processamento dos dados da transação, se preocupando apenas de fazer a aplicação de negócio conforme suas necessidades.
O SDK iOS(Software Development Kit), é um conjunto de ferramentas de aplicações, assim o desenvolvedor não precisa se preocupar em programar a parte do meios de pagamentos, como a captura e processamento dos dados da transação, se preocupando apenas de fazer a aplicação de negócio conforme suas necessidades.
{"_id":"59f085839b843f00308421b8","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","category":"5845b77739950c1b002afe4d","user":"59de082aed35e800383f94b6","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-10-25T12:37:23.939Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":2,"body":"A Solução SDK Android é um sistema que permite que o portador do cartão realize transações financeiras utilizando um mobile Android em conjuto com um PinPad mobile, normalmente conectados via Bluetooth.\n\n\nO SDK v2 segue a estrutura da imagem abaixo:\n\nO SDK foi dividida em 4 módulos:\n\n* Providers \n\n* Utils\n\n* Comandos\n\n* Outros\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/dee6727-1ad4d58-estrutura.PNG\",\n        \"1ad4d58-estrutura.PNG\",\n        631,\n        410,\n        \"#f25d92\"\n      ]\n    }\n  ]\n}\n[/block]","excerpt":"","slug":"solução-sdk-ios","type":"basic","title":"Solução SDK iOS","__v":0,"parentDoc":null,"childrenPages":[]}

Solução SDK iOS


A Solução SDK Android é um sistema que permite que o portador do cartão realize transações financeiras utilizando um mobile Android em conjuto com um PinPad mobile, normalmente conectados via Bluetooth. O SDK v2 segue a estrutura da imagem abaixo: O SDK foi dividida em 4 módulos: * Providers * Utils * Comandos * Outros [block:image] { "images": [ { "image": [ "https://files.readme.io/dee6727-1ad4d58-estrutura.PNG", "1ad4d58-estrutura.PNG", 631, 410, "#f25d92" ] } ] } [/block]
A Solução SDK Android é um sistema que permite que o portador do cartão realize transações financeiras utilizando um mobile Android em conjuto com um PinPad mobile, normalmente conectados via Bluetooth. O SDK v2 segue a estrutura da imagem abaixo: O SDK foi dividida em 4 módulos: * Providers * Utils * Comandos * Outros [block:image] { "images": [ { "image": [ "https://files.readme.io/dee6727-1ad4d58-estrutura.PNG", "1ad4d58-estrutura.PNG", 631, 410, "#f25d92" ] } ] } [/block]
{"_id":"59f08c8fb386700010bcd113","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","category":"5845b77739950c1b002afe4d","user":"59de082aed35e800383f94b6","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-10-25T13:07:27.733Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":3,"body":"O protocolo de comunicação utilizado para se conectar a Stone é o HTTPS. Para o ambiente de transações (Autorização/Cancelamento/Diagnóstico), as mensagens são baseadas na versão 2.0 do protocolo EPAS/ISO 20022 CAPE (Card Payment Exchanges).\nPara o ambiente de TMS (Terminal Management) via Https, as mensagens utilizam a versão 2.0 do protocolo EPAS/ISO 20022 TMS","excerpt":"","slug":"comunicação-stoine","type":"basic","title":"Comunicação Stone","__v":0,"parentDoc":null,"childrenPages":[]}

Comunicação Stone


O protocolo de comunicação utilizado para se conectar a Stone é o HTTPS. Para o ambiente de transações (Autorização/Cancelamento/Diagnóstico), as mensagens são baseadas na versão 2.0 do protocolo EPAS/ISO 20022 CAPE (Card Payment Exchanges). Para o ambiente de TMS (Terminal Management) via Https, as mensagens utilizam a versão 2.0 do protocolo EPAS/ISO 20022 TMS
O protocolo de comunicação utilizado para se conectar a Stone é o HTTPS. Para o ambiente de transações (Autorização/Cancelamento/Diagnóstico), as mensagens são baseadas na versão 2.0 do protocolo EPAS/ISO 20022 CAPE (Card Payment Exchanges). Para o ambiente de TMS (Terminal Management) via Https, as mensagens utilizam a versão 2.0 do protocolo EPAS/ISO 20022 TMS
{"_id":"5845ba739f6fbb1b00430861","link_external":false,"order":4,"type":"basic","__v":0,"api":{"params":[],"url":"","results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required"},"body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Criação de sessão com o pinpad\"\n}\n[/block]\nPara realizar qualquer comunicação com o pinpad é necessario que se crie uma sessão. Lembrando que a conexão com o dispositivo bluetooth deve ser feita no menu de Ajustes do iOS.\n\nUma das opções para desativar o lojista no aplicativo é o método deactivateMerchant:, que recebe o lojista a ser desativado (um objeto do tipo STNMerchantModel) como parâmetro.\n\nOutra opção para desativar o lojista no aplicativo é o método deactivateMerchantWithStoneCode:, que recebe o Stone Code por parâmetro.\n\n\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Antes de qualquer comunicação entre o aplicativo e o pinpad, uma sessão deve ser estabelecida.\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[STNPinPadConnectionProvider connectToPinpad:^(BOOL succeeded, NSError *error) {\\n        if (succeeded) // verifica se a requisição ocorreu com sucesso\\n        {\\n            // executa alguma coisa\\n        } else\\n        {\\n            // trata o erro\\n            NSLog(@\\\"%@\\\", error.description);\\n        }\\n    }];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"\",\n  \"body\": \"Recomendamos que esse método seja executado a cada 3 minutos quando o aplicativo estiver em background caso usem o pinpad Gertec MOBI PIN 10. O dispositivo em questão apresentou problemas ao ficar muito tempo sem comunicação.\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"Possivel código de erro\"\n}\n[/block]\n303","createdAt":"2016-12-05T19:05:23.476Z","hidden":false,"githubsync":"","link_url":"","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","next":{"pages":[],"description":""},"slug":"utilização","title":"Conexão - Pinpad Bluetooth","user":"57ea79f61780cd170064f273","category":"5845b77739950c1b002afe4d","excerpt":"","isReference":false,"sync_unique":"","updates":[],"parentDoc":null,"childrenPages":[]}

Conexão - Pinpad Bluetooth


[block:api-header] { "type": "basic", "title": "Criação de sessão com o pinpad" } [/block] Para realizar qualquer comunicação com o pinpad é necessario que se crie uma sessão. Lembrando que a conexão com o dispositivo bluetooth deve ser feita no menu de Ajustes do iOS. Uma das opções para desativar o lojista no aplicativo é o método deactivateMerchant:, que recebe o lojista a ser desativado (um objeto do tipo STNMerchantModel) como parâmetro. Outra opção para desativar o lojista no aplicativo é o método deactivateMerchantWithStoneCode:, que recebe o Stone Code por parâmetro. [block:callout] { "type": "info", "body": "Antes de qualquer comunicação entre o aplicativo e o pinpad, uma sessão deve ser estabelecida." } [/block] [block:code] { "codes": [ { "code": "[STNPinPadConnectionProvider connectToPinpad:^(BOOL succeeded, NSError *error) {\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // executa alguma coisa\n } else\n {\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n }];", "language": "objectivec" } ] } [/block] [block:callout] { "type": "info", "title": "", "body": "Recomendamos que esse método seja executado a cada 3 minutos quando o aplicativo estiver em background caso usem o pinpad Gertec MOBI PIN 10. O dispositivo em questão apresentou problemas ao ficar muito tempo sem comunicação." } [/block] [block:api-header] { "title": "Possivel código de erro" } [/block] 303
[block:api-header] { "type": "basic", "title": "Criação de sessão com o pinpad" } [/block] Para realizar qualquer comunicação com o pinpad é necessario que se crie uma sessão. Lembrando que a conexão com o dispositivo bluetooth deve ser feita no menu de Ajustes do iOS. Uma das opções para desativar o lojista no aplicativo é o método deactivateMerchant:, que recebe o lojista a ser desativado (um objeto do tipo STNMerchantModel) como parâmetro. Outra opção para desativar o lojista no aplicativo é o método deactivateMerchantWithStoneCode:, que recebe o Stone Code por parâmetro. [block:callout] { "type": "info", "body": "Antes de qualquer comunicação entre o aplicativo e o pinpad, uma sessão deve ser estabelecida." } [/block] [block:code] { "codes": [ { "code": "[STNPinPadConnectionProvider connectToPinpad:^(BOOL succeeded, NSError *error) {\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // executa alguma coisa\n } else\n {\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n }];", "language": "objectivec" } ] } [/block] [block:callout] { "type": "info", "title": "", "body": "Recomendamos que esse método seja executado a cada 3 minutos quando o aplicativo estiver em background caso usem o pinpad Gertec MOBI PIN 10. O dispositivo em questão apresentou problemas ao ficar muito tempo sem comunicação." } [/block] [block:api-header] { "title": "Possivel código de erro" } [/block] 303
{"_id":"59f0ab4241a0100026041233","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","category":"5845b77739950c1b002afe4d","user":"59de082aed35e800383f94b6","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-10-25T15:18:26.414Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":5,"body":"Os dados que são trafegados entre o SDK Mobile Android e adquirente: número do cartão, trilhas, senha (sempre trafega criptografado), podem estar protegidos por criptografia.","excerpt":"","slug":"segurança","type":"basic","title":"Segurança","__v":0,"parentDoc":null,"childrenPages":[]}

Segurança


Os dados que são trafegados entre o SDK Mobile Android e adquirente: número do cartão, trilhas, senha (sempre trafega criptografado), podem estar protegidos por criptografia.
Os dados que são trafegados entre o SDK Mobile Android e adquirente: número do cartão, trilhas, senha (sempre trafega criptografado), podem estar protegidos por criptografia.
{"_id":"59f0ab8aba3bc90030f40f00","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","category":"5845b77739950c1b002afe4d","user":"59de082aed35e800383f94b6","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-10-25T15:19:38.830Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":6,"body":"Para começar a integração o cliente deve solicitar para integracoes@stone.com.br o **Stone Code**de **Integration** que serve para transacionar no nosso ambiente de homologação (SANDBOX);\n\nCom o **Stone Code** em mãos é só fazer a ativação da aplicação com o Stone Code começar o desenvolvimento no ambiente de testes;\n\nApós o desenvolvimento no ambiente de homologação, o cliente deve entrar em contato com o Representante Comercial um Stone Codede produção, futuramente teremos certificação para as aplicações que utilizam o SDK Mobile iOS.\n[block:api-header]\n{\n  \"title\": \"Importação das classes do SDK\"\n}\n[/block]\nPara acessar todas as classes do SDK basta importar o StoneSDK.\n\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"#import <StoneSDK/StoneSDK.h>\\n\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"Ativar StoneCode\"\n}\n[/block]\nO provider STNStoneCodeActivationProvider é responsavel por ativar e desativar o lojista e possui os métodos activateStoneCode:withblock:, deactivateMerchant: e deactivateMerchantWithStoneCode.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"O Stone Code deve ser ativado antes de realizar qualquer operação na Stone.\"\n}\n[/block]\nPara ativar o lojista no aplicativo deve ser usado o método activateStoneCode:withblock:, que recebe uma string com o Stone Code do lojista como parâmetro.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"NSString *stoneCode = @\\\"999999999\\\"; // Stone Code do lojista\\n\\n[STNStoneCodeActivationProvider activateStoneCode:stoneCode withBlock:^(BOOL succeeded, NSError *error)\\n{\\n    if (succeeded) // verifica se a requisição ocorreu com sucesso\\n    {\\n        // em caso de sucesso,\\n        // executa alguma coisa\\n    } else\\n    {\\n        // em caso de erro,\\n        // faz alguma tratativa\\n        NSLog(@\\\"%@\\\", error.description);\\n    }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\nUma das opções para desativar o lojista no aplicativo é o método deactivateMerchant:, que recebe o lojista a ser desativado (um objeto do tipo STNMerchantModel) como parâmetro.\n[block:api-header]\n{}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Esse método excluirá o lojista do applicativo junto de todas as transações realizadas pelo mesmo.\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"STNMerchantModel *merchant = [STNMerchantListProvider listMerchants][0]; // Primeiro lojista da lista\\n\\n[STNStoneCodeActivationProvider deactivateMerchant:merchant];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\nOutra opção para desativar o lojista no aplicativo é o método deactivateMerchantWithStoneCode:, que recebe o Stone Code por parâmetro.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"NSString *stoneCode = @\\\"999999999\\\"; // Stone Code do lojista\\n\\n[STNStoneCodeActivationProvider deactivateMerchantWithStoneCode:stoneCode];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis códigos de erro**\n\n101, 202, 209","excerpt":"","slug":"como-começar-a-utilizar","type":"basic","title":"Como começar a utilizar","__v":0,"parentDoc":null,"childrenPages":[]}

Como começar a utilizar


Para começar a integração o cliente deve solicitar para integracoes@stone.com.br o **Stone Code**de **Integration** que serve para transacionar no nosso ambiente de homologação (SANDBOX); Com o **Stone Code** em mãos é só fazer a ativação da aplicação com o Stone Code começar o desenvolvimento no ambiente de testes; Após o desenvolvimento no ambiente de homologação, o cliente deve entrar em contato com o Representante Comercial um Stone Codede produção, futuramente teremos certificação para as aplicações que utilizam o SDK Mobile iOS. [block:api-header] { "title": "Importação das classes do SDK" } [/block] Para acessar todas as classes do SDK basta importar o StoneSDK. [block:code] { "codes": [ { "code": "#import <StoneSDK/StoneSDK.h>\n", "language": "objectivec" } ] } [/block] [block:api-header] { "title": "Ativar StoneCode" } [/block] O provider STNStoneCodeActivationProvider é responsavel por ativar e desativar o lojista e possui os métodos activateStoneCode:withblock:, deactivateMerchant: e deactivateMerchantWithStoneCode. [block:callout] { "type": "info", "body": "O Stone Code deve ser ativado antes de realizar qualquer operação na Stone." } [/block] Para ativar o lojista no aplicativo deve ser usado o método activateStoneCode:withblock:, que recebe uma string com o Stone Code do lojista como parâmetro. [block:code] { "codes": [ { "code": "NSString *stoneCode = @\"999999999\"; // Stone Code do lojista\n\n[STNStoneCodeActivationProvider activateStoneCode:stoneCode withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // faz alguma tratativa\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] Uma das opções para desativar o lojista no aplicativo é o método deactivateMerchant:, que recebe o lojista a ser desativado (um objeto do tipo STNMerchantModel) como parâmetro. [block:api-header] {} [/block] [block:callout] { "type": "info", "body": "Esse método excluirá o lojista do applicativo junto de todas as transações realizadas pelo mesmo." } [/block] [block:code] { "codes": [ { "code": "STNMerchantModel *merchant = [STNMerchantListProvider listMerchants][0]; // Primeiro lojista da lista\n\n[STNStoneCodeActivationProvider deactivateMerchant:merchant];", "language": "objectivec" } ] } [/block] Outra opção para desativar o lojista no aplicativo é o método deactivateMerchantWithStoneCode:, que recebe o Stone Code por parâmetro. [block:code] { "codes": [ { "code": "NSString *stoneCode = @\"999999999\"; // Stone Code do lojista\n\n[STNStoneCodeActivationProvider deactivateMerchantWithStoneCode:stoneCode];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 202, 209
Para começar a integração o cliente deve solicitar para integracoes@stone.com.br o **Stone Code**de **Integration** que serve para transacionar no nosso ambiente de homologação (SANDBOX); Com o **Stone Code** em mãos é só fazer a ativação da aplicação com o Stone Code começar o desenvolvimento no ambiente de testes; Após o desenvolvimento no ambiente de homologação, o cliente deve entrar em contato com o Representante Comercial um Stone Codede produção, futuramente teremos certificação para as aplicações que utilizam o SDK Mobile iOS. [block:api-header] { "title": "Importação das classes do SDK" } [/block] Para acessar todas as classes do SDK basta importar o StoneSDK. [block:code] { "codes": [ { "code": "#import <StoneSDK/StoneSDK.h>\n", "language": "objectivec" } ] } [/block] [block:api-header] { "title": "Ativar StoneCode" } [/block] O provider STNStoneCodeActivationProvider é responsavel por ativar e desativar o lojista e possui os métodos activateStoneCode:withblock:, deactivateMerchant: e deactivateMerchantWithStoneCode. [block:callout] { "type": "info", "body": "O Stone Code deve ser ativado antes de realizar qualquer operação na Stone." } [/block] Para ativar o lojista no aplicativo deve ser usado o método activateStoneCode:withblock:, que recebe uma string com o Stone Code do lojista como parâmetro. [block:code] { "codes": [ { "code": "NSString *stoneCode = @\"999999999\"; // Stone Code do lojista\n\n[STNStoneCodeActivationProvider activateStoneCode:stoneCode withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // faz alguma tratativa\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] Uma das opções para desativar o lojista no aplicativo é o método deactivateMerchant:, que recebe o lojista a ser desativado (um objeto do tipo STNMerchantModel) como parâmetro. [block:api-header] {} [/block] [block:callout] { "type": "info", "body": "Esse método excluirá o lojista do applicativo junto de todas as transações realizadas pelo mesmo." } [/block] [block:code] { "codes": [ { "code": "STNMerchantModel *merchant = [STNMerchantListProvider listMerchants][0]; // Primeiro lojista da lista\n\n[STNStoneCodeActivationProvider deactivateMerchant:merchant];", "language": "objectivec" } ] } [/block] Outra opção para desativar o lojista no aplicativo é o método deactivateMerchantWithStoneCode:, que recebe o Stone Code por parâmetro. [block:code] { "codes": [ { "code": "NSString *stoneCode = @\"999999999\"; // Stone Code do lojista\n\n[STNStoneCodeActivationProvider deactivateMerchantWithStoneCode:stoneCode];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 202, 209
{"_id":"59f0ae8eb344c4001051054d","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","category":"5845b77739950c1b002afe4d","user":"59de082aed35e800383f94b6","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-10-25T15:32:30.297Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":7,"body":"[block:api-header]\n{\n  \"title\": \"Lista de Providers disponíveis.\"\n}\n[/block]\n* STNPinPadConnectionProvider - Estabelece sessão entre o aplicativo e o pinpad\n\n* STNStoneCodeActivationProvider - Ativa o Stone Code do lojista\n\n* STNTableDownloaderProvider - Baixa tabelas AID e CAPK do servidor para o celular\n\n* STNTableLoaderProvider - Carrega as tabelas AID e CAPK para o pinpad\n\n* STNTransactionProvider - Captura o cartão do comprador e envia a transação\n\n* STNTransactionListProvider - Lista transações com opção de listar pelo cartão do comprador\n\n* STNMerchantListProvider - Lista lojistas ativados no aplicativo\n\n* STNCancellationProvider - Cancelamento de transações\n\n* STNMailProvider - Envia email com comprovante da transação ou cancelamento\n\n* STNValidationProvider - Responsavel pelas seguintes validações: se há conexão com a internet, se o Stone Code está ativado, se há conexão com o pinpad e se as tabelas já foram baixadas\n\n* STNCardProvider - Captura os 4 últimos números do cartão\n\n* STNDisplayProvider - Exibe mensagem de até 32 caracteres no visor do pinpad\n[block:api-header]\n{\n  \"title\": \"Lista de Models disponíveis\"\n}\n[/block]\n* STNTransactionModel - Model com propriedades da transação\n\n* STNMerchantModel - Model com propriedades do lojista\n\n* STNPinpadModel - Model com propriedades do pinpad\n\n* STNAddressModel - Model com propriedades de endereço do lojista","excerpt":"","slug":"providers","type":"basic","title":"Providers","__v":0,"parentDoc":null,"childrenPages":[]}

Providers


[block:api-header] { "title": "Lista de Providers disponíveis." } [/block] * STNPinPadConnectionProvider - Estabelece sessão entre o aplicativo e o pinpad * STNStoneCodeActivationProvider - Ativa o Stone Code do lojista * STNTableDownloaderProvider - Baixa tabelas AID e CAPK do servidor para o celular * STNTableLoaderProvider - Carrega as tabelas AID e CAPK para o pinpad * STNTransactionProvider - Captura o cartão do comprador e envia a transação * STNTransactionListProvider - Lista transações com opção de listar pelo cartão do comprador * STNMerchantListProvider - Lista lojistas ativados no aplicativo * STNCancellationProvider - Cancelamento de transações * STNMailProvider - Envia email com comprovante da transação ou cancelamento * STNValidationProvider - Responsavel pelas seguintes validações: se há conexão com a internet, se o Stone Code está ativado, se há conexão com o pinpad e se as tabelas já foram baixadas * STNCardProvider - Captura os 4 últimos números do cartão * STNDisplayProvider - Exibe mensagem de até 32 caracteres no visor do pinpad [block:api-header] { "title": "Lista de Models disponíveis" } [/block] * STNTransactionModel - Model com propriedades da transação * STNMerchantModel - Model com propriedades do lojista * STNPinpadModel - Model com propriedades do pinpad * STNAddressModel - Model com propriedades de endereço do lojista
[block:api-header] { "title": "Lista de Providers disponíveis." } [/block] * STNPinPadConnectionProvider - Estabelece sessão entre o aplicativo e o pinpad * STNStoneCodeActivationProvider - Ativa o Stone Code do lojista * STNTableDownloaderProvider - Baixa tabelas AID e CAPK do servidor para o celular * STNTableLoaderProvider - Carrega as tabelas AID e CAPK para o pinpad * STNTransactionProvider - Captura o cartão do comprador e envia a transação * STNTransactionListProvider - Lista transações com opção de listar pelo cartão do comprador * STNMerchantListProvider - Lista lojistas ativados no aplicativo * STNCancellationProvider - Cancelamento de transações * STNMailProvider - Envia email com comprovante da transação ou cancelamento * STNValidationProvider - Responsavel pelas seguintes validações: se há conexão com a internet, se o Stone Code está ativado, se há conexão com o pinpad e se as tabelas já foram baixadas * STNCardProvider - Captura os 4 últimos números do cartão * STNDisplayProvider - Exibe mensagem de até 32 caracteres no visor do pinpad [block:api-header] { "title": "Lista de Models disponíveis" } [/block] * STNTransactionModel - Model com propriedades da transação * STNMerchantModel - Model com propriedades do lojista * STNPinpadModel - Model com propriedades do pinpad * STNAddressModel - Model com propriedades de endereço do lojista
{"_id":"59f0ab6041a0100026041235","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","category":"5845b77739950c1b002afe4d","user":"59de082aed35e800383f94b6","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-10-25T15:18:56.427Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":8,"body":"| Transação | Modalidades | Formas de Pagamento |\n| ----------------- | --------- | ------------------- |\n| Crédito | À vista | À Vista / Permite transação tarja magnética |\n| Crédito | Parcelado com juros | Permite transação chip EM | \n| Crédito | Parcelado sem juros |  Permite fallback magnetico |\n| - | - |  Solicita senha para transação tarja de acordo com service code do cartão |\n| - | - |  Solicita CVV (Código de Segurança) para transações tarja |\n| Débito / Voucherv  | À vista | Permite transação tarja magnética |\n| - | - |  Permite transação chip EMV |\n| - | - |  Permite fallback magnético |\n| - | - |  Exige solicitação de senha |\n\n\n\n\nA seguir, estão as possíveis modalidades de pagamento com breve descrição:\n\n- Crédito à Vista com captura imediata: Consiste no pagamento do valor total da compra com captura imediata.\n\n- Crédito à Vista com captura posterior: Consiste no pagamento do valor total da compra com captura posterior.\n\n- Crédito Parcelado com captura imediata: Consiste no pagamento do valor parcelado da compra com captura imediata.\n\n- Crédito Parcelado com captura posterior: Consiste no pagamento do valor parcelado da compra com captura posterior.","excerpt":"","slug":"transações-financeiras","type":"basic","title":"Transações Financeiras","__v":0,"parentDoc":null,"childrenPages":[]}

Transações Financeiras


| Transação | Modalidades | Formas de Pagamento | | ----------------- | --------- | ------------------- | | Crédito | À vista | À Vista / Permite transação tarja magnética | | Crédito | Parcelado com juros | Permite transação chip EM | | Crédito | Parcelado sem juros | Permite fallback magnetico | | - | - | Solicita senha para transação tarja de acordo com service code do cartão | | - | - | Solicita CVV (Código de Segurança) para transações tarja | | Débito / Voucherv | À vista | Permite transação tarja magnética | | - | - | Permite transação chip EMV | | - | - | Permite fallback magnético | | - | - | Exige solicitação de senha | A seguir, estão as possíveis modalidades de pagamento com breve descrição: - Crédito à Vista com captura imediata: Consiste no pagamento do valor total da compra com captura imediata. - Crédito à Vista com captura posterior: Consiste no pagamento do valor total da compra com captura posterior. - Crédito Parcelado com captura imediata: Consiste no pagamento do valor parcelado da compra com captura imediata. - Crédito Parcelado com captura posterior: Consiste no pagamento do valor parcelado da compra com captura posterior.
| Transação | Modalidades | Formas de Pagamento | | ----------------- | --------- | ------------------- | | Crédito | À vista | À Vista / Permite transação tarja magnética | | Crédito | Parcelado com juros | Permite transação chip EM | | Crédito | Parcelado sem juros | Permite fallback magnetico | | - | - | Solicita senha para transação tarja de acordo com service code do cartão | | - | - | Solicita CVV (Código de Segurança) para transações tarja | | Débito / Voucherv | À vista | Permite transação tarja magnética | | - | - | Permite transação chip EMV | | - | - | Permite fallback magnético | | - | - | Exige solicitação de senha | A seguir, estão as possíveis modalidades de pagamento com breve descrição: - Crédito à Vista com captura imediata: Consiste no pagamento do valor total da compra com captura imediata. - Crédito à Vista com captura posterior: Consiste no pagamento do valor total da compra com captura posterior. - Crédito Parcelado com captura imediata: Consiste no pagamento do valor parcelado da compra com captura imediata. - Crédito Parcelado com captura posterior: Consiste no pagamento do valor parcelado da compra com captura posterior.
{"_id":"59f0b3c2b344c400105105a9","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","category":"5845b77739950c1b002afe4d","user":"59de082aed35e800383f94b6","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-10-25T15:54:42.696Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":9,"body":"Na Stone temos um ambiente de homologação onde o desenvolvedor terá a oportunidade de testar o funcionamento da aplicação de negócio em conjunto com o SDK, podendo simular transações e avaliar o comportamento da sua aplicação\n[block:api-header]\n{\n  \"title\": \"Ambiente Sandbox\"\n}\n[/block]\nPara usar o ambiente de homologação, adicione a key Stone Homologation como tipo Boolean no Info.plist do projeto. Use YES ou NO para ligar ou desligar.\n[block:api-header]\n{\n  \"title\": \"Exemplo\"\n}\n[/block]\n<key>NSAppTransportSecurity</key>\n\t<dict>\n\t\t<key>NSExceptionDomains</key>\n\t\t<dict>\n\t\t\t<key>stone.com.br</key>\n\t\t\t<dict>\n\t\t\t\t<key>NSExceptionMinimumTLSVersion</key>\n\t\t\t\t<string>TLSV1.2</string>\n\t\t\t\t<key>NSExceptionRequiresForwardSecrecy</key>\n\t\t\t\t<false/>\n\t\t\t\t<key>NSIncludesSubdomains</key>\n\t\t\t\t<true/>\n                                <key>StoneHomologation</key>\n\t\t\t\t<true/>\n\t\t\t</dict>\n\t\t</dict>\n\t</dict>","excerpt":"Sandbox e Produção","slug":"ambiente-stone","type":"basic","title":"Ambiente Stone","__v":0,"parentDoc":null,"childrenPages":[]}

Ambiente Stone

Sandbox e Produção

Na Stone temos um ambiente de homologação onde o desenvolvedor terá a oportunidade de testar o funcionamento da aplicação de negócio em conjunto com o SDK, podendo simular transações e avaliar o comportamento da sua aplicação [block:api-header] { "title": "Ambiente Sandbox" } [/block] Para usar o ambiente de homologação, adicione a key Stone Homologation como tipo Boolean no Info.plist do projeto. Use YES ou NO para ligar ou desligar. [block:api-header] { "title": "Exemplo" } [/block] <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>stone.com.br</key> <dict> <key>NSExceptionMinimumTLSVersion</key> <string>TLSV1.2</string> <key>NSExceptionRequiresForwardSecrecy</key> <false/> <key>NSIncludesSubdomains</key> <true/> <key>StoneHomologation</key> <true/> </dict> </dict> </dict>
Na Stone temos um ambiente de homologação onde o desenvolvedor terá a oportunidade de testar o funcionamento da aplicação de negócio em conjunto com o SDK, podendo simular transações e avaliar o comportamento da sua aplicação [block:api-header] { "title": "Ambiente Sandbox" } [/block] Para usar o ambiente de homologação, adicione a key Stone Homologation como tipo Boolean no Info.plist do projeto. Use YES ou NO para ligar ou desligar. [block:api-header] { "title": "Exemplo" } [/block] <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>stone.com.br</key> <dict> <key>NSExceptionMinimumTLSVersion</key> <string>TLSV1.2</string> <key>NSExceptionRequiresForwardSecrecy</key> <false/> <key>NSIncludesSubdomains</key> <true/> <key>StoneHomologation</key> <true/> </dict> </dict> </dict>
{"_id":"5845bb909f6fbb1b00430862","category":"5845b77739950c1b002afe4d","hidden":false,"slug":"tabelas-aid-e-capk","user":"57ea79f61780cd170064f273","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"code":"{}","name":"","status":400,"language":"json"}]},"settings":"","auth":"required","params":[],"url":""},"excerpt":"","isReference":false,"link_url":"","sync_unique":"","updates":[],"__v":0,"body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Download das tabelas AID e CAPK\"\n}\n[/block]\nO provider STNTableDownloaderProvider possui o método downloadTables que faz o download das tabelas AID e CAPK para o dispositivo iOS.\n\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"As tabelas AID e CAPK são necessarias para fazer transações EMV.\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[STNTableDownloaderProvider downLoadTables:^(BOOL succeeded, NSError *error)\\n{\\n    if (succeeded) // verifica se a requisição ocorreu com sucesso\\n    {\\n            // em caso de sucesso,\\n            // executa alguma coisa\\n    } else\\n    {\\n                // em caso de erro,\\n        // trata o erro\\n        NSLog(@\\\"%@\\\", error.description);\\n    }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis códigos de erro**\n\n101, 201, 601\n\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Carregamento das tabelas AID e CAPK para o pinpad\"\n}\n[/block]\nO provider STNTableLoaderProvider possui o método loadTables que faz o update das tabelas baixadas no dispositivo iOS para o pinpad.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[STNTableLoaderProvider loadTables:^(BOOL succeeded, NSError *error)\\n{\\n    if (succeeded) // verifica se a requisição ocorreu com sucesso\\n    {\\n            // em caso de sucesso,\\n            // executa alguma coisa\\n    } else\\n    {\\n            // em caso de erro,\\n            // trata o erro\\n        NSLog(@\\\"%@\\\", error.description);\\n    }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis código de erro**\n\n303, 304","next":{"pages":[],"description":""},"project":"5845b77639950c1b002afe49","title":"Tabelas AID e CAPK","type":"basic","version":"5845b77639950c1b002afe4c","githubsync":"","link_external":false,"order":10,"createdAt":"2016-12-05T19:10:08.565Z","parentDoc":null,"childrenPages":[]}

Tabelas AID e CAPK


[block:api-header] { "type": "basic", "title": "Download das tabelas AID e CAPK" } [/block] O provider STNTableDownloaderProvider possui o método downloadTables que faz o download das tabelas AID e CAPK para o dispositivo iOS. [block:callout] { "type": "info", "body": "As tabelas AID e CAPK são necessarias para fazer transações EMV." } [/block] [block:code] { "codes": [ { "code": "[STNTableDownloaderProvider downLoadTables:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 201, 601 [block:api-header] { "type": "basic", "title": "Carregamento das tabelas AID e CAPK para o pinpad" } [/block] O provider STNTableLoaderProvider possui o método loadTables que faz o update das tabelas baixadas no dispositivo iOS para o pinpad. [block:code] { "codes": [ { "code": "[STNTableLoaderProvider loadTables:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis código de erro** 303, 304
[block:api-header] { "type": "basic", "title": "Download das tabelas AID e CAPK" } [/block] O provider STNTableDownloaderProvider possui o método downloadTables que faz o download das tabelas AID e CAPK para o dispositivo iOS. [block:callout] { "type": "info", "body": "As tabelas AID e CAPK são necessarias para fazer transações EMV." } [/block] [block:code] { "codes": [ { "code": "[STNTableDownloaderProvider downLoadTables:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 201, 601 [block:api-header] { "type": "basic", "title": "Carregamento das tabelas AID e CAPK para o pinpad" } [/block] O provider STNTableLoaderProvider possui o método loadTables que faz o update das tabelas baixadas no dispositivo iOS para o pinpad. [block:code] { "codes": [ { "code": "[STNTableLoaderProvider loadTables:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis código de erro** 303, 304
{"_id":"5845be5d9f6fbb1b00430865","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"category":"5845b77739950c1b002afe4d","isReference":false,"slug":"envio-de-transações","updates":[],"__v":0,"excerpt":"","link_external":false,"project":"5845b77639950c1b002afe49","type":"basic","user":"57ea79f61780cd170064f273","hidden":false,"next":{"pages":[],"description":""},"order":11,"sync_unique":"","link_url":"","title":"Provedor Transação","version":"5845b77639950c1b002afe4c","body":"As transações são enviadas usando o método sendTransaction:withBlock do provider STNTransactionProvider.\n\nO método sendTransaction:withBlock: deve receber um objeto STNTransactionModel como parâmetro. O objeto STNTransactionModel deve ter as seguintes propriedades definidas:\n\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Nome\",\n    \"h-1\": \"Tipo\",\n    \"h-2\": \"Descrição\",\n    \"h-3\": \"Obrigatório\",\n    \"0-0\": \"amount\",\n    \"0-1\": \"NSNumber\",\n    \"0-2\": \"É o valor da transação e deve ser passado no formato de centavos. Por exemplo: caso queira enviar uma transação no valor de R$ 56,45, deve ser passado um NSNumber contendo o valor de 5645. Uma transação no valor de R$ 0,05 deve ser passada como 5.\",\n    \"0-3\": \"Sim\",\n    \"1-0\": \"type(*)\",\n    \"1-1\": \"STNTransactionTypeSimplified\",\n    \"1-2\": \"Essa propriedade deve ser definida com o tipo da transação (débito ou crédito). Para isso podem ser usados os enums STNTransactionTypeSimplifiedCredit para crédito ou STNTransactionTypeSimplifiedDebit para débito.\",\n    \"2-0\": \"instalmentAmount(**)\",\n    \"1-3\": \"Sim\",\n    \"2-1\": \"STNTransactionInstalmentAmount\",\n    \"2-2\": \"Propriedade que define o número de parcelas da transação.\",\n    \"2-3\": \"Sim\",\n    \"3-0\": \"instalmentType(***)\",\n    \"3-1\": \"STNInstalmentType\",\n    \"3-2\": \"Define o tipo de parcelamento que será efetuado\",\n    \"3-3\": \"Sim\",\n    \"4-0\": \"initiatorTransactionKey\",\n    \"4-1\": \"NSString\",\n    \"5-1\": \"NSString\",\n    \"4-2\": \"Deve conter uma string contendo um valor único para identificação da transação. Caso não seja definido, um identificador único será gerado automaticamente.\",\n    \"4-3\": \"Não\",\n    \"5-0\": \"shortName\",\n    \"5-2\": \"Define um nome customizado que será exibido na fatura do cliente. O máximo de caracteres recomendado para que esse texto seja exibido corretamente em estratos e faturas é 11. Caso não seja definido, será exibido o nome cadastrado para o Stone Code em uso.\",\n    \"5-3\": \"Não\",\n    \"6-0\": \"merchant\",\n    \"6-1\": \"NSMerchantModel\",\n    \"6-2\": \"Essa propriedade deve ser definida quando o aplicativo possuir mais de 1 Stone Code ativado. A mesma pode ser usada para definir o lojista (Stone Code) que está passando a transação, caso tenha mais de 1. O valor default será sempre o primeiro Stone Code que foi ativado no aplicativo.\",\n    \"6-3\": \"Não\"\n  },\n  \"cols\": 4,\n  \"rows\": 7\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"type(*)\",\n  \"body\": \"Para isso podem ser usados os enums:\\n\\n * STNTransactionTypeSimplifiedCredit para crédito\\n\\n * STNTransactionTypeSimplifiedDebit para débito.\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"instalmentAmount (**)\",\n  \"body\": \"Um dos seguintes enums devem ser utilizados :\\n\\n* STNTransactionInstalmentAmountOne - para 1x (à vista)\\n\\n* STNTransactionInstalmentAmountTwo - para 2x\\n\\n* STNTransactionInstalmentAmountThree - para 3x\\n\\n* STNTransactionInstalmentAmountFour - para 4x\\n\\n* STNTransactionInstalmentAmountFive - para 5x\\n\\n* STNTransactionInstalmentAmountSix - para 6x\\n\\n* STNTransactionInstalmentAmountSeven - para 7x\\n\\n* STNTransactionInstalmentAmountEight - para 8x\\n\\n* STNTransactionInstalmentAmountNine - para 9x\\n\\n* STNTransactionInstalmentAmountTen - para 10x\\n\\n* STNTransactionInstalmentAmountEleven - para 11x\\n\\n* STNTransactionInstalmentAmountTwelve - para 12x\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"instalmentType(***)\",\n  \"body\": \"Um dos seguintes enums devem ser usados:\\n\\n* STNInstalmentTypeNone - nenhum parcelamento, deve ser usado para transações à vista\\n\\n* STNInstalmentTypeMerchant - parcelamento com o adquirente (sem juros)\\n\\n* STNInstalmentTypeIssuer - parcelamento com o emissor (juros do emissor do cartão)\"\n}\n[/block]\nExemplo\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"STNTransactionModel *transaction = [[STNTransactionModel alloc] init];\\n\\ntransaction.amount = [NSNumber numberWithInt:1000]; // valor correspondente a R$ 10,00\\ntransaction.type = STNTransactionTypeSimplifiedDebit; // transação no débito\\ntransaction.instalmentAmount = STNTransactionInstalmentAmountOne; // número de parcelas: 1\\ntransaction.instalmentType = STNInstalmentTypeNone; // tipo de parcelamento: nenhum\\ntransaction.shortName = @\\\"Minha Loja\\\"; // nome customizado na fatura\\ntransaction.initiatorTransactionKey = @\\\"9999999999999\\\"; // ITK customizado\\n\\n[STNTransactionProvider sendTransaction:transaction withBlock:^(BOOL succeeded, NSError *error) {\\n        if (succeeded) // verifica se a requisição ocorreu com sucesso\\n        {\\n                // em caso de sucesso,\\n                // executa alguma coisa\\n        } else\\n        {\\n            // em caso de erro,\\n            // trata o erro\\n            NSLog(@\\\"%@\\\", error.description);\\n        }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Mensagens de notificação\"\n}\n[/block]\nDurante a execução de uma transação o pinpad pode envar mensagens de notificação. Essas mensagens são exibidas na tela do pinpad e também podem ser acessadas dentro da aplicação usando o NSNotificationCenter. Basta adicionar um observer antes do envio da transação disparando um método que usará a notificação recebida. A notificação vem como uma string. Abaixo um exemplo:\n\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"- (void)sendTransaction\\n{\\n    // adiciona o observer que executará o método 'handleNotification:'\\n        // o SDK provê o define 'PINPAD_MESSAGE' que possui o nome que a notificação deverá ter\\n    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:PINPAD_MESSAGE object:nil];\\n\\n    STNTransactionModel *transaction = [[STNTransactionModel alloc] init];\\n\\n    transaction.amount = [NSNumber numberWithInt:1000];\\n    transaction.type = STNTransactionTypeSimplifiedCredit;\\n    transaction.instalmentAmount = STNTransactionInstalmentAmountOne;\\n    transaction.instalmentType = STNInstalmentTypeNone;\\n\\n    [STNTransactionProvider sendTransaction:transaction withBlock:^(BOOL succeeded, NSError *error) {\\n\\n              if (succeeded) // verifica se a requisição ocorreu com sucesso\\n              {\\n                    // em caso de sucesso,\\n                    // executa alguma coisa\\n            } else\\n            {\\n                // em caso de erro,\\n                // trata o erro\\n                NSLog(@\\\"%@\\\", error.description);\\n            }\\n        // remove o observer\\n        [[NSNotificationCenter defaultCenter] removeObserver:self name:PINPAD_MESSAGE object:nil];\\n    }];\\n}\\n\\n- (void)handleNotification:(NSNotification *) notification\\n{\\n    // converte a notificação para string\\n    NSString *notificationString = [notification object];\\n    // imprime a string recebida\\n    NSLog(@\\\"Mensagem do pinpad: %@\\\", notificationString);\\n}\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis códigos de erro**\n\n105, 201, 203, 204, 205, 206, 207, 211, 214, 303, 601","createdAt":"2016-12-05T19:22:05.402Z","githubsync":"","parentDoc":null,"childrenPages":[]}

Provedor Transação


As transações são enviadas usando o método sendTransaction:withBlock do provider STNTransactionProvider. O método sendTransaction:withBlock: deve receber um objeto STNTransactionModel como parâmetro. O objeto STNTransactionModel deve ter as seguintes propriedades definidas: [block:parameters] { "data": { "h-0": "Nome", "h-1": "Tipo", "h-2": "Descrição", "h-3": "Obrigatório", "0-0": "amount", "0-1": "NSNumber", "0-2": "É o valor da transação e deve ser passado no formato de centavos. Por exemplo: caso queira enviar uma transação no valor de R$ 56,45, deve ser passado um NSNumber contendo o valor de 5645. Uma transação no valor de R$ 0,05 deve ser passada como 5.", "0-3": "Sim", "1-0": "type(*)", "1-1": "STNTransactionTypeSimplified", "1-2": "Essa propriedade deve ser definida com o tipo da transação (débito ou crédito). Para isso podem ser usados os enums STNTransactionTypeSimplifiedCredit para crédito ou STNTransactionTypeSimplifiedDebit para débito.", "2-0": "instalmentAmount(**)", "1-3": "Sim", "2-1": "STNTransactionInstalmentAmount", "2-2": "Propriedade que define o número de parcelas da transação.", "2-3": "Sim", "3-0": "instalmentType(***)", "3-1": "STNInstalmentType", "3-2": "Define o tipo de parcelamento que será efetuado", "3-3": "Sim", "4-0": "initiatorTransactionKey", "4-1": "NSString", "5-1": "NSString", "4-2": "Deve conter uma string contendo um valor único para identificação da transação. Caso não seja definido, um identificador único será gerado automaticamente.", "4-3": "Não", "5-0": "shortName", "5-2": "Define um nome customizado que será exibido na fatura do cliente. O máximo de caracteres recomendado para que esse texto seja exibido corretamente em estratos e faturas é 11. Caso não seja definido, será exibido o nome cadastrado para o Stone Code em uso.", "5-3": "Não", "6-0": "merchant", "6-1": "NSMerchantModel", "6-2": "Essa propriedade deve ser definida quando o aplicativo possuir mais de 1 Stone Code ativado. A mesma pode ser usada para definir o lojista (Stone Code) que está passando a transação, caso tenha mais de 1. O valor default será sempre o primeiro Stone Code que foi ativado no aplicativo.", "6-3": "Não" }, "cols": 4, "rows": 7 } [/block] [block:callout] { "type": "info", "title": "type(*)", "body": "Para isso podem ser usados os enums:\n\n * STNTransactionTypeSimplifiedCredit para crédito\n\n * STNTransactionTypeSimplifiedDebit para débito." } [/block] [block:callout] { "type": "info", "title": "instalmentAmount (**)", "body": "Um dos seguintes enums devem ser utilizados :\n\n* STNTransactionInstalmentAmountOne - para 1x (à vista)\n\n* STNTransactionInstalmentAmountTwo - para 2x\n\n* STNTransactionInstalmentAmountThree - para 3x\n\n* STNTransactionInstalmentAmountFour - para 4x\n\n* STNTransactionInstalmentAmountFive - para 5x\n\n* STNTransactionInstalmentAmountSix - para 6x\n\n* STNTransactionInstalmentAmountSeven - para 7x\n\n* STNTransactionInstalmentAmountEight - para 8x\n\n* STNTransactionInstalmentAmountNine - para 9x\n\n* STNTransactionInstalmentAmountTen - para 10x\n\n* STNTransactionInstalmentAmountEleven - para 11x\n\n* STNTransactionInstalmentAmountTwelve - para 12x" } [/block] [block:callout] { "type": "info", "title": "instalmentType(***)", "body": "Um dos seguintes enums devem ser usados:\n\n* STNInstalmentTypeNone - nenhum parcelamento, deve ser usado para transações à vista\n\n* STNInstalmentTypeMerchant - parcelamento com o adquirente (sem juros)\n\n* STNInstalmentTypeIssuer - parcelamento com o emissor (juros do emissor do cartão)" } [/block] Exemplo [block:code] { "codes": [ { "code": "STNTransactionModel *transaction = [[STNTransactionModel alloc] init];\n\ntransaction.amount = [NSNumber numberWithInt:1000]; // valor correspondente a R$ 10,00\ntransaction.type = STNTransactionTypeSimplifiedDebit; // transação no débito\ntransaction.instalmentAmount = STNTransactionInstalmentAmountOne; // número de parcelas: 1\ntransaction.instalmentType = STNInstalmentTypeNone; // tipo de parcelamento: nenhum\ntransaction.shortName = @\"Minha Loja\"; // nome customizado na fatura\ntransaction.initiatorTransactionKey = @\"9999999999999\"; // ITK customizado\n\n[STNTransactionProvider sendTransaction:transaction withBlock:^(BOOL succeeded, NSError *error) {\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] [block:api-header] { "type": "basic", "title": "Mensagens de notificação" } [/block] Durante a execução de uma transação o pinpad pode envar mensagens de notificação. Essas mensagens são exibidas na tela do pinpad e também podem ser acessadas dentro da aplicação usando o NSNotificationCenter. Basta adicionar um observer antes do envio da transação disparando um método que usará a notificação recebida. A notificação vem como uma string. Abaixo um exemplo: [block:code] { "codes": [ { "code": "- (void)sendTransaction\n{\n // adiciona o observer que executará o método 'handleNotification:'\n // o SDK provê o define 'PINPAD_MESSAGE' que possui o nome que a notificação deverá ter\n [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:PINPAD_MESSAGE object:nil];\n\n STNTransactionModel *transaction = [[STNTransactionModel alloc] init];\n\n transaction.amount = [NSNumber numberWithInt:1000];\n transaction.type = STNTransactionTypeSimplifiedCredit;\n transaction.instalmentAmount = STNTransactionInstalmentAmountOne;\n transaction.instalmentType = STNInstalmentTypeNone;\n\n [STNTransactionProvider sendTransaction:transaction withBlock:^(BOOL succeeded, NSError *error) {\n\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n // remove o observer\n [[NSNotificationCenter defaultCenter] removeObserver:self name:PINPAD_MESSAGE object:nil];\n }];\n}\n\n- (void)handleNotification:(NSNotification *) notification\n{\n // converte a notificação para string\n NSString *notificationString = [notification object];\n // imprime a string recebida\n NSLog(@\"Mensagem do pinpad: %@\", notificationString);\n}", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 105, 201, 203, 204, 205, 206, 207, 211, 214, 303, 601
As transações são enviadas usando o método sendTransaction:withBlock do provider STNTransactionProvider. O método sendTransaction:withBlock: deve receber um objeto STNTransactionModel como parâmetro. O objeto STNTransactionModel deve ter as seguintes propriedades definidas: [block:parameters] { "data": { "h-0": "Nome", "h-1": "Tipo", "h-2": "Descrição", "h-3": "Obrigatório", "0-0": "amount", "0-1": "NSNumber", "0-2": "É o valor da transação e deve ser passado no formato de centavos. Por exemplo: caso queira enviar uma transação no valor de R$ 56,45, deve ser passado um NSNumber contendo o valor de 5645. Uma transação no valor de R$ 0,05 deve ser passada como 5.", "0-3": "Sim", "1-0": "type(*)", "1-1": "STNTransactionTypeSimplified", "1-2": "Essa propriedade deve ser definida com o tipo da transação (débito ou crédito). Para isso podem ser usados os enums STNTransactionTypeSimplifiedCredit para crédito ou STNTransactionTypeSimplifiedDebit para débito.", "2-0": "instalmentAmount(**)", "1-3": "Sim", "2-1": "STNTransactionInstalmentAmount", "2-2": "Propriedade que define o número de parcelas da transação.", "2-3": "Sim", "3-0": "instalmentType(***)", "3-1": "STNInstalmentType", "3-2": "Define o tipo de parcelamento que será efetuado", "3-3": "Sim", "4-0": "initiatorTransactionKey", "4-1": "NSString", "5-1": "NSString", "4-2": "Deve conter uma string contendo um valor único para identificação da transação. Caso não seja definido, um identificador único será gerado automaticamente.", "4-3": "Não", "5-0": "shortName", "5-2": "Define um nome customizado que será exibido na fatura do cliente. O máximo de caracteres recomendado para que esse texto seja exibido corretamente em estratos e faturas é 11. Caso não seja definido, será exibido o nome cadastrado para o Stone Code em uso.", "5-3": "Não", "6-0": "merchant", "6-1": "NSMerchantModel", "6-2": "Essa propriedade deve ser definida quando o aplicativo possuir mais de 1 Stone Code ativado. A mesma pode ser usada para definir o lojista (Stone Code) que está passando a transação, caso tenha mais de 1. O valor default será sempre o primeiro Stone Code que foi ativado no aplicativo.", "6-3": "Não" }, "cols": 4, "rows": 7 } [/block] [block:callout] { "type": "info", "title": "type(*)", "body": "Para isso podem ser usados os enums:\n\n * STNTransactionTypeSimplifiedCredit para crédito\n\n * STNTransactionTypeSimplifiedDebit para débito." } [/block] [block:callout] { "type": "info", "title": "instalmentAmount (**)", "body": "Um dos seguintes enums devem ser utilizados :\n\n* STNTransactionInstalmentAmountOne - para 1x (à vista)\n\n* STNTransactionInstalmentAmountTwo - para 2x\n\n* STNTransactionInstalmentAmountThree - para 3x\n\n* STNTransactionInstalmentAmountFour - para 4x\n\n* STNTransactionInstalmentAmountFive - para 5x\n\n* STNTransactionInstalmentAmountSix - para 6x\n\n* STNTransactionInstalmentAmountSeven - para 7x\n\n* STNTransactionInstalmentAmountEight - para 8x\n\n* STNTransactionInstalmentAmountNine - para 9x\n\n* STNTransactionInstalmentAmountTen - para 10x\n\n* STNTransactionInstalmentAmountEleven - para 11x\n\n* STNTransactionInstalmentAmountTwelve - para 12x" } [/block] [block:callout] { "type": "info", "title": "instalmentType(***)", "body": "Um dos seguintes enums devem ser usados:\n\n* STNInstalmentTypeNone - nenhum parcelamento, deve ser usado para transações à vista\n\n* STNInstalmentTypeMerchant - parcelamento com o adquirente (sem juros)\n\n* STNInstalmentTypeIssuer - parcelamento com o emissor (juros do emissor do cartão)" } [/block] Exemplo [block:code] { "codes": [ { "code": "STNTransactionModel *transaction = [[STNTransactionModel alloc] init];\n\ntransaction.amount = [NSNumber numberWithInt:1000]; // valor correspondente a R$ 10,00\ntransaction.type = STNTransactionTypeSimplifiedDebit; // transação no débito\ntransaction.instalmentAmount = STNTransactionInstalmentAmountOne; // número de parcelas: 1\ntransaction.instalmentType = STNInstalmentTypeNone; // tipo de parcelamento: nenhum\ntransaction.shortName = @\"Minha Loja\"; // nome customizado na fatura\ntransaction.initiatorTransactionKey = @\"9999999999999\"; // ITK customizado\n\n[STNTransactionProvider sendTransaction:transaction withBlock:^(BOOL succeeded, NSError *error) {\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] [block:api-header] { "type": "basic", "title": "Mensagens de notificação" } [/block] Durante a execução de uma transação o pinpad pode envar mensagens de notificação. Essas mensagens são exibidas na tela do pinpad e também podem ser acessadas dentro da aplicação usando o NSNotificationCenter. Basta adicionar um observer antes do envio da transação disparando um método que usará a notificação recebida. A notificação vem como uma string. Abaixo um exemplo: [block:code] { "codes": [ { "code": "- (void)sendTransaction\n{\n // adiciona o observer que executará o método 'handleNotification:'\n // o SDK provê o define 'PINPAD_MESSAGE' que possui o nome que a notificação deverá ter\n [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNotification:) name:PINPAD_MESSAGE object:nil];\n\n STNTransactionModel *transaction = [[STNTransactionModel alloc] init];\n\n transaction.amount = [NSNumber numberWithInt:1000];\n transaction.type = STNTransactionTypeSimplifiedCredit;\n transaction.instalmentAmount = STNTransactionInstalmentAmountOne;\n transaction.instalmentType = STNInstalmentTypeNone;\n\n [STNTransactionProvider sendTransaction:transaction withBlock:^(BOOL succeeded, NSError *error) {\n\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n // remove o observer\n [[NSNotificationCenter defaultCenter] removeObserver:self name:PINPAD_MESSAGE object:nil];\n }];\n}\n\n- (void)handleNotification:(NSNotification *) notification\n{\n // converte a notificação para string\n NSString *notificationString = [notification object];\n // imprime a string recebida\n NSLog(@\"Mensagem do pinpad: %@\", notificationString);\n}", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 105, 201, 203, 204, 205, 206, 207, 211, 214, 303, 601
{"_id":"5845bfffe055290f00c029f8","excerpt":"","hidden":false,"isReference":false,"order":12,"title":"Provedor Listagem de Transações","api":{"auth":"required","params":[],"url":"","results":{"codes":[{"language":"json","code":"{}","name":"","status":200},{"code":"{}","name":"","status":400,"language":"json"}]},"settings":""},"link_url":"","next":{"pages":[],"description":""},"sync_unique":"","updates":[],"version":"5845b77639950c1b002afe4c","__v":0,"category":"5845b77739950c1b002afe4d","project":"5845b77639950c1b002afe49","githubsync":"","link_external":false,"slug":"listagem-de-transações","type":"basic","user":"57ea79f61780cd170064f273","body":"O provider STNTransactionListProvider possui os métodos, listTransactions: e listTransactionsByPan:.\n\nO método listTransactions: retorna um NSArray com as transações (STNTransactionModel) passadas no aplicativo. A ultima transação passada será sempre a primeira no array.\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"// Array de transações\\nNSArray *transactionsList = [STNTransactionListProvider listTransactions];\\n\\nfor (STNTransactionModel *transaction in transactionsList)\\n{\\n    NSLog(@\\\"Valor da transação em centavos: %@\\\", transaction.amount);\\n    NSLog(@\\\"Status da transação: %@\\\", transaction.statusString);\\n    NSLog(@\\\"Tipo da transação: %@\\\", transaction.typeString);\\n}\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\nPara obter as transações filtrando por um cartão especifico, o método listTransactionsByPan: deve ser usado. Esse método solicitará a inserção de um cartão com chip. E retornará um array de transações dentro de um bloco.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"STNTransactionListProvider *transactionListProvider = [[STNTransactionListProvider alloc] init];\\n\\n// Array de transações\\nNSArray *transactions = [STNTransactionListProvider listTransactionsByPan:^(BOOL succeeded, NSArray *transactionsList, NSError *error)\\n{\\n    if (succeeded) // verifica se a requisição ocorreu com sucesso\\n    {\\n                for (STNTransactionModel *transaction in transactionsList)\\n                    {\\n                            NSLog(@\\\"Valor da transação em centavos: %@\\\", transaction.amount);\\n                            NSLog(@\\\"Status da transação: %@\\\", transaction.statusString);\\n                            NSLog(@\\\"Tipo da transação: %@\\\", transaction.typeString);\\n                    }\\n    } else\\n    {\\n        // trata o erro\\n        NSLog(@\\\"%@\\\", error.description);\\n    }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis códigos de erro**\n\n101, 304","createdAt":"2016-12-05T19:29:03.283Z","parentDoc":null,"childrenPages":[]}

Provedor Listagem de Transações


O provider STNTransactionListProvider possui os métodos, listTransactions: e listTransactionsByPan:. O método listTransactions: retorna um NSArray com as transações (STNTransactionModel) passadas no aplicativo. A ultima transação passada será sempre a primeira no array. [block:code] { "codes": [ { "code": "// Array de transações\nNSArray *transactionsList = [STNTransactionListProvider listTransactions];\n\nfor (STNTransactionModel *transaction in transactionsList)\n{\n NSLog(@\"Valor da transação em centavos: %@\", transaction.amount);\n NSLog(@\"Status da transação: %@\", transaction.statusString);\n NSLog(@\"Tipo da transação: %@\", transaction.typeString);\n}", "language": "objectivec" } ] } [/block] Para obter as transações filtrando por um cartão especifico, o método listTransactionsByPan: deve ser usado. Esse método solicitará a inserção de um cartão com chip. E retornará um array de transações dentro de um bloco. [block:code] { "codes": [ { "code": "STNTransactionListProvider *transactionListProvider = [[STNTransactionListProvider alloc] init];\n\n// Array de transações\nNSArray *transactions = [STNTransactionListProvider listTransactionsByPan:^(BOOL succeeded, NSArray *transactionsList, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n for (STNTransactionModel *transaction in transactionsList)\n {\n NSLog(@\"Valor da transação em centavos: %@\", transaction.amount);\n NSLog(@\"Status da transação: %@\", transaction.statusString);\n NSLog(@\"Tipo da transação: %@\", transaction.typeString);\n }\n } else\n {\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 304
O provider STNTransactionListProvider possui os métodos, listTransactions: e listTransactionsByPan:. O método listTransactions: retorna um NSArray com as transações (STNTransactionModel) passadas no aplicativo. A ultima transação passada será sempre a primeira no array. [block:code] { "codes": [ { "code": "// Array de transações\nNSArray *transactionsList = [STNTransactionListProvider listTransactions];\n\nfor (STNTransactionModel *transaction in transactionsList)\n{\n NSLog(@\"Valor da transação em centavos: %@\", transaction.amount);\n NSLog(@\"Status da transação: %@\", transaction.statusString);\n NSLog(@\"Tipo da transação: %@\", transaction.typeString);\n}", "language": "objectivec" } ] } [/block] Para obter as transações filtrando por um cartão especifico, o método listTransactionsByPan: deve ser usado. Esse método solicitará a inserção de um cartão com chip. E retornará um array de transações dentro de um bloco. [block:code] { "codes": [ { "code": "STNTransactionListProvider *transactionListProvider = [[STNTransactionListProvider alloc] init];\n\n// Array de transações\nNSArray *transactions = [STNTransactionListProvider listTransactionsByPan:^(BOOL succeeded, NSArray *transactionsList, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n for (STNTransactionModel *transaction in transactionsList)\n {\n NSLog(@\"Valor da transação em centavos: %@\", transaction.amount);\n NSLog(@\"Status da transação: %@\", transaction.statusString);\n NSLog(@\"Tipo da transação: %@\", transaction.typeString);\n }\n } else\n {\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 304
{"_id":"5845c075e055290f00c029f9","body":"O provider STNMerchantListProvider possui o método listMerchants: que retorna um NSArray contendo os lojistas (STNMerchantModel) ativados no aplicativo.\n\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"// Array de transações\\nNSArray *merchantsList = [STNMerchantListProvider listMerchants];\\n\\nfor (STNMerchantModel *merchant in merchantsList)\\n{\\n    NSLog(@\\\"Nome do lojista: %@\\\", merchantsList.merchantName);\\n    NSLog(@\\\"CPF ou CNPJ do lojista: %@\\\", merchantsList.documentNumber);\\n    NSLog(@\\\"SAK: %@\\\", merchantsList.saleAffiliationKey);\\n}\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis códigos de erro**\n\n101, 304","githubsync":"","hidden":false,"link_external":false,"order":13,"project":"5845b77639950c1b002afe49","slug":"listagem-de-lojistas","updates":[],"excerpt":"","link_url":"","next":{"pages":[],"description":""},"title":"Provedor Listagem de Lojistas","type":"basic","createdAt":"2016-12-05T19:31:01.022Z","user":"57ea79f61780cd170064f273","version":"5845b77639950c1b002afe4c","isReference":false,"api":{"settings":"","auth":"required","params":[],"url":"","results":{"codes":[{"name":"","status":200,"language":"json","code":"{}"},{"language":"json","code":"{}","name":"","status":400}]}},"category":"5845b77739950c1b002afe4d","sync_unique":"","__v":0,"parentDoc":null,"childrenPages":[]}

Provedor Listagem de Lojistas


O provider STNMerchantListProvider possui o método listMerchants: que retorna um NSArray contendo os lojistas (STNMerchantModel) ativados no aplicativo. [block:code] { "codes": [ { "code": "// Array de transações\nNSArray *merchantsList = [STNMerchantListProvider listMerchants];\n\nfor (STNMerchantModel *merchant in merchantsList)\n{\n NSLog(@\"Nome do lojista: %@\", merchantsList.merchantName);\n NSLog(@\"CPF ou CNPJ do lojista: %@\", merchantsList.documentNumber);\n NSLog(@\"SAK: %@\", merchantsList.saleAffiliationKey);\n}", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 304
O provider STNMerchantListProvider possui o método listMerchants: que retorna um NSArray contendo os lojistas (STNMerchantModel) ativados no aplicativo. [block:code] { "codes": [ { "code": "// Array de transações\nNSArray *merchantsList = [STNMerchantListProvider listMerchants];\n\nfor (STNMerchantModel *merchant in merchantsList)\n{\n NSLog(@\"Nome do lojista: %@\", merchantsList.merchantName);\n NSLog(@\"CPF ou CNPJ do lojista: %@\", merchantsList.documentNumber);\n NSLog(@\"SAK: %@\", merchantsList.saleAffiliationKey);\n}", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 304
{"_id":"5845c0839f6fbb1b0043086a","__v":0,"createdAt":"2016-12-05T19:31:15.075Z","hidden":false,"link_external":false,"project":"5845b77639950c1b002afe49","sync_unique":"","version":"5845b77639950c1b002afe4c","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"excerpt":"","link_url":"","title":"Provedor Cancelamento de Transações","body":"O responsavel pelo cancelamento das transações é método cancelTransaction do provider STNCancellationProvider, que recebe, como parâmetro, o objeto de transação STNTransactionModel.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"// preenche array com lista de transações\\nNSArray *transactionsList = [STNTransactionListProvider listTransactions];\\n\\n// instacia o objeto de transação com a última transação realizada\\nSTNTransactionModel *transaction = transactionsList[0];\\n\\n// executa o cancelamento\\n[STNCancellationProvider cancelTransaction:transaction withBlock:^(BOOL succeeded, NSError *error)\\n{\\n        if (succeeded) // verifica se a requisição ocorreu com sucesso\\n        {\\n                // em caso de sucesso,\\n                // executa alguma coisa\\n        } else\\n        {\\n                // em caso de erro,\\n                // trata o erro\\n                NSLog(@\\\"%@\\\", error.description);\\n        }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis códigos de erro**\n\n101, 210, 601","category":"5845b77739950c1b002afe4d","githubsync":"","isReference":false,"next":{"pages":[],"description":""},"order":14,"slug":"cancelamento-de-transações","type":"basic","updates":[],"user":"57ea79f61780cd170064f273","parentDoc":null,"childrenPages":[]}

Provedor Cancelamento de Transações


O responsavel pelo cancelamento das transações é método cancelTransaction do provider STNCancellationProvider, que recebe, como parâmetro, o objeto de transação STNTransactionModel. [block:code] { "codes": [ { "code": "// preenche array com lista de transações\nNSArray *transactionsList = [STNTransactionListProvider listTransactions];\n\n// instacia o objeto de transação com a última transação realizada\nSTNTransactionModel *transaction = transactionsList[0];\n\n// executa o cancelamento\n[STNCancellationProvider cancelTransaction:transaction withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 210, 601
O responsavel pelo cancelamento das transações é método cancelTransaction do provider STNCancellationProvider, que recebe, como parâmetro, o objeto de transação STNTransactionModel. [block:code] { "codes": [ { "code": "// preenche array com lista de transações\nNSArray *transactionsList = [STNTransactionListProvider listTransactions];\n\n// instacia o objeto de transação com a última transação realizada\nSTNTransactionModel *transaction = transactionsList[0];\n\n// executa o cancelamento\n[STNCancellationProvider cancelTransaction:transaction withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 210, 601
{"_id":"5845c0fd9f6fbb1b0043086d","type":"basic","updates":[],"__v":0,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"category":"5845b77739950c1b002afe4d","createdAt":"2016-12-05T19:33:17.245Z","githubsync":"","link_external":false,"version":"5845b77639950c1b002afe4c","body":"Para enviar comprovantes de transações por email basta usar o método sendReceiptViaEmail: do provider STNMailProvider.\n\nO método sendReceiptViaEmail: recebe os parâmetros:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Parâmetro\",\n    \"h-1\": \"Tipo\",\n    \"h-2\": \"Descrição\",\n    \"0-0\": \"mailTemplate(*)\",\n    \"0-1\": \"STNMailTemplate\",\n    \"1-0\": \"transaction\",\n    \"1-1\": \"STNTransactionModel\",\n    \"2-0\": \"destination\",\n    \"2-1\": \"NSString\",\n    \"3-0\": \"displayCompanyInformation(**)\",\n    \"3-1\": \"BOOL\",\n    \"0-2\": \"O primeiro parâmetro que deve ser informado é um enum que representa o template de email,\",\n    \"1-2\": \"O parâmetro transactionInfo deve receber um objeto do provider STNTransactionModel que terá as informações da transação.\",\n    \"2-2\": \"Destination deve conter uma string com o email do destinatario.\",\n    \"3-2\": \"Esse parâmetro recebe um booleano que dirá se os dados do lojista (como endereço e CPF/CNPJ) serão exibidos no comprovante ou não.\"\n  },\n  \"cols\": 3,\n  \"rows\": 4\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"mailTemplate(*)\",\n  \"body\": \"Esse parâmetro pode receber os seguintes enums:\\n\\n* STNMailTemplateTransaction para comprovantes de transação\\n\\n* STNMailTemplateVoidTransaction para comprovantes de cancelamento.\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"displayCompanyInformation(**)\",\n  \"body\": \"Alguns lojistas são pessoas físicas e querem que suas informações não sejam exibidas.\"\n}\n[/block]\nExemplo\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"NSArray *transactions = [STNTransactionListProvider listTransactions];\\n\\n// destinatario\\nNSString *destination = @\\\"fulano@destino.com.br\\\";\\n\\n// envia email com comprovante da última transação realizada\\n[STNMailProvider sendReceiptViaEmail:STNMailTemplateTransaction transaction:transactions[0] toDestination:destination displayCompanyInformation:YES withBlock:^(BOOL succeeded, NSError *error)\\n{\\n        if (succeeded) // verifica se a requisição ocorreu com sucesso\\n        {\\n                // em caso de sucesso,\\n                // executa alguma coisa\\n        } else\\n        {\\n                // em caso de erro,\\n                // trata o erro\\n                NSLog(@\\\"%@\\\", error.description);\\n        }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis códigos de erro**\n\n103, 601","excerpt":"","next":{"pages":[],"description":""},"title":"Provedor Envio de Comprovante por e-mail","user":"57ea79f61780cd170064f273","hidden":false,"isReference":false,"link_url":"","project":"5845b77639950c1b002afe49","order":15,"slug":"envio-de-comprovante-por-email","sync_unique":"","parentDoc":null,"childrenPages":[]}

Provedor Envio de Comprovante por e-mail


Para enviar comprovantes de transações por email basta usar o método sendReceiptViaEmail: do provider STNMailProvider. O método sendReceiptViaEmail: recebe os parâmetros: [block:parameters] { "data": { "h-0": "Parâmetro", "h-1": "Tipo", "h-2": "Descrição", "0-0": "mailTemplate(*)", "0-1": "STNMailTemplate", "1-0": "transaction", "1-1": "STNTransactionModel", "2-0": "destination", "2-1": "NSString", "3-0": "displayCompanyInformation(**)", "3-1": "BOOL", "0-2": "O primeiro parâmetro que deve ser informado é um enum que representa o template de email,", "1-2": "O parâmetro transactionInfo deve receber um objeto do provider STNTransactionModel que terá as informações da transação.", "2-2": "Destination deve conter uma string com o email do destinatario.", "3-2": "Esse parâmetro recebe um booleano que dirá se os dados do lojista (como endereço e CPF/CNPJ) serão exibidos no comprovante ou não." }, "cols": 3, "rows": 4 } [/block] [block:callout] { "type": "info", "title": "mailTemplate(*)", "body": "Esse parâmetro pode receber os seguintes enums:\n\n* STNMailTemplateTransaction para comprovantes de transação\n\n* STNMailTemplateVoidTransaction para comprovantes de cancelamento." } [/block] [block:callout] { "type": "info", "title": "displayCompanyInformation(**)", "body": "Alguns lojistas são pessoas físicas e querem que suas informações não sejam exibidas." } [/block] Exemplo [block:code] { "codes": [ { "code": "NSArray *transactions = [STNTransactionListProvider listTransactions];\n\n// destinatario\nNSString *destination = @\"fulano@destino.com.br\";\n\n// envia email com comprovante da última transação realizada\n[STNMailProvider sendReceiptViaEmail:STNMailTemplateTransaction transaction:transactions[0] toDestination:destination displayCompanyInformation:YES withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 103, 601
Para enviar comprovantes de transações por email basta usar o método sendReceiptViaEmail: do provider STNMailProvider. O método sendReceiptViaEmail: recebe os parâmetros: [block:parameters] { "data": { "h-0": "Parâmetro", "h-1": "Tipo", "h-2": "Descrição", "0-0": "mailTemplate(*)", "0-1": "STNMailTemplate", "1-0": "transaction", "1-1": "STNTransactionModel", "2-0": "destination", "2-1": "NSString", "3-0": "displayCompanyInformation(**)", "3-1": "BOOL", "0-2": "O primeiro parâmetro que deve ser informado é um enum que representa o template de email,", "1-2": "O parâmetro transactionInfo deve receber um objeto do provider STNTransactionModel que terá as informações da transação.", "2-2": "Destination deve conter uma string com o email do destinatario.", "3-2": "Esse parâmetro recebe um booleano que dirá se os dados do lojista (como endereço e CPF/CNPJ) serão exibidos no comprovante ou não." }, "cols": 3, "rows": 4 } [/block] [block:callout] { "type": "info", "title": "mailTemplate(*)", "body": "Esse parâmetro pode receber os seguintes enums:\n\n* STNMailTemplateTransaction para comprovantes de transação\n\n* STNMailTemplateVoidTransaction para comprovantes de cancelamento." } [/block] [block:callout] { "type": "info", "title": "displayCompanyInformation(**)", "body": "Alguns lojistas são pessoas físicas e querem que suas informações não sejam exibidas." } [/block] Exemplo [block:code] { "codes": [ { "code": "NSArray *transactions = [STNTransactionListProvider listTransactions];\n\n// destinatario\nNSString *destination = @\"fulano@destino.com.br\";\n\n// envia email com comprovante da última transação realizada\n[STNMailProvider sendReceiptViaEmail:STNMailTemplateTransaction transaction:transactions[0] toDestination:destination displayCompanyInformation:YES withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 103, 601
{"_id":"5845c24563c11b250037966e","category":"5845b77739950c1b002afe4d","link_url":"","title":"Provedor Validações","version":"5845b77639950c1b002afe4c","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"createdAt":"2016-12-05T19:38:45.909Z","isReference":false,"order":16,"type":"basic","excerpt":"","link_external":false,"slug":"validações","updates":[],"user":"57ea79f61780cd170064f273","next":{"pages":[],"description":""},"project":"5845b77639950c1b002afe49","sync_unique":"","__v":0,"body":"O provider STNValidationProvider possui 4 métodos de validação:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Método\",\n    \"h-1\": \"Descrição\",\n    \"0-0\": \"validateActivation\",\n    \"1-0\": \"validatePinpadConnection\",\n    \"2-0\": \"validateTablesDownloaded(*)\",\n    \"3-0\": \"validateConnectionToNetWork\",\n    \"0-1\": \"Verifica se o Stone Code já foi ativado e retorna YES caso positivo.\",\n    \"1-1\": \"Valida se o pinpad está pareado com o dispositivo iOS e retorna YES caso positivo.\",\n    \"2-1\": \"Checa se as tabelas AID e CAPK já foram baixadas para o dispositivo iOS e retorna YES caso positivo.\",\n    \"3-1\": \"Verifica se a conexão com a internet está funcionando e retorna YES caso positivo.\"\n  },\n  \"cols\": 2,\n  \"rows\": 4\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Lembrando que para a comunicação ocorrer ainda é necessario estabelecer uma sessão.\",\n  \"title\": \"validateTablesDownloaded(*)\"\n}\n[/block]\nExemplo\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"if ([STNValidationProvider validateActivation] == YES)\\n{\\n    NSLog(@\\\"Stone Code está ativado!\\\");\\n}\\n\\nif ([STNValidationProvider validatePinpadConnection] == YES)\\n{\\n    NSLog(@\\\"O pinpad está pareado com o dispositivo iOS!\\\");\\n}\\n\\nif ([STNValidationProvider validateTablesDownloaded] == YES)\\n{\\n    NSLog(@\\\"As tabelas já foram baixadas para o dispositivo iOS!\\\");\\n}\\n\\nif ([STNValidationProvider validateConnectionToNetWork] == YES)\\n{\\n    NSLog(@\\\"A conexão com a internet está ativa!\\\");\\n}\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"É importante que essas validações sejam executadas e tratadas antes de realizar as operações.\"\n}\n[/block]","githubsync":"","hidden":false,"parentDoc":null,"childrenPages":[]}

Provedor Validações


O provider STNValidationProvider possui 4 métodos de validação: [block:parameters] { "data": { "h-0": "Método", "h-1": "Descrição", "0-0": "validateActivation", "1-0": "validatePinpadConnection", "2-0": "validateTablesDownloaded(*)", "3-0": "validateConnectionToNetWork", "0-1": "Verifica se o Stone Code já foi ativado e retorna YES caso positivo.", "1-1": "Valida se o pinpad está pareado com o dispositivo iOS e retorna YES caso positivo.", "2-1": "Checa se as tabelas AID e CAPK já foram baixadas para o dispositivo iOS e retorna YES caso positivo.", "3-1": "Verifica se a conexão com a internet está funcionando e retorna YES caso positivo." }, "cols": 2, "rows": 4 } [/block] [block:callout] { "type": "info", "body": "Lembrando que para a comunicação ocorrer ainda é necessario estabelecer uma sessão.", "title": "validateTablesDownloaded(*)" } [/block] Exemplo [block:code] { "codes": [ { "code": "if ([STNValidationProvider validateActivation] == YES)\n{\n NSLog(@\"Stone Code está ativado!\");\n}\n\nif ([STNValidationProvider validatePinpadConnection] == YES)\n{\n NSLog(@\"O pinpad está pareado com o dispositivo iOS!\");\n}\n\nif ([STNValidationProvider validateTablesDownloaded] == YES)\n{\n NSLog(@\"As tabelas já foram baixadas para o dispositivo iOS!\");\n}\n\nif ([STNValidationProvider validateConnectionToNetWork] == YES)\n{\n NSLog(@\"A conexão com a internet está ativa!\");\n}", "language": "objectivec" } ] } [/block] [block:callout] { "type": "info", "body": "É importante que essas validações sejam executadas e tratadas antes de realizar as operações." } [/block]
O provider STNValidationProvider possui 4 métodos de validação: [block:parameters] { "data": { "h-0": "Método", "h-1": "Descrição", "0-0": "validateActivation", "1-0": "validatePinpadConnection", "2-0": "validateTablesDownloaded(*)", "3-0": "validateConnectionToNetWork", "0-1": "Verifica se o Stone Code já foi ativado e retorna YES caso positivo.", "1-1": "Valida se o pinpad está pareado com o dispositivo iOS e retorna YES caso positivo.", "2-1": "Checa se as tabelas AID e CAPK já foram baixadas para o dispositivo iOS e retorna YES caso positivo.", "3-1": "Verifica se a conexão com a internet está funcionando e retorna YES caso positivo." }, "cols": 2, "rows": 4 } [/block] [block:callout] { "type": "info", "body": "Lembrando que para a comunicação ocorrer ainda é necessario estabelecer uma sessão.", "title": "validateTablesDownloaded(*)" } [/block] Exemplo [block:code] { "codes": [ { "code": "if ([STNValidationProvider validateActivation] == YES)\n{\n NSLog(@\"Stone Code está ativado!\");\n}\n\nif ([STNValidationProvider validatePinpadConnection] == YES)\n{\n NSLog(@\"O pinpad está pareado com o dispositivo iOS!\");\n}\n\nif ([STNValidationProvider validateTablesDownloaded] == YES)\n{\n NSLog(@\"As tabelas já foram baixadas para o dispositivo iOS!\");\n}\n\nif ([STNValidationProvider validateConnectionToNetWork] == YES)\n{\n NSLog(@\"A conexão com a internet está ativa!\");\n}", "language": "objectivec" } ] } [/block] [block:callout] { "type": "info", "body": "É importante que essas validações sejam executadas e tratadas antes de realizar as operações." } [/block]
{"_id":"5845c31f9faf12230009b065","__v":0,"next":{"pages":[],"description":""},"sync_unique":"","version":"5845b77639950c1b002afe4c","user":"57ea79f61780cd170064f273","api":{"results":{"codes":[{"code":"{}","name":"","status":200,"language":"json"},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"link_url":"","project":"5845b77639950c1b002afe49","type":"basic","updates":[],"link_external":false,"order":17,"body":"Para capturar o PAN (4 últimos dígitos do cartão) deve ser usado o método getCardPan: do provider SNTCardProvider.\n\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"NSString *pan = [STNCardProvider getCardPan:^(BOOL succeeded, NSString *pan, NSError *error)\\n{\\n        if (succeeded) // verifica se a requisição ocorreu com sucesso\\n        {\\n                NSLog(@\\\"**** **** **** %@\\\", pan);\\n        } else\\n        {\\n                // em caso de erro,\\n                // trata o erro\\n                NSLog(@\\\"%@\\\", error.description);\\n        }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Possíveis códigos de erro\",\n  \"body\": \"101, 304\"\n}\n[/block]","category":"5845b77739950c1b002afe4d","excerpt":"","githubsync":"","hidden":false,"slug":"captura-de-pan","title":"Provedor Captura de PAN","createdAt":"2016-12-05T19:42:23.994Z","parentDoc":null,"childrenPages":[]}

Provedor Captura de PAN


Para capturar o PAN (4 últimos dígitos do cartão) deve ser usado o método getCardPan: do provider SNTCardProvider. [block:code] { "codes": [ { "code": "NSString *pan = [STNCardProvider getCardPan:^(BOOL succeeded, NSString *pan, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n NSLog(@\"**** **** **** %@\", pan);\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] [block:callout] { "type": "warning", "title": "Possíveis códigos de erro", "body": "101, 304" } [/block]
Para capturar o PAN (4 últimos dígitos do cartão) deve ser usado o método getCardPan: do provider SNTCardProvider. [block:code] { "codes": [ { "code": "NSString *pan = [STNCardProvider getCardPan:^(BOOL succeeded, NSString *pan, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n NSLog(@\"**** **** **** %@\", pan);\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] [block:callout] { "type": "warning", "title": "Possíveis códigos de erro", "body": "101, 304" } [/block]
{"_id":"5845c3b3e055290f00c029fd","order":18,"type":"basic","user":"57ea79f61780cd170064f273","updates":[],"githubsync":"","sync_unique":"","hidden":false,"version":"5845b77639950c1b002afe4c","createdAt":"2016-12-05T19:44:51.956Z","link_external":false,"api":{"results":{"codes":[{"code":"{}","name":"","status":200,"language":"json"},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"body":"Para exibir uma mensagem no display do pinpad pode ser usado o método displayMessage:withBlock: do provider STNDisplayProvider que recebe uma mensagem no formato de string. A string enviada deve conter no máximo 16 caracteres.\n\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[STNDisplayProvider displayMessage:@\\\"MINHA MENSAGEM\\\" withBlock:^(BOOL succeeded, NSError *error)\\n{\\n        if (succeeded) // verifica se a requisição ocorreu com sucesso\\n        {\\n                // em caso de sucesso,\\n                // executa alguma coisa\\n        } else\\n        {\\n                // em caso de erro,\\n                // trata o erro\\n                NSLog(@\\\"%@\\\", error.description);\\n        }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"101, 105, 304\",\n  \"title\": \"Possíveis códigos de erro\"\n}\n[/block]","excerpt":"","project":"5845b77639950c1b002afe49","category":"5845b77739950c1b002afe4d","next":{"pages":[],"description":""},"link_url":"","isReference":false,"slug":"exibição-no-display-do-pinpad","title":"Provedor Exibição no display do Pinpad","__v":0,"parentDoc":null,"childrenPages":[]}

Provedor Exibição no display do Pinpad


Para exibir uma mensagem no display do pinpad pode ser usado o método displayMessage:withBlock: do provider STNDisplayProvider que recebe uma mensagem no formato de string. A string enviada deve conter no máximo 16 caracteres. [block:code] { "codes": [ { "code": "[STNDisplayProvider displayMessage:@\"MINHA MENSAGEM\" withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] [block:callout] { "type": "warning", "body": "101, 105, 304", "title": "Possíveis códigos de erro" } [/block]
Para exibir uma mensagem no display do pinpad pode ser usado o método displayMessage:withBlock: do provider STNDisplayProvider que recebe uma mensagem no formato de string. A string enviada deve conter no máximo 16 caracteres. [block:code] { "codes": [ { "code": "[STNDisplayProvider displayMessage:@\"MINHA MENSAGEM\" withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] [block:callout] { "type": "warning", "body": "101, 105, 304", "title": "Possíveis códigos de erro" } [/block]
{"_id":"59f0bd239a2d71001ad92012","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","category":"5845b77739950c1b002afe4d","user":"59de082aed35e800383f94b6","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-10-25T16:34:43.412Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":19,"body":"Quando nos referimos a “Response”, não estamos falando exatamente de response de algum Request para os servidores da Stone. Vamos dividir o assunto entre responses da biblioteca compartilhada e responses do SDK.\n\nObservando a seguinte imagem:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/be6dbd1-835b0d7-comunicacao.PNG\",\n        \"835b0d7-comunicacao.PNG\",\n        535,\n        319,\n        \"#d2cfcd\"\n      ]\n    }\n  ]\n}\n[/block]\nOs Status de comandos são referentes as respostas que são dadas pela biblioteca compartilhada, mais abaixo você verá uma lista com as possíveis respostas e o que cada uma significa.\n\nOs Status do provider são referentes aos erros que podem ter durante a execução de determinados providers.","excerpt":"","slug":"um-pouco-sobre-response","type":"basic","title":"Um pouco sobre Response","__v":0,"parentDoc":null,"childrenPages":[]}

Um pouco sobre Response


Quando nos referimos a “Response”, não estamos falando exatamente de response de algum Request para os servidores da Stone. Vamos dividir o assunto entre responses da biblioteca compartilhada e responses do SDK. Observando a seguinte imagem: [block:image] { "images": [ { "image": [ "https://files.readme.io/be6dbd1-835b0d7-comunicacao.PNG", "835b0d7-comunicacao.PNG", 535, 319, "#d2cfcd" ] } ] } [/block] Os Status de comandos são referentes as respostas que são dadas pela biblioteca compartilhada, mais abaixo você verá uma lista com as possíveis respostas e o que cada uma significa. Os Status do provider são referentes aos erros que podem ter durante a execução de determinados providers.
Quando nos referimos a “Response”, não estamos falando exatamente de response de algum Request para os servidores da Stone. Vamos dividir o assunto entre responses da biblioteca compartilhada e responses do SDK. Observando a seguinte imagem: [block:image] { "images": [ { "image": [ "https://files.readme.io/be6dbd1-835b0d7-comunicacao.PNG", "835b0d7-comunicacao.PNG", 535, 319, "#d2cfcd" ] } ] } [/block] Os Status de comandos são referentes as respostas que são dadas pela biblioteca compartilhada, mais abaixo você verá uma lista com as possíveis respostas e o que cada uma significa. Os Status do provider são referentes aos erros que podem ter durante a execução de determinados providers.
{"_id":"5845c5699faf12230009b06c","excerpt":"","githubsync":"","order":20,"__v":0,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"hidden":false,"isReference":false,"link_url":"","next":{"pages":[],"description":""},"slug":"models","body":"Alguns providers retornam models que podem ser usados pelo usuario do SDK.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Transação\"\n}\n[/block]\nO model STNTransactionModel disponibiliza, em suas propriedades, informações de uma transação.\n\n**Lista de propriedades**\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Nome\",\n    \"h-1\": \"Tipo\",\n    \"h-2\": \"Descrição\",\n    \"0-0\": \"amount\",\n    \"0-1\": \"NSNumber\",\n    \"0-2\": \"Valor da transação no formato de centavos (ex: 10,00 vai ser 1000. Basta multiplicar por 0.01 para obter o valor real.)\",\n    \"1-0\": \"instalmentAmount\",\n    \"1-1\": \"STNTransactionInstalmentAmount\",\n    \"1-2\": \"Número de parcelas da transação\",\n    \"2-0\": \"instalmentType\",\n    \"3-0\": \"aid\",\n    \"4-0\": \"arqc\",\n    \"5-0\": \"type\",\n    \"6-0\": \"typeString\",\n    \"7-0\": \"status\",\n    \"8-0\": \"statusString\",\n    \"9-0\": \"date\",\n    \"10-0\": \"dateString\",\n    \"11-0\": \"receiptTransactionKey\",\n    \"12-0\": \"reference\",\n    \"13-0\": \"pan\",\n    \"14-0\": \"cardBrand\",\n    \"15-0\": \"cardHolderName\",\n    \"16-0\": \"authorizationCode\",\n    \"17-0\": \"initiatorTransactionKey\",\n    \"18-0\": \"shortName\",\n    \"19-0\": \"merchant\",\n    \"20-0\": \"pinpad\",\n    \"2-1\": \"STNInstalmentType\",\n    \"3-1\": \"NSString\",\n    \"4-1\": \"NSString\",\n    \"5-1\": \"STNTransactionTypeSimplified\",\n    \"6-1\": \"NSString\",\n    \"7-1\": \"STNTransactionStatus\",\n    \"8-1\": \"NSString\",\n    \"9-1\": \"NSDate\",\n    \"10-1\": \"NSString\",\n    \"11-1\": \"NSString\",\n    \"12-1\": \"NSString\",\n    \"13-1\": \"NSString\",\n    \"14-1\": \"NSString\",\n    \"15-1\": \"NSString\",\n    \"16-1\": \"NSString\",\n    \"17-1\": \"NSString\",\n    \"18-1\": \"NSString\",\n    \"19-1\": \"STNMerchantModel\",\n    \"20-1\": \"STNPinpadModel\",\n    \"2-2\": \"Tipo de parcelamento da transação\",\n    \"3-2\": \"Código AID da transação\",\n    \"4-2\": \"Código ARQC da transação\",\n    \"5-2\": \"Débito ou crédito\",\n    \"6-2\": \"String que representa a propriedade type\",\n    \"7-2\": \"Aprovada, cancelada, negada...\",\n    \"8-2\": \"String que representa a propriedade status\",\n    \"9-2\": \"Data da transação\",\n    \"10-2\": \"string que representa a propriedade date\",\n    \"11-2\": \"ID da transação\",\n    \"12-2\": \"Referencia da transação\",\n    \"13-2\": \"4 últimos número do cartão\",\n    \"14-2\": \"Bandeira do cartão\",\n    \"15-2\": \"Nome do portador do cartão\",\n    \"16-2\": \"Stone ID\",\n    \"17-2\": \"Identificação da transação\",\n    \"18-2\": \"Nome customizado exibido na fatura (se não for definido será nil)\",\n    \"19-2\": \"Lojista que passou a transação\",\n    \"20-2\": \"Pinpad que passou a transação\"\n  },\n  \"cols\": 3,\n  \"rows\": 21\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Lojista\"\n}\n[/block]\nO model STNMerchantModel disponibiliza, em suas propriedades, informações do lojista/usuario do aplicativo.\n\n**Lista de propriedades**\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Nome\",\n    \"h-1\": \"TIpo\",\n    \"h-2\": \"Descrição\",\n    \"0-0\": \"saleAffiliationKey\",\n    \"1-0\": \"documentNumber\",\n    \"2-0\": \"merchantName\",\n    \"3-0\": \"stonecode\",\n    \"4-0\": \"address\",\n    \"5-0\": \"transactions\",\n    \"0-1\": \"NSString\",\n    \"1-1\": \"NSString\",\n    \"2-1\": \"NSString\",\n    \"3-1\": \"NSString\",\n    \"4-1\": \"STNAddressModel\",\n    \"5-1\": \"NSOrderedSet\",\n    \"0-2\": \"Afiliation key\",\n    \"1-2\": \"CPF/CNPJ\",\n    \"2-2\": \"Nome do lojista\",\n    \"3-2\": \"Stone Code\",\n    \"4-2\": \"Endereço do lojista\",\n    \"5-2\": \"Transações do lojista\"\n  },\n  \"cols\": 3,\n  \"rows\": 6\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Pinpad\"\n}\n[/block]\nO model STNPinpadModel disponibiliza, em suas propriedades, informações do pinpad.\n\n**Lista de propriedades**\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Nome\",\n    \"h-1\": \"Tipo\",\n    \"h-2\": \"Descrição\",\n    \"0-0\": \"name\",\n    \"1-0\": \"model\",\n    \"2-0\": \"serialNumber\",\n    \"3-0\": \"transaction\",\n    \"0-1\": \"NSString\",\n    \"1-1\": \"NSString\",\n    \"2-1\": \"NSString\",\n    \"3-1\": \"STNTransactionModel\",\n    \"0-2\": \"Nome\",\n    \"1-2\": \"Modelo\",\n    \"2-2\": \"Número de serie\",\n    \"3-2\": \"Transação passada com o pinpad\"\n  },\n  \"cols\": 3,\n  \"rows\": 4\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Endereço\"\n}\n[/block]\nO model STNAddressModel disponibiliza, em suas propriedades, informações de endereço.\n\n**Lista de propriedades**\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Nome\",\n    \"h-1\": \"Tipo\",\n    \"h-2\": \"Descrição\",\n    \"0-0\": \"city\",\n    \"1-0\": \"district\",\n    \"2-0\": \"neighborhood\",\n    \"3-0\": \"street\",\n    \"4-0\": \"doorNumber\",\n    \"5-0\": \"complement\",\n    \"6-0\": \"zipCode\",\n    \"7-0\": \"merchant\",\n    \"0-1\": \"NSString\",\n    \"1-1\": \"NSString\",\n    \"2-1\": \"NSString\",\n    \"3-1\": \"NSString\",\n    \"4-1\": \"NSString\",\n    \"5-1\": \"NSString\",\n    \"6-1\": \"NSString\",\n    \"7-1\": \"STNMerchantModel\",\n    \"0-2\": \"cidade\",\n    \"1-2\": \"estado\",\n    \"2-2\": \"bairro\",\n    \"3-2\": \"rua\",\n    \"4-2\": \"número\",\n    \"5-2\": \"complemento\",\n    \"6-2\": \"CEP\",\n    \"7-2\": \"lojista que possui esse endereço\"\n  },\n  \"cols\": 3,\n  \"rows\": 8\n}\n[/block]","category":"5845b77739950c1b002afe4d","createdAt":"2016-12-05T19:52:09.641Z","project":"5845b77639950c1b002afe49","title":"Models","user":"57ea79f61780cd170064f273","version":"5845b77639950c1b002afe4c","link_external":false,"sync_unique":"","type":"basic","updates":[],"parentDoc":null,"childrenPages":[]}

Models


Alguns providers retornam models que podem ser usados pelo usuario do SDK. [block:api-header] { "type": "basic", "title": "Transação" } [/block] O model STNTransactionModel disponibiliza, em suas propriedades, informações de uma transação. **Lista de propriedades** [block:parameters] { "data": { "h-0": "Nome", "h-1": "Tipo", "h-2": "Descrição", "0-0": "amount", "0-1": "NSNumber", "0-2": "Valor da transação no formato de centavos (ex: 10,00 vai ser 1000. Basta multiplicar por 0.01 para obter o valor real.)", "1-0": "instalmentAmount", "1-1": "STNTransactionInstalmentAmount", "1-2": "Número de parcelas da transação", "2-0": "instalmentType", "3-0": "aid", "4-0": "arqc", "5-0": "type", "6-0": "typeString", "7-0": "status", "8-0": "statusString", "9-0": "date", "10-0": "dateString", "11-0": "receiptTransactionKey", "12-0": "reference", "13-0": "pan", "14-0": "cardBrand", "15-0": "cardHolderName", "16-0": "authorizationCode", "17-0": "initiatorTransactionKey", "18-0": "shortName", "19-0": "merchant", "20-0": "pinpad", "2-1": "STNInstalmentType", "3-1": "NSString", "4-1": "NSString", "5-1": "STNTransactionTypeSimplified", "6-1": "NSString", "7-1": "STNTransactionStatus", "8-1": "NSString", "9-1": "NSDate", "10-1": "NSString", "11-1": "NSString", "12-1": "NSString", "13-1": "NSString", "14-1": "NSString", "15-1": "NSString", "16-1": "NSString", "17-1": "NSString", "18-1": "NSString", "19-1": "STNMerchantModel", "20-1": "STNPinpadModel", "2-2": "Tipo de parcelamento da transação", "3-2": "Código AID da transação", "4-2": "Código ARQC da transação", "5-2": "Débito ou crédito", "6-2": "String que representa a propriedade type", "7-2": "Aprovada, cancelada, negada...", "8-2": "String que representa a propriedade status", "9-2": "Data da transação", "10-2": "string que representa a propriedade date", "11-2": "ID da transação", "12-2": "Referencia da transação", "13-2": "4 últimos número do cartão", "14-2": "Bandeira do cartão", "15-2": "Nome do portador do cartão", "16-2": "Stone ID", "17-2": "Identificação da transação", "18-2": "Nome customizado exibido na fatura (se não for definido será nil)", "19-2": "Lojista que passou a transação", "20-2": "Pinpad que passou a transação" }, "cols": 3, "rows": 21 } [/block] [block:api-header] { "type": "basic", "title": "Lojista" } [/block] O model STNMerchantModel disponibiliza, em suas propriedades, informações do lojista/usuario do aplicativo. **Lista de propriedades** [block:parameters] { "data": { "h-0": "Nome", "h-1": "TIpo", "h-2": "Descrição", "0-0": "saleAffiliationKey", "1-0": "documentNumber", "2-0": "merchantName", "3-0": "stonecode", "4-0": "address", "5-0": "transactions", "0-1": "NSString", "1-1": "NSString", "2-1": "NSString", "3-1": "NSString", "4-1": "STNAddressModel", "5-1": "NSOrderedSet", "0-2": "Afiliation key", "1-2": "CPF/CNPJ", "2-2": "Nome do lojista", "3-2": "Stone Code", "4-2": "Endereço do lojista", "5-2": "Transações do lojista" }, "cols": 3, "rows": 6 } [/block] [block:api-header] { "type": "basic", "title": "Pinpad" } [/block] O model STNPinpadModel disponibiliza, em suas propriedades, informações do pinpad. **Lista de propriedades** [block:parameters] { "data": { "h-0": "Nome", "h-1": "Tipo", "h-2": "Descrição", "0-0": "name", "1-0": "model", "2-0": "serialNumber", "3-0": "transaction", "0-1": "NSString", "1-1": "NSString", "2-1": "NSString", "3-1": "STNTransactionModel", "0-2": "Nome", "1-2": "Modelo", "2-2": "Número de serie", "3-2": "Transação passada com o pinpad" }, "cols": 3, "rows": 4 } [/block] [block:api-header] { "type": "basic", "title": "Endereço" } [/block] O model STNAddressModel disponibiliza, em suas propriedades, informações de endereço. **Lista de propriedades** [block:parameters] { "data": { "h-0": "Nome", "h-1": "Tipo", "h-2": "Descrição", "0-0": "city", "1-0": "district", "2-0": "neighborhood", "3-0": "street", "4-0": "doorNumber", "5-0": "complement", "6-0": "zipCode", "7-0": "merchant", "0-1": "NSString", "1-1": "NSString", "2-1": "NSString", "3-1": "NSString", "4-1": "NSString", "5-1": "NSString", "6-1": "NSString", "7-1": "STNMerchantModel", "0-2": "cidade", "1-2": "estado", "2-2": "bairro", "3-2": "rua", "4-2": "número", "5-2": "complemento", "6-2": "CEP", "7-2": "lojista que possui esse endereço" }, "cols": 3, "rows": 8 } [/block]
Alguns providers retornam models que podem ser usados pelo usuario do SDK. [block:api-header] { "type": "basic", "title": "Transação" } [/block] O model STNTransactionModel disponibiliza, em suas propriedades, informações de uma transação. **Lista de propriedades** [block:parameters] { "data": { "h-0": "Nome", "h-1": "Tipo", "h-2": "Descrição", "0-0": "amount", "0-1": "NSNumber", "0-2": "Valor da transação no formato de centavos (ex: 10,00 vai ser 1000. Basta multiplicar por 0.01 para obter o valor real.)", "1-0": "instalmentAmount", "1-1": "STNTransactionInstalmentAmount", "1-2": "Número de parcelas da transação", "2-0": "instalmentType", "3-0": "aid", "4-0": "arqc", "5-0": "type", "6-0": "typeString", "7-0": "status", "8-0": "statusString", "9-0": "date", "10-0": "dateString", "11-0": "receiptTransactionKey", "12-0": "reference", "13-0": "pan", "14-0": "cardBrand", "15-0": "cardHolderName", "16-0": "authorizationCode", "17-0": "initiatorTransactionKey", "18-0": "shortName", "19-0": "merchant", "20-0": "pinpad", "2-1": "STNInstalmentType", "3-1": "NSString", "4-1": "NSString", "5-1": "STNTransactionTypeSimplified", "6-1": "NSString", "7-1": "STNTransactionStatus", "8-1": "NSString", "9-1": "NSDate", "10-1": "NSString", "11-1": "NSString", "12-1": "NSString", "13-1": "NSString", "14-1": "NSString", "15-1": "NSString", "16-1": "NSString", "17-1": "NSString", "18-1": "NSString", "19-1": "STNMerchantModel", "20-1": "STNPinpadModel", "2-2": "Tipo de parcelamento da transação", "3-2": "Código AID da transação", "4-2": "Código ARQC da transação", "5-2": "Débito ou crédito", "6-2": "String que representa a propriedade type", "7-2": "Aprovada, cancelada, negada...", "8-2": "String que representa a propriedade status", "9-2": "Data da transação", "10-2": "string que representa a propriedade date", "11-2": "ID da transação", "12-2": "Referencia da transação", "13-2": "4 últimos número do cartão", "14-2": "Bandeira do cartão", "15-2": "Nome do portador do cartão", "16-2": "Stone ID", "17-2": "Identificação da transação", "18-2": "Nome customizado exibido na fatura (se não for definido será nil)", "19-2": "Lojista que passou a transação", "20-2": "Pinpad que passou a transação" }, "cols": 3, "rows": 21 } [/block] [block:api-header] { "type": "basic", "title": "Lojista" } [/block] O model STNMerchantModel disponibiliza, em suas propriedades, informações do lojista/usuario do aplicativo. **Lista de propriedades** [block:parameters] { "data": { "h-0": "Nome", "h-1": "TIpo", "h-2": "Descrição", "0-0": "saleAffiliationKey", "1-0": "documentNumber", "2-0": "merchantName", "3-0": "stonecode", "4-0": "address", "5-0": "transactions", "0-1": "NSString", "1-1": "NSString", "2-1": "NSString", "3-1": "NSString", "4-1": "STNAddressModel", "5-1": "NSOrderedSet", "0-2": "Afiliation key", "1-2": "CPF/CNPJ", "2-2": "Nome do lojista", "3-2": "Stone Code", "4-2": "Endereço do lojista", "5-2": "Transações do lojista" }, "cols": 3, "rows": 6 } [/block] [block:api-header] { "type": "basic", "title": "Pinpad" } [/block] O model STNPinpadModel disponibiliza, em suas propriedades, informações do pinpad. **Lista de propriedades** [block:parameters] { "data": { "h-0": "Nome", "h-1": "Tipo", "h-2": "Descrição", "0-0": "name", "1-0": "model", "2-0": "serialNumber", "3-0": "transaction", "0-1": "NSString", "1-1": "NSString", "2-1": "NSString", "3-1": "STNTransactionModel", "0-2": "Nome", "1-2": "Modelo", "2-2": "Número de serie", "3-2": "Transação passada com o pinpad" }, "cols": 3, "rows": 4 } [/block] [block:api-header] { "type": "basic", "title": "Endereço" } [/block] O model STNAddressModel disponibiliza, em suas propriedades, informações de endereço. **Lista de propriedades** [block:parameters] { "data": { "h-0": "Nome", "h-1": "Tipo", "h-2": "Descrição", "0-0": "city", "1-0": "district", "2-0": "neighborhood", "3-0": "street", "4-0": "doorNumber", "5-0": "complement", "6-0": "zipCode", "7-0": "merchant", "0-1": "NSString", "1-1": "NSString", "2-1": "NSString", "3-1": "NSString", "4-1": "NSString", "5-1": "NSString", "6-1": "NSString", "7-1": "STNMerchantModel", "0-2": "cidade", "1-2": "estado", "2-2": "bairro", "3-2": "rua", "4-2": "número", "5-2": "complemento", "6-2": "CEP", "7-2": "lojista que possui esse endereço" }, "cols": 3, "rows": 8 } [/block]
{"_id":"5845c59f63c11b2500379675","isReference":false,"link_external":false,"link_url":"","order":21,"githubsync":"","hidden":false,"slug":"códigos-de-erro","title":"Códigos de erro SDK iOS","type":"basic","user":"57ea79f61780cd170064f273","api":{"settings":"","auth":"required","params":[],"url":"","results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"code":"{}","name":"","status":400,"language":"json"}]}},"body":"[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Código\",\n    \"h-1\": \"Descrição\",\n    \"0-0\": \"101\",\n    \"1-0\": \"103\",\n    \"2-0\": \"105\",\n    \"3-0\": \"106\",\n    \"4-0\": \"110\",\n    \"5-0\": \"201\",\n    \"6-0\": \"202\",\n    \"7-0\": \"203\",\n    \"8-0\": \"204\",\n    \"9-0\": \"205\",\n    \"10-0\": \"206\",\n    \"11-0\": \"207\",\n    \"12-0\": \"209\",\n    \"13-0\": \"210\",\n    \"14-0\": \"211\",\n    \"15-0\": \"214\",\n    \"16-0\": \"303\",\n    \"17-0\": \"304\",\n    \"18-0\": \"305\",\n    \"19-0\": \"306\",\n    \"20-0\": \"601\",\n    \"0-1\": \"Erro genérico\",\n    \"1-1\": \"Falha no envio de email\",\n    \"2-1\": \"Número de caracteres acima do permitido\",\n    \"3-1\": \"Número de caracteres acima do permitido para a propriedade shortName\",\n    \"4-1\": \"Erro no comando FNC\",\n    \"5-1\": \"Falta ativar o Stone Code\",\n    \"6-1\": \"Stone Code informado já foi ativado\",\n    \"7-1\": \"Valor informado para transação é inválido\",\n    \"8-1\": \"Transação cancelada durante operação\",\n    \"9-1\": \"Transação inválida\",\n    \"10-1\": \"Falha na transação\",\n    \"11-1\": \"Tempo da transação expirado\",\n    \"12-1\": \"Stone Code desconhecido\",\n    \"13-1\": \"Transação já foi cancelada\",\n    \"14-1\": \"Transação negada\",\n    \"15-1\": \"Operação cancelada pelo usuario\",\n    \"16-1\": \"Conexão com o pinpad não encontrada\",\n    \"17-1\": \"Tabelas AID e CAPK não encontradas\",\n    \"18-1\": \"Erro ao carregar tabelas para o pinpad\",\n    \"19-1\": \"Erro no request\",\n    \"20-1\": \"Erro na conexão com a internet\"\n  },\n  \"cols\": 2,\n  \"rows\": 21\n}\n[/block]","category":"5845b77739950c1b002afe4d","createdAt":"2016-12-05T19:53:03.695Z","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","__v":0,"excerpt":"","next":{"pages":[],"description":""},"sync_unique":"","updates":[],"parentDoc":null,"childrenPages":[]}

Códigos de erro SDK iOS


[block:parameters] { "data": { "h-0": "Código", "h-1": "Descrição", "0-0": "101", "1-0": "103", "2-0": "105", "3-0": "106", "4-0": "110", "5-0": "201", "6-0": "202", "7-0": "203", "8-0": "204", "9-0": "205", "10-0": "206", "11-0": "207", "12-0": "209", "13-0": "210", "14-0": "211", "15-0": "214", "16-0": "303", "17-0": "304", "18-0": "305", "19-0": "306", "20-0": "601", "0-1": "Erro genérico", "1-1": "Falha no envio de email", "2-1": "Número de caracteres acima do permitido", "3-1": "Número de caracteres acima do permitido para a propriedade shortName", "4-1": "Erro no comando FNC", "5-1": "Falta ativar o Stone Code", "6-1": "Stone Code informado já foi ativado", "7-1": "Valor informado para transação é inválido", "8-1": "Transação cancelada durante operação", "9-1": "Transação inválida", "10-1": "Falha na transação", "11-1": "Tempo da transação expirado", "12-1": "Stone Code desconhecido", "13-1": "Transação já foi cancelada", "14-1": "Transação negada", "15-1": "Operação cancelada pelo usuario", "16-1": "Conexão com o pinpad não encontrada", "17-1": "Tabelas AID e CAPK não encontradas", "18-1": "Erro ao carregar tabelas para o pinpad", "19-1": "Erro no request", "20-1": "Erro na conexão com a internet" }, "cols": 2, "rows": 21 } [/block]
[block:parameters] { "data": { "h-0": "Código", "h-1": "Descrição", "0-0": "101", "1-0": "103", "2-0": "105", "3-0": "106", "4-0": "110", "5-0": "201", "6-0": "202", "7-0": "203", "8-0": "204", "9-0": "205", "10-0": "206", "11-0": "207", "12-0": "209", "13-0": "210", "14-0": "211", "15-0": "214", "16-0": "303", "17-0": "304", "18-0": "305", "19-0": "306", "20-0": "601", "0-1": "Erro genérico", "1-1": "Falha no envio de email", "2-1": "Número de caracteres acima do permitido", "3-1": "Número de caracteres acima do permitido para a propriedade shortName", "4-1": "Erro no comando FNC", "5-1": "Falta ativar o Stone Code", "6-1": "Stone Code informado já foi ativado", "7-1": "Valor informado para transação é inválido", "8-1": "Transação cancelada durante operação", "9-1": "Transação inválida", "10-1": "Falha na transação", "11-1": "Tempo da transação expirado", "12-1": "Stone Code desconhecido", "13-1": "Transação já foi cancelada", "14-1": "Transação negada", "15-1": "Operação cancelada pelo usuario", "16-1": "Conexão com o pinpad não encontrada", "17-1": "Tabelas AID e CAPK não encontradas", "18-1": "Erro ao carregar tabelas para o pinpad", "19-1": "Erro no request", "20-1": "Erro na conexão com a internet" }, "cols": 2, "rows": 21 } [/block]
{"_id":"59f0ac2cba3bc90030f40f11","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","category":"5845b77739950c1b002afe4d","user":"59de082aed35e800383f94b6","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-10-25T15:22:20.575Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"settings":"","results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"auth":"required","params":[],"url":""},"isReference":false,"order":23,"body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Criação de sessão com o pinpad\"\n}\n[/block]\nPara realizar qualquer comunicação com o pinpad é necessario que se crie uma sessão. Lembrando que a conexão com o dispositivo bluetooth deve ser feita no menu de Ajustes do iOS.\n\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Antes de qualquer comunicação entre o aplicativo e o pinpad, uma sessão deve ser estabelecida.\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[STNPinPadConnectionProvider connectToPinpad:^(BOOL succeeded, NSError *error) {\\n        if (succeeded) // verifica se a requisição ocorreu com sucesso\\n        {\\n            // executa alguma coisa\\n        } else\\n        {\\n            // trata o erro\\n            NSLog(@\\\"%@\\\", error.description);\\n        }\\n    }];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Recomendamos que esse método seja executado a cada 3 minutos quando o aplicativo estiver em background caso usem o pinpad Gertec MOBI PIN 10. O dispositivo em questão apresentou problemas ao ficar muito tempo sem comunicação.\"\n}\n[/block]\n**Possivel código de erro**\n\n303\n\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Ativação do Stone Code\"\n}\n[/block]\nO provider STNStoneCodeActivationProvider é responsavel por ativar e desativar o lojista e possui os métodos activateStoneCode:withblock:, deactivateMerchant: e deactivateMerchantWithStoneCode.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"O Stone Code deve ser ativado antes de realizar qualquer operação na Stone.\"\n}\n[/block]\nPara ativar o lojista no aplicativo deve ser usado o método activateStoneCode:withblock:, que recebe uma string com o Stone Code do lojista como parâmetro.\n\n\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"NSString *stoneCode = @\\\"999999999\\\"; // Stone Code do lojista\\n\\n[STNStoneCodeActivationProvider activateStoneCode:stoneCode withBlock:^(BOOL succeeded, NSError *error)\\n{\\n    if (succeeded) // verifica se a requisição ocorreu com sucesso\\n    {\\n        // em caso de sucesso,\\n        // executa alguma coisa\\n    } else\\n    {\\n        // em caso de erro,\\n        // faz alguma tratativa\\n        NSLog(@\\\"%@\\\", error.description);\\n    }\\n}];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\nUma das opções para desativar o lojista no aplicativo é o método deactivateMerchant:, que recebe o lojista a ser desativado (um objeto do tipo STNMerchantModel) como parâmetro.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Esse método excluirá o lojista do applicativo junto de todas as transações realizadas pelo mesmo.\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"STNMerchantModel *merchant = [STNMerchantListProvider listMerchants][0]; // Primeiro lojista da lista\\n\\n[STNStoneCodeActivationProvider deactivateMerchant:merchant];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\nOutra opção para desativar o lojista no aplicativo é o método deactivateMerchantWithStoneCode:, que recebe o Stone Code por parâmetro.\n\n\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"NSString *stoneCode = @\\\"999999999\\\"; // Stone Code do lojista\\n\\n[STNStoneCodeActivationProvider deactivateMerchantWithStoneCode:stoneCode];\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n**Possíveis códigos de erro**\n\n101, 202, 209","excerpt":"","slug":"conexão-pinpad-bluetooth","type":"basic","title":"Conexão - Pinpad Bluetooth","__v":0,"parentDoc":null,"childrenPages":[]}

Conexão - Pinpad Bluetooth


[block:api-header] { "type": "basic", "title": "Criação de sessão com o pinpad" } [/block] Para realizar qualquer comunicação com o pinpad é necessario que se crie uma sessão. Lembrando que a conexão com o dispositivo bluetooth deve ser feita no menu de Ajustes do iOS. [block:callout] { "type": "info", "body": "Antes de qualquer comunicação entre o aplicativo e o pinpad, uma sessão deve ser estabelecida." } [/block] [block:code] { "codes": [ { "code": "[STNPinPadConnectionProvider connectToPinpad:^(BOOL succeeded, NSError *error) {\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // executa alguma coisa\n } else\n {\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n }];", "language": "objectivec" } ] } [/block] [block:callout] { "type": "info", "body": "Recomendamos que esse método seja executado a cada 3 minutos quando o aplicativo estiver em background caso usem o pinpad Gertec MOBI PIN 10. O dispositivo em questão apresentou problemas ao ficar muito tempo sem comunicação." } [/block] **Possivel código de erro** 303 [block:api-header] { "type": "basic", "title": "Ativação do Stone Code" } [/block] O provider STNStoneCodeActivationProvider é responsavel por ativar e desativar o lojista e possui os métodos activateStoneCode:withblock:, deactivateMerchant: e deactivateMerchantWithStoneCode. [block:callout] { "type": "info", "body": "O Stone Code deve ser ativado antes de realizar qualquer operação na Stone." } [/block] Para ativar o lojista no aplicativo deve ser usado o método activateStoneCode:withblock:, que recebe uma string com o Stone Code do lojista como parâmetro. [block:code] { "codes": [ { "code": "NSString *stoneCode = @\"999999999\"; // Stone Code do lojista\n\n[STNStoneCodeActivationProvider activateStoneCode:stoneCode withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // faz alguma tratativa\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] Uma das opções para desativar o lojista no aplicativo é o método deactivateMerchant:, que recebe o lojista a ser desativado (um objeto do tipo STNMerchantModel) como parâmetro. [block:callout] { "type": "info", "body": "Esse método excluirá o lojista do applicativo junto de todas as transações realizadas pelo mesmo." } [/block] [block:code] { "codes": [ { "code": "STNMerchantModel *merchant = [STNMerchantListProvider listMerchants][0]; // Primeiro lojista da lista\n\n[STNStoneCodeActivationProvider deactivateMerchant:merchant];", "language": "objectivec" } ] } [/block] Outra opção para desativar o lojista no aplicativo é o método deactivateMerchantWithStoneCode:, que recebe o Stone Code por parâmetro. [block:code] { "codes": [ { "code": "NSString *stoneCode = @\"999999999\"; // Stone Code do lojista\n\n[STNStoneCodeActivationProvider deactivateMerchantWithStoneCode:stoneCode];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 202, 209
[block:api-header] { "type": "basic", "title": "Criação de sessão com o pinpad" } [/block] Para realizar qualquer comunicação com o pinpad é necessario que se crie uma sessão. Lembrando que a conexão com o dispositivo bluetooth deve ser feita no menu de Ajustes do iOS. [block:callout] { "type": "info", "body": "Antes de qualquer comunicação entre o aplicativo e o pinpad, uma sessão deve ser estabelecida." } [/block] [block:code] { "codes": [ { "code": "[STNPinPadConnectionProvider connectToPinpad:^(BOOL succeeded, NSError *error) {\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // executa alguma coisa\n } else\n {\n // trata o erro\n NSLog(@\"%@\", error.description);\n }\n }];", "language": "objectivec" } ] } [/block] [block:callout] { "type": "info", "body": "Recomendamos que esse método seja executado a cada 3 minutos quando o aplicativo estiver em background caso usem o pinpad Gertec MOBI PIN 10. O dispositivo em questão apresentou problemas ao ficar muito tempo sem comunicação." } [/block] **Possivel código de erro** 303 [block:api-header] { "type": "basic", "title": "Ativação do Stone Code" } [/block] O provider STNStoneCodeActivationProvider é responsavel por ativar e desativar o lojista e possui os métodos activateStoneCode:withblock:, deactivateMerchant: e deactivateMerchantWithStoneCode. [block:callout] { "type": "info", "body": "O Stone Code deve ser ativado antes de realizar qualquer operação na Stone." } [/block] Para ativar o lojista no aplicativo deve ser usado o método activateStoneCode:withblock:, que recebe uma string com o Stone Code do lojista como parâmetro. [block:code] { "codes": [ { "code": "NSString *stoneCode = @\"999999999\"; // Stone Code do lojista\n\n[STNStoneCodeActivationProvider activateStoneCode:stoneCode withBlock:^(BOOL succeeded, NSError *error)\n{\n if (succeeded) // verifica se a requisição ocorreu com sucesso\n {\n // em caso de sucesso,\n // executa alguma coisa\n } else\n {\n // em caso de erro,\n // faz alguma tratativa\n NSLog(@\"%@\", error.description);\n }\n}];", "language": "objectivec" } ] } [/block] Uma das opções para desativar o lojista no aplicativo é o método deactivateMerchant:, que recebe o lojista a ser desativado (um objeto do tipo STNMerchantModel) como parâmetro. [block:callout] { "type": "info", "body": "Esse método excluirá o lojista do applicativo junto de todas as transações realizadas pelo mesmo." } [/block] [block:code] { "codes": [ { "code": "STNMerchantModel *merchant = [STNMerchantListProvider listMerchants][0]; // Primeiro lojista da lista\n\n[STNStoneCodeActivationProvider deactivateMerchant:merchant];", "language": "objectivec" } ] } [/block] Outra opção para desativar o lojista no aplicativo é o método deactivateMerchantWithStoneCode:, que recebe o Stone Code por parâmetro. [block:code] { "codes": [ { "code": "NSString *stoneCode = @\"999999999\"; // Stone Code do lojista\n\n[STNStoneCodeActivationProvider deactivateMerchantWithStoneCode:stoneCode];", "language": "objectivec" } ] } [/block] **Possíveis códigos de erro** 101, 202, 209
{"_id":"59f0c4a5f5ecda00325293d6","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","category":"5845b77739950c1b002afe4d","user":"59de082aed35e800383f94b6","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-10-25T17:06:45.955Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":999,"body":"| Código de Retorno | Descrição | Mensagem | Pode retentar? |\n| ----------------- | --------- | -------- | -------------- |\n| 1000 | Do not honour | Não aprovado | Não se Aplica |\n| 1001 | Expired card | Cartão vencido | Não se Aplica |\n| 1002 | Suspected fraud | Suspeita de fraude | Não se Aplica |\n| 1003 | Card acceptor contact acquirer | Estabelecimento entrar em contato com emissor | Não se Aplica |\n| 1004 | Restricted card | Cartão com restrição | Não se Aplica |\n| 1005 | Card acceptor call acquirer's security department | Estabelecimento entrar em contato com departamento de segurança do adquirente | Não se Aplica |\n| 1006 | Allowable PIN tries exceeded | Tentativas de senha excedidas | Não se Aplica |\n| 1007 | Refer to card issuer | Consultar o emissor | Não se Aplica |\n| 1008 | Refer to card issuer's special conditions | Consultar as condições especiais do emissor | Não se Aplica |\n| 1009 | Invalid card acceptor | Estabelecimento inválido | Não se Aplica |\n| 1010 | Invalid amount | Valor inválido | Não se Aplica |\n| 1011 | Invalid card number | Cartão inválido | Não se Aplica |\n| 1012 | PIN data required | Senha necessária | Não se Aplica |\n| 1014 | No account of type requested | Nenhuma conta do tipo selecionado | Não se Aplica |\n| 1015 | Requested function not supported | Função selecionada não suportada | Não se Aplica |\n| 1016 | Not sufficient funds | Saldo insuficiente | Sim |\n| 1017 | Incorrect PIN | Senha inválida | Sim |\n| 1019 | Transaction not permitted to cardholder | Transação não permitida para o portador | Não se Aplica |\n| 1020 | Transaction not permitted to terminal | Transação não permitida para o terminal | Não se Aplica |\n| 1021 | Exceeds withdrawal amount limit | Limite de valor para saque excedido | Não se Aplica |\n| 1022 | Security violation | Violação de segurança | Não se Aplica |\n| 1023 | Exceeds withdrawal frequency limit | Limite de quantidade de saques excedido | Não se Aplica |\n| 1024 | Violation of law | Violação da lei | Não se Aplica |\n| 1025 | Card not effective | Cartão bloqueado | Não se Aplica |\n| 1026 | Invalid PIN block | Dados de senha inválidos | Não se Aplica |\n| 1027 | PIN length error | Erro no tamanho da senha | Não se Aplica |\n| 1028 | PIN key sync error | Erro de sincronia de chave de senha | Não se Aplica |\n| 1029 | Suspected counterfeit card | Suspeita de cartão falso | Não se Aplica |\n| 1030 | Currency unacceptable to card issuer | Moeda inaceitável para o emissor | Não se Aplica |\n| 1032 | Lost/stolen card | Cartão perdido ou roubado | Não se Aplica |\n| 1035 | Closed account | Conta encerrada | Não se Aplica |\n| 1036 | Closed savings account, or restricted for closing | Conta poupança encerrada ou bloqueada para encerramento | Não se Aplica |\n| 1037 | Closed credit account or restricted for closing | Conta de crédito encerrada ou bloqueada para encerramento | Não se Aplica |\n| 1039 | Closed cheque account or restricted for closing | Conta corrente encerrada ou bloquada para encerramento | Não se Aplica |\n| 1041 | From account bad status | Status ruim para conta de origem | Não se Aplica |\n| 1042 | To account bad status | Status ruim para conta de destino | Não se Aplica |\n| 1045 | Card verification data failed | Código de segurança inválido | Sim |\n| 1047 | PIN change required | Troca de senha necessária | Não se Aplica |\n| 1048 | New PIN invalid | Nova senha inválida | Não se Aplica |\n| 1057 | Payment date invalid | Data de pagamento inválida | Não se Aplica |\n| 1060 | Transaction did not complete normally at terminal | Transação não completou normalmente no terminal | Não se Aplica |\n| 1061 | Transaction not supported by the card issuer | Transação não suportada pelo emissor | Não se Aplica |\n| 1062 | Cashback not allowed | Saque fácil não disponível | Não se Aplica |\n| 1063 | Cashback amount exceeded | Limite de saque fácil excedido | Não se Aplica |\n| 1064 | Declined, transaction processed offline by terminal | Negado offline pelo terminal | Não se Aplica |\n| 1065 | Declined, terminal unable to process offline | Negado, não foi possível processar offline | Não se Aplica |\n| 2000 | Do not honour | Não aprovado | Não se Aplica |\n| 2001 | Expired card | Cartão vencido | Não se Aplica |\n| 2002 | Suspected fraud | Suspeita de fraude | Não se Aplica |\n| 2003 | Card acceptor contact acquirer | Estabelecimento entrar em contato com emissor | Não se Aplica |\n| 2004 | Restricted card | Cartão com restrição | Não se Aplica |\n| 2005 | Card acceptor call acquirer's security department | Estabelecimento entrar em contato com departamento de segurança do adquirente | Não se Aplica |\n| 2006 | Allowable PIN tries exceeded | Tentativas de senha excedidas | Não se Aplica |\n| 2007 | Special conditions | Condições especiais | Não se Aplica |\n| 2008 | Lost card | Cartão perdido | Não se Aplica |\n| 2009 | Stolen card | Cartão roubado | Não se Aplica |\n| 2010 | Suspected counterfeit card | Suspeita de cartão falso | Não se Aplica |\n| 2011 | Daily withdrawal uses exceeded | Limite de quantidade de saques excedido | Não se Aplica |\n| 2012 | Daily withdrawal amount exceeded | Limite de valor para saque excedido | Não se Aplica |\n| 9100 | One or more data element errors (see message error indicator) | Erro no formato da mensagem | Não se Aplica |\n| 9102 | Invalid transaction | Transação inválida | Não se Aplica |\n| 9103 | Re-enter transaction | Tente novamente | Não se Aplica |\n| 9105 | Acquirer not supported by switch | Adquirente não suportado pelo switch | Não se Aplica |\n| 9107 | Card issuer or switch inoperative | Emissor fora de operação | Não se Aplica |\n| 9108 | Transaction destination cannot be found for routing | Não foi possível enviar a transação para o destinatário | Sim |\n| 9109 | System malfunction | Erro no sistema | Sim |\n| 9110 | Card issuer signed off | Emissor se desconectou | Não se Aplica |\n| 9111 | Card issuer timed out | Emissor não respondeu em tempo | Sim |\n| 9112 | Card issuer unavailable | Emissor indisponível | Sim |\n| 9113 | Duplicate transmission | Transmissão duplicada | Não se Aplica |\n| 9114 | Not able to trace back to original transaction | Não foi possível encontrar a transação original | Não se Aplica |\n| 9116 | MAC incorrect | MAC incorreto | Não se Aplica |\n| 9117 | MAC key sync error | Erro de sincronização de chave de MAC | Não se Aplica |\n| 9118 | No communication keys available for use | Nenhuma chave de comunicação disponível | Não se Aplica |\n| 9119 | Encryption key sync error | Erro de sincronização de chave de encriptação | Não se Aplica |\n| 9120 | Security software/hardware error – try again | Erro de segurança de software/hardware, tente novamente | Não se Aplica |\n| 9121 | Security software/hardware error – no action | Erro de segurança de software/hardware | Não se Aplica |\n| 9122 | Message number out of sequence | Número da mensagem fora de sequência | Não se Aplica |\n| 9123 | Request in progress | Requisição em progresso | Não se Aplica |\n| 9124 | Invalid security code | Código de segurança inválido | Não se Aplica |\n| 9125 | Database error | Erro no banco de dados | Não se Aplica |\n| 9132 | Recurring data error | Erro nos dados de recorrência | Não se Aplica |\n| 9133 | Update not allowed | Atualização não permitida | Não se Aplica |\n| 9350 | Violation of business arrangement | Violação de acordo comercial | Não se Aplica |\n| 9999 | Other errors | Erro não especificado | Não se Aplica |\n|UNPR| Rejection | Não Foi possível processar – Não foi possível processar a mensagem. Tente novamente. | Não se Aplica |\n| IMSG | Rejection | Mensagem Invalida – A mensagem enviada possui um formato inválido. | Não se Aplica |\n| PARS | Rejection | Erro na leitura da mensagem – Algum campo obrigatório não esta sendo enviado | Não se Aplica |\n| SECU | Rejection | Segurança – Algum erro no processo de segurança. A chave de criptografia pode não estar presente no terminal. | Não se Aplica |\n| INTP | Rejection | SAK Invalido – O SAK enviado não foi reconhecido | Não se Aplica |\n| RCPP | Rejection | Destinatario Invalido – O local para aonde a mensagem foi enviada esta invalida | Não se Aplica |\n| DPMG | Rejection | Mensagem Duplicada – Esta mensagem já foi recebida pela Stone. | Não se Aplica |\n| VERS | Rejection | Protocolo – A versão do protocolo enviada não é suportada. | Não se Aplica |\n| MSGT| Rejection | Tipo da Mensagem – o Message Type enviado não é reconhecido. | Não se Aplica |","excerpt":"Códigos de retorno  do Autorizador Stone.","slug":"códigos-de-retorno","type":"basic","title":"Códigos de Retorno Autorizador Stone","__v":0,"parentDoc":null,"childrenPages":[]}

Códigos de Retorno Autorizador Stone

Códigos de retorno do Autorizador Stone.

| Código de Retorno | Descrição | Mensagem | Pode retentar? | | ----------------- | --------- | -------- | -------------- | | 1000 | Do not honour | Não aprovado | Não se Aplica | | 1001 | Expired card | Cartão vencido | Não se Aplica | | 1002 | Suspected fraud | Suspeita de fraude | Não se Aplica | | 1003 | Card acceptor contact acquirer | Estabelecimento entrar em contato com emissor | Não se Aplica | | 1004 | Restricted card | Cartão com restrição | Não se Aplica | | 1005 | Card acceptor call acquirer's security department | Estabelecimento entrar em contato com departamento de segurança do adquirente | Não se Aplica | | 1006 | Allowable PIN tries exceeded | Tentativas de senha excedidas | Não se Aplica | | 1007 | Refer to card issuer | Consultar o emissor | Não se Aplica | | 1008 | Refer to card issuer's special conditions | Consultar as condições especiais do emissor | Não se Aplica | | 1009 | Invalid card acceptor | Estabelecimento inválido | Não se Aplica | | 1010 | Invalid amount | Valor inválido | Não se Aplica | | 1011 | Invalid card number | Cartão inválido | Não se Aplica | | 1012 | PIN data required | Senha necessária | Não se Aplica | | 1014 | No account of type requested | Nenhuma conta do tipo selecionado | Não se Aplica | | 1015 | Requested function not supported | Função selecionada não suportada | Não se Aplica | | 1016 | Not sufficient funds | Saldo insuficiente | Sim | | 1017 | Incorrect PIN | Senha inválida | Sim | | 1019 | Transaction not permitted to cardholder | Transação não permitida para o portador | Não se Aplica | | 1020 | Transaction not permitted to terminal | Transação não permitida para o terminal | Não se Aplica | | 1021 | Exceeds withdrawal amount limit | Limite de valor para saque excedido | Não se Aplica | | 1022 | Security violation | Violação de segurança | Não se Aplica | | 1023 | Exceeds withdrawal frequency limit | Limite de quantidade de saques excedido | Não se Aplica | | 1024 | Violation of law | Violação da lei | Não se Aplica | | 1025 | Card not effective | Cartão bloqueado | Não se Aplica | | 1026 | Invalid PIN block | Dados de senha inválidos | Não se Aplica | | 1027 | PIN length error | Erro no tamanho da senha | Não se Aplica | | 1028 | PIN key sync error | Erro de sincronia de chave de senha | Não se Aplica | | 1029 | Suspected counterfeit card | Suspeita de cartão falso | Não se Aplica | | 1030 | Currency unacceptable to card issuer | Moeda inaceitável para o emissor | Não se Aplica | | 1032 | Lost/stolen card | Cartão perdido ou roubado | Não se Aplica | | 1035 | Closed account | Conta encerrada | Não se Aplica | | 1036 | Closed savings account, or restricted for closing | Conta poupança encerrada ou bloqueada para encerramento | Não se Aplica | | 1037 | Closed credit account or restricted for closing | Conta de crédito encerrada ou bloqueada para encerramento | Não se Aplica | | 1039 | Closed cheque account or restricted for closing | Conta corrente encerrada ou bloquada para encerramento | Não se Aplica | | 1041 | From account bad status | Status ruim para conta de origem | Não se Aplica | | 1042 | To account bad status | Status ruim para conta de destino | Não se Aplica | | 1045 | Card verification data failed | Código de segurança inválido | Sim | | 1047 | PIN change required | Troca de senha necessária | Não se Aplica | | 1048 | New PIN invalid | Nova senha inválida | Não se Aplica | | 1057 | Payment date invalid | Data de pagamento inválida | Não se Aplica | | 1060 | Transaction did not complete normally at terminal | Transação não completou normalmente no terminal | Não se Aplica | | 1061 | Transaction not supported by the card issuer | Transação não suportada pelo emissor | Não se Aplica | | 1062 | Cashback not allowed | Saque fácil não disponível | Não se Aplica | | 1063 | Cashback amount exceeded | Limite de saque fácil excedido | Não se Aplica | | 1064 | Declined, transaction processed offline by terminal | Negado offline pelo terminal | Não se Aplica | | 1065 | Declined, terminal unable to process offline | Negado, não foi possível processar offline | Não se Aplica | | 2000 | Do not honour | Não aprovado | Não se Aplica | | 2001 | Expired card | Cartão vencido | Não se Aplica | | 2002 | Suspected fraud | Suspeita de fraude | Não se Aplica | | 2003 | Card acceptor contact acquirer | Estabelecimento entrar em contato com emissor | Não se Aplica | | 2004 | Restricted card | Cartão com restrição | Não se Aplica | | 2005 | Card acceptor call acquirer's security department | Estabelecimento entrar em contato com departamento de segurança do adquirente | Não se Aplica | | 2006 | Allowable PIN tries exceeded | Tentativas de senha excedidas | Não se Aplica | | 2007 | Special conditions | Condições especiais | Não se Aplica | | 2008 | Lost card | Cartão perdido | Não se Aplica | | 2009 | Stolen card | Cartão roubado | Não se Aplica | | 2010 | Suspected counterfeit card | Suspeita de cartão falso | Não se Aplica | | 2011 | Daily withdrawal uses exceeded | Limite de quantidade de saques excedido | Não se Aplica | | 2012 | Daily withdrawal amount exceeded | Limite de valor para saque excedido | Não se Aplica | | 9100 | One or more data element errors (see message error indicator) | Erro no formato da mensagem | Não se Aplica | | 9102 | Invalid transaction | Transação inválida | Não se Aplica | | 9103 | Re-enter transaction | Tente novamente | Não se Aplica | | 9105 | Acquirer not supported by switch | Adquirente não suportado pelo switch | Não se Aplica | | 9107 | Card issuer or switch inoperative | Emissor fora de operação | Não se Aplica | | 9108 | Transaction destination cannot be found for routing | Não foi possível enviar a transação para o destinatário | Sim | | 9109 | System malfunction | Erro no sistema | Sim | | 9110 | Card issuer signed off | Emissor se desconectou | Não se Aplica | | 9111 | Card issuer timed out | Emissor não respondeu em tempo | Sim | | 9112 | Card issuer unavailable | Emissor indisponível | Sim | | 9113 | Duplicate transmission | Transmissão duplicada | Não se Aplica | | 9114 | Not able to trace back to original transaction | Não foi possível encontrar a transação original | Não se Aplica | | 9116 | MAC incorrect | MAC incorreto | Não se Aplica | | 9117 | MAC key sync error | Erro de sincronização de chave de MAC | Não se Aplica | | 9118 | No communication keys available for use | Nenhuma chave de comunicação disponível | Não se Aplica | | 9119 | Encryption key sync error | Erro de sincronização de chave de encriptação | Não se Aplica | | 9120 | Security software/hardware error – try again | Erro de segurança de software/hardware, tente novamente | Não se Aplica | | 9121 | Security software/hardware error – no action | Erro de segurança de software/hardware | Não se Aplica | | 9122 | Message number out of sequence | Número da mensagem fora de sequência | Não se Aplica | | 9123 | Request in progress | Requisição em progresso | Não se Aplica | | 9124 | Invalid security code | Código de segurança inválido | Não se Aplica | | 9125 | Database error | Erro no banco de dados | Não se Aplica | | 9132 | Recurring data error | Erro nos dados de recorrência | Não se Aplica | | 9133 | Update not allowed | Atualização não permitida | Não se Aplica | | 9350 | Violation of business arrangement | Violação de acordo comercial | Não se Aplica | | 9999 | Other errors | Erro não especificado | Não se Aplica | |UNPR| Rejection | Não Foi possível processar – Não foi possível processar a mensagem. Tente novamente. | Não se Aplica | | IMSG | Rejection | Mensagem Invalida – A mensagem enviada possui um formato inválido. | Não se Aplica | | PARS | Rejection | Erro na leitura da mensagem – Algum campo obrigatório não esta sendo enviado | Não se Aplica | | SECU | Rejection | Segurança – Algum erro no processo de segurança. A chave de criptografia pode não estar presente no terminal. | Não se Aplica | | INTP | Rejection | SAK Invalido – O SAK enviado não foi reconhecido | Não se Aplica | | RCPP | Rejection | Destinatario Invalido – O local para aonde a mensagem foi enviada esta invalida | Não se Aplica | | DPMG | Rejection | Mensagem Duplicada – Esta mensagem já foi recebida pela Stone. | Não se Aplica | | VERS | Rejection | Protocolo – A versão do protocolo enviada não é suportada. | Não se Aplica | | MSGT| Rejection | Tipo da Mensagem – o Message Type enviado não é reconhecido. | Não se Aplica |
| Código de Retorno | Descrição | Mensagem | Pode retentar? | | ----------------- | --------- | -------- | -------------- | | 1000 | Do not honour | Não aprovado | Não se Aplica | | 1001 | Expired card | Cartão vencido | Não se Aplica | | 1002 | Suspected fraud | Suspeita de fraude | Não se Aplica | | 1003 | Card acceptor contact acquirer | Estabelecimento entrar em contato com emissor | Não se Aplica | | 1004 | Restricted card | Cartão com restrição | Não se Aplica | | 1005 | Card acceptor call acquirer's security department | Estabelecimento entrar em contato com departamento de segurança do adquirente | Não se Aplica | | 1006 | Allowable PIN tries exceeded | Tentativas de senha excedidas | Não se Aplica | | 1007 | Refer to card issuer | Consultar o emissor | Não se Aplica | | 1008 | Refer to card issuer's special conditions | Consultar as condições especiais do emissor | Não se Aplica | | 1009 | Invalid card acceptor | Estabelecimento inválido | Não se Aplica | | 1010 | Invalid amount | Valor inválido | Não se Aplica | | 1011 | Invalid card number | Cartão inválido | Não se Aplica | | 1012 | PIN data required | Senha necessária | Não se Aplica | | 1014 | No account of type requested | Nenhuma conta do tipo selecionado | Não se Aplica | | 1015 | Requested function not supported | Função selecionada não suportada | Não se Aplica | | 1016 | Not sufficient funds | Saldo insuficiente | Sim | | 1017 | Incorrect PIN | Senha inválida | Sim | | 1019 | Transaction not permitted to cardholder | Transação não permitida para o portador | Não se Aplica | | 1020 | Transaction not permitted to terminal | Transação não permitida para o terminal | Não se Aplica | | 1021 | Exceeds withdrawal amount limit | Limite de valor para saque excedido | Não se Aplica | | 1022 | Security violation | Violação de segurança | Não se Aplica | | 1023 | Exceeds withdrawal frequency limit | Limite de quantidade de saques excedido | Não se Aplica | | 1024 | Violation of law | Violação da lei | Não se Aplica | | 1025 | Card not effective | Cartão bloqueado | Não se Aplica | | 1026 | Invalid PIN block | Dados de senha inválidos | Não se Aplica | | 1027 | PIN length error | Erro no tamanho da senha | Não se Aplica | | 1028 | PIN key sync error | Erro de sincronia de chave de senha | Não se Aplica | | 1029 | Suspected counterfeit card | Suspeita de cartão falso | Não se Aplica | | 1030 | Currency unacceptable to card issuer | Moeda inaceitável para o emissor | Não se Aplica | | 1032 | Lost/stolen card | Cartão perdido ou roubado | Não se Aplica | | 1035 | Closed account | Conta encerrada | Não se Aplica | | 1036 | Closed savings account, or restricted for closing | Conta poupança encerrada ou bloqueada para encerramento | Não se Aplica | | 1037 | Closed credit account or restricted for closing | Conta de crédito encerrada ou bloqueada para encerramento | Não se Aplica | | 1039 | Closed cheque account or restricted for closing | Conta corrente encerrada ou bloquada para encerramento | Não se Aplica | | 1041 | From account bad status | Status ruim para conta de origem | Não se Aplica | | 1042 | To account bad status | Status ruim para conta de destino | Não se Aplica | | 1045 | Card verification data failed | Código de segurança inválido | Sim | | 1047 | PIN change required | Troca de senha necessária | Não se Aplica | | 1048 | New PIN invalid | Nova senha inválida | Não se Aplica | | 1057 | Payment date invalid | Data de pagamento inválida | Não se Aplica | | 1060 | Transaction did not complete normally at terminal | Transação não completou normalmente no terminal | Não se Aplica | | 1061 | Transaction not supported by the card issuer | Transação não suportada pelo emissor | Não se Aplica | | 1062 | Cashback not allowed | Saque fácil não disponível | Não se Aplica | | 1063 | Cashback amount exceeded | Limite de saque fácil excedido | Não se Aplica | | 1064 | Declined, transaction processed offline by terminal | Negado offline pelo terminal | Não se Aplica | | 1065 | Declined, terminal unable to process offline | Negado, não foi possível processar offline | Não se Aplica | | 2000 | Do not honour | Não aprovado | Não se Aplica | | 2001 | Expired card | Cartão vencido | Não se Aplica | | 2002 | Suspected fraud | Suspeita de fraude | Não se Aplica | | 2003 | Card acceptor contact acquirer | Estabelecimento entrar em contato com emissor | Não se Aplica | | 2004 | Restricted card | Cartão com restrição | Não se Aplica | | 2005 | Card acceptor call acquirer's security department | Estabelecimento entrar em contato com departamento de segurança do adquirente | Não se Aplica | | 2006 | Allowable PIN tries exceeded | Tentativas de senha excedidas | Não se Aplica | | 2007 | Special conditions | Condições especiais | Não se Aplica | | 2008 | Lost card | Cartão perdido | Não se Aplica | | 2009 | Stolen card | Cartão roubado | Não se Aplica | | 2010 | Suspected counterfeit card | Suspeita de cartão falso | Não se Aplica | | 2011 | Daily withdrawal uses exceeded | Limite de quantidade de saques excedido | Não se Aplica | | 2012 | Daily withdrawal amount exceeded | Limite de valor para saque excedido | Não se Aplica | | 9100 | One or more data element errors (see message error indicator) | Erro no formato da mensagem | Não se Aplica | | 9102 | Invalid transaction | Transação inválida | Não se Aplica | | 9103 | Re-enter transaction | Tente novamente | Não se Aplica | | 9105 | Acquirer not supported by switch | Adquirente não suportado pelo switch | Não se Aplica | | 9107 | Card issuer or switch inoperative | Emissor fora de operação | Não se Aplica | | 9108 | Transaction destination cannot be found for routing | Não foi possível enviar a transação para o destinatário | Sim | | 9109 | System malfunction | Erro no sistema | Sim | | 9110 | Card issuer signed off | Emissor se desconectou | Não se Aplica | | 9111 | Card issuer timed out | Emissor não respondeu em tempo | Sim | | 9112 | Card issuer unavailable | Emissor indisponível | Sim | | 9113 | Duplicate transmission | Transmissão duplicada | Não se Aplica | | 9114 | Not able to trace back to original transaction | Não foi possível encontrar a transação original | Não se Aplica | | 9116 | MAC incorrect | MAC incorreto | Não se Aplica | | 9117 | MAC key sync error | Erro de sincronização de chave de MAC | Não se Aplica | | 9118 | No communication keys available for use | Nenhuma chave de comunicação disponível | Não se Aplica | | 9119 | Encryption key sync error | Erro de sincronização de chave de encriptação | Não se Aplica | | 9120 | Security software/hardware error – try again | Erro de segurança de software/hardware, tente novamente | Não se Aplica | | 9121 | Security software/hardware error – no action | Erro de segurança de software/hardware | Não se Aplica | | 9122 | Message number out of sequence | Número da mensagem fora de sequência | Não se Aplica | | 9123 | Request in progress | Requisição em progresso | Não se Aplica | | 9124 | Invalid security code | Código de segurança inválido | Não se Aplica | | 9125 | Database error | Erro no banco de dados | Não se Aplica | | 9132 | Recurring data error | Erro nos dados de recorrência | Não se Aplica | | 9133 | Update not allowed | Atualização não permitida | Não se Aplica | | 9350 | Violation of business arrangement | Violação de acordo comercial | Não se Aplica | | 9999 | Other errors | Erro não especificado | Não se Aplica | |UNPR| Rejection | Não Foi possível processar – Não foi possível processar a mensagem. Tente novamente. | Não se Aplica | | IMSG | Rejection | Mensagem Invalida – A mensagem enviada possui um formato inválido. | Não se Aplica | | PARS | Rejection | Erro na leitura da mensagem – Algum campo obrigatório não esta sendo enviado | Não se Aplica | | SECU | Rejection | Segurança – Algum erro no processo de segurança. A chave de criptografia pode não estar presente no terminal. | Não se Aplica | | INTP | Rejection | SAK Invalido – O SAK enviado não foi reconhecido | Não se Aplica | | RCPP | Rejection | Destinatario Invalido – O local para aonde a mensagem foi enviada esta invalida | Não se Aplica | | DPMG | Rejection | Mensagem Duplicada – Esta mensagem já foi recebida pela Stone. | Não se Aplica | | VERS | Rejection | Protocolo – A versão do protocolo enviada não é suportada. | Não se Aplica | | MSGT| Rejection | Tipo da Mensagem – o Message Type enviado não é reconhecido. | Não se Aplica |
{"_id":"59f0c519e28bbe00266bcfcf","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","category":"5845b77739950c1b002afe4d","user":"59de082aed35e800383f94b6","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-10-25T17:08:41.877Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":999,"body":"[block:api-header]\n{\n  \"title\": \"Via do Estabelecimento\"\n}\n[/block]\n| ID | | 123456789012345678901234567890123456789 |\n| -- | | --------------------------------------- |  \n| 1 | | STONE – Via Estabelecimento |\n| 2 | | VVVVVVVVVVVVVVVVVVVVVVV |\n| 3 | | ***************1234 DD/MM/YY HH:MM |\n| 4 | | EC:2100490717 AUT:\n| 6 | | DOC:012345624112016151100 |\n| 7 | | Stone Id:4598785265485698 |\n| 8 | | AC:XXXXXXXXXXXXXXXX XXX-YYY |\n| 9 | | AID: A000000003101005 |\n| 10 | | VISA CREDIT 3 APROVADO |\n| 11 | | CNE: XXXXXXXXXXXXXXXX |\n| 12 | | PARCELADO XXX JUROS: NN PARCELAS |\n| 13 | | TOTAL R$ 9,999,999,999.99 |\n| 14 | | TOTAL ESTORNO: R$ 9.999.999.999,99 |\n| 15 | | -------------------------------------- |\n| 16 | | NOME DO PORTADOR |\n| 17 | | RECONHEÇO E PAGAREI A DÍVIDA |\n| 18 | | AQUI REPRESENTADA |\n| 19 | | TRANSACAO APROVADA COM SENHA |\n[block:api-header]\n{\n  \"title\": \"Via do Portador\"\n}\n[/block]\n| ID | | 12345678901234567890123456789012345678 |\n| -- | | --------------------------------------- | \n| 1 | | STONE – VIA CLIENTE |\n| 2 | | VVVVVVVVVVVVVVVVVVVVVVV |\n| 3 | | 123456*********1234 DD/MM/YY HH:MM |\n| 6 | | DOC: 012345624112016151100 |\n| 20 | | AUT:000000 XXX-YYY |\n| 12 | | PARCELADO XXX JUROS: NN PARCELAS |\n| 13 | | TOTAL: R$ 9.999.999.999,99 |\n| 14 | | TOTAL ESTORNO: R$ 9.999.999.999,99 |\n| 21 | | SALDO DISPONIVEL: R$ 9.999.999,99 |","excerpt":"","slug":"exemplos-de-comprovantes","type":"basic","title":"Exemplos de Comprovantes","__v":0,"childrenPages":[]}

Exemplos de Comprovantes


[block:api-header] { "title": "Via do Estabelecimento" } [/block] | ID | | 123456789012345678901234567890123456789 | | -- | | --------------------------------------- | | 1 | | STONE – Via Estabelecimento | | 2 | | VVVVVVVVVVVVVVVVVVVVVVV | | 3 | | ***************1234 DD/MM/YY HH:MM | | 4 | | EC:2100490717 AUT: | 6 | | DOC:012345624112016151100 | | 7 | | Stone Id:4598785265485698 | | 8 | | AC:XXXXXXXXXXXXXXXX XXX-YYY | | 9 | | AID: A000000003101005 | | 10 | | VISA CREDIT 3 APROVADO | | 11 | | CNE: XXXXXXXXXXXXXXXX | | 12 | | PARCELADO XXX JUROS: NN PARCELAS | | 13 | | TOTAL R$ 9,999,999,999.99 | | 14 | | TOTAL ESTORNO: R$ 9.999.999.999,99 | | 15 | | -------------------------------------- | | 16 | | NOME DO PORTADOR | | 17 | | RECONHEÇO E PAGAREI A DÍVIDA | | 18 | | AQUI REPRESENTADA | | 19 | | TRANSACAO APROVADA COM SENHA | [block:api-header] { "title": "Via do Portador" } [/block] | ID | | 12345678901234567890123456789012345678 | | -- | | --------------------------------------- | | 1 | | STONE – VIA CLIENTE | | 2 | | VVVVVVVVVVVVVVVVVVVVVVV | | 3 | | 123456*********1234 DD/MM/YY HH:MM | | 6 | | DOC: 012345624112016151100 | | 20 | | AUT:000000 XXX-YYY | | 12 | | PARCELADO XXX JUROS: NN PARCELAS | | 13 | | TOTAL: R$ 9.999.999.999,99 | | 14 | | TOTAL ESTORNO: R$ 9.999.999.999,99 | | 21 | | SALDO DISPONIVEL: R$ 9.999.999,99 |
[block:api-header] { "title": "Via do Estabelecimento" } [/block] | ID | | 123456789012345678901234567890123456789 | | -- | | --------------------------------------- | | 1 | | STONE – Via Estabelecimento | | 2 | | VVVVVVVVVVVVVVVVVVVVVVV | | 3 | | ***************1234 DD/MM/YY HH:MM | | 4 | | EC:2100490717 AUT: | 6 | | DOC:012345624112016151100 | | 7 | | Stone Id:4598785265485698 | | 8 | | AC:XXXXXXXXXXXXXXXX XXX-YYY | | 9 | | AID: A000000003101005 | | 10 | | VISA CREDIT 3 APROVADO | | 11 | | CNE: XXXXXXXXXXXXXXXX | | 12 | | PARCELADO XXX JUROS: NN PARCELAS | | 13 | | TOTAL R$ 9,999,999,999.99 | | 14 | | TOTAL ESTORNO: R$ 9.999.999.999,99 | | 15 | | -------------------------------------- | | 16 | | NOME DO PORTADOR | | 17 | | RECONHEÇO E PAGAREI A DÍVIDA | | 18 | | AQUI REPRESENTADA | | 19 | | TRANSACAO APROVADA COM SENHA | [block:api-header] { "title": "Via do Portador" } [/block] | ID | | 12345678901234567890123456789012345678 | | -- | | --------------------------------------- | | 1 | | STONE – VIA CLIENTE | | 2 | | VVVVVVVVVVVVVVVVVVVVVVV | | 3 | | 123456*********1234 DD/MM/YY HH:MM | | 6 | | DOC: 012345624112016151100 | | 20 | | AUT:000000 XXX-YYY | | 12 | | PARCELADO XXX JUROS: NN PARCELAS | | 13 | | TOTAL: R$ 9.999.999.999,99 | | 14 | | TOTAL ESTORNO: R$ 9.999.999.999,99 | | 21 | | SALDO DISPONIVEL: R$ 9.999.999,99 |
{"_id":"59f0d191f5ecda00325294f5","project":"5845b77639950c1b002afe49","version":"5845b77639950c1b002afe4c","category":"5845b77739950c1b002afe4d","user":"59de082aed35e800383f94b6","updates":[],"next":{"pages":[],"description":""},"createdAt":"2017-10-25T18:01:53.378Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":999,"body":"[block:api-header]\n{\n  \"title\": \"Qual a estrutura seguida pela SDK Stone?\"\n}\n[/block]\n1. Providers: Todos os providers seguem o mesmo modelo. Toda escrita e leitura de comandos com o Pinpad, requisições de transações e ativações, conexões e etc, serão executadas dentro do SDK;\n2. Models: São \"\"modelos\"\" com propriedades de objetos como: transação, lojista, Pinpad e endereço do lojista.\n[block:api-header]\n{\n  \"title\": \"Como eu envio uma transação?\"\n}\n[/block]\n\"As transações são enviadas usando o método sendTransaction:withBlock do provider STNTransactionProvider. O método sendTransaction:withblock: deve receber um objeto STNTransactionModel como parâmetro.\nPara ver mais detalhes [Provedor Transação](doc:envio-de-transações) \n[block:api-header]\n{\n  \"title\": \"Como me comunico com o Pinpad?\"\n}\n[/block]\nPara realizar qualquer comunicação com o Pinpad é necessario criar uma sessão. Lembrando que a conexão com o dispositivo Bluetooth deve ser feita no menu de Ajustes do iOS.\nAntes de qualquer comunicação entre o aplicativo e o Pinpad, uma sessão deve ser estabelecida.\nConsigo me comunicar com mais de um Pinpad ao mesmo tempo?\nSim, é possivel conectar com mais de um Pinpad e então selecionar um no momento da transação.\n[block:api-header]\n{\n  \"title\": \"Quais modelos de Pinpads são homologados com a Stone?\"\n}\n[/block]\nA SDK Mobile iOS se comunica exclusivamente com Pinpads Bluetooth com Certificado MFI.\n\n[block:api-header]\n{\n  \"title\": \"O SDK Mobile iOS tem suporte a Pinpads com impressora?\"\n}\n[/block]\nNão, atualmente o SDK Mobile iOS não é compatível com Pinpads com impressora.\n[block:api-header]\n{\n  \"title\": \"Como faço um cancelamento?\"\n}\n[/block]\nO responsável pelo cancelamento das transações é método cancelTransaction do provider STNCancellationProvider, que recebe, como parâmetro, o objeto de transação STNTransactionModel.\n[block:api-header]\n{\n  \"title\": \"Como consigo uma chave de acesso para iniciar a integração?\"\n}\n[/block]\nPara acessar o ambiente de homologação você deve enviar um e-mail para o integracoes@stone.com.br com as seguintes informações:\n- O nome da empresa parceira que realizará transações na Stone;\n- O CNPJ da empresa;\n- Uma descrição sucinta do negócio parceiro (em uma frase);\n- E-mail para onde a credencial deve ser enviada.\"\n[block:api-header]\n{\n  \"title\": \"Quais as bandeiras aceitas?\"\n}\n[/block]\n- Visa\n-  Mastercard\n-  ELO\n-  ALELO\n[block:api-header]\n{\n  \"title\": \"Como consigo consultar uma transação?\"\n}\n[/block]\nO provider STNTransactionListProvider possui os métodos, listTransactions: e listTransactionsByPan:.\nO método listTransactions: retorna um NSArray com as transações (STNTransactionModel) passadas no aplicativo. A última transação passada é sempre a primeira no array.\nPara obter as transações filtrando por um cartão especifico, o método listTransactionsByPan: deve ser usado. Esse método solicita a inserção de um cartão com chip e retorna um array de transações dentro de um bloco.\n[block:api-header]\n{\n  \"title\": \"Preciso usar o SAK?\"\n}\n[/block]\nNão, o SAK é uma informação utilizada pelo SDK iOS conforme a ativação através do Stonecode.\n[block:api-header]\n{\n  \"title\": \"Como ativo a solução de SDK iOS no cliente final?\"\n}\n[/block]\nDepois de finalizada a integração/desenvolvimento no ambiente de testes, usando um Stonecode de teste, você pode solicitar ao representante comercial um stonecode de produção.\nCaso você não tenha um representante comercial, é possível fazer essa solicitação pelo canal: meajuda@stone.com.br\n[block:api-header]\n{\n  \"title\": \"Existe um padrão que o comprovante deve seguir?\"\n}\n[/block]\nSim, existe um padrão para o comprovante que é enviado por e-mail, porém o cliente é livre para desenvolver o seu próprio layout.\n[block:api-header]\n{\n  \"title\": \"Existe um fluxo para aviso prévio de atualização das soluções?\"\n}\n[/block]\nAtualmente não temos um fluxo de aviso prévio das atualizações, porém estamos desenvolvendo isso. Para se manter atualizado das novas versões, acompanhe sempre as mudanças nos releases da nossa documentação.\n\nPara a lista de possíveis retornos, acesse a nossa documentação em: http://sdkios.stone.com.br/docs/c%C3%B3digos-de-erro","excerpt":"","slug":"dúvidas-frequentes","type":"basic","title":"FAQ - Dúvidas frequentes","__v":0,"childrenPages":[]}

FAQ - Dúvidas frequentes


[block:api-header] { "title": "Qual a estrutura seguida pela SDK Stone?" } [/block] 1. Providers: Todos os providers seguem o mesmo modelo. Toda escrita e leitura de comandos com o Pinpad, requisições de transações e ativações, conexões e etc, serão executadas dentro do SDK; 2. Models: São ""modelos"" com propriedades de objetos como: transação, lojista, Pinpad e endereço do lojista. [block:api-header] { "title": "Como eu envio uma transação?" } [/block] "As transações são enviadas usando o método sendTransaction:withBlock do provider STNTransactionProvider. O método sendTransaction:withblock: deve receber um objeto STNTransactionModel como parâmetro. Para ver mais detalhes [Provedor Transação](doc:envio-de-transações) [block:api-header] { "title": "Como me comunico com o Pinpad?" } [/block] Para realizar qualquer comunicação com o Pinpad é necessario criar uma sessão. Lembrando que a conexão com o dispositivo Bluetooth deve ser feita no menu de Ajustes do iOS. Antes de qualquer comunicação entre o aplicativo e o Pinpad, uma sessão deve ser estabelecida. Consigo me comunicar com mais de um Pinpad ao mesmo tempo? Sim, é possivel conectar com mais de um Pinpad e então selecionar um no momento da transação. [block:api-header] { "title": "Quais modelos de Pinpads são homologados com a Stone?" } [/block] A SDK Mobile iOS se comunica exclusivamente com Pinpads Bluetooth com Certificado MFI. [block:api-header] { "title": "O SDK Mobile iOS tem suporte a Pinpads com impressora?" } [/block] Não, atualmente o SDK Mobile iOS não é compatível com Pinpads com impressora. [block:api-header] { "title": "Como faço um cancelamento?" } [/block] O responsável pelo cancelamento das transações é método cancelTransaction do provider STNCancellationProvider, que recebe, como parâmetro, o objeto de transação STNTransactionModel. [block:api-header] { "title": "Como consigo uma chave de acesso para iniciar a integração?" } [/block] Para acessar o ambiente de homologação você deve enviar um e-mail para o integracoes@stone.com.br com as seguintes informações: - O nome da empresa parceira que realizará transações na Stone; - O CNPJ da empresa; - Uma descrição sucinta do negócio parceiro (em uma frase); - E-mail para onde a credencial deve ser enviada." [block:api-header] { "title": "Quais as bandeiras aceitas?" } [/block] - Visa - Mastercard - ELO - ALELO [block:api-header] { "title": "Como consigo consultar uma transação?" } [/block] O provider STNTransactionListProvider possui os métodos, listTransactions: e listTransactionsByPan:. O método listTransactions: retorna um NSArray com as transações (STNTransactionModel) passadas no aplicativo. A última transação passada é sempre a primeira no array. Para obter as transações filtrando por um cartão especifico, o método listTransactionsByPan: deve ser usado. Esse método solicita a inserção de um cartão com chip e retorna um array de transações dentro de um bloco. [block:api-header] { "title": "Preciso usar o SAK?" } [/block] Não, o SAK é uma informação utilizada pelo SDK iOS conforme a ativação através do Stonecode. [block:api-header] { "title": "Como ativo a solução de SDK iOS no cliente final?" } [/block] Depois de finalizada a integração/desenvolvimento no ambiente de testes, usando um Stonecode de teste, você pode solicitar ao representante comercial um stonecode de produção. Caso você não tenha um representante comercial, é possível fazer essa solicitação pelo canal: meajuda@stone.com.br [block:api-header] { "title": "Existe um padrão que o comprovante deve seguir?" } [/block] Sim, existe um padrão para o comprovante que é enviado por e-mail, porém o cliente é livre para desenvolver o seu próprio layout. [block:api-header] { "title": "Existe um fluxo para aviso prévio de atualização das soluções?" } [/block] Atualmente não temos um fluxo de aviso prévio das atualizações, porém estamos desenvolvendo isso. Para se manter atualizado das novas versões, acompanhe sempre as mudanças nos releases da nossa documentação. Para a lista de possíveis retornos, acesse a nossa documentação em: http://sdkios.stone.com.br/docs/c%C3%B3digos-de-erro
[block:api-header] { "title": "Qual a estrutura seguida pela SDK Stone?" } [/block] 1. Providers: Todos os providers seguem o mesmo modelo. Toda escrita e leitura de comandos com o Pinpad, requisições de transações e ativações, conexões e etc, serão executadas dentro do SDK; 2. Models: São ""modelos"" com propriedades de objetos como: transação, lojista, Pinpad e endereço do lojista. [block:api-header] { "title": "Como eu envio uma transação?" } [/block] "As transações são enviadas usando o método sendTransaction:withBlock do provider STNTransactionProvider. O método sendTransaction:withblock: deve receber um objeto STNTransactionModel como parâmetro. Para ver mais detalhes [Provedor Transação](doc:envio-de-transações) [block:api-header] { "title": "Como me comunico com o Pinpad?" } [/block] Para realizar qualquer comunicação com o Pinpad é necessario criar uma sessão. Lembrando que a conexão com o dispositivo Bluetooth deve ser feita no menu de Ajustes do iOS. Antes de qualquer comunicação entre o aplicativo e o Pinpad, uma sessão deve ser estabelecida. Consigo me comunicar com mais de um Pinpad ao mesmo tempo? Sim, é possivel conectar com mais de um Pinpad e então selecionar um no momento da transação. [block:api-header] { "title": "Quais modelos de Pinpads são homologados com a Stone?" } [/block] A SDK Mobile iOS se comunica exclusivamente com Pinpads Bluetooth com Certificado MFI. [block:api-header] { "title": "O SDK Mobile iOS tem suporte a Pinpads com impressora?" } [/block] Não, atualmente o SDK Mobile iOS não é compatível com Pinpads com impressora. [block:api-header] { "title": "Como faço um cancelamento?" } [/block] O responsável pelo cancelamento das transações é método cancelTransaction do provider STNCancellationProvider, que recebe, como parâmetro, o objeto de transação STNTransactionModel. [block:api-header] { "title": "Como consigo uma chave de acesso para iniciar a integração?" } [/block] Para acessar o ambiente de homologação você deve enviar um e-mail para o integracoes@stone.com.br com as seguintes informações: - O nome da empresa parceira que realizará transações na Stone; - O CNPJ da empresa; - Uma descrição sucinta do negócio parceiro (em uma frase); - E-mail para onde a credencial deve ser enviada." [block:api-header] { "title": "Quais as bandeiras aceitas?" } [/block] - Visa - Mastercard - ELO - ALELO [block:api-header] { "title": "Como consigo consultar uma transação?" } [/block] O provider STNTransactionListProvider possui os métodos, listTransactions: e listTransactionsByPan:. O método listTransactions: retorna um NSArray com as transações (STNTransactionModel) passadas no aplicativo. A última transação passada é sempre a primeira no array. Para obter as transações filtrando por um cartão especifico, o método listTransactionsByPan: deve ser usado. Esse método solicita a inserção de um cartão com chip e retorna um array de transações dentro de um bloco. [block:api-header] { "title": "Preciso usar o SAK?" } [/block] Não, o SAK é uma informação utilizada pelo SDK iOS conforme a ativação através do Stonecode. [block:api-header] { "title": "Como ativo a solução de SDK iOS no cliente final?" } [/block] Depois de finalizada a integração/desenvolvimento no ambiente de testes, usando um Stonecode de teste, você pode solicitar ao representante comercial um stonecode de produção. Caso você não tenha um representante comercial, é possível fazer essa solicitação pelo canal: meajuda@stone.com.br [block:api-header] { "title": "Existe um padrão que o comprovante deve seguir?" } [/block] Sim, existe um padrão para o comprovante que é enviado por e-mail, porém o cliente é livre para desenvolver o seu próprio layout. [block:api-header] { "title": "Existe um fluxo para aviso prévio de atualização das soluções?" } [/block] Atualmente não temos um fluxo de aviso prévio das atualizações, porém estamos desenvolvendo isso. Para se manter atualizado das novas versões, acompanhe sempre as mudanças nos releases da nossa documentação. Para a lista de possíveis retornos, acesse a nossa documentação em: http://sdkios.stone.com.br/docs/c%C3%B3digos-de-erro
{"_id":"585abecb4a119e37009dac76","slug":"sdk","type":"basic","link_external":false,"next":{"pages":[],"description":""},"version":"5845b77639950c1b002afe4c","__v":0,"api":{"results":{"codes":[{"language":"json","code":"{}","name":"","status":200},{"code":"{}","name":"","status":400,"language":"json"}]},"settings":"","auth":"required","params":[],"url":""},"excerpt":"","isReference":false,"link_url":"","title":"SDK iOS","updates":[],"user":"57ea79f61780cd170064f273","body":"> Download do último release pode ser feito em [releases.](https://github.com/stone-pagamentos/sdk-ios-v2/releases)\n\n> GITHUB [https://github.com/stone-pagamentos/sdk-ios-v2](https://github.com/stone-pagamentos/sdk-ios-v2)","category":"585abe736c57951900c0f19f","githubsync":"","project":"5845b77639950c1b002afe49","sync_unique":"","createdAt":"2016-12-21T17:41:31.261Z","hidden":false,"order":0,"parentDoc":null,"childrenPages":[]}

SDK iOS


> Download do último release pode ser feito em [releases.](https://github.com/stone-pagamentos/sdk-ios-v2/releases) > GITHUB [https://github.com/stone-pagamentos/sdk-ios-v2](https://github.com/stone-pagamentos/sdk-ios-v2)
> Download do último release pode ser feito em [releases.](https://github.com/stone-pagamentos/sdk-ios-v2/releases) > GITHUB [https://github.com/stone-pagamentos/sdk-ios-v2](https://github.com/stone-pagamentos/sdk-ios-v2)