Generación y timbrado de Notas de Crédito

Con nuestro servicio Enlazatte podrás generar y timbrar las notas de crédito en tu sistema Contpaqi Comercial.

Request para crear nueva nota de crédito

La petición es una petición tipo POST, al endpoint /company/{conmpanyRfc}/payments, en donde {conmpanyRfc} es el RFC de la empresa emisora del documento (API Reference ...), como parámetros QueryString envías el Token que previamente debiste haber generado (Ve como generar un token ...), dentro del body del request enviarás una estructura tipo JSON con la información de la nota de crédito que se desea generar, en el encabezado del request se envía el Content-Type con valor application/x-www-form-urlencoded.


Consideraciones Request Data

  • fecha: El formato de la fecha del documento es "yyyy-MM-ddTHH:mm:ss", ej: 2019-11-30T10:26:58
  • serie: Se enviará la serie del documento que se generará SIN el folio interno, ya que el sistema Contpaqi Comercial generará el folio consecutivo que le corresponda.
  • Moneda: Se enviará el código de moneda correspondiene (MXN o USD).
  • TipoDocumento: El tipo de documento es el Concepto del documento correspondiente a la Nota de Crédito en el sistema Contpaqi Comercial.
  • CodigoCliente: El código del cliente debe estar previamente creado en el sistema Contpaqi Comercial, ya sea de forma manual directamente en el sistema o bien por medio de Enlazatte con el endpoint para creación de clientes API Reference ....
  • formaDePago: Indica la forma de pago para el documento (PUE ó PPD).
  • ImportePago: Monto total del pago aplicable a los documentos indicados en el arreglo de Pagos.
  • Pagos[n][Concepto]: El Concepto es el código de concepto correspondiente a la factura a la que se va a aplicar la nota de crédito en el sistema Contpaqi Comercial.


public function saveCreditNote($data)
{
    try {
        $url = $this->baseUri . 'company/' . $this->empresaRFC .'/payments';

        $response = $this->client->request('POST', $url, array(
            'query' => array('token' => $this->token),
            'body' => json_encode($data)
        ));

        $responseData  = json_decode($response->getBody()->getContents());

        return $responseData;
    } catch (RequestException $e) {
        $errorData = json_decode($e->getResponse()->getBody()->getContents());

        $statusCode = $e->getResponse()->getStatusCode();

        switch ($statusCode) {
            case 400:
                $this->message = 'Token invalido.';
                break;
            case 401:
                $this->message = 'Token expirado.';
                break;
            case 422:
                $this->message = 'Error, al intentar generar la nota de credito.';
                break;
            case 500:
                $this->message = 'Error interno.';
                break;
        }

        $this->code = $statusCode;
        $this->errors = $errorData->error->errors;
    }
}
{
  "fecha": "2020-01-06T10:26:58-04:00",
  "serie": "PAGO",
  "Moneda": "MXN",
  "TipoCambio": 1,
  "metodoDePago": "03",
  "formaDePago": "PUE",
  "ImportePago": 1,
  "TipoDocumento": "8",
  "Emisor": "LAN7008173R5",
  "CodigoCliente": "CLIENTE001",
  "CuentaOrigen": "1",
  "CuentaDestino": "456",
  "Observaciones": "TEST PAGO",
  "Pagos": [
    {
      "Concepto": "433",
      "Serie": "TEST",
      "Folio": "194",
      "Moneda": "01",
      "Importe": 1
    }
  ]
}














{
    "error": "token_expired"
}

































{
    "error": {
        "message": "No se encontró el cliente con código: CLIENTE001",
        "status_code": 422
    }
}































Response exitoso

El response de la petición es una estructura tipo JSON donde se devuelven los siguientes valores en caso de ser una petición exitosa:

  • xml: Cadena de texto con el documento XML del CFDI timbrado.
  • pdf: Cadena en formato base 64 que contiene el archivo de la representación impresa del PDF del CFDI, para visualizarlo es necesario decodificar el string de este elemento del json y guardarlo con extensión PDF. Existen herramientas en línea donde puedes decodificar el archivo codificado en base64 para poder visualizarlo, aquí el link de un sitio donde puedes decodificarlo de forma manual.
  • uuid: Es la cadena con el identificador único ante el SAT para este documento timbrado.

El response exitoso generará y timbrará el documento del pago y ligará los UUID's de los documentos de las facturas que se enviaron en el elemento pagos del request, con lo que fiscalmente quedarán relacionados a la nota de créditoZ los CFDI's de las facturas.

Screenshot Insomnia

Login Insomnia

¿Listo para empezar?

Escribenos y comprueba lo rápido y sencillo que es enlazarte con Contpaqi, genera pedidos, cotizaciones, facturas, pagos, clientes, productos y timbra documentos desde tus propios sistemas aprovechando el protencial de tu empresa al máximo.