Add/Update Orden de compra


The following endpoint can be used to add or update a orden de compra within the Hyfin application. When a orden de compra is added to Hyfin, a payment request will be automatically generated and the customer will be notified via text message, email or both based on the notification options set on the customer record.

If you choose to omit the customer info, a payment link will be provided in the API response. The payment link can be used on a self-checkout system or kiosk.

If the customer is viewing the orden de compra on their device and the orden de compra is updated, a message will display letting the customer know the orden de compra has been updated and the new version of the orden de compra will automatically be displayed on the customers device.


Punto Final

The following endpoint can be used to add or update a orden de compra. You must replace the {base_url} and {site_id} variable with the site id that was provided when the site was created.

POST
{base_url}/api/v4/site/{site_id}/invoice/addUpdate

Solicitud
Campo
Tipo
Descripción
_id
String
El id de la orden de compra. Este campo es generado automáticamente por el sistema y no es necesario al crear una nueva orden de compra, pero es necesario al actualizar una orden de compra existente.
invoiceNumber
String
El número único asignado por el sistema fuente y mostrado al cliente en la orden de compra.
totals
Los importes totales en la orden de compra. Validados contra la suma de los elementos de línea encontrados en lines.
customer
Una referencia al registro del cliente. Omita este campo para recibir un enlace a la orden de compra.
invoiceTermName
String
El nombre del plazo de la orden de compra para la orden de compra. Se establece por defecto en el plazo de la orden de compra del cliente si existe, a menos que se pase null.
lines
Una lista de elementos de línea en la orden de compra. Requerido si no se pasa la description.
description
String
Una breve descripción de los productos/servicios en la orden de compra. Requerido si no se pasan las lines.
invoiceDate
Date
La fecha de la orden de compra. Si se establece en el futuro, la solicitud no se enviará hasta esa fecha. El valor predeterminado es hoy si se deja en blanco. Format = YYYY-MM-DD
customerMemo
String
Una nota presentada al cliente en la parte inferior de la orden de compra.
internalMemo
String
Un memo agregado en la parte inferior de la orden de compra. Solo visible para el personal interno, nunca se muestra a los clientes.
payments
Una lista de pagos realizados en la orden de compra.
webhookUrl
String
La URL a la que se enviará la publicación cuando se realicen ciertas acciones en la orden de compra. Se enviarán notificaciones cuando un texto/correo electrónico falle, un cliente haga clic en un enlace o realice un pago.
options
Opciones para configurar en la orden de compra.
attachmentRefs
Una lista de adjuntos.
billToCustomer
El cliente a facturar, si es diferente al cliente.
billTo
Opciones adicionales para la sección de Facturar a de la orden de compra. Si se proporciona billToCustomer, este objeto se fusionará con la información del cliente y se podrá utilizar para anular campos específicos. Si no se proporciona billToCustomer, los campos de este objeto se utilizarán como la información de Facturar a en la orden de compra.
soldTo
Opciones adicionales para la sección de Vendido a / Cliente de la orden de compra.
deleted
Boolean
Esta bandera representa si el registro ha sido eliminado y ya no está disponible para ser utilizado.
Sample Request (Simple)
			
{
  "_id": "61f32dc2f62bdc6a48945067",
  "invoiceNumber": "12345",
  "description": "Merchandise Bundle",
  "totals": {
    "total": 4599
  },
  "customer": {
    "_id": "61f32dc2f62bdc6a48951255",
    "firstName": "John",
    "lastName": "Doe",
    "mobilePhone": "111-222-3333",
    "email": "johndoe@abc.com"
  },
  "options": {
    "tippingEnabled": false
  },
  "webhookUrl": "https://yourcompany.com/webhook"
}


		
Sample Request (Advanced)
			
{
  "_id": "61f32dc2f62bdc6a48945067",
  "invoiceNumber": "12345",
  "description": "",
  "customerMemo": "Thank you for your business!",
  "internalMemo": "",
  "invoiceDate": "2022-12-01",
  "invoiceTermName": null,
  "expireAt": "2023-01-01",
  "totals": {
    "taxes": 285,
    "total": 3000
  },
  "customer": {
    "_id": "61f32dc2f62bdc6a48951255",
    "firstName": "John",
    "lastName": "Doe",
    "mobilePhone": "111-222-3333",
    "email": "johndoe@abc.com"
  },
  "lines": [
    {
      "description": "",
      "product": {
        "_id": "62166eda3a8c0517866b9b46",
        "name": "Mens Large T-shirt",
        "unitPrice": 1500
      },
      "unitPrice": 1500,
      "qty": 2,
      "total": 3000
    }
  ],
  "payments": [
    {
      "_id": "62166eda3a8c0517866b9r23",
      "paymentType": "payment_card",
      "paymentSubType": "amex",
      "displayName": "AMEX ****** 3422",
      "amount": 2000,
      "gatewayTransactionId": 1234,
      "paidOn": "2021-03-15T16:32:11Z",
      "deleted": false
    }
  ],
  "options": {
    "tippingEnabled": false
  },
  "webhookUrl": "https://yourcompany.com/webhook",
  "attachments": [
    "https://url.to.your/attachment"
  ]
}


		
Respuesta
Campo
Tipo
Descripción
success
Boolean
Whether the record was added or updated successfully.
action
String
Informs whether the record was added or updated. Will only be returned if success is true.
One of added, updated
_id
String
The auto generated id assigned to the record.
errors
String [ ]
A list of errors. Will only be returned if success is false.
link
String
El enlace a la orden de compra. Solo se devuelve si no se pasa un customer.
Sample Response (Successful)
			
{
  "success": true,
  "action": "added",
  "_id": "60f720d248f143332af022e0",
  "link": "https//site.url/KA39T1A45JL"
}


		
Sample Response (Failed)
			
{
  "success": false,
  "errors": [
    "invalid field2",
    "missing field_name"
  ]
}