Serviço responsável por realizar o processamento de pagamentos por meio de cartão de débito.
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 | – |
| Authenticate | Boolean | Identifica se a transação vai ser autenticada com o banco. A maior parte dos bancos exige que a a mesma seja feita de forma autenticada. | 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 débito. Informar o valor: 4 – Cartão de débito | 1-1 | – |
| Reference | String | Use para identificar suas transações. Ex: REFERENCIA_TESTE_V1 | 0-1 | 60 |
| 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 débito | 1-1 | – |
| Informe esse grupo caso o cartão de débito não esteja tokenizado | ||||
| Holder | String | Nome impresso no cartão de débito do comprador. Ex: João da Silva | 1-1 | 100 |
| CardNumber | String | Número do cartão de débito do comprador. Ex: 4122XXXXXXXX6740 | 1-1 | 16 |
| ExpirationDate | String | Data de expiração do cartão de débito do comprador. Ex: MM/YYYY | 1-1 | 7 |
| SecurityCode | String | Código de verificação do cartão de débito. Ex: 241 | 1-1 | 4 |
| Authenticate | Boolean | Informar verdadeiro para o cliente finalizar a transação no ambiente bancário. Ex: true | 1-1 | – |
| 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 |
Conteúdo de envio
Confira nos exemplos abaixo o conteúdo que será enviado no body da requisição.
{
"IsSandbox": true,
"Authenticate": true,
"Application": "Aplicação de teste",
"Vendor": "João da Silva",
"CallbackUrl": "https://callbacks.exemplo.com.br/api/Notify",
"PaymentMethod": "4",
"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": 5,
"Quantity": 1
}
],
"PaymentObject": {
"Holder": "João da Silva",
"CardNumber": "4024007153763191",
"ExpirationDate": "12/2020",
"SecurityCode": "241",
"Authenticate": true
},
"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
}
]
}
Status de retorno para transação de Débito.
| Status da Transação | Mensagem de Retorno | Descrição |
|---|---|---|
| Pendente (1) | Pagamento Pendente | Para finalizar a operação, você deve concluir a operação no ambiente bancário. |
| Recusado (8) | Transação não autorizada. | Autenticação não foi realizada. |
Exemplo de um cartão de teste: 4024 0071 5376 3191
Bancos aceitos.
Confira na lista abaixo as bandeiras e os bancos aceitos em uma transação de débito.
| Mastercard | Visa |
|---|---|
| Bradesco | Bradesco |
| Banco do Brasil | Banco do Brasil |
| Santander | Santander |
| Itaú | Itaú |
| CitiBank | CitiBank |
| BRB | — |
| Caixa | — |
| BancooB | — |
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. | |
| ResponseDetail.AuthenticationUrl | String | Url para realizar a autenticação e confirmação do débito bancário. | |
| DebitCard | Object | Dados do cartão de débito | |
| ResponseDetail.CardNumber | String | Número do cartão de débito | |
| ResponseDetail.Brand | Int | Código da bandeira do cartão. |
Conteúdo de resposta
Confira nos exemplos abaixo o conteúdo de resposta desse serviço.
Em caso de sucesso:
{
"ResponseDetail": {
"IdTransaction": 1067288,
"Token": "b9ecbfe1-aacd-4b8c-b200-ca77a7a1f6a8",
"Description": "Para finalizar a operação, você deve concluir a operação no ambiente bancário.",
"Status": 1,
"Message": "Pagamento Pendente",
"DebitCard": {
"CardNumber": "40242******3191",
"Brand": 0
},
"AuthenticationUrl": "https://api.digpay.com.br/qf3HYcJq1Dceo"
},
"HasError": false
}
Em caso de erro:
{
"ResponseDetail": {
"IdTransaction": 1067281,
"Token": "b9ecbfe1-aacd-4b8c-b200-ca77a7a1f6a8",
"Description": "Transação não autorizada. Autenticação não foi realizada.",
"Status": 8,
"Message": "Pagamento Recusado"
},
"HasError": false
}
Em caso de erro:
{
"HasError": true,
"ErrorCode": "123",
"Error": "O valor mínimo de uma transação é de R$ 5,00."
}