Pular para o conteúdo principal

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âmetroTipoDescrição
TRANSACTION_VALUEStringValor da transação em centavos (ex: R$120,00 → 12000).
OPERATION_TYPEStringTipo de operação (veja lista abaixo).

Opcionais

ParâmetroTipoDescrição
INSTALMENTSStringParcelas para crédito parcelado ("1" a "12").
NSUStringNSU da transação que deseja cancelar.
TRANSACTION_DATEStringData da transação a cancelar (ddMMyyyy, ex: 30072025).

Operações Suportadas

OperaçãoValor para OPERATION_TYPE
DébitoDEBIT
Crédito à vistaCREDIT
Crédito parceladoCREDIT_INSTALLMENT
PixPIX
Cancelamento de débitoCANCELLATION_DEBIT
Cancelamento de créditoCANCELLATION_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 Enoq.