Integração POS
Este guia descreve o fluxo de integração com o aplicativo Vender, desenvolvido pela SOPAGUE para dispositivos POS modelos GPOS 700X e GPOS 720.
O aplicativo gerencia todo o fluxo de pagamento, incluindo vínculo com o cliente, captura de pagamento e impressão do comprovante.
Visão Geral
- Integração via Intent Android (
startActivityForResult). - Suporte a operações de débito, crédito, parcelado, PIX e cancelamento.
- Retorno da transação via método
onActivityResult.
Pré-requisitos
- POS compatível com aplicativo Vender instalado.
- Sistema operacional Android 4.4 (KitKat) ou superior.
- Acesso à internet para transações online.
- Permissão de uso de
startActivityForResult.
Parâmetros de Integração
Obrigatórios
| Parâmetro | Tipo | Descrição |
|---|---|---|
TRANSACTION_VALUE | String | Valor da transação em centavos (ex: R$120,00 → 12000). |
OPERATION_TYPE | String | Tipo de operação (veja lista abaixo). |
Opcionais
| Parâmetro | Tipo | Descrição |
|---|---|---|
INSTALMENTS | String | Parcelas para crédito parcelado ("1" a "12"). |
NSU | String | NSU da transação que deseja cancelar. |
TRANSACTION_DATE | String | Data da transação a cancelar (ddMMyyyy, ex: 30072025). |
Operações Suportadas
| Operação | Valor para OPERATION_TYPE |
|---|---|
| Débito | DEBIT |
| Crédito à vista | CREDIT |
| Crédito parcelado | CREDIT_INSTALLMENT |
| Pix | PIX |
| Cancelamento de débito | CANCELLATION_DEBIT |
| Cancelamento de crédito | CANCELLATION_CREDIT |
Exemplos de Integração
Venda
Intent intent = new Intent("com.sopague.START");
intent.putExtra("TRANSACTION_VALUE", "12000");
intent.putExtra("OPERATION_TYPE", "DEBIT");
startActivityForResult(intent, 1113);
Cancelamento
Intent intent = new Intent("com.sopague.START");
intent.putExtra("OPERATION_TYPE", "CANCELLATION_DEBIT");
intent.putExtra("NSU", "123456");
intent.putExtra("TRANSACTION_DATE", "30072025");
startActivityForResult(intent, 1113);
Recebendo a resposta
O resultado da transação será retornado via onActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1113 && resultCode == RESULT_OK && data != null) {
// Transação aprovada
String nsu = data.getExtras().getString("NSU");
// Em uma transação de cancelamento você também receberá o NSU_CANCELLATION
String nsuCancel = data.getExtras().getString("NSU_CANCELLATION");
Log.d("INTEGRAÇÃO", "Transação concluída. NSU: " + nsu);
setResult(RESULT_OK, data);
finish();
} else if (requestCode == 1113 && resultCode == RESULT_CANCELED && data != null) {
// Transação cancelada ou erro
String error = data.getExtras().getString("ERROR");
Log.e("INTEGRAÇÃO", "Erro na transação: " + error);
setResult(RESULT_CANCELED, data);
finish();
}
}
Considerações Finais
- Sempre envie os valores em centavos.
- O aplicativo Vender deve estar instalado no dispositivo POS.
- Extras de retorno possíveis:
NSU→ Número sequencial da transação (sucesso).NSU_CANCELLATION→ NSU da transação de cancelamento.ERROR→ Mensagem de erro (falha).
- Para simular erro, envie o valor
3333. - Em homologação (HMG), a leitura de cartão físico não está habilitada (as transações são simuladas).
Para dúvidas ou problemas, acesse a seção de suporte no