Cobro masivo
El servicio de cobro masivo permite procesar múltiples cobros recurrentes mediante archivos CSV cifrados. El comercio genera un archivo de entrada con las transacciones a ejecutar y recibe un archivo de respuesta con el estado final de cada cobro.
¿Cuándo usar este servicio?
Este mecanismo es recomendado cuando se necesita ejecutar una gran cantidad de cobros de forma recurrente y se desea automatizar el intercambio de información por archivos.
Flujo general del proceso
-
Se establece la conexión entre servidores, mediante VPN o red pública.
-
Se generan y validan los datos de acceso para la comunicación SFTP (PlacetoPay es quien se conecta a los servidores del cliente).
-
Se define la periodicidad de procesamiento de archivos.
-
El comercio genera y comparte su llave pública PGP/RSA a PlacetoPay.
-
El comercio recibe y confía en la llave pública PGP/RSA de PlacetoPay.
-
El comercio genera el archivo plano CSV.
-
El archivo se cifra con la llave pública de PlacetoPay.
-
El archivo se carga en el servidor con la convención:
EMPRESAX_YYYYMMDD.csv.asc -
Al finalizar el procesamiento, se cargará el archivo con la convención:
EMPRESAX_YYYYMMDD_RESULT.csv.asc -
El procedimiento se repite en cada periodo de recurrencia, desde los pasos 6 al 9.
Estructura del archivo de cobro
Estructura del archivo CSV para cobrar
El archivo de entrada debe estar separado por comas, incluir encabezado y respetar los nombres de columna descritos a continuación.
- Name
siteId- Type
- int
- is Required
- REQUIRED
- Description
Identificador del sitio proporcionado por PlacetoPay.
- Name
reference- Type
- string(32)
- is Required
- REQUIRED
- Description
Referencia única del cobro.
- Name
instrumentType- Type
- string(1)
- is Required
- REQUIRED
- Description
Tipo de instrumento a usar:
Tpara Token oSpara Subtoken.
- Name
instrument- Type
- string(64)
- is Required
- REQUIRED
- Description
Token o subtoken utilizado para ejecutar el cobro.
- Name
currency- Type
- string(3)
- is Required
- REQUIRED
- Description
Moneda conforme a ISO 421:
COP,USDoEUR.
- Name
amount- Type
- decimal(14,2)
- is Required
- REQUIRED
- Description
Monto definitivo a cobrar.
- Name
valueAddedTax- Type
- decimal(14,2)
- is Required
- REQUIRED
- Description
Monto correspondiente al IVA.
- Name
exciseDuty- Type
- decimal(14,2)
- is Required
- REQUIRED
- Description
Monto correspondiente al impuesto al consumo.
Ejemplo de archivo de entrada
siteId,reference,instrumentType,instrument,currency,amount,valueAddedTax,exciseDuty
1001,KX00001,T,1860563980451111,COP,98185.71,15676.71,0
Todos los campos son requeridos. Los valores decimales deben separarse con punto (.).
Estructura del archivo de respuesta
Estructura del archivo CSV resultante
El archivo de respuesta contiene el resultado del procesamiento de cada cobro.
- Name
siteId- Type
- int
- is Required
- REQUIRED
- Description
Identificador del sitio proporcionado por PlacetoPay.
- Name
reference- Type
- string(32)
- is Required
- REQUIRED
- Description
Referencia del cobro.
- Name
status- Type
- string(20)
- is Required
- REQUIRED
- Description
Estado de la transacción:
APPROVED,REJECTEDoFAILED.
- Name
iso- Type
- string(2)
- is Required
- REQUIRED
- Description
Código del motivo de la respuesta en formato ISO 8583 Response Code Version 1987.
- Name
base24- Type
- string(3)
- is Required
- REQUIRED
- Description
Código del motivo de respuesta en formato Base24.
- Name
currency- Type
- string(3)
- is Required
- REQUIRED
- Description
Moneda en la cual se realizó el cobro:
COP,USDoEUR.
- Name
amount- Type
- decimal(14,2)
- is Required
- REQUIRED
- Description
Monto definitivo cobrado.
- Name
discount- Type
- decimal(10,2)
- is Required
- REQUIRED
- Description
Descuento aplicado en la transacción.
- Name
internalReference- Type
- string(20)
- is Required
- REQUIRED
- Description
Código interno de la transacción en PlacetoPay.
- Name
authorization- Type
- string(6)
- is Required
- REQUIRED
- Description
Código de autorización de la transacción.
- Name
receipt- Type
- string(10)
- is Required
- REQUIRED
- Description
Código de la transacción en la red.
Ejemplo de archivo de respuesta
siteId,reference,status,iso,base24,currency,amount,discount,internalReference,authorization,receipt
1001,KX00001,APPROVED,00,000,COP,98185.71,1234.29,12345678901234567890,000000,0000000000
Los valores decimales deben separarse con punto (.). Todos los campos son requeridos. El archivo contiene encabezado y los nombres del encabezado corresponden a los definidos en la propiedad name.
Reglas de formato
Consideraciones operativas
- El servidor donde se realice el cargue y descarga de archivos debe ser accesible mediante llaves RSA para que el proceso pueda ejecutarse automáticamente.
- El tiempo de procesamiento, desde la descarga del archivo de entrada hasta la carga del archivo de respuesta, es variable y depende de la cantidad de transacciones, el estado de las redes, entre otros factores.
- Se puede crear un
cron joben el servidor del comercio para verificar la disponibilidad del archivo de respuesta cada 30 minutos a partir del cargue inicial.
Llave pública PGP de PlacetoPay
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQENBFqBz2MBCACqkuMSupJiYZ5pJQTK2H9yZW1vbag4XEPIGEH07dauSdaUqoWo
PFlOpeT9PW4ndNdnMhs5PthSiyJwEYX08A5Cw4cxsBRZkuuYzA3YxBwVl79aJp2i
8RP4HwMULzUDbfGDxwUNiOMSNYyd2MjOfvI7YJqGa0YcE1L8l2bG80k8z77gZpi8
x0nUdWQvgLJzL2fTLkabwtRK/mnGQGEMfhjvvXERdRrdDdie6708POxopnAqHOaB
yn4bW0JEow+Rug+O0mDHzab6H9MubVDmu/XV1tx1IGwyKqccfOVs1PY3QrV58X6x
fbCjKPJ1oLbkYgK/gdRaw7FAnwf97rZn96u/ABEBAAG0TlBMQUNFIFRPIFBBWSAt
IEZpbGUgdHJhbnNmZXIgKHd3dy5wbGFjZXRvcGF5LmNvbSkgPG9wZXJhY2lvbmVz
QHBsYWNldG9wYXkuY29tPokBOAQTAQIAIgUCWoHPYwIbAwYLCQgHAwIGFQgCCQoL
BBYCAwECHgECF4AACgkQCk2QHfYzXU+KBQf/ZId9DVaodMLCXmRF60LkQcvaN57z
FN/71RGLd38KTUrOBapN6eYFCTwpqJbBjiMe6fz3VEyFnlQvaKFM7V3XPWtg8tb8
qwdC9Yhm9D0PC68BJmKOfSKMj/fOn9KIr2lcO5neY98P9Qk+aoG7+7YALK3jX/n7
CqFz28vPFKbnkudlyrkA15ZjHowacfCHmXX7KEBaRjibnBvPTT1INgU4xvxh8nLk
KsbwUGcX710aY4M/oJbw2kPoHvuzQRNEv/FakiY7jMF/USGw+5RnHuG3ky+YgHs1
sYyLBh8ufu+AhKWDsmJBEUtGpFhUGTuTCoay121UWKI0BF3zCUVKIWbXd7kBDQRa
gc9jAQgArEyMHN+KCaoHk3OdQgGDMp2MGHb60cOfv9sXBqxF7knUuDFeEkfwwbTA
RDNg3GmcQl4Swat9SCoEyTV5LvHfKjGZ4veh31rH9z+wVtL1ee1UochYRvbv6vQ+
54dAVRnGQTlStHzRXp4Ix5NRU68NX7aHDGQ42qj6teOrP71LJwEpqMGnrQ39gMkK
aCFeS1apyTZhS9T/B0O1EOuo1PwNt1QX9281ash9RfRCeeXgdserdRgcpqM68kKJ
aqNNo0FNa3vHifE+B7NC1PE9DsS9I/uD9PeQrlhtHp/HeCG2JCN9EP38NOBAmedl
Lh22uVcwhbL1I/qPSwl1on590p2BmQARAQABiQEfBBgBAgAJBQJagc9jAhsMAAoJ
EApNkB32M11POgkH/3zPnovb20zm9vJj52UTFgEHjbbYxV6rowmxSs69tlvsE80U
AK5wjoFh/arr7b91HHIxQtQ3s2AyIJa0CMn9tGvBrFtDGUBBR6IxjBBDKHErvdhp
sv8EGtgvQNV8aqYX7pP2RYD/2DSC45ta5QPSS+7BcaAGGqcWulLCQHnyKDLS0B7S
Q64/dO39F4PUFJAxANOxSMg0P/8eV2+4dV2gtLL7mGWjszXyoj8fMu/zr5K8Sy+B
GriUzA3pUywgPwLSWZf3+0w7TqO9qEQNp4hLR3a2F9YPM4uU+sK6139g1a97elcx
p/fbEnLsKkem3kN2w9VhEVjdnkoD0e1JAmDERTE=
=NCpO
-----END PGP PUBLIC KEY BLOCK-----