Crear una compra

Aprenda a crear una compra utilizando nuestra API. Este proceso es apto tanto para comercios con certificación PCI como para aquellos que no la tienen.

Configuración de la autenticación

Todos los métodos de la API de Compras requieren los siguientes encabezados de autenticación:

LlaveValorComentarios
Content-Typeapplication/jsonIndica que la solicitud se enviará en formato JSON.
AuthorizationBasic {{Clave Privada del Comercio}}Incluya la palabra Basic seguida de su {{Clave Privada del Comercio}} (y el identificador como comercio).
Ejemplo: Basic RVkeLr-86_iTzSMLvDtuyQ-1zqIcsmFG-oSzncn_uFv-nj7bhB3rtZg__

Configurar el idioma de los códigos de respuesta

Es posible recibir la descripción de errores en un idioma preferido. Para esto, envíe el encabezado lang, utilizando uno de los siguientes códigos en formato ISO 639-1:

CodeLanguage
enEnglish.
Si no envía este encabezado o especifica un idioma no existente, recibirá los errores en inglés por defecto.
esEspañol.
ptPortugués.

Crear una compra

Esta sección explica detalladamente cómo generar una Compra para comercios sin certificación PCI DSS, permitiendo procesar pagos sin manejar directamente datos sensibles de tarjetas.

Una vez que haya tokenizado una tarjeta, es posible generar una compra usando este endpoint.

Para medios de pago alternativos, como pagos en efectivo o transferencias bancarias, es necesario enviar el ID del medio de pago correspondiente para iniciar la transacción.

URL de la solicitud

Es necesario realizar una petición POST a las siguientes URLs según sus necesidades:

  • Producción: https://api.bamboopayment.com/v3/api/purchase
  • Pruebas: https://api.stage.bamboopayment.com/v3/api/purchase

Parámetros de la solicitud

ParámetroTipo¿Obligatorio?Descripción
TrxTokenstringNo1Token de la tarjeta, generado previamente mediante el flujo de tokenización. Se usa para medios de pago - Tarjetas.
NetworkTokenobjectNo1Información del token de red utilizado en la transacción. Más detalles en la sección Tokenización de Red.
PaymentMethodIdstringNo1Identificador del medio de pago. Se usa solo para medios de pago alternativos (transferencia, efectivo, etc.). Encuentre los valores posibles en la tabla medios de pago.
UniqueIDstringNoIdentificador único de la compra del lado del comercio.
Este valor es opcional y permite identificar una compra de forma única, evitando transacciones duplicadas. Para más información, consulte Conceptos.
CapturebooleanNoDefine si la compra debe realizarse en uno o dos pasos.2
  • Si es false, solo se procesa la autorización, y la compra queda pre-autorizada hasta la confirmación final mediante las llamadas de captura y cancelación.
  • Si es true, la transacción se autoriza y captura.

Es posible que no todos los medios de pago y países admitan la función de pre-autorización.
TargetCountryISOstringEste parámetro indica el país donde se procesará el pago.
Envíe el país usando el formato ISO-3166-1.
CurrencystringMoneda de la compra, según ISO-4217. Encuentre los valores posibles en la tabla de Monedas de cada país.
Amountinteger (64 bits)Monto de la compra. Es un valor mayor a cero.
Si debe incluir decimales en el monto, concatene los lugares decimales sin el punto decimal. Ejemplo 12,251225.
Tipinteger (64 bits)NoValor de la propina en la transacción. Valor con dos decimales, sin puntos ni comas.
TaxableAmountinteger (64 bits)NoValor de los impuestos de la transacción. Valor con dos decimales, sin puntos ni comas.
InstallmentsintegerNoNúmero de cuotas.
OrderstringNúmero de orden generado por el comercio.
InvoiceNumberstringNoNúmero de factura asociado a la transacción.
DescriptionstringNo 4Descripción opcional de la compra.
AdditionalDatastringNoInformación adicional que pueda ser relevante para la transacción.
MetadataInobjectNoDatos adicionales de la transacción en formato clave-valor.
Customerobject3El objeto Customer proporciona los datos de la persona que realiza la compra.

Objeto Customer

ParámetroTipo¿Obligatorio?Descripción
CustomerFirstNamestringNoNombre del cliente.
CustomerLastNamestringNoApellido del cliente.
CustomerReferenceCodestringNoCódigo de referencia del cliente.
CustomerPhoneNumberstringNoNúmero de teléfono del cliente.
CustomerDocumentNumberstringNoNúmero de documento del cliente.
CustomerDocumentTypestringNoTipo de documento. (Formato DOCUMENTO.PAÍS)
CustomerEmailstringDirección de correo electrónico del cliente.
AddressobjectNoDirección de envío del cliente.

Objeto Address

ParámetroTipo¿Obligatorio?Descripción
AddressCountrystringNoPaís de la dirección del cliente.
AddressCitystringNoCiudad de la dirección del cliente.
AddressStatestringNoEstado o región de la dirección del cliente.
AddressPostalCodestringNoCódigo postal de la dirección del cliente.
AddressAddressDetailstringNoDetalles adicionales de la dirección del cliente.

Ejemplo de solicitud

{
    "TrxToken": "OT__6dHAgJo6qeg62qIroA7H7_f_NWZZ6IEx4jiYpVJ8SzQ_",
    "UniqueID": "paymentID3022",
    "Capture": true,
    "TargetCountryISO": "BR",
    "Currency": "BRL",
    "Amount": 25000,
    "Installments": 2,
    "Order": "CH2023-001",
    "Description": "Compra de teste",
    "Customer": {
        "FirstName": "João",
        "LastName": "Silva",
        "ReferenceCode": "JS-001",
        "PhoneNumber": "11987654321",
        "DocumentNumber": "12345678901",
        "DocumentType": "CPF.BR",
        "Email": "joao.silva@example.com",
        "Address": {
            "Country": "BR",
            "City": "São Paulo",
            "State": "SP",
            "PostalCode": "01310-200",
            "AddressDetail": "Avenida Paulista 1000"
        }
    }
}

Compra para Comercios con Certificación PCI

Para los comercios que tienen la certificación PCI-DSS, Bamboo ofrece una mayor flexibilidad a través del método de Compra Directa. Esta opción permite a los comercios con certificación PCI manejar los datos de las tarjetas directamente.

URL de la solicitud

Debe realizar una petición POST a las siguientes URLs según sus necesidades:

  • Producción: https://secure-api.bamboopayment.com/v3/api/purchase
  • Pruebas: https://secure-api.stage.bamboopayment.com/v3/api/purchase

Parámetros de la solicitud

Objeto CardData

ParámetroTipo¿Obligatorio?Descripción
CardHolderNamestringEl nombre del titular tal como aparece en la tarjeta.
PanstringEl número de tarjeta (PAN).
CVVstringEl código de verificación (CVV) o código de seguridad de la tarjeta.
ExpirationstringLa fecha de vencimiento de la tarjeta en el formato “MM/AA”.
EmailstringCorreo electrónico asociado al titular de la tarjeta.
DocumentstringNoEl número de documento de identidad del titular de la tarjeta.

Ejemplo de solicitud

{
    "CardData": {
        "CardHolderName": "João Silva",
        "Pan": "4507990000004905",
        "CVV": "123",
        "Expiration": "08/30",
        "Email": "joao.silva@example.com",
        "Document": "12345678901"
    },
    "UniqueID": "paymentID3022",
    "Capture": true,
    "TargetCountryISO": "BR",
    "Currency": "BRL",
    "Amount": 25000,
    "Installments": 2,
    "Order": "CH2023-001",
    "Description": "Compra de teste",
    "Customer": {
        "FirstName": "João",
        "LastName": "Silva",
        "ReferenceCode": "JS-001",
        "PhoneNumber": "11987654321",
        "DocumentNumber": "12345678901",
        "DocumentType": "CPF.BR",
        "Email": "joao.silva@example.com",
        "Address": {
            "Country": "BR",
            "City": "São Paulo",
            "State": "SP",
            "PostalCode": "01310-200",
            "AddressDetail": "Avenida Paulista 1000"
        }
    }
}

Los campos CardData, PaymentMethodId, NetworkToken y TrxToken no son obligatorios; sin embargo, se debe enviar uno de ellos dependiendo del flujo que desee utilizar.

Respuesta del Request.

La respuesta para las operaciones de compra directa realizadas por comercios con certificación PCI es idéntica a la respuesta de la compra estándar. Esto asegura la consistencia entre los diferentes tipos de transacciones y simplifica los procesos de integración.

Todos los campos, estados y códigos de error descritos en la respuesta de Compra estándar se aplican por igual a las transacciones de Compra Directa.

ParámetroTipoDescripción
TransactionIdstringIdentificador único de la transacción. Un número de 19 dígitos.
ResultstringResultado de la transacción. COMPLETED o ACTION_REQUIRED. Para más detalles, consulte el objeto “Action”.
StatusstringEstado actual de la transacción (por ejemplo, APPROVED, REJECTED).
ErrorCodestringCódigo de error, si la transacción fue rechazada.
ErrorDescriptionstringDescripción detallada del error si la transacción fue rechazada.
CreatedstringFecha / Hora en la que se creó la transacción, en formato ISO 8601.
AuthorizationDatestringFecha / Hora en la que se autorizó la transacción, en formato ISO 8601.
AuthorizationCodestringCódigo único proporcionado por el adquirente / emisor para confirmar la autorización de la transacción.
AmountintegerValor total de la transacción.
CurrencystringMoneda utilizada para la transacción. Puede diferir de la moneda de la solicitud según el pricing configurado.
InstallmentsintegerNúmero de cuotas.
TaxableAmountintegerValor de los impuestos.
TipintegerValor de la propina.
UrlstringURL con los detalles adicionales de la transacción.
MetadataOutobjectMetadatos adicionales de la respuesta de la transacción.
ActionobjectDetalles de las acciones requeridas cuando el Resultado es “ACTION_REQUIRED”.
PaymentMethodobjectMedio de pago utilizado para la transacción.

Objeto Action

El objeto Action contiene información sobre los pasos adicionales requeridos para completar una transacción. Normalmente se envía en la respuesta cuando el resultado de la transacción es “ACTION_REQUIRED”, indicando que se necesita una acción adicional del usuario o del comercio para finalizar el pago.

ParámetroTipoDescripción
SessionIdstringID de sesión relacionado con la acción. Valor informativo.
ReasonstringRazón de la acción solicitada. Valores posibles:
VERIFICATION_CODE_NEEDED: Transacción pendiente de CVV, se requiere redirección a la “URL” para mostrar el formulario de ingreso del CVV.
REDIRECTION_NEEDED_EXTERNAL_SERVICE: Se requiere una redirección a la “URL” para completar los detalles de la transacción.
URLstringURL de redirección para completar la acción requerida.

Objeto PaymentMethod

El objeto PaymentMethod contiene información detallada sobre el medio de pago utilizado en la transacción. Esto incluye detalles de la tarjeta (para transacciones con tarjeta) u otra información relevante del medio de pago.

ParámetroTipoDescripción
BrandstringFranquicia de la tarjeta utilizada (por ejemplo, MasterCard, Visa).
CardOwnerstringNombre del titular de la tarjeta.
BinstringPrimeros 6 dígitos del número de la tarjeta.
IssuerBankstringBanco emisor de la tarjeta.
TypestringTipo de medio de pago (por ejemplo, CreditCard, DebitCard).
ExpirationstringFecha de vencimiento de la tarjeta en formato aaaaMM.
Last4stringÚltimos 4 dígitos del número de la tarjeta.

Ejemplos de respuesta


Resultado: COMPLETED - Estado: APPROVED

{
    "TransactionId": "79632697147789184",
    "Result": "COMPLETED",
    "Status": "APPROVED",
    "ErrorCode": null,
    "ErrorDescription": null,
    "Created": "2024-08-07T17:51:54.620",
    "AuthorizationDate": "2024-08-07T17:51:56.879",
    "AuthorizationCode": "839936",
    "Amount": 25000,
    "Currency": "BRL",
    "Installments": 1,
    "TaxableAmount": null,
    "Tip": null,
    "Url": "https://api.stage.bamboopayment.com/Purchase/79632697147789184",
    "MetadataOut": null,
    "Action": null,
    "PaymentMethod": {
        "Brand": "Visa",
        "CardOwner": "Joao Silva",
        "Bin": "450799",
        "IssuerBank": "Santander",
        "Type": "CreditCard",
        "Expiration": "203008",
        "Last4": "4905"
    }
}

Resultado: COMPLETED - Estado: REJECTED

{
    "TransactionId": "79632697147789184",
    "Result": "COMPLETED",
    "Status": "REJECTED",
    "ErrorCode": "TR026",
    "ErrorDescription": "Insufficient Funds",
    "Created": "2024-08-07T17:51:54.620",
    "AuthorizationDate": "2024-08-07T17:51:56.879",
    "AuthorizationCode": "839936",
    "Amount": 25000,
    "Currency": "USD",
    "Installments": 2,
    "TaxableAmount": null,
    "Tip": null,
    "Url": "https://api.stage.bamboopayment.com/Purchase/79632697147789184",
    "MetadataOut": null,
    "Action": null,
    "PaymentMethod": {
        "Brand": "Visa",
        "CardOwner": "Joao Silva",
        "Bin": "450799",
        "IssuerBank": "Santander",
        "Type": "CreditCard",
        "Expiration": "203008",
        "Last4": "4905"
    }
}

Resultado: ACTION_REQUIRED - Estado: PENDING

{
    "TransactionId": "79632697147789184",
    "Result": "ACTION_REQUIRED",
    "Status": "PENDING",
    "ErrorCode": null,
    "ErrorDescription": null,
    "Created": "2024-08-07T17:51:54.620",
    "AuthorizationDate": null,
    "AuthorizationCode": null,
    "Amount": 25000,
    "Currency": "BRL",
    "Installments": 2,
    "TaxableAmount": null,
    "Tip": null,
    "Url": "https://api.stage.bamboopayment.com/Purchase/79632697147789184",
    "MetadataOut": null,
    "Action": {
        "SessionId": "CA_a4032a2a-25ae-4f5f-a8bb-fb2e5ab2ae3c",
        "URL": "https://url_to_be_redirected.com/redirection_example",
        "Reason": "VERIFICATION_CODE_NEEDED"
    },
    "PaymentMethod": {
        "Brand": "Visa",
        "CardOwner": "Joao Silva",
        "Bin": "450799",
        "IssuerBank": "Santander",
        "Type": "CreditCard",
        "Expiration": "203008",
        "Last4": "4905"
    }
}

{
   "ErrorCode": "PR001",
   "ErrorDescription": "The token sent is invalid, expired, or does not belong to the merchant."
}
footer
Última modificación 22 de noviembre de 2024

© Bamboo | All rights reserved 2024