Skip to main content
POST
/
api
/
v1
/
partners
/
{partnerId}
/
vouchers
/
cpf
cURL
curl -X POST 'https://certificados.zapsign.com.br/api/v1/partners/PRT_ABC123/vouchers/cpf' \
  -H 'Authorization: Bearer czk_live_SUA_CHAVE' \
  -H 'Content-Type: application/json' \
  -d '{
    "certificate_type": "ecpf_a1",
    "name": "Maria Aparecida da Silva",
    "cpf": "39053344705",
    "email": "maria.silva@example.com.br",
    "phone": "+5511987654321",
    "birthdate": "1985-03-12",
    "reference_id": "PEDIDO_12345"
  }'
const res = await fetch(
'https://certificados.zapsign.com.br/api/v1/partners/PRT_ABC123/vouchers/cpf',
{
method: 'POST',
headers: {
Authorization: 'Bearer czk_live_SUA_CHAVE',
'Content-Type': 'application/json',
},
body: JSON.stringify({
certificate_type: 'ecpf_a1',
name: 'Maria Aparecida da Silva',
cpf: '39053344705',
email: 'maria.silva@example.com.br',
phone: '+5511987654321',
birthdate: '1985-03-12',
reference_id: 'PEDIDO_12345',
}),
},
);
const voucher = await res.json();
import requests

res = requests.post(
'https://certificados.zapsign.com.br/api/v1/partners/PRT_ABC123/vouchers/cpf',
headers={
'Authorization': 'Bearer czk_live_SUA_CHAVE',
'Content-Type': 'application/json',
},
json={
'certificate_type': 'ecpf_a1',
'name': 'Maria Aparecida da Silva',
'cpf': '39053344705',
'email': 'maria.silva@example.com.br',
'phone': '+5511987654321',
'birthdate': '1985-03-12',
'reference_id': 'PEDIDO_12345',
},
)
voucher = res.json()
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://certificados.zapsign.com.br/api/v1/partners/{partnerId}/vouchers/cpf",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'certificate_type' => 'ecpf_a1',
'name' => 'Maria Aparecida da Silva',
'cpf' => '39053344705',
'email' => 'maria.silva@example.com.br',
'phone' => '+5511987654321',
'birthdate' => '1985-03-12',
'reference_id' => 'PEDIDO_12345'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://certificados.zapsign.com.br/api/v1/partners/{partnerId}/vouchers/cpf"

payload := strings.NewReader("{\n \"certificate_type\": \"ecpf_a1\",\n \"name\": \"Maria Aparecida da Silva\",\n \"cpf\": \"39053344705\",\n \"email\": \"maria.silva@example.com.br\",\n \"phone\": \"+5511987654321\",\n \"birthdate\": \"1985-03-12\",\n \"reference_id\": \"PEDIDO_12345\"\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://certificados.zapsign.com.br/api/v1/partners/{partnerId}/vouchers/cpf")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"certificate_type\": \"ecpf_a1\",\n \"name\": \"Maria Aparecida da Silva\",\n \"cpf\": \"39053344705\",\n \"email\": \"maria.silva@example.com.br\",\n \"phone\": \"+5511987654321\",\n \"birthdate\": \"1985-03-12\",\n \"reference_id\": \"PEDIDO_12345\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://certificados.zapsign.com.br/api/v1/partners/{partnerId}/vouchers/cpf")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"certificate_type\": \"ecpf_a1\",\n \"name\": \"Maria Aparecida da Silva\",\n \"cpf\": \"39053344705\",\n \"email\": \"maria.silva@example.com.br\",\n \"phone\": \"+5511987654321\",\n \"birthdate\": \"1985-03-12\",\n \"reference_id\": \"PEDIDO_12345\"\n}"

response = http.request(request)
puts response.read_body
{
  "voucher_id": "ZS_ECPF_A1_01KRME1Q2EBE9XNHV3G8JP6RF3",
  "whatsapp_number": "5511936203902",
  "whatsapp_link": "https://wa.me/5511936203902?text=Ol%C3%A1%21%20Quero%20emitir%20meu%20certificado%20digital.%0A%0AMeu%20voucher%20%C3%A9%3A%20%2AZS_ECPF_A1_01KRME1Q2EBE9XNHV3G8JP6RF3%2A"
}

Authorizations

Authorization
string
header
required

Token Bearer com prefixo czk_live_. Gere a chave no portal em https://certificados.zapsign.com.br/reseller/api-keys.

Path Parameters

partnerId
string
required

Identificador público do parceiro (Partner ID), exibido no portal.

Required string length: 1 - 64

Body

application/json
certificate_type
enum<string>
required

Tipo de e-CPF: ecpf_a1 (arquivo .pfx no computador) ou ecpf_a3_nuvem (qualquer dispositivo; cada uso exige autorização no app de celular do titular).

Available options:
ecpf_a1,
ecpf_a3_nuvem
Example:

"ecpf_a1"

name
string
required

Nome completo do titular pessoa física, exatamente como no documento oficial.

Required string length: 1 - 200
Example:

"Maria Aparecida da Silva"

cpf
string
required

CPF do titular pessoa física. Apenas dígitos (39053344705); o servidor valida o DV.

Required string length: 11
Example:

"39053344705"

email
string<email>
required

Email do titular para envio do voucher e instruções de emissão.

Maximum string length: 254
Example:

"maria.silva@example.com.br"

phone
string
required

Celular do titular brasileiro em formato E.164: prefixo +55 + DDD + número (ex.: +5511987654321). Não se aceita máscara, espaços nem separadores.

Required string length: 13 - 14
Example:

"+5511987654321"

birthdate
string<date>
required

Data de nascimento do titular no formato AAAA-MM-DD. Exige idade mínima de 18 anos.

Pattern: ^\d{4}-\d{2}-\d{2}$
Example:

"1985-03-12"

reference_id
string

Chave de idempotência do parceiro: o mesmo reference_id retorna o voucher original com HTTP 200 e não desconta saldo novamente; omita ou envie null para criar outro voucher.

Required string length: 1 - 64
Pattern: ^[A-Za-z0-9_-]{1,64}$
Example:

"PEDIDO_12345"

Response

Voucher e-CPF criado.

voucher_id
string
required

Identificador único do voucher recém-criado (ou do voucher já existente, no caso de replay idempotente). Use no link de resgate, em buscas e em GET /vouchers/{voucher_id}.

Example:

"ZS_ECPF_A1_01KRME1Q2EBE9XNHV3G8JP6RF3"

whatsapp_number
string | null
required

Número de WhatsApp do suporte para o titular acionar a emissão. Encaminhe ao cliente final junto com o voucher_id. Use UX-only.

Example:

"5511936203902"

Link https://wa.me/... pré-preenchido com o voucher_id na mensagem. Compartilhe com o cliente final como atalho pra abrir a conversa de emissão.

Example:

"https://wa.me/5511936203902?text=Ol%C3%A1%21%20Quero%20emitir%20meu%20certificado%20digital.%0A%0AMeu%20voucher%20%C3%A9%3A%20%2AZS_ECPF_A1_01KRME1Q2EBE9XNHV3G8JP6RF3%2A"