Pagamento - Rota transacional

Rota direcionada a autorização de pagamentos, deve ser chamada uma vez para cada transação realizada, juntamente do payload dedicado ao tipo de pagamento desejado.

👍

Exemplo:

POST - localhost:8001/api/Pay

Exemplo de request:


{
  "amount": 10, // number,
  "hasAlcoholicDrink": false, // boolean,
  "installment": {
    "number": 0,//number
    "type": 0 //number
  },
  "accountType":"debit" //string
}

{
  "amount": 0, // number,
  "hasAlcoholicDrink": false, // boolean,
  "installment": {
    "number": 1,//number
    "type": 1 //number
  },
  "accountType":"credit" //string
}

{
  "amount": 0, // number,
  "hasAlcoholicDrink": false, // boolean,
  "installment": {
    "number": 2,//number
    "type":2 //number
  },
  "accountType":"credit" //string
}

{
  "amount": 0, // number,
  "hasAlcoholicDrink": false, // boolean,
  "installment": {
    "number": 2,//number
    "type":3 //number
  },
  "accountType":"credit" //string
}

Tags da Mensagem de request

CampoTipoObservação
amountfloatValor de captura do pagamento - Valor da Transação
accountTypeStringUndefined: - deixa a definição de tipo de transação para o usuário escolher no pinpad;
Debit: define a transação para Débito/Voucher;
Credit: define a transação para Crédito;
installmentObjectObjeto que configura os valores de transações Parceladas.
typeintegerTipo do parcelamento:
Sem Parcelamento: 1
Merchant : 2 - Parcelado lojista (Sem juros para o cliente)
Issuer : 3 - Parcelado emissor (Com juros para o cliente)
numberintegerNúmero de parcelas da transação para os casos de Merchant e Issuer.
Credito é possível parcelas de 2 a 18 vezes.
Debito = 0
Credito á vista = 1
OBS: Parcelado de 13 a 18x, tem valor mínimo por parcela de 10 reais
hasAlcoholicDrinkinteger Tem como padrão o valor false. informe true em caso de bloqueio de produtos Alcoólicos ou Cigarros.

Segundo o normativo PAT (Programa de Alimentação do Trabalhador) é vetado a venda de produtos alcoólicos ou cigarros com cartões Voucher (refeição, alimentação, cultura e etc..)

Exemplo de response:

Exemplo de payload que retorna para os tipos de transação, com essas informações é possível montar o cupom de venda para impressão.

{
    "acquirerTransactionKey": "33431075130192",
    "aid": "A0000000041234",
    "amount": 11,
    "arqc": "9C835CC22C6216FA",
    "availableBalance": null,
    "brandName": "MASTER CREDITO ",
    "cardholderName": "                          ",
    "initiatorTransactionKey": "21082023215752",
    "installmentType": 1,
    "totalNumberOfPayments": 0,
    "maskedPrimaryAccountNumber": "************1234",
    "systemSpecifications": null,
    "transactionDateTime": "2023-08-21T21:58:01",
    "transactionType": 1,
    "clientVia": "                 STONE                 ~           MASTER CREDITOd           ~     ************1234  Via Cliente     ~                                       ~          21/08/2023 21:58:01          ~            Valor: R$ 11.00            ~          DOC: 21082023215752          ~       Stone Id: 33431075130192        ~",
    "merchantVia": "                 STONE                 ~           MASTER CREDITO           ~ ************1234  Via Estabelecimento ~       Data: 21/08/2023 21:58:01       ~            Valor: R$ 11.00            ~          DOC: 21082023215752          ~       Stone Id: 33431075130192        ~",
    "cardReadingType": 8,
    "cardNeedsPassword": false,
    "authorisationCode": "130192",
    "messageDisplay": "Aprovado",
    "isVoucher": false,
    "merchantDocument": "11.999.222/0001-22",
    "merchantAddress": "Avenida Doutora Ruth, 1234",
    "merchantCity": "São Paulo",
    "merchantZipCode": "05425-070",
    "totalAmountReversal": null,
    "merchantName": "Integracao Partner Program",
    "cne": null,
    "retrievalReferenceNumber": null,
    "productBrandCard": "MASTER  ",
    "stoneCode": "106199999"
}
{
    "acquirerTransactionKey": "33431075130191",
    "aid": "A0000000031010",
    "amount": 10,
    "arqc": "45385EA9886F6E37",
    "availableBalance": null,
    "brandName": "VISA CREDITO",
    "cardholderName": "                          ",
    "initiatorTransactionKey": "21082023215232",
    "installmentType": 2,
    "totalNumberOfPayments": 1,
    "maskedPrimaryAccountNumber": "************8842",
    "systemSpecifications": null,
    "transactionDateTime": "2023-08-21T21:52:40",
    "transactionType": 2,
    "clientVia": "                 STONE                 ~             Credito Visa              ~     ************2233  Via Cliente     ~                                       ~          21/08/2023 21:52:40          ~            Valor: R$ 10.00            ~              Parcelas: 1              ~          DOC: 21082023215232          ~       Stone Id: 33431075130191        ~",
    "merchantVia": "                 STONE                 ~             Credito Visa              ~ ************2242  Via Estabelecimento ~       Data: 21/08/2023 21:52:40       ~            Valor: R$ 10.00            ~              Parcelas: 1              ~          DOC: 21082023215232          ~       Stone Id: 33431075130191        ~",
    "cardReadingType": 8,
    "cardNeedsPassword": false,
    "authorisationCode": "130191",
    "messageDisplay": "Aprovado",
    "isVoucher": false,
    "merchantDocument": "11.999.222/0001-22",
    "merchantAddress": "Avenida Doutora Ruth , 1111",
    "merchantCity": "São Paulo",
    "merchantZipCode": "05425-070",
    "totalAmountReversal": null,
    "merchantName": "Integracao Partner Program",
    "cne": null,
    "retrievalReferenceNumber": "111111111111111",
    "productBrandCard": "VISA CREDITO    ",
    "stoneCode": "106199999"
}
{
    "acquirerTransactionKey": "String",
    "aid": "String",
    "amount": Number ,
    "arqc": "String",
    "availableBalance": null,
    "brandName": "string",
    "cardholderName": "string",
    "initiatorTransactionKey": "string",
    "installmentType": number,
    "totalNumberOfPayments": number,
    "maskedPrimaryAccountNumber": String,
    "systemSpecifications": String - null,
    "transactionDateTime": "YYYY-MM-DDTHH:mm:SS",
    "transactionType": number,
    "clientVia": string,
    "cardReadingType":Integer,
    "cardNeedsPassword": boolean,
    "authorisationCode": String,
    "displayMessage": String,
    "IsVoucher": boolean,
}

Tags da Mensagem de Response

CampoTipo Observação
acquirerTransactionKeyStringIdentificador único da transação ( Identificador gerado pelo autorizador, único para cada transação. Utiliza-se a mesma ATK entre os eventos;
aidStringIdentificador da aplicação. Apenas para transações com chip/NFC/EMV; ( Código único gerado pelo AutoTEF para identificar e determinar a inicialização da transação. Deve ser formatado seguindo a seguinte regra: nnnnnnddmmyyyyHHMMSS sendo que nnnnnn=número sequencial gerado pelo AutoTEF.)
amountIntegerValor da transação;
arqcStringcriptograma ARQC para efetuar a transação em modo online;
availableBalanceDecimalSaldo disponível para transações de voucher;
brandNameStringMarca e modalidade da bandeira,
exemplo: “MASTER CREDITO”
cardholderNameStringNome do titular do cartão
initiatorTransactionKeyStringITK - ID único enviado pela SDK/Slim para o Autorizador Stone.
InstallmenttypeIntegerTipo de parcela:
Sem Parcelamento: 1
Merchant = 2 - Parcelado por decisão do estabelecimento comercial.
Issuer = 3 - Parcelado com juros, decisão do emissor.
totalNumberOfPaymentsIntegerNúmero de parcelas
maskedPrimaryAccountNumberStringDados do Pan do cartão mascarado.
systemSpecificationsStringespecificação do sistema.
transactionDateTimeStringData e hora da transação.
transactionTypeIntegerIndica o tipo da transação.
Debit/Voucher = 1,
Credit = 2
ClienteViaStringRetorno para construção do cupom para o cliente .
MerchantViaStringRetorno para construção do cupom para estabelecimento.
cardReadingTypeIntegerModo de entrada da transação/cartão;
Segue modelos de entrada transação possíveis:
Undefined = 0,
MagneticStrip = 4, tarja magnética;
Chip = 5, ICC
Contactless = 7, NFC modo Tarja
EMVProximityReader = 8, NFC
cardNeedsPasswordBooleanCartão precisa de senha ou não.
False = Não necessita de senha;
True = Necessita de senha;
AuthorisationCodeStringCódigo de autorização retornado pelo emissor do cartão
messageDisplayStringMensagem do retorno do autorizador.
IsVoucherBooleanIndica se o cartão é Voucher (Sodexo, VR, Ticket ou Alelo) que não é seu caso, já que usa apenas débito/crédito.
False= Não é cartão voucher;
True = Cartão Voucher.
merchantNameStringNome do estabelecimento
merchantDocumentStringCnpj do estabelecimento
merchantAddressStringEndereço do estabelecimento
merchantCityStringCidade do estabelecimento
merchantZipCodeStringCEP do estabelecimento
totalNumberOfPaymentsIntegertotal de parcelas.
totalAmountReversalStringValor de reversão do valor da bandeira Ticket.
CNEStringCardholder Name Extended (Tag EMV 9F0B). Mandatório na via do estabelecimento em transação de autorização chip.
retrievalReferenceNumberStringRRN (RetrievalReferenceNumber): Retorna o conteúdo do campo. Mandatório em todas as vias, autorização/estorno, chip/tarja e cliente e EC. IssuerTransactionIdentification .
productBrandCardStringProduto da bandeira utilizada na transação.
stoneCodeStringCódigo único de identificador do estabelecimento na Stone.

Status:

👍

Status 200 - OK

{
    "code": "TECH",
    "reason": "9109",
    "displayMessage": "Erro no sistema"
}
{
    "code": "DECL",
    "reason": "1016",
    "displayMessage": "Não autorizada"
}
{
    "Code": String,
    "Reason": String,
    "DisplayMessage": String
}

❗️

Status 400 - Retorno do autorizador.

{
  "Message": "First call the activate router or check connections in endpoint 'api/Healthcheck'.",
  "StatusCode": 500
}

❗️

Status 500 - First call the activate router or check connections in endpoint 'api/Healthcheck'.

Cupom via Estabelecimento construído na prática para PDV:

**Resultado**Presença
Dados de MerchantObrigatória
Stone - Via EstabelecimentoObrigatória
Nome da BandeiraObrigatória
Produto Modalidade EntradaObrigatória
PAN Mascarado Data/HoraObrigatória
SC:xxxxxxxxx AUT:000000Obrigatória
StoneId: xxxxxxxxxxxxObrigatória
PDV: [Parâmetro de responsabilidade do parceiro]
{
]
Obrigatória
DOC: [[NSUPARCEIRO]] XXX-YYYObrigatória
AC:XXXXXXXXXXXXXXXXObrigatória
AID: A000000003101005Obrigatória
RRN:XXXXXXXXX
CNE: XXXXXXXXXXXXXXXX
Condicional a bandeira Ticket.
TOTAL R$ 9,999,999,999.99Obrigatória
---------------------------------------------Obrigatória
NOME DO PORTADORObrigatória
RECONHEÇO E PAGAREI A DÍVIDA
AQUI REPRESENTADA
Obrigatória
TRANSAÇÃO APROVADA COM SENHACondicional entrymode e a necessidade
de senha.

Cupom via Estabelecimento reduzido na prática:

LinhaResultadoPresença
1STONE – Via EstabelecimentoObrigatória
2Nome da BandeiraObrigatória
23Bandeira Produto EntradaObrigatória
3PAN mascarado Data/HoraObrigatória
4SC:2100490717 AUT:000000Obrigatória
7Stone ID:012345624112016151100Obrigatória
6DOC: [[NSUPARCEIRO]] XXX-YYYObrigatória
13TOTAL R$ 9,999,999,999.99Obrigatória
15-------------------------------------------------Obrigatória
16NOME DO PORTADORObrigatória
17RECONHEÇO E PAGAREI A DÍVIDA
AQUI REPRESENTADA
Obrigatória
19TRANSAÇÃO APROVADA COM SENHACondicional entrymode e a necessidade
de senha

Cupom via portador construído na prática:

LinhaResultadoPresença
22Dados de MerchantObrigatória
1STONE – VIA CLIENTEObrigatória
2Nome da BandeiraObrigatória
23Bandeira Produto EntradaObrigatória
3PAN Mascarado data/horaObrigatória
7Stone ID: 012345624112016151100Obrigatória
6DOC: [[NSUPARCEIRO]] XXX-YYYObrigatória
4SC: XXXXXXXXXXXXXXXXX AUT:000000Obrigatória
13TOTAL: R$ 9.999.999.999,99Obrigatória
19TRANSAÇÃO APROVADA COM SENHAObrigatória
21SALDO DISPONÍVEL: R$ 9.999.999,99Obrigatória

🚧

Todos os valores que tiverem [[***PARCEIRO]] deve ser armazenado e enviado pelo parceiro.