Saltar al contenido principal

get-orders

Este método obtiene el listado de órdenes de venta que el usuario tiene creadas en la plataforma (se utiliza paginación para la consulta ordenada).

Notas

Si necesitas más información sobre cómo funciona la paginación consulta la sección: Paginación.

Los resultados se ordenan de manera descendente por fecha en la que se generó la orden de venta.


Path del método

get-orders

Endpoint final

PRODUCCION

https://aceptabits.com/api/thirdparty/v1/get-orders

SANDBOX DE PRUEBAS

https://sandbox.aceptabits.com/api/thirdparty/v1/get-orders

Método de petición HTTP

GET

Lista de parámetros

ParámetroObligatorioDescripciónvalor
pageSiEs la página que se utilizara en la paginación de la peticiónEjemplo:
1, 2, 3, etc.

Este valor debe ser numérico y entero, indicará la página actual a la cual se hará la consulta
limitSiEs el límite de elementos que se utilizara en la paginación de la peticiónEjemplo:
5, 10, 20, 50, etc.

Este valor debe de ser numérico y entero, con un valor máximo posible de 100, si se envía un número mayor a 100 se realizara la consulta con el valor 100
code_shopNoEs el código de la tienda a la que se requiere obtener el listado de órdenes en específicoejemplo:
pgbsho0635214789653205

Este código es único de cada tienda, se obtiene al consultar el listado de tiendas o al generar una tienda nueva, consulte los métodos: get-shops, add-shop o show-shop para más detalles
code_agentNoEs el código del agente al que se requiere obtener el listado de órdenes en específicoejemplo:
pgbage9743164639751694

Este código es único de cada agente, se obtiene al consultar el listado de agentes o al generar un agente nuevo, consulte los métodos: get-agents, add-agent o show-agent para más detalles
code_clientNoEs el código del cliente al que se requiere obtener el listado de órdenes en especificoejemplo:
pgbcus49196546354813961

Este código es único de cada cliente, se obtiene al consultar el listado de clientes o al generar un cliente nuevo, consulte los métodos: get-customers, add-customer o show-customer para más detalles
code_currencyNoEs el código de la moneda al que se requiere obtener el listado de órdenes en específicoejemplo:
PBT o BTC

Este código es único de cada moneda, se obtiene al consultar el listado de monedas soportadas en la plataforma, consulte el método: get-currencies para más detalles
searchNoSe utiliza como filtro de búsqueda para la consulta de las órdenes, el filtro se aplicara dentro de:

code address code_shop name_shop name_agent lastname_agent phone_agent email_agent code_agent name_customer lastname_customer phone_customer email_customer code_customer name_currency code_currency

Para más información de estos campos consulta el método add-order, show-order, show-order-customer o en esta misma sección en Ejemplo de respuesta EXITOSA
Ejemplo:
pgbpro9653365214, pgbsho6199, velas, computadora, cuaderno profesional, etc.


Se puede enviar una cadena de texto, un numero o cualquier valor que se quiera utilizar como filtro

Si este campo se envía con un valor diferente a vacío no se tomara en cuenta los filtros de year month day_from day_to
isPaidNoIndica si quieres que se filtre por el campo isPaidSe aceptan dos valores el 0 y el -1:

0 = la orden aun no ha sido pagada en su totalidad
-1 = la orden ya se ha pagado en su totalidad

Para más información acerca de este campo ingresa en la documentación de los métodos: show-order, show-order-customer o aquí mismo en la sección Ejemplo de respuesta EXITOSA
isExpiredNoIndica si quieres que se filtre por el campo isExpiredSe aceptan dos valores el 0 y el -1:

0 = no ha expirado
-1 = ya ha expirado

Para más información acerca de este campo ingresa en la documentación de los métodos: show-order, show-order-customer o aquí mismo en la sección Ejemplo de respuesta EXITOSA
isWaitingNoIndica si quieres que se filtre por el campo isWaitingSe aceptan dos valores el 0 y el -1:

0 = la orden no ha recibido ningún pago o se ha pagado en su totalidad
-1 = a orden recibió por lo menos un pago y esta en espera de ser liquidada completamente

Para más información acerca de este campo ingresa en la documentación de los métodos: show-order, show-order-customer o aquí mismo en la sección Ejemplo de respuesta EXITOSA
isConfirmingNoIndica si quieres que se filtre por el campo isConfirmingSe aceptan dos valores el 0 y el -1:

0 = no está esperando confirmaciones de red
-1 = si esta esperando confirmaciones de red

Para más información acerca de este campo ingresa en la documentación de los métodos: show-order, show-order-customer o aquí mismo en la sección Ejemplo de respuesta EXITOSA
hasAddressNoIndica si quieres que se filtre por las órdenes que ya tienen generada su dirección de depósitoSe aceptan dos valores el 0 y el -1:

0 = no tiene generada la dirección de deposito
-1 = si tiene generada la dirección de deposito

Para mas información acerca del campo address ingresa en la documentación de los métodos: show-order, show-order-customer o aquí mismo en la sección Ejemplo de respuesta EXITOSA
yearNoIndica si quieres que se filtre por el año de creaciónejemplo:
2024, 2025, etc.

Deveras de ingresar el año de búsqueda para aplicar el filtro
monthNoIndica si quieres que se filtre por el mes de creaciónejemplo:
1, 2, 10, 12

Deveras de ingresar el mes de búsqueda para aplicar el filtro

El conteo de meses se inicia con el valor 1 = enero hasta el valor 12 = diciembre, no se deberá de enviar el prefijo 0 para los meses menores a octubre (valor 10), por ejemplo: para filtrar por febrero se deberá de enviar el valor 2 y no el valor 02
day_fromNoIndica si quieres que se filtre por el día inicial indicadoejemplo:
1, 5, 30, etc.

Deveras de ingresar el día inicial en el que se aplicara el filtro

La lógica day_from implica que realizara la búsqueda de las órdenes de la siguiente manera: fecha de creación mayor o igual a day_from
day_toNoIndica si quieres que se filtre por el día final indicadoejemplo:
1, 5, 30, etc.

Deveras de ingresar el día final en el que se aplicara el filtro

La lógica day_to implica que realizara la búsqueda de las órdenes de la siguiente manera: fecha de creación menor o igual a day_to
Notas

para filtrar por periodos de fecha en específico se deberán de utilizar los parámetros de year month day_from day_to, a continuación mostramos algunos ejemplos:

  • si se quiere filtrar y obtener todas las órdenes del año 2024 se deberá de ingresar únicamente el parámetro year con valor 2024.
  • si se requiere filtrar y obtener todas las órdenes del mes de junio del 2024 se deberán de ingresar únicamente los parámetros year con valor 2024 y month con valor 6.
  • si se requiere filtrar y obtener todas las órdenes del mes de junio del 2024 iniciando desde el día 10 se deberán de ingresar únicamente los parámetros year con valor 2024, month con valor 6 y day_from con valor 10.
  • si se requiere filtrar y obtener todas las órdenes del mes de junio del 2024 iniciando desde el día primero hasta el dia 15 se deberán de ingresar los parámetros year con valor 2024, month con valor 6 y day_to con valor 15.
  • si se requiere filtrar y obtener todas las órdenes del mes de junio del 2024 iniciando desde el día 10 hasta el día 15 se deberán de ingresar los parámetros year con valor 2024, month con valor 6, day_from con valor 10 y day_to con valor 15.
  • si se requiere filtrar y obtener todas las órdenes únicamente del dia 15 de junio de 2024 se deberán de ingresar los parámetros year con valor 2024, month con valor 6, day_from con valor 15 y day_to con valor 15.

Si no se envía el parámetro month y se envían los parámetros day_from o day_to la búsqueda realizara el filtrado omitiendo el mes, por ejemplo:

  • day_from con valor 15, se obtendrán las órdenes cuya fecha de creación implique el día 15 en adelante, de todos los meses o años (si no se especifica el parámetro year)
  • day_to con valor 15, se obtendrán las órdenes cuya fecha de creacion implique el día 15 hacia abajo, de todos los meses o años (si no se especifica el parámetro year)

La recomendación es que se utilicen siempre los parámetros de year y month para obtener de manera ordenada las ordene por mes y año, así mismo, complementando con day_from y day_to para hacer filtro por periodos más específicos dentro del mismo mes.

Por último, pero no me nos importante, hay que tomar en cuenta la zona horaria, las órdenes se guardan en su fecha de creación con la zona horaria America/Mexico_City


Lista de códigos

Exitoso
CódigoDescripción
0055Lista de órdenes obtenida con éxito

 

Error
CódigoDescripción
0000El Token API no es correcto y la autenticación del usuario ha fallado
0003El Token API no es correcto y la autenticación del usuario ha fallado
1311El Token API no es correcto y la autenticación del usuario ha fallado
1581El campo página de la paginación es requerido
1582El campo límite de la paginación es requerido
1312El Token API no es correcto y la autenticación del usuario ha fallado
1313Ocurrió un problema al obtener el listado de órdenes, inténtelo nuevamente o consulte con soporte técnico para más ayuda

Ejemplo de respuesta EXITOSA

Exitoso

Código HTTP 200


{
"status": true,
"success": {
"code": "0055"
},
"data": {

"data": [
{
"code": "pgbord109388282219472775",
"address": null,
"slug": "582f9fca17890fede77b878715dad8e80b65a822uImrfQWpw7CLgPCAzFdq",
"amount_filled": "0.00000000",
"amount_remaining": "200.00000000",
"amount_unconfirmed": "0.00000000",
"code_customer": "pgbcus57844472574915725",
"name_customer": "Cliente general",
"code_agent": "pgbage9743164921458226",
"name_agent": "Francisco Perez lopez",
"code_shop": "pgbsho44747793463129176",
"name_shop": "Velas martin",
"code_currency": "PBT",
"currency_full_name": "PesoBits (PBT)",
"name_currency": "PesoBits",
"confirmations_counter": "0",
"remaining_seconds": null,
"created_at": "2024-08-09T04:50:26.000000Z",
"created_at_format": "2024-08-08 23:50:26",
"expiration_date": null,
"isConfirming": "0",
"isExpired": "0",
"isPaid": "0",
"isWaiting": "0",
"total": "200.00000000",
"subtotal": "198.00000000",
"commission": "2.00000000",
"commission_percent": "1.00000000",
"total_mxn": "560.00000000",
"subtotal_mxn": "554.40000000",
"commission_mxn": "5.60000000",
"cart": [
{
"quantity": "1.00000000",
"total_mxn": "0.00000000",
"name_product": null,
"code_product": null,
"name_service": "Venta general",
"code_service": "pgbser43252313631985235"
}
],
"concept": "venta folio 5698"
},
{
"code": "pgbord108917841283852585",
"address": null,
"slug": "8fca876c1a8be60e9eb99980abc0b5326cc9c4e6vGvmnyNigS72OF2JxoFo",
"amount_filled": "0.00000000",
"amount_remaining": "71.42500000",
"amount_unconfirmed": "0.00000000",
"code_customer": "pgbcus56777697528357625",
"name_customer": "Mario Chavez Alvarez",
"code_agent": null,
"name_agent": null,
"code_shop": "pgbsho44747793463129176",
"name_shop": "Velas martin",
"code_currency": "PBT",
"currency_full_name": "PesoBits (PBT)",
"name_currency": "PesoBits",
"confirmations_counter": "0",
"remaining_seconds": null,
"created_at": "2024-08-09T01:32:10.000000Z",
"created_at_format": "2024-08-08 20:32:10",
"expiration_date": null,
"isConfirming": "0",
"isExpired": "0",
"isPaid": "0",
"isWaiting": "0",
"total": "71.42500000",
"subtotal": "70.71075000",
"commission": "0.71425000",
"commission_percent": "1.00000000",
"total_mxn": "199.99000000",
"subtotal_mxn": "197.99000000",
"commission_mxn": "2.00000000",
"cart": [
{
"quantity": "1.00000000",
"total_mxn": "199.99000000",
"name_product": "Vela para decoración roma",
"code_product": "pgbpro6788273824117159",
"name_service": null,
"code_service": null
}
],
"concept": null
}
],
"current_page": 1,
"last_page": 1,
"per_page": 10,
"from": 1,
"to": 2,
"total": 2
}
}

Descripción de la respuesta

  • Revisar el listado de códigos EXITOSO para conocer el significado de success code.
  • data - Se obtiene la información de las órdenes y la información actual de la paginación
    • current_page - Indica cual es la página actual en la paginación
    • last_page - Indica cual es el último número de página posible (este valor cambia dependiendo del límite de elementos por página que se envio con el parametro limit)
    • per_page - Indica el límite de elementos mostrados por pagina
    • from - indica el índice inicial de la numeración de las órdenes mostrado en esta pagina
    • to - indica el índice final de la numeración de las órdenes mostrado en esta pagina
    • total - Indica el número de total de elementos que existen
    • data - Arreglo donde se listan las órdenes que tiene creados el usuario en la plataforma
      • code - Código de la orden (este código es único para cada orden dada de alta)
      • address - Muestra la dirección de depósito de la orden, si no se ha mostrado la orden al cliente con el método show-order-customer, este campo se mantendrá con valor null
      • slug - Este es el identificador web de la orden (este slug es único para cada orden dada de alta, se utiliza para formar la URL de pago que se puede compartir al cliente)
      • amount_filled - Muestra la cantidad obtenida de la orden, se va actualizando cada vez que se realiza un pago a la orden
      • amount_remaining - Muestra la cantidad restante que falta por obtener en la orden, se va actualizando cada vez que se realiza un pago a la orden
      • amount_unconfirmed - Muestra la cantidad obtenida que aún no ha completado las confirmaciones de red (en caso de que el pago no provenga de un usuario de MercadoBits, es decir de una wallet externa, si es así deberá de completar las confirmaciones de red para poder reflejarse en el campo amount_filled, si el pago proviene de un usuario de MercadoBits se verá reflejado inmediatamente en el campo amount_filled)
      • code_customer - Código del cliente al que pertenece la orden de venta
      • name_customer - Nombre del cliente al que pertenece la orden de venta
      • code_agent - Código del agente de ventas al que pertenece la orden de venta, si la orden no tiene asignado un agente de ventas se mantendrá este campo con valor null
      • name_agent - Nombre del agente de ventas al que pertenece la orden de venta, si la orden no tiene asignado un agente de ventas se mantendrá este campo con valor null
      • code_shop - Codigo de la tienda al que pertenece la orden de venta
      • name_shop - Nombre de la tienda al que pertenece la orden de venta
      • code_currency - Muestra el código de la moneda con la que se debe de pagar la orden de venta
      • currency_full_name - Muestra el nombre completo de la moneda con la que se debe de pagar la orden de venta (incluye nombre y código de moneda)
      • name_currency - Muestra el nombre de la moneda con la que se debe de pagar la orden de venta
      • confirmations_counter - Muestra las confirmaciones restantes para liberar el amount_unconfirmed
      • remaining_seconds - Muestra la diferencia de tiempo hasta su fecha y hora de expiracion en segundos, si no se ha mostrado la orden al cliente con el método show-order-customer, este campo se mantendrá con valor null
      • created_at - Fecha y hora de creación de la orden (UTC)
      • created_at_format - Fecha y hora de creación de la orden (America/Mexico_City)
      • expiration_date - Fecha y hora de expiración de la orden (America/Mexico_City), si no se ha mostrado la orden al cliente con el método show-order-customer, este campo se mantendrá con valor null
      • expiration_date_format - Fecha y hora de expiración de la orden (UTC), si no se ha mostrado la orden al cliente con el método show-order-customer, este campo se mantendrá con valor null
      • isConfirming - indica si la orden tiene algún pago nativo recibido y está esperando las confirmaciones de red, los valores posibles son:
        • 0 = no está esperando confirmaciones de red
        • -1 = si está esperando confirmaciones de red
      • isExpired - indica si una orden ha expirado, los valores posibles son:
        • 0 = no ha expirado
        • -1 = ya ha expirado
      • isPaid - indica si una orden ya ha sido pagada en su totalidad, los valores posibles son:
        • 0 = la orden aún no ha sido pagada en su totalidad
        • -1 = la orden ya se ha pagado en su totalidad
      • isWaiting - indica si la orden está en espera de ser liquidada completamente, los valores posibles son:
        • 0 = la orden no ha recibido ningún pago o se ha pagado en su totalidad
        • -1 = la orden recibió por lo menos un pago y está en espera de ser liquidada completamente
      • total - Muestra la cantidad total a pagar de la orden de venta
      • subtotal - Muestra la cantidad que recibirá el vendedor una vez la orden este pagada (si existe excedente, es decir que se pague de más, el vendedor recibirá también el excedente, el único monto que pasa a formar parte de AceptaBits es el mostrado en el campo commission)
      • commission - Muestra la comisión que el vendedor pagara a AceptaBits una vez que la orden este pagada
      • commission_percent - Muestra el porcentaje de comisión que la orden pagara a AceptaBits (se utiliza este valor para calcular el campo commission)
      • total_mxn - Muestra una representación del campo total en MXN (Peso mexicano)
      • subtotal_mxn - Muestra una representación del campo subtotal en MXN (Peso mexicano)
      • commission_mxn - Muestra una representación del campo commission en MXN (Peso mexicano)
      • cart - arreglo que contiene el carrito de compras de la orden, cada elemento dentro de este arreglo es un producto o servicio agregado
        • quantity - indica la cantidad del producto o servicio
        • total_mxn - muestra el total del presente elemento del carrito de compras expresado en MXN (Peso mexicano), se calcula de la siguiente manera: quantity X el precio en MXN del producto o servicio
        • name_product - Muestra el nombre del producto, si el elemento es un servicio este campo se mantendrá con valor null
        • code_product - Muestra el código del producto, si el elemento es un servicio este campo se mantendrá con valor null
        • name_service - Muestra el nombre del servicio, si el elemento es un producto este campo se mantendrá con valor null
        • code_service - Muestra el código del servicio, si el elemento es un producto este campo se mantendrá con valor null
      • concept - Muestra el concepto que se le asigno a la orden de venta, si no se le asigno ningún concepto este campo se mantendrá con valor null
Notas

Es importante conocer y saber interpretar la combinación de ciertos campos para entender en qué estado se encuentra una orden, por ejemplo, para saber si una orden ya se pagó, si está en espera de confirmaciones de red, si ya expiro, etc., a continuación, mostramos estos estados y su respectiva combinación e interpretación de sus respectivos campos:

ESTADO 1: orden recién creada en espera de ser abierta para el cliente: Este estado nos indica que se acaba de crear una orden nueva y está en espera de que sea abierta para el cliente utilizando el método: show-order-customer.

  • address = null
  • isPaid = 0
  • isExpired = 0
  • isConfirming = 0
  • isWaiting = 0
  • confirmations_counter = 0
  • amount_filled = 0
  • amount_unconfirmed = 0
  • amount_remaining = tiene el valor del campo total, ejemplo: 100, 0.00056, etc
  • expiration_date = null
  • expiration_date_format = null
  • remaining_seconds = null

ESTADO 2: orden recién abierta para el cliente: Este estado nos indica que la orden ya fue abierta para el cliente utilizando el método: show-order-customer, en este estado se genera la dirección de depósito y comienza a correr el tiempo hasta su expiración.

  • address = tiene generada la dirección de depósito, ejemplo: pbtcrt1qjr2fte8wgt0zet9tz9xcgwvjagvchrdea6a4ey
  • isPaid = 0
  • isExpired = 0
  • isConfirming = 0
  • isWaiting = 0
  • confirmations_counter = 0
  • amount_filled = 0
  • amount_unconfirmed = 0
  • amount_remaining = tiene el valor del campo total, ejemplo: 100, 0.00056, etc
  • expiration_date = tiene el valor de fecha y hora para su expiración, ejemplo: 2024-08-13 13:07:06, se representa en zona horaria America/Mexico_City
  • expiration_date_format = tiene el valor de fecha y hora para su expiración, ejemplo: 2024-08-13T18:07:06.000000Z, se representa en zona horaria UTC
  • remaining_seconds = muestra el tiempo en segundos hasta su fecha y hora de expiración, ejemplo: 185

ESTADO 3: orden con un pago recibido esperando las confirmaciones de red (deposito externo que no proviene de un usuario de MercadoBits): Este estado nos indica que la orden ha recibido un depósito y se encuentra en espera de las confirmaciones de red para acreditar los fondos, en este estado la orden ya no va a expirar y se deberá de ignorar completamente los campos: expiration_date, expiration_date_format y remaining_seconds.

  • address = tiene generada la dirección de depósito, ejemplo: pbtcrt1qjr2fte8wgt0zet9tz9xcgwvjagvchrdea6a4ey
  • isPaid = 0
  • isExpired = 0
  • isConfirming = -1
  • isWaiting = -1
  • confirmations_counter = muestra las confirmaciones pendientes de red para los depositos que requieren confirmaciones, ejemplo: 5
  • amount_filled = muestra el monto que ya se ha confirmado, ejemplo: 100, 0.00056, etc. (este campo va mostrando la sumatoria de todos los depósitos recibidos confirmados, es decir va mostrando el total de depósitos que ha recibido la orden)
  • amount_unconfirmed = tiene el valor del depósito recibido que está en espera de las confirmaciones de red, ejemplo: 70.52369854
  • amount_remaining = tiene el valor del monto restante para completar el pago, ejemplo: 100, 0.00056, etc.

ESTADO 4: pago parcial recibido que ya a cumplido con las confirmaciones de red (deposito externo que no proviene de un usuario de MercadoBits) Este estado nos indica que la orden ha recibido un depósito parcial y ya se ha completado las confirmaciones de red, en este estado la orden ya no va a expirar y se deberá de ignorar completamente los campos: expiration_date, expiration_date_format y remaining_seconds, así mismo la orden queda en espera de ser pagada completamente.

  • address = tiene generada la dirección de depósito, ejemplo: pbtcrt1qjr2fte8wgt0zet9tz9xcgwvjagvchrdea6a4ey
  • isPaid = 0
  • isExpired = 0
  • isConfirming = 0
  • isWaiting = -1
  • confirmations_counter = 0 (si aún hay depósitos pendientes por confirmación mostrara las confirmaciones pendientes que aún restan por completarse)
  • amount_filled = muestra el monto que ya se ha confirmado, ejemplo: 100, 0.00056, etc. (este campo va mostrando la sumatoria de todos los depósitos recibidos confirmados, es decir va mostrando el total de depósitos que ha recibido la orden)
  • amount_unconfirmed = 0 (si aún hay depósitos pendientes por confirmación mostrara el monto pendiente que aún falta por confirmarse)
  • amount_remaining = tiene el valor del campo total menos los depósitos ya confirmados, ejemplos: 100, 0.00056, 0, etc. (si ya se pagó en su totalidad este campo mostrara el valor 0)

ESTADO 5: pago completo recibido que ya a cumplido con las confirmaciones de red (deposito externo que no proviene de un usuario de MercadoBits) Este estado nos indica que la orden ha recibido un depósito que liquida en su totalidad la orden y ya se ha completado las confirmaciones de red, en este estado la orden ya no va a expirar y se deberá de ignorar completamente los campos: expiration_date, expiration_date_format y remaining_seconds, así mismo la orden se muestra como pagada completamente.

  • address = tiene generada la dirección de depósito, ejemplo: pbtcrt1qjr2fte8wgt0zet9tz9xcgwvjagvchrdea6a4ey
  • isPaid = -1
  • isExpired = 0
  • isConfirming = 0
  • isWaiting = 0
  • confirmations_counter = 0
  • amount_filled = muestra el monto que ya se ha confirmado, en este caso el total de la orden, ejemplo: 100, 0.00056, etc. (si la orden tuvo algun excedente se mostrara aquí)
  • amount_unconfirmed = 0
  • amount_remaining = 0

ESTADO 6: pago parcial recibido que no necesita confirmaciones de red (deposito que proviene de un usuario de MercadoBits) Este estado nos muestra un pago parcial recibido proveniente de un usuario de MercadoBits, estos pagos se procesan al instante y no requieren de confirmaciones de red para acreditar los fondos, en este estado la orden ya no va a expirar y se deberá de ignorar completamente los campos: expiration_date, expiration_date_format y remaining_seconds, así mismo la orden queda en espera de ser pagada completamente.

  • address = tiene generada la dirección de depósito, ejemplo: pbtcrt1qjr2fte8wgt0zet9tz9xcgwvjagvchrdea6a4ey
  • isPaid = 0
  • isExpired = 0
  • isConfirming = 0
  • isWaiting = -1
  • confirmations_counter = 0
  • amount_filled = muestra el monto que ya se ha confirmado, ejemplo: 100, 0.00056, etc. (este campo va mostrando la sumatoria de todos los depósitos recibidos confirmados (en este caso de los depósitos provenientes de usuarios de MercadoBits entran directamente como depósitos confirmados), es decir va mostrando el total de depósitos que ha recibido la orden)
  • amount_unconfirmed = 0
  • amount_remaining = tiene el valor del campo total menos los depósitos ya confirmados, en este caso todos los depósitos que entran ya están confirmados y no necesitan confirmaciones de red, ejemplos: 100, 0.00056, 0, etc. (si ya se pagó en su totalidad este campo mostrara el valor 0)

ESTADO 7: pago completo recibido que no necesita confirmaciones de red (deposito que proviene de un usuario de MercadoBits) Este estado nos indica que la orden ha recibido un depósito que liquida en su totalidad la orden y que no necesita confirmaciones de red, en este estado la orden ya no va a expirar y se deberá de ignorar completamente los campos: expiration_date, expiration_date_format y remaining_seconds, así mismo la orden se muestra como pagada completamente.

  • address = tiene generada la dirección de depósito, ejemplo: pbtcrt1qjr2fte8wgt0zet9tz9xcgwvjagvchrdea6a4ey
  • isPaid = -1
  • isExpired = 0
  • isConfirming = 0
  • isWaiting = 0
  • confirmations_counter = 0
  • amount_filled = muestra el monto que ya se ha confirmado, en este caso el total de la orden, ejemplo: 100, 0.00056, etc. (si la orden tuvo algún excedente se mostrara aquí)
  • amount_unconfirmed = 0
  • amount_remaining = 0

ESTADO 8: la orden ha expirado Este estado nos muestra una orden que ha expirado, es importante que no se muestren al cliente órdenes ya expiradas, de ser necesario se deberá de generar una orden nueva para que el cliente la pague, en este estado ya no se debe de hacer nada y solamente se deberá de archivar como una orden expirada

  • address = tiene generada la dirección de depósito, ejemplo: pbtcrt1qjr2fte8wgt0zet9tz9xcgwvjagvchrdea6a4ey
  • isPaid = 0
  • isExpired = -1
  • isConfirming = 0
  • isWaiting = 0
  • confirmations_counter = 0
  • amount_filled = 0
  • amount_unconfirmed = 0
  • amount_remaining = tiene el valor del campo total, ejemplo: 100, 0.00056, etc
  • expiration_date = tiene el valor de fecha y hora para su expiración, ejemplo: 2024-08-13 13:07:06, se representa en zona horaria America/Mexico_City
  • expiration_date_format = tiene el valor de fecha y hora para su expiración, ejemplo: 2024-08-13T18:07:06.000000Z, se representa en zona horaria UTC
  • remaining_seconds = 0

Dirección de depósito: EL campo address es la dirección a la que el cliente final deberá de depositar el pago de la orden, esta dirección es única para cada orden generada en AceptaBits, se genera de manera automática al abrir la orden al cliente y no se puede cambiar ni ingresar de manera manual.

Se recomienda al desarrollador mostrarle al cliente esta dirección de manera muy clara y que por ningún motivo pueda ser cambiada, editada o borrada en la pantalla donde sea mostrada, esto con el propósito de minimizar la posibilidad de que un cliente pueda cometer algún error al momento de copiarla o transcribirla y posteriormente ser utilizada en su wallet para realizar el retiro de sus fondos, los fondos enviados a direcciones equivocadas serán responsabilidad del cliente, AceptaBits únicamente recibirá y acreditara fondos de las direcciones que se generen en las órdenes de venta.

Se recomienda al desarrollador mostrar la dirección de manera textual y también mostrarla en forma de código QR, estos códigos QR son muy cómodos y ampliamente utilizados en muchas plataformas al brindarle a sus usuarios la posibilidad de escanearlos para obtener de manera fácil una dirección de depósito, en AceptaBits hacemos uso de ellos para mostrar la dirección de depósito en las órdenes de venta, así mismo, brindamos a nuestros usuarios su respectivo escáner QR tanto en la página web como en la app para dispositivos móviles.


Montos en espera de confirmación por parte de la red:

Los montos que se depositen en la dirección de la orden y que provengan de una wallet externa que no sea la de MercadoBits quedaran en espera de las respectivas confirmaciones de red para cada criptomoneda, el número de confirmaciones podrá ser consultado con el método: get-payment-data.

Una vez que se reciba un depósito de esta naturaleza se actualizara el campo amount_unconfirmed con la cantidad depositada y también se actualizara el campo confirmations_counter, una vez pasadas las confirmaciones de red se actualizarán los campos de amount_filled con la cantidad ya liberada y el campo confirmations_counter con valor 0, tomando esto en cuenta veamos un par de ejemplos:

Ejemplo 1: supongamos que se recibe un pago de 0.00050000 BTC, en este caso el campo amount_unconfirmed quedara con el valor 0.00050000 y el campo confirmations_counter quedara con las confirmaciones requeridas en ese momento, por ejemplo: 6.

Ejemplo 2: Tomando el ejemplo anterior, supongamos que se recibe otro pago de 0.0006000 BTC, entonces el campo amount_unconfirmed quedara con el valor 0.00110000, esto es debido a que se suma la cantidad del primer deposito con este nuevo depósito, y que pasa con el campo confirmations_counter?, bueno en este caso se volverá a actualizar con las confirmaciones requeridas, por ejemplo: 6.

Ahora tomando en cuenta los dos ejemplos anteriores, supongamos que al primer deposito le quedaban solo 3 confirmaciones, esto no significa que deberá de esperar nuevamente las 6 confirmaciones para que ese monto se libere, conforme pasen las confirmaciones que originalmente requería se ira liberando y por lo tanto el campo amount_unconfirmed se ira actualizando, tomando este ejemplo, al pasar las 3 confirmaciones que requería el primer deposito el campo amount_unconfirmed quedaría con el valor 0.0006000 que viene siendo el monto del segundo deposito que aun está en espera de confirmarse, así mismo los montos que se van liberando también van actualizando el campo amount_filled, que en este caso quedaría con valor 0.00050000, ahora una vez que el segundo deposito sea confirmado completamente, el campo amount_unconfirmed quedaría con valor 0, el campo amount_filled quedaría con valor 0.00110000 y el campo confirmations_counter quedaría con valor 0.

Es importante saber cómo funcionan los depósitos que no provienen de usuario de MercadoBits, si no de wallets externas, ya sea otro exchange o alguna wallet nativa

Como nota final acerca de las confirmaciones de red, se debe de mencionar que se incrementa en 1 el número de confirmaciones mostradas en get-payment-data, esto es debido a que el contador comienza una vez que la transacción ha entrado a su primer bloque, por ejemplo: si se requieren 6 confirmaciones de red para Bitcoin (BTC), entonces al momento de recibir el pago se mostrara el campo confirmations_counter con valor igual a 7, es decir, las 6 confirmaciones que requiere AceptaBits + 1 confirmación que en realidad es el bloque en que entra la transacción al blockchain, este incremento +1 aplica para todos las monedas soportadas en la plataforma y a medida que se van procesando los bloques en el blockchain el valor del campo confirmations_counter ira disminuyendo (cada bloque confirmado disminuirá en 1 este campo contador).


Depósitos que provienen de usuarios de MercadoBits:

Los depósitos a la dirección de la orden que provengan de usuarios de MercadoBits (ya sea desde la web o desde la app) no pasan por el proceso de confirmaciones de red, estos depósitos se procesan de manera inmediata, por lo que veras actualizado directamente el campo amount_filled.


Total, Subtotal y Comisión:

En la orden podrás observar un campo llamado total, este campo es la combinación del campo subtotal y commission, es decir, el campo total es la suma del campo subtotal y el campo commission, este valor es el total que se deberá de depositar en la orden para que se considere pagada, como observación adicional, el valor que aparece en este campo es el valor que se ingresó como total al momento de generar la orden (ya sea que se ingresó manualmente en la criptomoneda, manualmente en FIAT y después convertido a la criptomoneda o calculado directamente usando el carrito de compras).

El campo subtotal es la cantidad que recibirá el vendedor una vez que la orden este pagada, es decir, es la cantidad restante que se obtiene como resultado de quitar la comisión de AceptaBits al Total de la orden, es importante señalar que si existe un excedente en la orden pagada (se depositó de más o se pagó de más) se le entregara al vendedor, el único monto que obtiene AceptaBits es el mostrado en el campo comission.

El campo comission representa la cantidad que la orden destinara como comisión por el uso del servicio a AceptaBits, este valor se calcula tomando el porcentaje de comisión (que es del 1% actualmente) y extrayendo dicho porcentaje del monto encontrado en el campo total de la orden, ya sea que se haya ingresado manualmente en la criptomoneda, manualmente en moneda FIAT y después convertido a la criptomoneda o calculado usando el carrito de compras, ejemplo, si la orden se generó por un total de 200 PesoBits (PBT), entonces la comisión sera de 2 PesoBits (PBT), puedes consultar el porcentaje actual de comisión utilizando el método: get-commission_percent


Carrito de compras:

Como ya se ha mencionado con anterioridad, las órdenes de venta necesitan por lo menos un producto o un servicio para poder generarse, estos productos y servicios se encuentran en el campo cart que es el carrito de compras (viene siendo un arreglo con X número de elementos), aquí encontraras todos los productos y servicios que se ingresaron, es decir, si se ingresó un solo producto o servicio, el carrito de compras tendrá solamente 1 elemento, si se ingresaron 3 productos o 3 servicios entonces el carrito tendrá 3 elementos y así sucesivamente.

Cada elemento esta compuesto de la siguiente estructura:

  • quantity - indica la cantidad del producto o servicio
  • total_mxn - muestra el total del presente elemento del carrito de compras expresado en MXN (Peso mexicano), se calcula de la siguiente manera: quantity X el precio en MXN del producto o servicio
  • name_product - Muestra el nombre del producto, si el elemento es un servicio este campo se mantendrá con valor null
  • code_product - Muestra el código del producto, si el elemento es un servicio este campo se mantendrá con valor null
  • name_service - Muestra el nombre del servicio, si el elemento es un producto este campo se mantendrá con valor null
  • code_service - Muestra el código del servicio, si el elemento es un producto este campo se mantendrá con valor null

Como explicación especial, ya que podría resultar confuso, hablemos del campo total_mxn, pero antes de entrar en detalles, recordemos que al momento de dar de alta un producto o un servicio se ingresa su precio en MXN (Peso mexicano), recordando también que en el caso de los servicios este precio puede omitirse, es decir que valga $0.00 MXN.

Teniendo esto en cuenta y ahora si entrando en detalles del campo total_mxn, basta con mencionar que este campo es el monto total expresado en MXN del producto o servicio que tenga ese elemento en el carrito, se calcula utilizando la cantidad ingresada del producto o servicio mostrado en el campo quantity y multiplicándola por el precio que tenga dicho producto o servicio, por ejemplo, supongamos que se agrega al carrito el producto calculadora de mano con un precio unitario es de $100.00 MXN y se vendieron 2 unidades, es decir quantity igual a 2, por lo tanto total_mxn sería igual a $200.00 MXN (En el caso de servicios que no tienen precio fijo MXN, es decir que tengan como precio $0.00, el valor del campo total_mxn siempre será 0).

La lógica anterior aplica para todos los elementos que se encuentren dentro del arreglo del carrito de compras, recordando que cada elemento es independiente uno del otro, es decir por cada producto o servicio diferente agregado al carrito se mostrara dicha información, llámese producto o servicio diferente a todo aquel producto o servicio que tiene su código de identificación diferente a otro, no a la cantidad ingresada del producto o servicio, por ejemplo, en la lógica de programación del desarrollador, puede ser que un cliente seleccione una calculadora de mano, y después de seguir explorando y al haber agregado otros productos decida que en realidad quiere 2 calculadoras de mano, bueno en este caso las dos calculadoras de mano no representan dos elementos diferentes dentro del carrito de compras, si no un solo elemento dentro del carrito de compras con un quantity igual a 2.

Para finalizar con el carrito de compras, es importante mencionar que la información de carrito de compras es meramente informativa, ya que recordemos que al momento de crear una orden podemos elegir si ingresamos el total de manera manual o utilizamos el valor de los productos y/o servicios para hacer el cálculo del total, para más información sobre como ver la información del cálculo de una orden antes de crearla ingresa a la documentación del método: calculate-order


Campo remaining_seconds:

Este campo muestra la diferencia de tiempo hasta su fecha y hora de expiración expresado en segundos, por lo tanto cada vez que consultes la información de una orden que ya ha sido abierta para el cliente este campo tendrá un valor diferente, esto es debido a que el tiempo sigue corriendo, recomendamos al desarrollador apoyarse de este campo para mostrar un temporizador descendente al cliente para indicarle cuanto tiempo le queda para pagar.

Una vez que se ha recibido por lo menos un pago en la orden, este temporizador ya no tendrá importancia, esto es debido a que las órdenes que reciban por lo menos un pago ya no expiraran y quedaran abiertas de manera indefinida hasta que se pague la orden en su totalidad, aplica tanto para depósitos que requieren confirmaciones de red o pagos instantáneos de usuarios de MercadoBits.

Para los pagos que requieren confirmaciones de red, se considera que la orden recibió un pago desde el momento en que se detectó el depósito, por lo tanto la fecha de expiración y por ende el temporizador segundero dejaran de tener importancia, aunque tarde 1 o 2 horas en completarse las confirmaciones de red, esto por menciona un ejemplo.


SLUG para navegadores web:

Las órdenes generan un código especial llamado slug, este código podremos encontrarlo en el campo que tiene el mismo nombre slug, la función de este código es para que una orden de venta sea abierta para el cliente desde un navegador web, para ellos utilizaremos la siguiente estructura:

https://aceptabits.com/order/ + el slug de la orden

tomando de ejemplo el slug que podemos observar en el Ejemplo de respuesta EXITOSA, la url que compartirías a tu cliente para que pueda realizar el pago de la orden es el siguiente:

https://sandbox.aceptabits.com/order/8fca876c1a8be60e9eb99980abc0b5326cc9c4e6vGvmnyNigS72OF2JxoFo

Una vez que el cliente ingrese a la url podrá observar la información de la orden, su dirección de depósito y el respectivo contador de tiempo hasta su expiración, a menos claro, que realice por lo menos un depósito a la orden.

Esta misma url es la que podemos obtener desde el panel principal de órdenes en la cuenta de AceptaBits al presionar el botón Copiar URL cuando se seleccionar una orden desde el listado de órdenes.


Algunas cosas a tener en consideración:

  • Una orden se considera abierta para el cliente cuando se ha utilizado el método: show-order-customer, al ejecutar este método se genera la dirección de depósito y comienza la cuenta regresiva hasta que la orden expire
  • Evita mostrar a tus clientes órdenes ya expiradas
  • Las órdenes que reciban por lo menos un pago ya no expiraran y quedaran abiertas indefinidamente hasta que la orden sea pagada en su totalidad
  • Los depósitos realizados a la orden que provengan de usuarios de MercadoBits (ya sea desde la web o la app) se verán reflejados de manera inmediata
  • Los depósitos que provienen fuera de MercadoBits, es decir, que depositen a la dirección de la orden desde otro exchange u otra wallet tendrán que esperar las respectivas confirmaciones de red para liberar los fondos
  • Apóyate con los campos *expiration_date, expiration_date_format o remaining_seconds para mostrar a tu cliente cuanto tiempo le queda para pagar o hacer un pago parcial antes de que la orden expire
  • Si tienes alguna situación especial con alguna orden no dudes en comunicarte con el equipo de soporte
  • Una vez que la orden se pague completamente se demorara un par minutos para que AceptaBits deposite los fondos a la wallet del usuario en su cuenta de MercadoBits, recordemos que el usuario principal de AceptaBits tiene su cuenta en MercadoBits y ahí es a donde los fondos de cada orden pagada serán depositados

Ejemplo de respuesta FALLIDA

Error

Código HTTP 400, Código HTTP 401, Código HTTP 500


{
"status": false,
"error": {
"code": "1582"
}
}

Descripción de la respuesta

  • Revisar el listado de códigos ERROR para conocer la causa y saber cómo corregir
  • Si se obtiene un código HTTP 500 comunicarse a soporte técnico
  • Si se obtiene un código HTTP 401 revisar que el Token API este correcto

Notas

Si tienes alguna duda recuerda que siempre puedes contactar con el equipo de soporte para desarrolladores ingresando en el siguiente enlace: Soporte para desarrolladores.