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 --
$ 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();
HTTP/1.1 200 OK
{
"result": "OK",
"return": "Documento procesado correctamente",
"msg": null
}