Transactions

If you are not using our Credit Core or our Authorizer, you will need to implement and expose the “Authorization“ and “Adjustment“ endpoints on your backend so we can communicate.

We consume the endpoints in the following moments:

  • During the online flow, every time a user uses their card at any store or e-commerce site.
  • When the network (Mastercard, Visa, etc.) requests reconciliation of all payments presented by merchants.

Considerations:

  • If there is a discrepancy in reconciliation, we will request an adjustment to your API.
  • We expect a quick response to ensure a good experience. If the response is delayed, reject the transaction.
  • We will use an idempotency header to avoid creating two or more resources for the same request. Learn more
  • You will need to validate and sign the authorizations by following the steps in this documentation.

How to test your implementation and example code


You can test your backend implementation with some typical operations we will send using a Postman collection included in our public example repository. You can import the collection into a Postman instance and simulate real requests to your backend, including the signature generation and validation algorithm.

 

Reconciliation file


We will send you two CSV files daily via SFTP (Secure File Transfer Protocol) so you can reconcile all transactions between your system and ours.

 

Authorize transaction

The /transactions/authorizations endpoint allows you to authorize transactions.

A request to authorize or reject the transaction will be sent.

Considerations

We expect a quick response to ensure a good experience. If the response is delayed, reject the transaction.

In addition to validating the signature we send, when generating the response, you must sign your body along with the timestamp and response endpoint with your api-secret after processing the operation. Keep in mind that we will validate the signature and reject the transaction if the signature does not match or has expired.

You can find more information in the Webhooks Configuration.

Available parameters
Body Parameters
transactionobject
Transaction-related information
merchantobject
Information Related to the Merchant
cardobject
Non-sensitive card information.
installmentsobject
Information related to transaction fees. This parameter for purchase authorizations will only be received with credit card fees.
userobject
Information related to the user who made the transaction.
amountobject
Information related to transaction amounts. May be greater or equal to zero.
extra_dataobject
Information related to extra transaction fields.
Response details
statusstring
A status telling us whether to approve or reject the transaction
Enum: APPROVEDREJECTED
messagestring
Descriptive message with the result of this operation
status_detailstring
Allows you to track the reason why the transaction was not approved
Enum: APPROVEDINSUFFICIENT_FUNDSINVALID_MERCHANTINVALID_AMOUNTSYSTEM_ERROROTHER
balanceobject
Account balance. It is returned only in case the 'BALANCE_INQUIRY' type is sent Available for Mexico only.

Was this section helpful to you?

POST/transactions/authorizations
{
"transaction":{
"id":
"ctx-200kXoaEJLNzcsvNxY1pmBO7fEx"
"type":
"PURCHASE"
"point_type":
"POS"
"entry_mode":
"MANUAL"
"country_code":
"ARG"
"origin":
"DOMESTIC"
"source":
"ONLINE"
"network":
"MASTERCARD"
"cardless_withdrawal_user_id":
"string"
"cardless_withdrawal_token":
"string"
"original_transaction_id":
"ctx-200kirg6qicg1qHSCbgaStrEHjI"
"local_date_time":
"2019-08-24T14:15:22"
}
"merchant":{
"id":
"string"
"mcc":
"string"
"address":
"string"
"name":
"string"
"terminal_id":
"string"
"country":
"string"
"city":
"string"
}
"card":{
"id":
"c-1625519392748E6XZBK"
"product_type":
"PREPAID"
"provider":
"MASTERCARD"
"last_four":
"1573"
}
"installments":{
"quantity":
"12"
"credit_type":
"NO_PROMOTION"
"grace_period":
"0"
"current_installment":
"1"
"promotion_type":
"MSI_PROMOTION"
}
"user":{
"id":
"u-1625758043579BAR6D4"
}
"amount":{
"local":{
...
}
"settlement":{
...
}
"transaction":{
...
}
"details":[
...
]
}
"extra_data":{
"cardholder_verification_method":
"FAIL_PROCESSING"
"pin_presence":
"ONLINE"
"pin_validation":
"VALID"
"cvv_presence":
"PRESENT"
"cvv_validation":
"MATCHING"
"expiration_date_presence":
"PRESENT"
"expiration_date_validation":
"EXPIRED"
"function_code":
"STANDARD"
"tokenization_wallet_name":
"Apple_Pay"
"tokenization_wallet_id":
"0"
"cardholder_presence":
"CARDHOLDER_PRESENCE_PRESENT"
"card_presence":
"PRESENT"
"pin_change_send":
"SENT"
"pin_change_result":
"APPLIED"
}
}
Response examples
{
"status":
"APPROVED"
"message":
"string"
"status_detail":
"APPROVED"
"balance":{
"total":
"982345.12"
"currency":
"ARS"
}
}

Authorize Credit Transaction

The /transactions/authorizations/credit endpoint allows you to authorize or reject credit transactions.

Considerations

We expect a quick response to ensure a good experience. If the response is delayed, reject the transaction.

In addition to validating the signature we send, when generating the response, you must sign your body along with the timestamp and response endpoint with your api-secret after processing the operation. Keep in mind that we will validate the signature and reject the transaction if the signature does not match or has expired.

You can find more information in the Webhooks Configuration.

Available parameters
Body Parameters
transactionobject
Transaction-related information
merchantobject
Information Related to the Merchant
cardobject
Non-sensitive card information.
installmentsobject
Information related to transaction fees. This parameter for purchase authorizations will only be received with credit card fees.
userobject
Information related to the user who made the transaction.
amountobject
Information related to transaction amounts. May be greater or equal to zero.
extra_dataobject
Information related to extra transaction fields.
Response details
statusstring
A status telling us whether to approve or reject the transaction
Enum: APPROVEDREJECTED
messagestring
Descriptive message with the result of this operation
status_detailstring
Allows you to track the reason why the transaction was not approved
Enum: APPROVEDINSUFFICIENT_FUNDSINVALID_MERCHANTINVALID_AMOUNTSYSTEM_ERROROTHER
balanceobject
Account balance. It is returned only in case the 'BALANCE_INQUIRY' type is sent Available for Mexico only.

Was this section helpful to you?

POST/transactions/authorizations/credit
{
"transaction":{
"id":
"ctx-200kXoaEJLNzcsvNxY1pmBO7fEx"
"type":
"PAYMENT"
"point_type":
"POS"
"entry_mode":
"MANUAL"
"country_code":
"ARG"
"origin":
"DOMESTIC"
"source":
"ONLINE"
"network":
"MASTERCARD"
"cardless_withdrawal_user_id":
"string"
"cardless_withdrawal_token":
"string"
"original_transaction_id":
"ctx-200kirg6qicg1qHSCbgaStrEHjI"
"local_date_time":
"2019-08-24T14:15:22"
}
"merchant":{
"id":
"string"
"mcc":
"string"
"address":
"string"
"name":
"string"
"terminal_id":
"string"
"country":
"string"
"city":
"string"
}
"card":{
"id":
"c-1625519392748E6XZBK"
"product_type":
"PREPAID"
"provider":
"MASTERCARD"
"last_four":
"1573"
}
"installments":{
"quantity":
"12"
"credit_type":
"NO_PROMOTION"
"grace_period":
"0"
"current_installment":
"1"
"promotion_type":
"MSI_PROMOTION"
}
"user":{
"id":
"u-1625758043579BAR6D4"
}
"amount":{
"local":{
...
}
"settlement":{
...
}
"transaction":{
...
}
"details":[
...
]
}
"extra_data":{
"cardholder_verification_method":
"FAIL_PROCESSING"
"pin_presence":
"ONLINE"
"pin_validation":
"VALID"
"cvv_presence":
"PRESENT"
"cvv_validation":
"MATCHING"
"expiration_date_presence":
"PRESENT"
"expiration_date_validation":
"EXPIRED"
"function_code":
"STANDARD"
"tokenization_wallet_name":
"Apple_Pay"
"tokenization_wallet_id":
"0"
"cardholder_presence":
"CARDHOLDER_PRESENCE_PRESENT"
"card_presence":
"PRESENT"
"pin_change_send":
"SENT"
"pin_change_result":
"APPLIED"
}
}
Response examples
{
"status":
"APPROVED"
"message":
"string"
"status_detail":
"APPROVED"
"balance":{
"total":
"982345.12"
"currency":
"ARS"
}
}

Adjustments

The /transactions/adjustments/{type} endpoint allows you to make credit and debit adjustments to transactions.

A request informing you that the network (MC, VISA) forced an authorization will be sent.

Considerations

This endpoint is used during reconciliation and online flows, mainly to make adjustments during the settlement process and also in the event of returns.

In addition to validating the signature we send, when generating the response, you must sign your body along with the timestamp and response endpoint with your api-secret after processing the operation. Keep in mind that we will validate the signature and reject the transaction if the signature does not match or has expired.

You can find more information in the Webhooks Configuration.

Available parameters
Body Parameters
transactionobject
Transaction-related information
merchantobject
Information Related to the Merchant
cardobject
Non-sensitive card information.
installmentsobject
Information related to transaction fees. This parameter for purchase authorizations will only be received with credit card fees.
userobject
Information related to the user who made the transaction.
amountobject
Information related to transaction amounts. May be greater or equal to zero.
Path Parameters
typestringrequired
The type of operation to be executed on the user's balance. If it is a debit, the value must be deducted from the user's balance. If it is a credit, funds must be added to the user's balance. NOTE: Adjustments with very small values may be received. It is up to the customer whether they are shown in the user’s balance or not.
Enum: debitcredit
Response details

Was this section helpful to you?

POST/transactions/adjustments/{type}
{
"transaction":{
"id":
"ctx-200kXoaEJLNzcsvNxY1pmBO7fEx"
"type":
"PURCHASE"
"point_type":
"POS"
"entry_mode":
"MANUAL"
"country_code":
"ARG"
"origin":
"DOMESTIC"
"source":
"ONLINE"
"network":
"MASTERCARD"
"cardless_withdrawal_user_id":
"string"
"cardless_withdrawal_token":
"string"
"original_transaction_id":
"ctx-200kirg6qicg1qHSCbgaStrEHjI"
"local_date_time":
"2019-08-24T14:15:22"
}
"merchant":{
"id":
"string"
"mcc":
"string"
"address":
"string"
"name":
"string"
"terminal_id":
"string"
"country":
"string"
"city":
"string"
}
"card":{
"id":
"c-1625519392748E6XZBK"
"product_type":
"PREPAID"
"provider":
"MASTERCARD"
"last_four":
"1573"
}
"installments":{
"quantity":
"12"
"credit_type":
"NO_PROMOTION"
"grace_period":
"0"
"current_installment":
"1"
"promotion_type":
"MSI_PROMOTION"
}
"user":{
"id":
"u-1625758043579BAR6D4"
}
"amount":{
"local":{
...
}
"settlement":{
...
}
"transaction":{
...
}
"details":[
...
]
}
}
Response examples

Notifications

This service allows notifications when a transaction is resolved, either by Pomelo or by the brand (Mastercard, Visa, etc.).

Considerations

We are waiting for a 2XX response to ensure the notification was received. Otherwise, we will send it again.

You can find more information in the Webhooks Configuration.

Available parameters
Body Parameters
event_idstring
Event identifier.
Example: authorization-advice
event_detailobject
Event-related information. This may vary depending on the event type.
idempotency_keystring
Idempotent identifier for creating the event.
Example: ctx-2CIllOHdIcC5qWjpiwRlFy2nZM8

Was this section helpful to you?

POST/transactions/v1/notifications
{
"event_id":
"authorization-advice"
"event_detail":{
"transaction":{
...
}
"merchant":{
...
}
"card":{
...
}
"installments":{
...
}
"user":{
...
}
"amount":{
...
}
"status":
"REJECTED"
"status_detail":
"string"
"extra_detail":
"string"
"extra_data":{
...
}
}
"idempotency_key":
"ctx-2CIllOHdIcC5qWjpiwRlFy2nZM8"
}
Response examples