Marketplace y Multivendor
Marketplace
5 min
es un sitio web e commerce donde intervienen múltiples vendedores ofreciendo sus productos el dueño del marketplace, "originante" genera una comisión por cada compra y el resto del pago va hacia los vendedores que intervengan en esa operación parámetro "split" el parámetro split deberá ser un array de objetos json ( hasta 50 ) que contendrá los comercios entre las cuales se dividirá el pago total solicitado entity id único del comercio total monto total a ser pagado a la empresa a la cual va dirigido el pago formato xxx xx donde el punto es el separador decimal fee monto de la comisión que cobrará el creador del pago el receptor de la comisión será la empresa que genera la operación formato xxx xx donde el punto es el separador decimal hold indica si el dinero correspondiente a la parte dividida será retenido tenga en cuenta que un pago retenido deberá ser liberado via api (sólo válido para clientes fresa) valores true/false description descripción de la operación hija reference identificación del cupón de la operación refundfee indica si la comisión desea ser devuelta en caso de devoluciones totales valores true/false por defecto true importante al crear una operación con split se validará que el monto separado entre las diferentes entidades coincida con el monto solicitado en el checkout ej si solicita generar un cobro por $ 1000 e intenta separar el pago entre la empresa a por $ 600 y la empresa b por $ 100 el mismo no podrá ser generado y resultará en un error debido a que el total de la división es $ 700 en vez de los $ 1000 solicitados recuerde que el fee será transferido a la empresa creadora de la operación todos los montos expresados son totales y no porcentajes la empresa creadora de la operación contendrá la "operación padre", mientras que cada uno de los comercios a los cuáles se hace un split de la operación contendrá una "operación hija" se define el siguiente diagrama de flujo como ejemplo de esta operatoria ejemplo creación de checkout con split cuando se crea un checkout con split se debe enviar un array adicional con los elementos antes mencionados usando json en el body de la solicitud al servicio { "total" 1000, "currency" "ars", "reference" "12345", "description" "descripción de la venta", "return url" "https //mobbex com/sale/return?session=56789", "webhook" "https //mobbex com/sale/webhook?user=1234", "split" \[ { "entity" "h1rjexyr", "total" 799, "reference" "pago 1", "fee" 100 }, { "entity" "j7rbxl5si", "total" 201, "reference" "pago 2", "fee" 80 } ] } respuesta en la respuesta mobbex pre generará los identificadores de transacción de las transacciones hijas de la operación distribuida deberá almacenar estos uid de forma segura además si está generando una retención de dinero durante la operación estos uid le permitirán generar la liberación de fondos { "split" \[ { "uid" "chd efpi58c4pfmg4gqx8x", "total" 799, "reference" "pago 1", "fee" 100 }, { "uid" "chd efpi58c4pfmg4gqx8x", "tax id" "33213213216", "total" 201, "reference" "pago 2", "fee" 80 } ] } { "tab" "examples", "url" "https //api mobbex com/p/operations/{id}/release", "name" "liberación de fondos", "method" "get", "request" { "pathparameters" \[], "queryparameters" \[ { "kind" "optional", "name" "id", "type" "string", "description" "id de la operación que se intenta liberar " } ], "headerparameters" \[ { "kind" "optional", "name" "x api key", "type" "string", "description" "clave api de su aplicación " }, { "kind" "optional", "name" "x access token", "type" "string", "description" "token de acceso de la entidad " } ], "bodydataparameters" \[], "formdataparameters" \[] }, "results" { "languages" \[ { "id" "metgmlvflil6v26idyfdx", "code" "{\n \\"result\\" true,\n \\"status message\\" \\"el cupón fue liberado exitosamente \\"\n}", "language" "200" } ], "selectedlanguageid" "metgmlvflil6v26idyfdx" }, "examples" { "languages" \[ { "id" "0d4tjpwmzzoztynk z77h", "code" "var xhr = new xmlhttprequest();\nxhr withcredentials = true;\n\nxhr addeventlistener(\\"readystatechange\\", function() {\n if(this readystate === 4) {\n console log(this responsetext);\n }\n});\n\nxhr open(\\"get\\", \\"https //api mobbex com/p/operations/chd mco536od8pocnuypmz/release\\");\nxhr setrequestheader(\\"x api key\\", \\"zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij\\");\nxhr setrequestheader(\\"x access token\\", \\"d31f0721 2f85 44e7 bcc6 15e19d1a53cc\\");\n\nxhr send();", "language" "javascript" }, { "id" "o iwmggsvtvbsx4r8w2ep", "code" "\<?php\r\n\r\n$curl = curl init();\r\n\r\ncurl setopt array($curl, array(\r\ncurlopt url => 'https //api mobbex com/p/operations/chd mco536od8pocnuypmz/release',\r\ncurlopt returntransfer => true,\r\ncurlopt encoding => '',\r\ncurlopt maxredirs => 10,\r\ncurlopt timeout => 0,\r\ncurlopt followlocation => true,\r\ncurlopt http version => curl http version 1 1,\r\ncurlopt customrequest => 'get',\r\ncurlopt httpheader => array(\r\n 'x api key zj8lftbx6ba8d611e9io13fdzawj0qmko1hn1yij',\r\n 'x access token d31f0721 2f85 44e7 bcc6 15e19d1a53cc'\r\n),\r\n));\r\n\r\n$response = curl exec($curl);\r\n\r\ncurl close($curl);\r\necho $response;\r\n", "language" "php" } ], "selectedlanguageid" "0d4tjpwmzzoztynk z77h" }, "description" "mediante este llamado a nuestro api podrás procesar la liberación de los fondos retenidos durante una operación de tipo split ", "currentnewparameter" { "label" "header parameter", "value" "headerparameters" } }