Alterar Vencimento do Boleto
Alterar Vencimento (PUT)
Seção intitulada “Alterar Vencimento (PUT)”Altera permanentemente a data de vencimento do boleto no Boleto Cloud e no banco. Esta operação modifica o registro original — diferente do PDF Atualizado que apenas recalcula valores sem alterar o registro.
Comportamento por Tipo de Comunicação
Seção intitulada “Comportamento por Tipo de Comunicação”| Tipo de Comunicação | O que acontece |
|---|---|
| API/Webservice (automático) | Alteração enviada automaticamente ao banco |
| Arquivo CNAB (manual) | Instrução de alteração incluída no próximo arquivo de remessa para importação manual no banco |
Quando Usar
Seção intitulada “Quando Usar”| Cenário | Recomendação |
|---|---|
| Cliente solicitou prorrogação do vencimento | Sim |
| Necessidade de ajustar prazo por questões comerciais | Sim |
| Renegociação de dívida | Sim |
| Apenas obter boleto com encargos recalculados (sem alterar registro) | Não (use PDF Atualizado) |
Endpoint
Seção intitulada “Endpoint”PUT https://sandbox.boletocloud.com/api/v1/boletos/{token_do_boleto}/vencimentoHeaders
Seção intitulada “Headers”| Header | Valor |
|---|---|
Content-Type | application/json; charset=utf-8 |
Authorization | Basic {credenciais} |
Body da Requisição
Seção intitulada “Body da Requisição”O corpo da requisição deve conter a nova data de vencimento em formato JSON.
{ "boleto": { "vencimento": "2024-12-30" }}Códigos de Resposta
Seção intitulada “Códigos de Resposta”| Código | Descrição |
|---|---|
200 OK | Vencimento alterado com sucesso |
400 Bad Request | Vencimento inválido |
500 Internal Server Error | Token do boleto não existe (será alterado para 404 futuramente) |
Exemplos de Código
Seção intitulada “Exemplos de Código”curl -v "https://sandbox.boletocloud.com/api/v1/boletos/{token_do_boleto}/vencimento" \ -H "Content-Type: application/json; charset=utf-8" \ -X "PUT" \ -u "api-key_SUA-API-KEY:token" \ -d '{"boleto":{"vencimento":"2024-12-30"}}'import javax.ws.rs.client.ClientBuilder;import javax.ws.rs.client.Entity;import javax.ws.rs.core.Response;import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature;import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
public class AlterarVencimento { public static void main(String[] args) { String tokenBoleto = "TOKEN_DO_BOLETO"; String json = "{\"boleto\":{\"vencimento\":\"2024-12-30\"}}";
Response response = ClientBuilder.newClient() .target("https://sandbox.boletocloud.com/api/v1/boletos") .path("/" + tokenBoleto + "/vencimento") .register(HttpAuthenticationFeature.basic("api-key_SUA-API-KEY", "token")) .request(APPLICATION_JSON) .put(Entity.json(json));
if (response.getStatus() == 200) { System.out.println("Vencimento alterado com sucesso!"); } else { System.out.println("Erro: " + response.getStatus()); } }}import okhttp3.*import okhttp3.MediaType.Companion.toMediaTypeimport okhttp3.RequestBody.Companion.toRequestBody
fun main() { val tokenBoleto = "TOKEN_DO_BOLETO" val client = OkHttpClient() val credential = Credentials.basic("api-key_SUA-API-KEY", "token") val json = """{"boleto":{"vencimento":"2024-12-30"}}"""
val request = Request.Builder() .url("https://sandbox.boletocloud.com/api/v1/boletos/$tokenBoleto/vencimento") .header("Authorization", credential) .put(json.toRequestBody("application/json".toMediaType())) .build()
client.newCall(request).execute().use { response -> if (response.code == 200) println("Vencimento alterado com sucesso!") else println("Erro: ${response.code}") }}using System;using System.Net.Http;using System.Net.Http.Headers;using System.Text;using System.Threading.Tasks;
class Program { static async Task Main(string[] args) { var tokenBoleto = "TOKEN_DO_BOLETO"; using var client = new HttpClient(); var credentials = Convert.ToBase64String( Encoding.ASCII.GetBytes("api-key_SUA-API-KEY:token")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credentials);
var json = "{\"boleto\":{\"vencimento\":\"2024-12-30\"}}"; var content = new StringContent(json, Encoding.UTF8, "application/json"); var response = await client.PutAsync( $"https://sandbox.boletocloud.com/api/v1/boletos/{tokenBoleto}/vencimento", content);
if ((int)response.StatusCode == 200) Console.WriteLine("Vencimento alterado com sucesso!"); else Console.WriteLine($"Erro: {(int)response.StatusCode}"); }}const https = require('https');
const tokenBoleto = 'TOKEN_DO_BOLETO';const data = JSON.stringify({boleto: {vencimento: '2024-12-30'}});
const options = { hostname: 'sandbox.boletocloud.com', path: `/api/v1/boletos/${tokenBoleto}/vencimento`, method: 'PUT', auth: 'api-key_SUA-API-KEY:token', headers: {'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(data)}};
const req = https.request(options, (res) => { if (res.statusCode === 200) console.log('Vencimento alterado com sucesso!'); else console.log(`Erro: ${res.statusCode}`);});
req.write(data);req.end();package main
import ( "fmt" "net/http" "strings")
func main() { tokenBoleto := "TOKEN_DO_BOLETO" json := `{"boleto":{"vencimento":"2024-12-30"}}` url := "https://sandbox.boletocloud.com/api/v1/boletos/" + tokenBoleto + "/vencimento"
req, _ := http.NewRequest("PUT", url, strings.NewReader(json)) req.SetBasicAuth("api-key_SUA-API-KEY", "token") req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close()
if resp.StatusCode == 200 { fmt.Println("Vencimento alterado com sucesso!") } else { fmt.Printf("Erro: %d\n", resp.StatusCode) }}<?php$tokenBoleto = 'TOKEN_DO_BOLETO';$url = "https://sandbox.boletocloud.com/api/v1/boletos/$tokenBoleto/vencimento";$api_key = 'api-key_SUA-API-KEY';$data = json_encode(['boleto' => ['vencimento' => '2024-12-30']]);
$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');curl_setopt($ch, CURLOPT_POSTFIELDS, $data);curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);curl_setopt($ch, CURLOPT_USERPWD, "$api_key:token");curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);curl_close($ch);
if ($http_code == 200) echo "Vencimento alterado com sucesso!\n";else echo "Erro ($http_code): $response\n";?>import requestsfrom requests.auth import HTTPBasicAuth
token_boleto = 'TOKEN_DO_BOLETO'response = requests.put( f'https://sandbox.boletocloud.com/api/v1/boletos/{token_boleto}/vencimento', auth=HTTPBasicAuth('api-key_SUA-API-KEY', 'token'), json={'boleto': {'vencimento': '2024-12-30'}})
if response.status_code == 200: print('Vencimento alterado com sucesso!')else: print(f'Erro: {response.status_code}')require 'net/http'require 'uri'require 'json'
token_boleto = 'TOKEN_DO_BOLETO'uri = URI("https://sandbox.boletocloud.com/api/v1/boletos/#{token_boleto}/vencimento")
Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http| request = Net::HTTP::Put.new(uri) request.basic_auth('api-key_SUA-API-KEY', 'token') request['Content-Type'] = 'application/json' request.body = {boleto: {vencimento: '2024-12-30'}}.to_json
response = http.request(request) if response.code == '200' puts 'Vencimento alterado com sucesso!' else puts "Erro: #{response.code}" endend(require '[clj-http.client :as client])
(let [token-boleto "TOKEN_DO_BOLETO" response (client/put (str "https://sandbox.boletocloud.com/api/v1/boletos/" token-boleto "/vencimento") {:basic-auth ["api-key_SUA-API-KEY" "token"] :content-type :json :body "{\"boleto\":{\"vencimento\":\"2024-12-30\"}}" :throw-exceptions false})] (if (= 200 (:status response)) (println "Vencimento alterado com sucesso!") (println "Erro:" (:status response))))Veja Também
Seção intitulada “Veja Também” Obter PDF Atualizado Recalcular valores sem alterar o registro original
Conceder Abatimento Reduzir o valor do boleto
Baixar/Cancelar Boleto Cancelar a cobrança do boleto
Status do Registro Verificar se foi registrado no banco