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