Serviço responsável por realizar o processamento de pagamentos por meio de cartão de crédito.
https://api.digpay.com.br/Payment
Exemplos de código
Confira nos exemplos abaixo como esse serviço deve ser consumido em sua aplicação.
string url = "https://api.digpay.com.br/Payment"
// O exemplo do objeto completo está detalhado abaixo na sessão "Conteúdo de Envio".
string json = "{n "IsSandbox": true,n ...}";
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
httpWebRequest.Headers.Add("X-API-KEY", "[INFORME_SEU_TOKEN]");
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
using (var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse())
{
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
Console.Write(streamReader.ReadToEnd());
}
}
var request = require("request");
var options = { method: 'POST',
url: 'https://api.digpay.com.br/Payment',
headers: { 'x-api-key': '[INFORME_SEU_TOKEN]', 'content-type': 'application/json' },
// O exemplo do objeto completo está detalhado abaixo na sessão "Conteúdo de Envio".
body: "{n "IsSandbox": true,n ...}" };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
require 'uri'
require 'net/http'
url = URI("https://api.digpay.com.br/Payment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request["x-api-key"] = '[INFORME_SEU_TOKEN]'
# O exemplo do objeto completo está detalhado abaixo na sessão "Conteúdo de Envio".
request.body = "{n "IsSandbox": true,n ...}"
response = http.request(request)
puts response.read_body
// O exemplo do objeto completo está detalhado abaixo na sessão "Conteúdo de Envio".
var data = "{n "IsSandbox": true,n ...}";
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("POST", "https://api.digpay.com.br/Payment");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("x-api-key", "[INFORME_SEU_TOKEN]");
xhr.send(data);
import requests
url = "https://api.digpay.com.br/Payment"
# O exemplo do objeto completo está detalhado abaixo na sessão "Conteúdo de Envio".
payload = "{n "IsSandbox": true,n ...}"
headers = {
'content-type': "application/json",
'x-api-key': "[INFORME_SEU_TOKEN]"
}
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)
String url = "https://api.digpay.com.br/Payment";
// O exemplo do objeto completo está detalhado abaixo na sessão "Conteúdo de Envio".
String payload = "{n "IsSandbox": true,n ...}";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Content-Length", String.valueOf(payload.length()));
con.setRequestProperty("X-API-KEY", "[INFORME_SEU_TOKEN]");
OutputStream os = con.getOutputStream();
os.write(payload.getBytes());
var request = URLRequest(url: 'https://api.digpay.com.br/Payment')
request.setValue("[INFORME_SEU_TOKEN]", forHTTPHeaderField: "X-API-KEY")
request.httpMethod = "POST"
// O exemplo do objeto completo está detalhado abaixo na sessão "Conteúdo de Envio".
let payload: [String: Any] = ["{n "IsSandbox": true,n ...}"]
let jsonData = try? JSONSerialization.data(withJSONObject: json)
request.httpBody = jsonData
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {
print(error?.localizedDescription ?? "No data")
return
}
let responseJSON = try? JSONSerialization.jsonObject(with: data, options: [])
if let responseJSON = responseJSON as? [String: Any] {
print(responseJSON)
}
}
task.resume()
// O exemplo do objeto completo está detalhado abaixo na sessão "Conteúdo de Envio".
$payload = array(
'FormaPagamento' => 1,
...
);
$opts = array(
'http'=>array(
'method'=>"POST",
'header'=>"X-API-KEY: [INFORME_SEU_TOKEN]rn" .
"Content-type: application/jsonrn",
'content'=> json_encode($payload)
)
);
$context = stream_context_create($opts);
$result = file_get_contents('https://api.digpay.com.br/Payment', false, $context);
if ($result === FALSE) { /* Handle error */ }
var_dump($result);
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.digpay.com.br/Payment"
payload := strings.NewReader("{n "IsSandbox": true,n ...}");
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
req.Header.Add("x-api-key", "[INFORME_SEU_TOKEN]")
req.Header.Add("Host", "payment.safe2pay.com.br")
req.Header.Add("Connection", "keep-alive")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
}
curl --request POST
--url https://api.digpay.com.br/Payment
--header 'content-type: application/json'
--header 'x-api-key: [INFORME_SEU_TOKEN]'
# O exemplo do objeto completo está detalhado abaixo na sessão "Conteúdo de Envio".
--data "{n "IsSandbox": true,n ...}"
Estrutura do conteúdo de envio
Confira nos exemplos abaixo a estrutura do conteúdo de envio desse serviço que será enviado no body da requisição.
| Atributo | Tipo | Descrição | Ocorr. | Tam. |
|---|---|---|---|---|
| IsSandbox | Boolean | Identifica se a transação vai ser realizada em ambiente sandbox ou não. Quando True deve-se obrigatoriamente informar a chave de API de Sandbox | 1-1 | – |
| Application | String | Use para identificar suas aplicações nas transações. Ex: APLICAÇÃO_TESTE_V1 | 1-1 | 100 |
| Vendor | String | Nome do vendedor que será vinculado a essa transação. Ex: João da Silva | 0-1 | 200 |
| CallbackUrl | String | URL de notificações de mudança de status da transação. Ex: https://callbacks.exemplo.com.br/api/Notify | 0-1 | 200 |
| PaymentMethod | String | Informar o código da forma de pagamento Cartão de crédito. Informar o valor: 2 – Cartão de crédito | 1-1 | – |
| Reference | String | Use para identificar suas transações. Ex: REFERENCIA_TESTE_V1 | 0-1 | 60 |
| ShouldUseAntiFraud | Boolean | Use para identificar se a transação deve ou não passar pela análise do antifraude. No seu painel deve estar sinalizado que a análise será “por transação”. Ao enviar como falso, você está assumindo o risco de chargeback. Ex: false | 0-1 | – |
| Customer | Object | Dados do comprador. | 1-1 | – |
| Name | String | Nome do comprador. Ex: João da Silva | 1-1 | 200 |
| Identity | String | Documento do comprador Ex: 31037942000178 | 1-1 | 14 |
| String | Email do comprador Ex: contato@dominio.com.br | 0-1 | 150 | |
| Phone | String | Telefone do comprador Ex: 5199999999 | 1-1 | 150 |
| Address | Object | Dados de endereço comprador. | 1-1 | – |
| ZipCode | String | CEP do endereço do comprador Ex: 90670090 | 1-1 | 8 |
| Street | String | Logradouro do endereço do comprador Ex: Av. Princesa Isabel | 1-1 | 150 |
| Number | String | Número do endereço do comprador Ex: 123 | 1-1 | 15 |
| Complement | String | Complemento do endereço do comprador Ex: Sala 801 | 0-1 | 150 |
| District | String | Bairro do endereço do comprador Ex: Higienopolis | 1-1 | 60 |
| StateInitials | String | UF do endereço do comprador Ex: RS | 1-1 | 2 |
| CityName | String | Cidade do endereço do comprador Ex: Porto Alegre | 1-1 | 200 |
| CountryName | String | Pais do endereço do comprador Ex: Brasil | 1-1 | 200 |
| Products | Array | Lista dos produtos nessa transação. | 1-999 | – |
| Products[i].Code | String | Codigo do produto nessa transação. Ex: 123 | 1-1 | 50 |
| Products[i].Description | String | Descrição do produto nessa transação. Ex: Camisa branca | 1-1 | 200 |
| Products[i].UnitPrice | Decimal | Valor unitário do produto nessa transação. Ex: 25.00 | 1-1 | 18v2 |
| Products[i].Quantity | String | Quantidade do produto nessa transação. Ex: 2.00 | 1-1 | 18v2 |
| PaymentObject | Object | Dados do cartão de crédito | 1-1 | – |
| InstallmentQuantity | Int | Número de parcelas. Ex: 03 | 0-1 | 2 |
| IsPreAuthorization | Bool | Realizar a pré-autorização de uma transação com cartão de crédito, sem realizar a captura. Ex: true | 0-1 | – |
| IsApplyInterest | Bool | Se deve cobrar juros ao valo da compra. Ex: true | 0-1 | – |
| InterestRate | Decimal | Valor, em percentual (%), de juros que deve ser cobrado. Ex: 2.50 | 0-1 | – |
| Informe esse grupo caso o cartão de crédito não esteja tokenizado | ||||
| Holder | String | Nome impresso no cartão de crédito do comprador. Ex: João da Silva | 1-1 | 100 |
| CardNumber | String | Número do cartão de crédito do comprador. Ex: 4122XXXXXXXX6740 | 1-1 | 16 |
| ExpirationDate | String | Data de expiração do cartão de crédito do comprador. Ex: MM/YYYY | 1-1 | 7 |
| SecurityCode | String | Código de verificação do cartão de crédito. Ex: 241 | 1-1 | 4 |
| Informe esse grupo caso o cartão de crédito já esteja tokenizado | ||||
| Token | String | Token de identificação do cartão de crédito. Como criar? Ex: 23e2dfdc6ea14c3aaeca924d1397e2c20 | 1-1 | 42 |
| Splits | Array | Lista dos splits nessa transação. | 0-999 | – |
| Splits[i].CodeTaxType | Int | Tipo de repasse, informar 1 para Percentual ou 2 para Valor Ex: 1 | 1-1 | – |
| Splits[i].CodeReceiverType | String | Recebedor, informar 1 para ‘Empresa’ ou 2 ‘Subconta’ Ex: 2 | 1-1 | – |
| Splits[i].IdReceiver | Int | Código da empresa no Digpay. Se enviar o IdReceiver, não precisa enviar o Identity. Ex: 35 | 0-1 | – |
| Splits[i].Identity | String | Documento do recebedor. Ex: 12345678901234 | 1-1 | 14 |
| Splits[i].Name | String | Nome da empresa recebedora. Ex: Empresa de teste | 1-1 | 100 |
| Splits[i].IsPayTax | Boolean | Informar se a taxa de custo será paga pelo recebedor. | 1-1 | – |
| Splits[i].Amount | Decimal | Informar o valor do repasse, em percentual ou valor. Ex: 2.30 | 1-1 | 18v2 |
| ClientRate | Boolean | Informa se a taxa de parcelamento será cobrada do cliente. | 1-1 | – |
| AdvancePayment | Boolean | Informa se deseja antecipar os recebíveis. | 1-1 | – |
Conteúdo de envio
Confira nos exemplos abaixo o conteúdo que será enviado no body da requisição.
{
"IsSandbox": true,
"Application": "Aplicação de teste",
"Vendor": "João da Silva",
"CallbackUrl": "https://callbacks.exemplo.com.br/api/Notify",
"PaymentMethod": "2",
"Reference": "34844115",
"Customer": {
"Name": "João da silva",
"Identity": "18978393080",
"Phone": "51999999999",
"Email": "contato@dominio.com.br",
"Address": {
"ZipCode": "90670090",
"Street": "Logradouro",
"Number": "123",
"Complement": "Complemento",
"District": "Higienopolis",
"CityName": "Porto Alegre",
"StateInitials": "RS",
"CountryName": "Brasil"
}
},
"Products": [
{
"Code": "001",
"Description": "Teste 1",
"UnitPrice": 50.00,
"Quantity": 1
}
],
"PaymentObject": {
"Holder": "João da Silva",
"CardNumber": "5105 1051 0510 5100",
"ExpirationDate": "12/2020",
"SecurityCode": "241",
"InstallmentQuantity": "05"
},
"Splits": [
{
"CodeTaxType": 1,
"CodeReceiverType": 1,
"Identity": "78310447000154",
"Name": "EMPRESA DE TESTE",
"IsPayTax": false,
"Amount": 5.95
},
{
"CodeTaxType": 1,
"CodeReceiverType": 1,
"Identity": "78310447000154",
"Name": "EMPRESA DE TESTE",
"IsPayTax": false,
"Amount": 5.95
}
],
"ClientRate": true,
"AdvancePayment": false
}
Status de retorno para transação de Crédito.
| Status da Transação | Mensagem de Retorno | Descrição |
|---|---|---|
| Autorizado (3) | Pagamento Autorizado | O seu pagamento foi autorizado pela operadora do cartão de crédito. |
| Recusado (8) | Pagamento Recusado. | Essa operação foi recusada pela operadora do cartão de crédito. |
| Pagamento Recusado. | Transação não autorizada. Cartão Inválido. | |
| Pagamento Recusado. | Transação não autorizada. Limite excedido/sem saldo. |
Exemplo de um cartão de teste: 5105 1051 0510 5100 / 4444 3333 2222 1111.
O Código de Verificação e a Validade podem ser aleatórias, respeitando o formato dos campos.
Estrutura do conteúdo de resposta
Confira nos exemplos abaixo a estrutura do conteúdo de resposta desse serviço.
| Atributo | Tipo | Descrição | |
|---|---|---|---|
| HasError | Boolean | Indica se ocorreu erro na operação. | |
| Error | String | Em caso de erro, esse atributo detalhará o problema. | |
| ResponseDetail | Object | Objeto de retorno da requisição | Todos |
| ResponseDetail.IdTransaction | Int | Código identificador da transação. | |
| ResponseDetail.Token | String | Token de confirmação da transação. | |
| ResponseDetail.Description | String | Descrição detalhada do Status da transação. | |
| ResponseDetail.Status | Int | Código do Status da transação. | |
| ResponseDetail.Message | String | Descrição resumida do Status da transação. | |
| CreditCard | Object | Dados do cartão de crédito | |
| ResponseDetail.CardNumber | String | Número do cartão de crédito | |
| ResponseDetail.Brand | Int | Código da bandeira do cartão. | |
| ResponseDetail.Installments | Int | Número de vezes em que essa transação foi parcelada. |
Conteúdo de resposta
Confira nos exemplos abaixo o conteúdo de resposta desse serviço.
Em caso de sucesso:
{
"ResponseDetail": {
"IdTransaction": "9_200808214427",
"Token": "7ab7de32-4c9e-4157-a20c-f76faee6a8e8",
"Description": "O seu pagamento foi autorizado pela operadora do cartão de crédito.",
"Status": 3,
"Message": "Pagamento Autorizado",
"CreditCard": {
"CardNumber": "510510******5100",
"Brand": 0,
"Installments": 5
}
},
"HasError": false
}
Em caso de erro:
{
"HasError": true,
"ErrorCode": "123",
"Error": "O valor mínimo de uma transação é de R$ 5,00."
}