API > Documento Representación Verifactu - Enviar documento

Documento Representación Verifactu - Enviar documento

POST  https://{entorno}.ticketbaiws.eus/doc-representante/

Permite cargar el modelo del documento de representación de Verifactu requerido para poder hacer envíos a Verifactu con el certificado de Ticketbai WS. Es importante que el fichero que se envíe esté firmado digitalmente por el representante de la empresa con un certificado de representante válido para la AEAT (FNMT, Izenpe...)

PARÁMETROS

-- El método no permite parámetros --


POST https://api.ticketbaiws.eus/doc-representante/
$ curl --request POST \
     --url https://api.ticketbaiws.eus/doc-representante/ \
     --header 'Accept: application/json' \
     --header 'Content-Type: application/json' \
     --header 'Token: xxx' \
     --header 'Nif: 00000014Z'
	 --form 'file=@"/ruta/documento-firmado.pdf"'
$ composer require guzzlehttp/guzzle
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.ticketbaiws.eus/doc-representante/', [
    'headers' => [
        'Accept' => 'application/json',
        'Content-Type' => 'application/json',
        'Token' => 'xxx',
        'Nif' => '00000014Z'
    ],
    'multipart' => [
        [
            'name'     => 'file',
            'contents' => fopen('/ruta/documento-firmado.pdf', 'r'),
            'filename' => 'documento-firmado.pdf'
        ]
    ]
]);

echo $response->getBody();
$ python -m pip install requests
import requests

url = "https://api.ticketbaiws.eus/doc-representante/"

headers = {"Accept": "application/json", "Token" : "xxx", "Nif" : "00000014Z"}

files = {
    "file": ("document-firmado.pdf", open("/ruta/documento-firmado.pdf", "rb"), "application/pdf")
}

response = requests.post(url, headers=headers, files=files)

print(response.text)
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.ticketbaiws.eus/doc-representante/");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Accept: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

// -------------------------
//    FORMULARIO MULTIPART
// -------------------------

curl_mime *mime;
curl_mimepart *part;

mime = curl_mime_init(hnd);

// Campo "filename"
part = curl_mime_addpart(mime);
curl_mime_name(part, "filename");
curl_mime_data(part, "documento-firmado.pdf", CURL_ZERO_TERMINATED);

// Campo "file" → fichero real
part = curl_mime_addpart(mime);
curl_mime_name(part, "file");
curl_mime_filedata(part, "/ruta/documento-firmado.pdf");

// Asignar formulario al handle
curl_easy_setopt(hnd, CURLOPT_MIMEPOST, mime);

CURLcode ret = curl_easy_perform(hnd);
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");

// Archivo a enviar
File file = new File("/ruta/documento-firmado.pdf");

// Construimos el body multipart
RequestBody requestBody = new MultipartBody.Builder()
    .setType(MultipartBody.FORM)
    // Campo "file"
    .addFormDataPart(
            "file",                   // nombre del campo
            file.getName(),           // nombre del archivo
            RequestBody.create(file, MediaType.parse("application/pdf"))
    )
    // Puedes agregar más campos si el endpoint lo requiere
    .addFormDataPart("filename", file.getName())
    .build();

Request request = new Request.Builder()
  .url("https://api.ticketbaiws.eus/doc-representante/")
  .post(RequestBody)
  .addHeader("Accept", "application/json")
  .addHeader("Token", "xxx")
  .addHeader("Nif", "00000014Z")
  .build();
  
Response response = client.newCall(request).execute();
{ } Response JSON
HTTP/1.1 200 OK
{ 
	"result": "OK", 
	"return": "Documento procesado correctamente", 
	"msg": null 
}

Métodos TicketBAI / Verifactu

Métodos específicos para Verifactu

Métodos específicos para BATUZ BIZKAIA

Otros métodos