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/v3.1/site/{site_id}/invoice/addUpdate

Solicitud
Campo
Tipo
Descripción
external_id
String
El identificador único de la orden de compra del sistema/base de datos fuente. Si detectamos un registro con el mismo external_id, se actualizará; de lo contrario, se añadirá.
invoice_number
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.
invoice_term_name
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.
invoice_date
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
customer_memo
String
Una nota presentada al cliente en la parte inferior de la orden de compra.
internal_memo
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.
active
Boolean
Esta bandera representa si el registro orden de compra está activo y disponible para ser utilizado o no.
Default = true
payments
Una lista de pagos realizados en la orden de compra.
webhook_url
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.
attachments
String [ ]
Una lista de URL de adjuntos.
options
Opciones para configurar en la orden de compra.
Sample Request (Simple)
			
{
  "external_id": "439772921",
  "invoice_number": "12345",
  "description": "Merchandise Bundle",
  "totals": {
    "total": 45.99
  },
  "customer": {
    "external_id": "39772634",
    "first_name": "John",
    "last_name": "Doe",
    "mobile_phone": "111-222-3333",
    "email": "johndoe@abc.com"
  },
  "options": {
    "tippingEnabled": false
  },
  "webhook_url": "https://yourcompany.com/webhook"
}


		
Sample Request (Advanced)
			
{
  "external_id": "439772921",
  "invoice_number": "12345",
  "description": "",
  "customer_memo": "Thank you for your business!",
  "internal_memo": "",
  "invoice_date": "2022-12-01",
  "invoice_term_name": null,
  "expire_at": "2023-01-01",
  "totals": {
    "tax": 2.85,
    "total": 30
  },
  "customer": {
    "external_id": "39772634",
    "first_name": "John",
    "last_name": "Doe",
    "mobile_phone": "111-222-3333",
    "email": "johndoe@abc.com"
  },
  "lines": [
    {
      "description": "",
      "product": {
        "external_id": "62331255",
        "name": "Mens Large T-shirt",
        "unit_price": 15
      },
      "unit_price": 15,
      "qty": 2,
      "total": 30
    }
  ],
  "payments": [
    {
      "external_id": "72345322",
      "payment_type": "payment_card",
      "payment_sub_type": "amex",
      "display_name": "AMEX ****** 3422",
      "amount": 20,
      "gateway_transaction_id": 1234,
      "paid_on": "2021-03-15T16:32:11Z",
      "active": true
    }
  ],
  "options": {
    "tippingEnabled": false
  },
  "webhook_url": "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"
  ]
}