Serviço responsável por realizar o processamento de pagamentos por meio de Boleto Bancário.
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 Boleto Bancário. Informar o valor: 1 – Boleto Bancário | 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 | 0-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 Boleto Bancário. | 1-1 | – |
| DueDate | String | Data de vencimento do Boleto Bancário. Ex: 30/05/2019 | 1-1 | 10 |
| Instruction | String | Instruções que serão impressas no Boleto. Ex: Instrução de exemplo | 1-1 | 200 |
| Message | Array | Mensagens que serão impressas no Boleto. Informar uma lista de até 9 Strings | 0-1 | 9 |
| PenaltyRate | Decimal | Percentual da Multa. Ex: 2.00 – Informar apenas se houver multa. | 0-1 | 18v2 |
| InterestRate | Decimal | Percentual da Taxa de Juros ao mês. Ex: 1.00 – Informar apenas se houver juros. | 0-1 | 18v2 |
| CancelAfterDue | Boolean | Indica se o boleto deve ser cancelado após a data de vencimento. | 0-1 | – |
| DaysBeforeCancel | Int | Dias para baixa automática do registro do boleto. Ex: 29 – Informar apenas se CancelAfterDue = false. Limite de 99 dias. | 0-1 | – |
| IsEnablePartialPayment | Boolean | Indica se o boleto aceita pagamento diferente do valor de registro. | 0-1 | – |
| DiscountAmount | Decimal | Valor do desconto. Informar apenas se houver desconto para o boleto. Valor será adicionado em campo separado no registro | 0-1 | 18v2 |
| DiscountType | Int | Indica o tipo de desconto. 1 = valor fixo até o vencimento. 2 = valor por antecipação em dias corridos. 3 = valor por antecipação em dias úteis.. | 0-1 | – |
| DiscountDue | String | Data de limite para o desconto. Ex: 30/05/2019 | 1-1 | 10 |
| 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": false,
"Application": "Agencia JS",
"Vendor": "Agencia JS",
"CallbackUrl": "https://www.agenciajs.com/sistema/autoretorno.php",
"PaymentMethod": "1",
"Reference": "34844115",
"Customer": {
"Name": "E-COMMERCE NETWORK COMERCIO VIRTUAL LTDA",
"Identity": "17812078000103",
"Phone": "1126260694",
"Email": "comercial@agenciajs.com",
"Address": {
"ZipCode": "81750080",
"Street": "RUA HENRIQUE MARTINS TORRES",
"Number": "1610",
"Complement": "",
"District": "BOQUEIRÃO",
"CityName": "CURITIBA",
"StateInitials": "PR",
"CountryName": "Brasil"
}
},
"Products": [{
"Code": "34844115",
"Description": "Serviço prestado pela Agência JS",
"UnitPrice": 49.60,
"Quantity": 2
}],
"PaymentObject": {
"DueDate": "25/10/2020",
"Instruction": "Pagamento aceito em todos os bancos.",
"Message": [
"Fatura da Agência JS de n 34844115",
"financeiro@agenciajs.com",
"www.agenciajs.com"
],
"PenaltyRate": 10.00,
"InterestRate": 1.00,
"CancelAfterDue": false,
"IsEnablePartialPayment": false
}
}
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.Status | Int | Código do Status da transação. Para mais informações sobre os Status de uma transação, clique aqui. | |
| ResponseDetail.Message | String | Descrição resumida do Status da transação. | |
| ResponseDetail.Description | String | Descrição detalhada do Status da transação. | |
| ResponseDetail.BankSlipNumber | String | Número do boleto gerado. | |
| ResponseDetail.DueDate | Date | Data de vencimento do boleto bancário. | |
| ResponseDetail.DigitableLine | Date | Linha digitável do boleto bancário. | |
| ResponseDetail.Barcode | Date | Código de barras do boleto bancário. | |
| ResponseDetail.BankSlipUrl | String | Link para o PDF do boleto bancário. | |
| ResponseDetail.OperationDate | String | Data da operação | |
| ResponseDetail.BankName | String | Nome do banco pelo qual foi registrado o boleto. | |
| ResponseDetail.CodeBank | String | Código do banco pelo qual foi processado o boleto. | |
| ResponseDetail.Wallet | String | Código da carteira do banco | |
| ResponseDetail.WalletDescription | String | Descrição da carteira do banco | |
| ResponseDetail.Agency | String | Código da agência | |
| ResponseDetail.Account | String | Número da conta | |
| ResponseDetail.CodeAssignor | String | Código do banco do gateway | |
| ResponseDetail.AgencyDV | String | Dígito verificador da agência | |
| ResponseDetail.AccountDV | String | Dígito verificador da conta | |
| ResponseDetail.DocType | String | Tipo de documento | |
| ResponseDetail.Accept | String | Boleto sem protesto | |
| ResponseDetail.Currency | String | Tipo de moeda | |
| ResponseDetail.GuarantorName | String | Nome do intermediador | |
| ResponseDetail.GuarantorIdentity | String | Documento do intermediador |
Conteúdo de resposta
Confira nos exemplos abaixo o conteúdo de resposta desse serviço.
Em caso de sucesso:
{
"ResponseDetail": {
"IdTransaction": "9_200808201512",
"Status": "1",
"Message": "Pendente",
"Description": "Estamos aguardando o pagamento do boleto bancário. Após o pagamento, o boleto poderá levar até 2 dias úteis para ser compensado.",
"BankSlipNumber": "0000030952743",
"SeedNumber": "3095274",
"DueDate": "25/10/2020",
"DigitableLine": "03399065964100000030195274301019184190000009920",
"Barcode": "03391841900000099209065941000000309527430101",
"BankSlipUrl": "https://api.digpay.com.br/boleto/?transaction=9_200808201512",
"OperationDate": "08/08/2020",
"BankName": "SANTANDER",
"CodeBank": "033",
"DigitBank": "7",
"CodeBeneficiary": "0659410",
"Wallet": "ECR",
"WalletDescription": "COB. SIMPLES ECR",
"Agency": "2088",
"Account": "13002203",
"CodeAssignor": "0659410",
"AgencyDV": "5",
"AccountDV": "1",
"DocType": "DS",
"Accept": "N",
"Currency": "R$"
},
"HasError": false
}
Em caso de erro:
{
"HasError": true,
"ErrorCode": "123",
"Error": "O valor mínimo de uma transação é de R$ 5,00."
}