Referencia de la API

Notas de crédito

Notas de crédito que reducen lo que debe un comprador, y su aplicación a facturas.

Más sobre este recurso

Las notas de crédito son documentos como las facturas: ListInvoices, GetInvoice y CreateInvoice también las sirven con documentType credit_note, y estas rutas son las acciones propias de la nota de crédito. Una nota de crédito reduce lo que un comprador debe a un proveedor, con sus propias líneas e impuestos. Un proveedor emite una contra la factura que corrige o para el comprador en general (o la envía mediante SubmitFeedInvoice); un comprador puede registrar una que recibió. Una que indica una factura y no supera su total se acepta de inmediato; cualquier otra espera a que el comprador la acepte o la rechace. Aceptar un crédito returned_goods o price_adjustment (u other con correctsBilling) devuelve su importe antes de impuestos a la línea de la orden de compra de la factura corregida; los créditos de servicio y los rebates no afectan a la orden de compra. Quién liquida los créditos aceptados es una configuración del comprador: Pleaxy, donde se aplican a facturas y reducen el importe adeudado (una factura aprobada que los créditos cubren por completo se marca como pagada con el método "credit"), o el sistema contable, donde las notas de crédito aceptadas salen en la siguiente exportación de pagos como filas negativas. Rechazar una factura devuelve a sus notas de crédito los créditos aplicados a ella. El total de la factura y su impuesto nunca cambian. Una nota de abono que AWS o Azure emite contra una factura que sincroniza tu conexión de nube se registra como nota de crédito de ese proveedor (source "cloud_sync", con cloudProvider), contra la factura que indica cuando esa factura está en Pleaxy, una vez por nota.

Listar notas de crédito

Lista las notas de crédito, con lo que queda de cada una.

GET/v1/workspaces/{regionId}/credit-notes

Devuelve

200 OK con el objeto que se muestra en la respuesta.

Más detalles

Las notas de crédito que recibió un comprador o emitió un proveedor (en todos sus compradores), de la más antigua a la más reciente, cada una con remaining: lo que queda por aplicar, que nunca se guarda.

Errores

  • 401 Unauthorized - No se presentó ninguna credencial, o el token Bearer o el valor de X-Api-Key falta, no es válido, caducó o fue revocado.
  • 403 Forbidden - El token Bearer o la clave de API del llamador no da acceso a este espacio de trabajo (regionId), o no tiene el rol requerido.
GET /v1/workspaces/{regionId}/credit-notes
Solicitud
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/credit-notes" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Respuesta · 200 OK
[ {
   "documentType": "credit_note",
   "id": "string",
   "externalCreditNoteNumber": "string",
   "issueDate": "string",
   "buyerOrgId": "string",
   "buyerOrgName": "string",
   "supplierOrgId": "string",
   "supplier": "string",
   "supplierConnectionId": "string",
   "currency": "string",
   "reason": "returned_goods" | "price_adjustment" | "service_credit" | "rebate" | "other",
   "correctsBilling": true,
   "note": "string",
   "lineItems": [ { "description": "string", "qty": number, "unitPrice": number, "amount": number } ],
   "adjustments": [ { "type": "discount" | "charge", "description": "string", "amount": number } ],
   "taxAmount": number,
   "amount": number,
   "refunded": number,
   "remaining": number,
   "invoiceId": "string",
   "externalInvoiceNumber": "string",
   "po": "string",
   "poLineNo": number,
   "status": "pending_acceptance" | "accepted" | "rejected" | "void",
   "autoAccepted": true,
   "acceptedAt": "string",
   "rejection": { "at": "string", "reason": "string" },
   "poEffect": { "kind": "release", "po": "string", "poLineNo": number, "amount": number, "qty": number } | { "kind": "none", "why": "not_a_correction" | "no_po" | "po_closed" },
   "applications": [ { "id": "string", "invoiceId": "string", "externalInvoiceNumber": "string", "amount": number, "appliedAt": "string", "auto": true } ],
   "exports": [ { "exportId": "string", "exportedAt": "string" } ],
   "source": "feed" | "cloud_sync",
   "submittedFormat": "json" | "ubl" | "cxml",
   "cloudProvider": "aws" | "azure",
   "hasPdf": boolean,
   "createdAt": "string"
} ]

Obtener nota de crédito

Recupera una nota de crédito.

GET/v1/workspaces/{regionId}/credit-notes/{creditNoteId}

Parámetros

  • creditNoteIdstringObligatorio

    La nota de crédito, p. ej. "CN-1A2B3C4D".

Devuelve

200 OK con el objeto que se muestra en la respuesta.

Más detalles

Una nota de crédito: qué corrige, qué hizo la aceptación con la orden de compra (poEffect), las facturas a las que se aplicó o la exportación que la incluyó, y lo que queda de ella.

Campos de la respuesta

  • remainingnumber

    amount − lo aplicado a facturas − lo reembolsado. 0 una vez agotada; una nota de crédito exportada la liquida el sistema contable.

  • refundednumber

    Lo que el proveedor indica que ya se reembolsó antes de enviar la nota de crédito (UBL PrepaidAmount, cXML DepositAmount). Nunca queda por aplicar.

  • poEffectobject

    Se define al aceptarla: el saldo de la orden de compra devuelto (kind release, antes de impuestos, con la cantidad en caso de mercancía devuelta), o por qué no se devolvió (not_a_correction, no_po, po_closed).

  • hasPdfboolean

    La nota de crédito tiene su propio PDF, adjuntado al emitirla o el documento a partir del cual se registró: GetCreditNotePdf lo devuelve.

  • source, cloudProviderstring, string

    source es "feed" para una enviada mediante SubmitFeedInvoice (en submittedFormat) y "cloud_sync" para una nota de abono de un proveedor (cloudProvider aws o azure); ausente si se registró en Pleaxy o con CreateCreditNote.

Errores

  • 404 Not Found - No existe esa nota de crédito en este espacio de trabajo ("Credit note <id> not found.").
  • 401 Unauthorized - No se presentó ninguna credencial, o el token Bearer o el valor de X-Api-Key falta, no es válido, caducó o fue revocado.
  • 403 Forbidden - El token Bearer o la clave de API del llamador no da acceso a este espacio de trabajo (regionId), o no tiene el rol requerido.
GET /v1/workspaces/{regionId}/credit-notes/{creditNoteId}
Solicitud
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/credit-notes/{creditNoteId}" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Respuesta · 200 OK
{
   "documentType": "credit_note",
   "id": "string",
   "externalCreditNoteNumber": "string",
   "issueDate": "string",
   "buyerOrgId": "string",
   "buyerOrgName": "string",
   "supplierOrgId": "string",
   "supplier": "string",
   "supplierConnectionId": "string",
   "currency": "string",
   "reason": "returned_goods" | "price_adjustment" | "service_credit" | "rebate" | "other",
   "correctsBilling": true,
   "note": "string",
   "lineItems": [ { "description": "string", "qty": number, "unitPrice": number, "amount": number } ],
   "adjustments": [ { "type": "discount" | "charge", "description": "string", "amount": number } ],
   "taxAmount": number,
   "amount": number,
   "refunded": number,
   "remaining": number,
   "invoiceId": "string",
   "externalInvoiceNumber": "string",
   "po": "string",
   "poLineNo": number,
   "status": "pending_acceptance" | "accepted" | "rejected" | "void",
   "autoAccepted": true,
   "acceptedAt": "string",
   "rejection": { "at": "string", "reason": "string" },
   "poEffect": { "kind": "release", "po": "string", "poLineNo": number, "amount": number, "qty": number } | { "kind": "none", "why": "not_a_correction" | "no_po" | "po_closed" },
   "applications": [ { "id": "string", "invoiceId": "string", "externalInvoiceNumber": "string", "amount": number, "appliedAt": "string", "auto": true } ],
   "exports": [ { "exportId": "string", "exportedAt": "string" } ],
   "source": "feed" | "cloud_sync",
   "submittedFormat": "json" | "ubl" | "cxml",
   "cloudProvider": "aws" | "azure",
   "hasPdf": boolean,
   "createdAt": "string"
}

Obtener PDF de nota de crédito

Descarga el PDF de una nota de crédito.

GET/v1/workspaces/{regionId}/credit-notes/{creditNoteId}/pdf

Parámetros

  • creditNoteIdstringObligatorio

    La nota de crédito, p. ej. "CN-1A2B3C4D".

Devuelve

200 OK con el objeto que se muestra en la respuesta.

Más detalles

El PDF propio de la nota de crédito: el que se adjuntó al emitirla (pdfBase64) o el documento a partir del cual se registró. Pleaxy no genera uno. Envía Accept: application/pdf o el cuerpo vuelve codificado en base64.

Errores

  • 404 Not Found - No existe esa nota de crédito en este espacio de trabajo, o código CREDIT_NOTE_NO_PDF: no tiene ninguno (hasPdf es false).
  • 401 Unauthorized - No se presentó ninguna credencial, o el token Bearer o el valor de X-Api-Key falta, no es válido, caducó o fue revocado.
  • 403 Forbidden - El token Bearer o la clave de API del llamador no da acceso a este espacio de trabajo (regionId), o no tiene el rol requerido.
GET /v1/workspaces/{regionId}/credit-notes/{creditNoteId}/pdf
Solicitud
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/credit-notes/{creditNoteId}/pdf" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Respuesta · 200 OK
application/pdf

Crear nota de crédito

Emite una nota de crédito o registra una recibida.

POST/v1/workspaces/{regionId}/credit-notes

Cuerpo

  • invoiceIdstring

    La factura que corrige. No puede ser una rechazada. Indica esto o connectionId.

  • connectionIdstring

    La contraparte, cuando no corrige una factura concreta.

  • externalCreditNoteNumberstringObligatorio

    Tu número para ella, de 1 a 64 caracteres: letras, dígitos, '.', '_', '/' y '-', empezando por una letra o un dígito. Único por proveedor dentro del comprador, sin distinguir mayúsculas.

  • issueDatestringObligatorio

    YYYY-MM-DD, no futura y no de hace más de 365 días.

  • reasonstringObligatorio

    returned_goods, price_adjustment, service_credit, rebate u other. Los dos primeros devuelven saldo a la orden de compra una vez aceptada.

  • correctsBillingboolean

    Solo con el motivo other: corrige lo facturado, así que también devuelve saldo a la orden de compra.

  • notestring

    De 1 a 1000 caracteres, p. ej. el número RMA de la devolución.

  • currencystring

    ISO 4217. Obligatorio con connectionId; con invoiceId debe ser la de la factura.

  • lineItemsArray<{ description, qty, unitPrice }>Obligatorio

    Lo que se abona, antes de impuestos. De 1 a 200 líneas.

  • taxAmountnumber

    El impuesto abonado, incluido en el total.

  • taxBreakdownArray<{ description, amount, rate? }>

    Impuestos por tipo, que suman taxAmount. Como máximo 20.

  • pdfBase64string

    PDF de la nota de crédito tal como se emitió, codificado en Base64, hasta 8MB. Se guarda con ella (consulta GetCreditNotePdf).

  • sourceImportIdstring

    Solo comprador: la importación de factura (ID-…) de la que se leyó la nota de crédito, es decir, el documento de nota de crédito del proveedor, subido y leído por Pleaxy. Su documento se guarda con la nota de crédito cuando es un PDF de menos de 8MB, y la importación registra la nota de crédito. Nunca se muestra al proveedor.

Devuelve

201 Created con el objeto que se muestra en la respuesta.

Más detalles

Emite una nota de crédito (un proveedor) o registra una recibida (un comprador). Indica exactamente uno de estos: invoiceId (la factura que corrige, de la que toma comprador, proveedor, moneda, orden de compra y línea de la orden de compra) o connectionId (la contraparte, con currency). El total se calcula a partir de las líneas y los impuestos como en CreateInvoice. Se acepta de inmediato cuando indica una factura y no supera el total de esa factura; se aplica entonces a esa factura cuando los créditos del comprador se liquidan en Pleaxy y la factura no está exportada ni pagada. Se notifica al comprador.

Errores

  • 400 Bad Request - CREDIT_NOTE_TARGET_REQUIRED (ninguno o ambos de invoiceId y connectionId), CREDIT_NOTE_INVALID (correctsBilling con otro motivo, una factura rechazada, una moneda que no es la de la factura, sin moneda y sin factura), ISSUE_DATE_INVALID, un pdfBase64 que no es base64, está vacío o supera 8MB, o no es un PDF ("pdfBase64 doesn't decode to a PDF document (missing %PDF- header)"), o un cuerpo que no supera la validación.
  • 404 Not Found - La factura o la conexión no es tuya.
  • 409 Conflict - CREDIT_NOTE_NUMBER_TAKEN: este número ya se usa entre tú y este comprador.
  • 401 Unauthorized - No se presentó ninguna credencial, o el token Bearer o el valor de X-Api-Key falta, no es válido, caducó o fue revocado.
  • 403 Forbidden - El token Bearer o la clave de API del llamador no da acceso a este espacio de trabajo (regionId), o no tiene el rol requerido.
POST /v1/workspaces/{regionId}/credit-notes
Solicitud
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/credit-notes" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{
   "invoiceId": "string",
   "connectionId": "string",
   "externalCreditNoteNumber": "string",
   "issueDate": "string",
   "reason": "returned_goods" | "price_adjustment" | "service_credit" | "rebate" | "other",
   "correctsBilling": boolean,
   "note": "string",
   "currency": "string",
   "lineItems": [ { "description": "string", "qty": number, "unitPrice": number } ],
   "taxAmount": number,
   "pdfBase64": "string"
}
Respuesta · 201 Created
{
   "documentType": "credit_note",
   "id": "string",
   "externalCreditNoteNumber": "string",
   "issueDate": "string",
   "buyerOrgId": "string",
   "buyerOrgName": "string",
   "supplierOrgId": "string",
   "supplier": "string",
   "supplierConnectionId": "string",
   "currency": "string",
   "reason": "returned_goods" | "price_adjustment" | "service_credit" | "rebate" | "other",
   "correctsBilling": true,
   "note": "string",
   "lineItems": [ { "description": "string", "qty": number, "unitPrice": number, "amount": number } ],
   "adjustments": [ { "type": "discount" | "charge", "description": "string", "amount": number } ],
   "taxAmount": number,
   "amount": number,
   "refunded": number,
   "remaining": number,
   "invoiceId": "string",
   "externalInvoiceNumber": "string",
   "po": "string",
   "poLineNo": number,
   "status": "pending_acceptance" | "accepted" | "rejected" | "void",
   "autoAccepted": true,
   "acceptedAt": "string",
   "rejection": { "at": "string", "reason": "string" },
   "poEffect": { "kind": "release", "po": "string", "poLineNo": number, "amount": number, "qty": number } | { "kind": "none", "why": "not_a_correction" | "no_po" | "po_closed" },
   "applications": [ { "id": "string", "invoiceId": "string", "externalInvoiceNumber": "string", "amount": number, "appliedAt": "string", "auto": true } ],
   "exports": [ { "exportId": "string", "exportedAt": "string" } ],
   "source": "feed" | "cloud_sync",
   "submittedFormat": "json" | "ubl" | "cxml",
   "cloudProvider": "aws" | "azure",
   "hasPdf": boolean,
   "createdAt": "string"
}

Aceptar nota de crédito

Acepta una nota de crédito.

POST/v1/workspaces/{regionId}/credit-notes/{creditNoteId}/accept

Parámetros

  • creditNoteIdstringObligatorio

    La nota de crédito, p. ej. "CN-1A2B3C4D".

Devuelve

200 OK con el objeto que se muestra en la respuesta.

Más detalles

Acepta una nota de crédito que espera aceptación. En una sola escritura: su estado, el saldo de la orden de compra que devuelve una corrección (nunca más de lo que la factura corregida consumió en la línea, menos los créditos anteriores) y, cuando los créditos se liquidan en Pleaxy y la factura que corrige puede recibirla, su aplicación a ella. Se notifica al proveedor.

Errores

  • 400 Bad Request - CREDIT_OVER_RELEASES_PO: devolvería más de lo que la factura consumió en su línea de la orden de compra.
  • 409 Conflict - CREDIT_NOTE_NOT_PENDING (ya aceptada, rechazada o anulada) o CREDIT_NOTE_CHANGED (cambió mientras se aceptaba; recarga y reintenta).
  • 401 Unauthorized - No se presentó ninguna credencial, o el token Bearer o el valor de X-Api-Key falta, no es válido, caducó o fue revocado.
  • 403 Forbidden - El token Bearer o la clave de API del llamador no da acceso a este espacio de trabajo (regionId), o no tiene el rol requerido.
POST /v1/workspaces/{regionId}/credit-notes/{creditNoteId}/accept
Solicitud
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/credit-notes/{creditNoteId}/accept" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Respuesta · 200 OK
{
   "documentType": "credit_note",
   "id": "string",
   "externalCreditNoteNumber": "string",
   "issueDate": "string",
   "buyerOrgId": "string",
   "buyerOrgName": "string",
   "supplierOrgId": "string",
   "supplier": "string",
   "supplierConnectionId": "string",
   "currency": "string",
   "reason": "returned_goods" | "price_adjustment" | "service_credit" | "rebate" | "other",
   "correctsBilling": true,
   "note": "string",
   "lineItems": [ { "description": "string", "qty": number, "unitPrice": number, "amount": number } ],
   "adjustments": [ { "type": "discount" | "charge", "description": "string", "amount": number } ],
   "taxAmount": number,
   "amount": number,
   "refunded": number,
   "remaining": number,
   "invoiceId": "string",
   "externalInvoiceNumber": "string",
   "po": "string",
   "poLineNo": number,
   "status": "pending_acceptance" | "accepted" | "rejected" | "void",
   "autoAccepted": true,
   "acceptedAt": "string",
   "rejection": { "at": "string", "reason": "string" },
   "poEffect": { "kind": "release", "po": "string", "poLineNo": number, "amount": number, "qty": number } | { "kind": "none", "why": "not_a_correction" | "no_po" | "po_closed" },
   "applications": [ { "id": "string", "invoiceId": "string", "externalInvoiceNumber": "string", "amount": number, "appliedAt": "string", "auto": true } ],
   "exports": [ { "exportId": "string", "exportedAt": "string" } ],
   "source": "feed" | "cloud_sync",
   "submittedFormat": "json" | "ubl" | "cxml",
   "cloudProvider": "aws" | "azure",
   "hasPdf": boolean,
   "createdAt": "string"
}

Rechazar nota de crédito

Rechaza una nota de crédito, con un motivo.

POST/v1/workspaces/{regionId}/credit-notes/{creditNoteId}/reject

Parámetros

  • creditNoteIdstringObligatorio

    La nota de crédito, p. ej. "CN-1A2B3C4D".

Cuerpo

  • reasonstringObligatorio

    De 1 a 1000 caracteres.

Devuelve

200 OK con el objeto que se muestra en la respuesta.

Más detalles

Rechaza una nota de crédito que espera aceptación, con un motivo que lee el proveedor. Se notifica al proveedor.

Errores

  • 400 Bad Request - CREDIT_NOTE_INVALID: no hay motivo.
  • 409 Conflict - CREDIT_NOTE_NOT_PENDING o CREDIT_NOTE_CHANGED.
  • 401 Unauthorized - No se presentó ninguna credencial, o el token Bearer o el valor de X-Api-Key falta, no es válido, caducó o fue revocado.
  • 403 Forbidden - El token Bearer o la clave de API del llamador no da acceso a este espacio de trabajo (regionId), o no tiene el rol requerido.
POST /v1/workspaces/{regionId}/credit-notes/{creditNoteId}/reject
Solicitud
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/credit-notes/{creditNoteId}/reject" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{ "reason": "string" }
Respuesta · 200 OK
{
   "documentType": "credit_note",
   "id": "string",
   "externalCreditNoteNumber": "string",
   "issueDate": "string",
   "buyerOrgId": "string",
   "buyerOrgName": "string",
   "supplierOrgId": "string",
   "supplier": "string",
   "supplierConnectionId": "string",
   "currency": "string",
   "reason": "returned_goods" | "price_adjustment" | "service_credit" | "rebate" | "other",
   "correctsBilling": true,
   "note": "string",
   "lineItems": [ { "description": "string", "qty": number, "unitPrice": number, "amount": number } ],
   "adjustments": [ { "type": "discount" | "charge", "description": "string", "amount": number } ],
   "taxAmount": number,
   "amount": number,
   "refunded": number,
   "remaining": number,
   "invoiceId": "string",
   "externalInvoiceNumber": "string",
   "po": "string",
   "poLineNo": number,
   "status": "pending_acceptance" | "accepted" | "rejected" | "void",
   "autoAccepted": true,
   "acceptedAt": "string",
   "rejection": { "at": "string", "reason": "string" },
   "poEffect": { "kind": "release", "po": "string", "poLineNo": number, "amount": number, "qty": number } | { "kind": "none", "why": "not_a_correction" | "no_po" | "po_closed" },
   "applications": [ { "id": "string", "invoiceId": "string", "externalInvoiceNumber": "string", "amount": number, "appliedAt": "string", "auto": true } ],
   "exports": [ { "exportId": "string", "exportedAt": "string" } ],
   "source": "feed" | "cloud_sync",
   "submittedFormat": "json" | "ubl" | "cxml",
   "cloudProvider": "aws" | "azure",
   "hasPdf": boolean,
   "createdAt": "string"
}

Obtener liquidación de créditos

Devuelve dónde se liquidan los créditos aceptados.

GET/v1/workspaces/{regionId}/credit-notes/settings

Devuelve

200 OK con el objeto que se muestra en la respuesta.

Más detalles

Quién liquida los créditos aceptados: pleaxy (se aplican a facturas aquí) o accounting_system (se exportan para tu ERP). Hasta que se elige (chosen: false), es accounting_system para un espacio de trabajo que ha exportado facturas para pago y pleaxy en caso contrario.

Errores

  • 401 Unauthorized - No se presentó ninguna credencial, o el token Bearer o el valor de X-Api-Key falta, no es válido, caducó o fue revocado.
  • 403 Forbidden - El token Bearer o la clave de API del llamador no da acceso a este espacio de trabajo (regionId), o no tiene el rol requerido.
GET /v1/workspaces/{regionId}/credit-notes/settings
Solicitud
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/credit-notes/settings" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Respuesta · 200 OK
{
   "creditSettlement": "pleaxy" | "accounting_system",
   "chosen": boolean
}

Configurar liquidación de créditos

Elige dónde se liquidan los créditos aceptados.

PUT/v1/workspaces/{regionId}/credit-notes/settings

Cuerpo

  • creditSettlementstringObligatorio

    "pleaxy" o "accounting_system".

Devuelve

200 OK con el objeto que se muestra en la respuesta.

Más detalles

Elige quién liquida los créditos aceptados. Pasar a accounting_system se rechaza mientras haya créditos aplicados a facturas impagadas; quítalos primero.

Errores

  • 400 Bad Request - CREDIT_SETTLEMENT_INVALID.
  • 409 Conflict - CREDITS_APPLIED_TO_UNPAID: hay créditos aplicados a facturas impagadas.
  • 401 Unauthorized - No se presentó ninguna credencial, o el token Bearer o el valor de X-Api-Key falta, no es válido, caducó o fue revocado.
  • 403 Forbidden - El token Bearer o la clave de API del llamador no da acceso a este espacio de trabajo (regionId), o no tiene el rol requerido.
PUT /v1/workspaces/{regionId}/credit-notes/settings
Solicitud
curl -X PUT "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/credit-notes/settings" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{ "creditSettlement": "pleaxy" | "accounting_system" }
Respuesta · 200 OK
{
   "creditSettlement": "pleaxy" | "accounting_system",
   "chosen": boolean
}

Listar créditos disponibles

Lista los créditos que se pueden aplicar a una factura.

GET/v1/workspaces/{regionId}/invoices/{invoiceId}/available-credits

Parámetros

  • invoiceIdstringObligatorio

    La factura, p. ej. "INV-1A2B3C4D".

Devuelve

200 OK con el objeto que se muestra en la respuesta.

Más detalles

Los créditos aceptados del proveedor de la factura en su moneda, del más antiguo al más reciente, cada uno con lo que queda y una sugerencia (hasta lo que debe la factura), y las notas de crédito del proveedor que aún esperan aceptación. locked indica por qué la factura no puede recibir créditos ahora.

Errores

  • 401 Unauthorized - No se presentó ninguna credencial, o el token Bearer o el valor de X-Api-Key falta, no es válido, caducó o fue revocado.
  • 403 Forbidden - El token Bearer o la clave de API del llamador no da acceso a este espacio de trabajo (regionId), o no tiene el rol requerido.
GET /v1/workspaces/{regionId}/invoices/{invoiceId}/available-credits
Solicitud
curl "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/invoices/{invoiceId}/available-credits" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Respuesta · 200 OK
{
   "creditSettlement": "pleaxy" | "accounting_system",
   "locked": "exported" | "paid" | "rejected" | "otherCurrency",
   "amountDue": number,
   "currency": "string",
   "credits": [ { "creditNoteId": "string", "externalCreditNoteNumber": "string", "reason": "string", "issueDate": "string", "amount": number, "remaining": number, "suggested": number } ],
   "pending": [ { "creditNoteId": "string", "externalCreditNoteNumber": "string", "reason": "string", "amount": number } ],
   "suggestedTotal": number
}

Aplicar créditos

Aplica créditos a una factura.

POST/v1/workspaces/{regionId}/invoices/{invoiceId}/credit-applications

Parámetros

  • invoiceIdstringObligatorio

    La factura, p. ej. "INV-1A2B3C4D".

Cuerpo

  • applicationsArray<{ creditNoteId, amount }>Obligatorio

    De 1 a 20, cada nota de crédito una sola vez, cada importe como máximo lo que queda de ella.

Devuelve

200 OK con el objeto que se muestra en la respuesta.

Más detalles

Aplica créditos aceptados a una factura que no está exportada, pagada, rechazada ni adeudada en otra moneda: todos o ninguno, en una sola escritura con cada nota de crédito. El importe adeudado baja; el total y su impuesto no. Los créditos pueden cubrir como máximo lo que debe la factura; una factura aprobada que cubren por completo se marca como pagada con el método "credit" (una no aprobada, una vez aprobada). Se notifica al proveedor. Devuelve la factura.

Errores

  • 400 Bad Request - CREDIT_APPLICATIONS_REQUIRED, CREDIT_APPLICATIONS_INVALID (una nota de crédito listada dos veces, en otra moneda o de otro proveedor) o CREDIT_OVER_APPLIED (más de lo que queda de una nota de crédito, o más de lo que debe la factura).
  • 409 Conflict - INVOICE_LOCKED (exportada, pagada, rechazada o adeudada en otra moneda), CREDIT_NOTE_NOT_ACCEPTED, CREDITS_SETTLED_IN_ACCOUNTING (tu sistema contable liquida los créditos) o CREDIT_NOTE_CHANGED.
  • 401 Unauthorized - No se presentó ninguna credencial, o el token Bearer o el valor de X-Api-Key falta, no es válido, caducó o fue revocado.
  • 403 Forbidden - El token Bearer o la clave de API del llamador no da acceso a este espacio de trabajo (regionId), o no tiene el rol requerido.
POST /v1/workspaces/{regionId}/invoices/{invoiceId}/credit-applications
Solicitud
curl -X POST "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/invoices/{invoiceId}/credit-applications" \
  -H "X-Api-Key: $PLEAXY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json
body.json
{ "applications": [ { "creditNoteId": "string", "amount": number } ] }
Respuesta · 200 OK
{
   "documentType": "invoice" | "debit_note",
   "amendsInvoiceId": "string",
   "amendsExternalInvoiceNumber": "string",
   "debitNoteIds": [ "string" ],
   "replacesInvoiceIds": [ "string" ],
   "replacedByInvoiceIds": [ "string" ],
   "replacement": { "creditedInFull": boolean, "uncredited": number },
   "uncreditedOriginals": [ { "invoiceId": "string", "externalInvoiceNumber": "string", "uncredited": number, "currency": "string" } ],
   "id": "string",
   "po": "string",
   "poLineNo": number,
   "billsNoPoLine": true,
   "buyerOrgId": "string",
   "supplierOrgId": "string",
   "supplier": "string",
   "amount": number,
   "currency": "string",
   "usageAmount": number,
   "usageCurrency": "string",
   "tolerancePct": number,
   "matchStatus": "pending" | "matched" | "discrepancy" | "unverified",
   "unverifiedReason": "no_purchase_order" | "no_billing_connection" | "debit_note",
   "discrepancyReason": "amount" | "currency",
   "paid": boolean,
   "dueInDays": number,
   "approval": {
      "requester": "string",
      "requesterEmployeeKey": "string",
      "groups": [
        {
          "id": "string",
          "mode": "sequential" | "parallel",
          "label": "string",
          "status": "pending" | "approved" | "rejected",
          "stages": [
            { "id": "string", "label": "string", "approverEmployeeKey": "string", "approverName": "string", "status": "pending" | "approved" | "rejected" }
          ]
        }
      ],
      "groupIndex": number,
      "status": "pending" | "approved" | "rejected",
      "history": [
        { "stage": "string", "by": "string", "at": "string", "action": "approved" | "rejected" | "limit_exceeded" | "reassigned" | "skipped" }
      ],
      "autonomy": boolean,
      "selfApproved": boolean
    },
   "createdAt": "string",
   "lastRemindedAt": "string",
   "rejection": { "reasonCode": "amount_incorrect" | "not_ordered_or_not_received" | "duplicate" | "missing_or_wrong_po" | "wrong_billing_entity" | "other", "reason": "string", "at": "string" },
   "replacesInvoiceId": "string",
   "source": "po-flip" | "direct" | "manual" | "feed",
   "submittedFormat": "json" | "cxml" | "ubl",
   "submittedBy": "string",
   "externalInvoiceNumber": "string",
   "lineItems": [
      { "description": "string", "qty": number, "unitPrice": number, "discount": number, "charge": number, "amount": number }
   ],
   "adjustments": [
      { "type": "discount" | "charge", "description": "string", "amount": number }
   ],
   "taxAmount": number,
   "taxBreakdown": [ { "description": "string", "rate": number, "amount": number } ],
   "paymentCurrencyAmount": { "currencyCode": "string", "totalAmount": number, "currencyExchangeDetails": { "rate": number, "rateDate": "string", "rateSource": "string" } },
   "taxCurrencyAmount": { "currencyCode": "string", "amountBreakdown": { "taxes": { "totalAmount": number } }, "currencyExchangeDetails": { "rate": number, "rateDate": "string", "rateSource": "string" } },
   "baseCurrencyAmount": { "currencyCode": "string", "totalAmount": number },
   "rateWarnings": [
      { "object": "payment" | "tax", "currency": "string", "statedRate": number, "referenceRate": number, "source": "provider" | "override", "asOf": "string", "deviationPct": number }
   ],
   "withholdings": [ { "description": "string", "rate": number, "amount": number } ],
   "deductions": [ { "kind": "prepayment" | "credit", "description": "string", "amount": number, "reference": "string", "paidOn": "string", "sourceInvoiceId": "string", "stated": true } ],
   "invoiceKind": "prepayment",
   "creditNoteIds": [ "string" ],
   "creditApplications": [ { "id": "string", "creditNoteId": "string", "externalCreditNoteNumber": "string", "amount": number, "appliedAt": "string", "appliedByName": "string", "auto": true } ],
   "payment": { "status": "recorded", "method": "ach" | "wire" | "check" | "card" | "other" | "credit", "paymentDate": "string", "reference": "string", "paidAmount": { "amount": number, "currency": "string", "rate": number, "rateDate": "string" } },
   "remittances": [ { "id": "string", "sentAt": "string", "sentByName": "string", "note": "string", "file": { "fileName": "string", "contentType": "application/pdf" | "image/png" | "image/jpeg", "sizeBytes": number } } ]
}

Quitar aplicación de crédito

Quita un crédito de una factura.

DELETE/v1/workspaces/{regionId}/invoices/{invoiceId}/credit-applications/{applicationId}

Parámetros

  • invoiceIdstringObligatorio

    La factura, p. ej. "INV-1A2B3C4D".

  • applicationIdstringObligatorio

    La aplicación, de los creditApplications de la factura.

Devuelve

200 OK con el objeto que se muestra en la respuesta.

Más detalles

Retira un crédito de una factura que no está exportada ni pagada; vuelve a su nota de crédito. Devuelve la factura.

Errores

  • 404 Not Found - La factura no tiene esa aplicación.
  • 409 Conflict - INVOICE_LOCKED (exportada o pagada) o CREDIT_NOTE_CHANGED.
  • 401 Unauthorized - No se presentó ninguna credencial, o el token Bearer o el valor de X-Api-Key falta, no es válido, caducó o fue revocado.
  • 403 Forbidden - El token Bearer o la clave de API del llamador no da acceso a este espacio de trabajo (regionId), o no tiene el rol requerido.
DELETE /v1/workspaces/{regionId}/invoices/{invoiceId}/credit-applications/{applicationId}
Solicitud
curl -X DELETE "$PLEAXY_API_BASE_URL/v1/workspaces/{regionId}/invoices/{invoiceId}/credit-applications/{applicationId}" \
  -H "X-Api-Key: $PLEAXY_API_KEY"
Respuesta · 200 OK
{
   "documentType": "invoice" | "debit_note",
   "amendsInvoiceId": "string",
   "amendsExternalInvoiceNumber": "string",
   "debitNoteIds": [ "string" ],
   "replacesInvoiceIds": [ "string" ],
   "replacedByInvoiceIds": [ "string" ],
   "replacement": { "creditedInFull": boolean, "uncredited": number },
   "uncreditedOriginals": [ { "invoiceId": "string", "externalInvoiceNumber": "string", "uncredited": number, "currency": "string" } ],
   "id": "string",
   "po": "string",
   "poLineNo": number,
   "billsNoPoLine": true,
   "buyerOrgId": "string",
   "supplierOrgId": "string",
   "supplier": "string",
   "amount": number,
   "currency": "string",
   "usageAmount": number,
   "usageCurrency": "string",
   "tolerancePct": number,
   "matchStatus": "pending" | "matched" | "discrepancy" | "unverified",
   "unverifiedReason": "no_purchase_order" | "no_billing_connection" | "debit_note",
   "discrepancyReason": "amount" | "currency",
   "paid": boolean,
   "dueInDays": number,
   "approval": {
      "requester": "string",
      "requesterEmployeeKey": "string",
      "groups": [
        {
          "id": "string",
          "mode": "sequential" | "parallel",
          "label": "string",
          "status": "pending" | "approved" | "rejected",
          "stages": [
            { "id": "string", "label": "string", "approverEmployeeKey": "string", "approverName": "string", "status": "pending" | "approved" | "rejected" }
          ]
        }
      ],
      "groupIndex": number,
      "status": "pending" | "approved" | "rejected",
      "history": [
        { "stage": "string", "by": "string", "at": "string", "action": "approved" | "rejected" | "limit_exceeded" | "reassigned" | "skipped" }
      ],
      "autonomy": boolean,
      "selfApproved": boolean
    },
   "createdAt": "string",
   "lastRemindedAt": "string",
   "rejection": { "reasonCode": "amount_incorrect" | "not_ordered_or_not_received" | "duplicate" | "missing_or_wrong_po" | "wrong_billing_entity" | "other", "reason": "string", "at": "string" },
   "replacesInvoiceId": "string",
   "source": "po-flip" | "direct" | "manual" | "feed",
   "submittedFormat": "json" | "cxml" | "ubl",
   "submittedBy": "string",
   "externalInvoiceNumber": "string",
   "lineItems": [
      { "description": "string", "qty": number, "unitPrice": number, "discount": number, "charge": number, "amount": number }
   ],
   "adjustments": [
      { "type": "discount" | "charge", "description": "string", "amount": number }
   ],
   "taxAmount": number,
   "taxBreakdown": [ { "description": "string", "rate": number, "amount": number } ],
   "paymentCurrencyAmount": { "currencyCode": "string", "totalAmount": number, "currencyExchangeDetails": { "rate": number, "rateDate": "string", "rateSource": "string" } },
   "taxCurrencyAmount": { "currencyCode": "string", "amountBreakdown": { "taxes": { "totalAmount": number } }, "currencyExchangeDetails": { "rate": number, "rateDate": "string", "rateSource": "string" } },
   "baseCurrencyAmount": { "currencyCode": "string", "totalAmount": number },
   "rateWarnings": [
      { "object": "payment" | "tax", "currency": "string", "statedRate": number, "referenceRate": number, "source": "provider" | "override", "asOf": "string", "deviationPct": number }
   ],
   "withholdings": [ { "description": "string", "rate": number, "amount": number } ],
   "deductions": [ { "kind": "prepayment" | "credit", "description": "string", "amount": number, "reference": "string", "paidOn": "string", "sourceInvoiceId": "string", "stated": true } ],
   "invoiceKind": "prepayment",
   "creditNoteIds": [ "string" ],
   "creditApplications": [ { "id": "string", "creditNoteId": "string", "externalCreditNoteNumber": "string", "amount": number, "appliedAt": "string", "appliedByName": "string", "auto": true } ],
   "payment": { "status": "recorded", "method": "ach" | "wire" | "check" | "card" | "other" | "credit", "paymentDate": "string", "reference": "string", "paidAmount": { "amount": number, "currency": "string", "rate": number, "rateDate": "string" } },
   "remittances": [ { "id": "string", "sentAt": "string", "sentByName": "string", "note": "string", "file": { "fileName": "string", "contentType": "application/pdf" | "image/png" | "image/jpeg", "sizeBytes": number } } ]
}
Habla con nosotros