Skip to main content

15 posts tagged with "release"

View All Tags

· One min read

Changelog

Payouts

Enhancements

  • Update: The response structure of the Retrieve Payout Status endpoint has been expanded. This includes additional fields that provide more detailed information about the payout process. Backward compatibility with the previous response format has been maintained, ensuring existing integrations continue to function without disruption.

  • Update: New values have been added to the transferType. The transferType can now include the following values:

    • virtual_account
    • khipu
    • giropay
    • eps
    • open_finance

Breaking Changes

danger
  • Change: The structure of the Payout Callback has been modified to match the expanded response format of the Retrieve Payout Status endpoint. This change is not backward compatible. Merchants must update their integration to accommodate the new structure to avoid disruptions in receiving payout status updates.

· 3 min read

Changelog

Orders

Enhancements

  • Update: When customers pay through certain providers, they may enter an amount different from the original order amount specified by the merchant during order creation (order -> cost -> amount) or the provider might adjust the amount. In these cases, both the amount in the Retrieve Order Details endpoint and the callback for payment status will now reflect the actual amount paid or modified by the provider in data -> cost -> amount, rather than the initial amount specified by the merchant.

Bug Fixes

  • Fix: Corrected a naming issue in the order status callback where the rrn parameter (payments -> paymentDetails -> rrn) was incorrectly returned as rnn. The parameter is now correctly returned as rrn.
  • Fix: Added a new paymentStatus object to the payments array in the Retrieve Order Details endpoint response and the order status callback. This object contains the payment status and additional error details in the details object if the payment status is failed.

Payouts

Bug Fixes

  • Fix: Resolved an issue in the POST Retrieve Required Payout Fields endpoint where the value and label parameters in the options array were swapped. The values now correctly match the documentation:

    Before:

    "options": [
    {
    "value": "Checking account",
    "label": "C"
    }
    ]

    Now:

    "options": [
    {
    "value": "C",
    "label": "Checking account"
    }
    ]

Upcoming changes in the next release

Payouts

Enhancements

  • Update: In the upcoming release on August 27, the response structure of the Retrieve Payout Status endpoint will be expanded. Backward compatibility with the current response format will be maintained.
danger

Breaking Changes

  • Change: The structure of the Payout Callback will be modified in the release scheduled for August 27. This change is not backward compatible. The new structure will match the expanded response format of the Retrieve Payout Status endpoint.

Here is the structure of the Retrieve Payout Status response and the Payout Callback structure that will be introduced in the August 27 release:

{
"data": {
"shopId": 123,
"id": 54222,
"payoutStatus": "in_progress",
"payoutNumber": "56573FDFVFDBWF",
"purpose": "string",
"cost": {
"amount": "56.99",
"currency": "USD",
"region": "RU"
},
"payoutCreatedAt": "2023-08-29T15:34:56+03:00",
"payoutPaidAt": "2023-08-29T15:34:56+03:00",
"payoutTransactions": [
{
"transactionId": "79",
"providerTransactionId": "990943",
"cost": {
"amount": "56.99",
"currency": "USD"
},
"provider": {
"code": "fyst"
},
"acquirer": {
"code": "fyst"
},
"instrumentType": "card"
}
],
"customer": {
"customerId": "56656",
"firstName": "John",
"lastName": "Doe",
"middleName": "James",
"phone": "79221110500",
"email": "john.doe@mymail.com"
},
"payoutDetails": {
"recipient": {
"paymentSystem": "visa", // returned only if instrumentType = card
"maskedCardNumber": "123456******7890", // returned only if instrumentType = card
"walletId": "34534534333", // returned only if instrumentType = wallet
"accountNumber": "34543243243534333", // returned only if instrumentType = bank_transfer
"transferType": "sbp" // returned only if instrumentType = bank_transfer
},
"sender": {
"paymentSystem": "visa", // returned only if instrumentType = card
"maskedCardNumber": "123456******7890", // returned only if instrumentType = card
"walletId": "34534534333", // returned only if instrumentType = wallet
"accountNumber": "34543243243534333" // returned only if instrumentType = bank_transfer
}
}
}
}

· One min read

Changelog

Improvements

  • Feature: The webhook for order status and the order status endpoint now return the paymentDetails object within the payments array in the following format:

    • For cards (instrumentType=card):

      {
      "CardPaymentDetails": {
      "paymentSystem": "visa",
      "authCode": "auth94753457343",
      "rrn": "rrn583743856734",
      "maskedCardNumber": "123456******1234"
      }
      }
    • For bank transfers (instrumentType=bank_transfer):

      {
      "BankTransferPaymentDetails": {
      "transferType": "swift",
      "purpose": "Payment for invoice #12345",
      "accountNumber": "5103984571309587"
      }
      }
    • For wallets (instrumentType=wallet):

      {
      "WalletPaymentDetails": {
      "walletId": "aslk1351346"
      }
      }
  • Enhancement: When creating an order, if the redirectUrls object in paymentSettings does not include values for success and failUrl, the default values will now be the shop URL that created the order.

Orders and Payouts

Improvements

  • Feature: The administrative panel at Vertex Dashboard now includes the ability to manually resend callbacks for order/payout status. When sent, these callbacks will transmit the current status of the order/payout.

· 2 min read

Changelog

Orders

Bug Fixes

  • Fix: Resolved an issue where, in some cases, the payment page was incorrectly generated when creating an order with "dataEntryMode": "redirect". This caused the user to be unable to redirect to the provider's page because the Pay button was not clickable.

  • Fix: Resolved a bug where the Retrieve Order Details could accept payoutNumber as orderNumber. This endpoint now only accepts orderNumber. If payoutNumber is provided as orderNumber, an error will be returned:

    {
    "message": "Not found order number some_number in shop with id: some_shop_id",
    "code": 404
    }

Payouts

Bug Fixes

  • Fix: Resolved an issue where the response from the Retrieve Required Payout Fields endpoint sometimes included an empty recipient property. The response now adheres to the documentation.
  • Fix: Corrected a problem where creating a payout would fail due to missing mandatory fields. Payouts are now created correctly.

Changes expected in the next release

  • Feature: There will be an option for manual resending of the order/payout status callback. In the merchant account dashboard, within the order/payout details window, a button Send order status by API will be added. Clicking this button will resend the order or payout status callback. The callback will be sent to the addresses specified in the callback settings, and if webhookUrl was specified during the order/payout creation, both callbacks (settings and webhookUrl) will be sent.
  • As we mentioned in the previous release note, the new payout endpoint Retrieve Required Payout Fields is currently available but is returning placeholder responses instead of actual data. We are working on finalizing this feature, and it will be fully functional and provide accurate data in the next release.

· 2 min read

Changelog

General

  • Fix: Addressed an issue where payouts could be created without specifying all required fields. Now, such requests will return an error indicating the missing fields.
  • Update: Added a new TransferType value virtual_account. See TransferType doc.

Orders

  • Update: A new parameter transferType has been added to the paymentSettings object in the Create Order endpoint. This allows specifying the type of bank transfer when instrumentType is bank_transfer.

Payouts

  • Update: A new optional parameter region has been added to the payout object in the Create Payout Request endpoint. Specifying the region is mandatory for payouts through certain providers.
  • Update: A new object sender, with a structure similar to recipient, has been added to the Create Payout Request endpoint. This is required by some providers to include sender information for the payout.
  • Update: A new parameter transferType has been added to the bankTransferData objects within both recipient and sender in the Create Payout Request endpoint. This allows specifying the type of bank transfer when instrumentType is bank_transfer.

Changes expected in the next release

The structure of the response for the future POST endpoint Retrieve Required Payout Fields has been radically updated, which will eventually replace the current GET Retrieve Required Payout Fields endpoint.

· 2 min read

Changelog

New Features

Payout Creation Endpoint Update

In the Payout Creation Endpoint, a new optional parameter webhookUrl has been added. This parameter allows you to specify a webhook URL for receiving notifications about payout status changes for this specific payout.

Payment Status and Webhook Response Update

A new parameter providerPaymentId has been added to the response of the Retrieve Order Details and order Callback. This parameter is the identifier for the specific payment assigned by the payment provider.

Payment Settings Update

A new optional parameter dataEntryMode has been added to the paymentSettings object of the Create Order endpoint. This parameter specifies the methods for customer data entry to process payments:

  • redirect: The customer enters payment information on the provider's (acquirer's) page via redirect.
  • h2h (host2host): The customer enters payment information on our payment page.
  • qr: The customer scans a QR code and enters information on the aggregator's side.

Improvements

Order Time Limit Increase

The default order time limit has been increased from 15 minutes to 24 hours (+1 day from the time of order creation). Change the timeLimit only if you understand the implications.

Synchronization of Order Status Endpoint and Webhook Responses

As promised in the previous release, we have synchronized the responses of the order status endpoint and webhook, making their responses identical.

· 4 min read

Changelog

New Features

Order Creation endpoint update

In the order creation endpoint, a new optional parameter webhookUrl has been added to the paymentSettings object. This parameter allows specifying an individual webhook for order status changes for each order. webhookUrl is of type string and is validated as a URL, so it must begin with https://.

If webhookUrl is specified when creating an order, notifications about the order status change will be sent to this URL and will not be sent to the general webhook URL set for the shop.

The new parameter is highlighted in the code below:

{
"shopId": 1234,
"order": {
"orderNumber": "56573FDFVFDBWF",
"cost": {
"amount": "56.99",
"currency": "PHP"
}
},
"customer": {
"customerId": "56656",
"firstName": "John",
"lastName": "Doe",
"middleName": "James",
"phone": "79221110500",
"email": "john.doe@mymail.com"
},
"paymentSettings": {
"instrumentType": "wallet",
"providerCode": "connectpay",
"acquirerCode": "gcash",
"entryMode": null,
"autoCapture": true,
"timeLimit": "2024-02-03T10:51:49.086Z",
"redirectUrls": {
"success": "https://example.com/success",
"failure": "https://example.com/failure"
},
"webhookUrl": "https://example.com/webhook"
},
"paymentPageDesign": {
"alias": "default",
"format": "redirect"
}
}

Improvements

Customer ID uniqueness update

The logic for the customerId parameter in the order creation endpoint has been modified. The customerId can now be unique either within a shop or across the entire company/merchant. The existing logic remains unchanged for current merchants, meaning customerId uniqueness remains within the shop by default. This update simply adds the option to change this setting via the technical support. To determine the setting for your shop, check the admin panel of your merchant account under the settings menu in the field 'External customer ID unique for'.

Changes expected in the next release

Payouts

Addition of a new endpoint and future deprecation of an existing endpoint

In future versions, the endpoint /payouts/fields/{providerCode}/{instrumentType}/ Retrieve Required Payout Fields will be declared deprecated. It will be replaced by a new endpoint, /api/v1/payouts/fields Retrieve Required Payout Fields, which is currently under development. The response structures of these endpoints will be identical, but the new endpoint will support a significantly larger number of parameters in the request, allowing it to support a wider range of providers.

The /payouts/fields/{providerCode}/{instrumentType}/ Retrieve Required Payout Fields endpoint will gradually be discontinued. We will make a separate announcement to inform you when it is officially deprecated.

Addition of a new parameter in the payout creation endpoint

A new optional parameter, transferType, will be added to the Payout Creation Request. The new transferType parameter will be mandatory when creating a payout with instrumentType == bank_transfer.

The new parameter that will be added is highlighted in this request example:

{
"shopId": 2,
"payout": {
"cost": {
"amount": "100.50",
"currency": "PHP"
},
"payoutNumber": "43242332"
},
"purpose": "string",
"providerCode": "connectpay",
"acquirerCode": "gcash",
"instrumentType": "bank_transfer",
"transferType": "bank_wire",
"customer": {
"customerId": "56656",
"firstName": "John",
"lastName": "Doe",
"middleName": "James",
"phone": "79221110500",
"email": "john.doe@mymail.com"
}
}

Orders

The changes mentioned in the previous changelog (14.05.2024) regarding the webhook with breaking changes will not be made in this release but will be implemented in the next release on 11.06.2024. For now, the webhook remains unchanged.

danger

The webhook for orders will change in the next release (11.06.2024) without backward compatibility.

Lines highlighted will be removed from the webhook in the next release.

{
"id": 77,
"number": "7_1706275173",
"status": "in_progress",
"cost": {
"amount": "56.99",
"currency": "USD"
},
"timeLimit": {
"date": "2024-01-27 07:45:51.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"orderCreatedAt": {
"date": "2024-01-26 13:19:33.222170",
"timezone_type": 3,
"timezone": "UTC"
},
"orderPaidAt": {
"date": "2024-01-26 13:19:33.222170",
"timezone_type": 3,
"timezone": "UTC"
},
"captureNeeded": false,
"payments": [
{
"id": "79",
"type": "payment",
"parentPaymentId": "83",
"cost": {
"amount": "56.99",
"currency": "USD"
},
"acquirerCode": "fyst",
"paymentMethod": "card",
"paymentDetails": {
"type": "card",
"authCode": "auth94753457343",
"rrn": "rrn583743856734",
"maskedCardNumber": "123456******1234"
}
}
],
"customer": {
"id": 13,
"name": "John",
"middleName": "James",
"surname": "Doe",
"phone": "79221110500",
"email": "john.doe@mymail.com"
},
"data": {
"shopId": 123,
"orderNumber": "56573FDFVFDBWF",
"orderStatus": "in_progress",
"cost": {
"amount": "56.99",
"currency": "USD"
},
"timeLimit": "2023-08-29T15:34:56+03:00",
"orderCreatedAt": "2023-08-29T15:34:56+03:00",
"orderPaidAt": "2023-08-29T15:34:56+03:00",
"autoCapture": true,
"payments": [
{
"paymentId": "79",
"paymentType": "payment",
"parentPayment": "83",
"cost": {
"amount": "56.99",
"currency": "USD"
},
"acquirer": {
"code": "fyst"
},
"instrumentType": "card",
"paymentDetails": {
"authCode": "auth94753457343",
"maskedCardNumber": "123456******1234",
"rrn": "rrn583743856734"
}
}
],
"customer": {
"customerId": "56656",
"firstName": "John",
"lastName": "Doe",
"middleName": "James",
"phone": "79221110500",
"email": "john.doe@mymail.com"
}
}
}

· 3 min read

Changelog

Changes expected in the next release

In the order creation endpoint, a new optional parameter webhookUrl will be added to the paymentSettings object. This parameter allows specifying an individual webhook for order status changes for each order. webhookUrl is of type string and is validated as a URL, so it must begin with https://.

If webhookUrl is specified when creating an order, notifications about the order status change will be sent to this URL and will not be sent to the general webhook URL set for the shop.

The new parameter is highlighted in the code below:

{
"shopId": 1234,
"order": {
"orderNumber": "56573FDFVFDBWF",
"cost": {
"amount": "56.99",
"currency": "PHP"
}
},
"customer": {
"customerId": "56656",
"firstName": "John",
"lastName": "Doe",
"middleName": "James",
"phone": "79221110500",
"email": "john.doe@mymail.com"
},
"paymentSettings": {
"instrumentType": "wallet",
"providerCode": "connectpay",
"acquirerCode": "gcash",
"entryMode": null,
"autoCapture": true,
"timeLimit": "2024-02-03T10:51:49.086Z",
"redirectUrls": {
"success": "https://example.com/success",
"failure": "https://example.com/failure"
},
"webhookUrl": "string"
},
"paymentPageDesign": {
"alias": "default",
"format": "redirect"
}
}

The changes mentioned in the previous changelog (30.04.2024) regarding the webhook with breaking changes will not be made in this release but will be implemented in the next release on 28.05.2024. For now, the webhook remains unchanged.

danger

The webhook for orders will change in the next release (28.05.2024) without backward compatibility.

Lines highlighted will be removed from the webhook in the next release.

{
"id": 77,
"number": "7_1706275173",
"status": "in_progress",
"cost": {
"amount": "56.99",
"currency": "USD"
},
"timeLimit": {
"date": "2024-01-27 07:45:51.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"orderCreatedAt": {
"date": "2024-01-26 13:19:33.222170",
"timezone_type": 3,
"timezone": "UTC"
},
"orderPaidAt": {
"date": "2024-01-26 13:19:33.222170",
"timezone_type": 3,
"timezone": "UTC"
},
"captureNeeded": false,
"payments": [
{
"id": "79",
"type": "payment",
"parentPaymentId": "83",
"cost": {
"amount": "56.99",
"currency": "USD"
},
"acquirerCode": "fyst",
"paymentMethod": "card",
"paymentDetails": {
"type": "card",
"authCode": "auth94753457343",
"rrn": "rrn583743856734",
"maskedCardNumber": "123456******1234"
}
}
],
"customer": {
"id": 13,
"name": "John",
"middleName": "James",
"surname": "Doe",
"phone": "79221110500",
"email": "john.doe@mymail.com"
},
"data": {
"shopId": 123,
"orderNumber": "56573FDFVFDBWF",
"orderStatus": "in_progress",
"cost": {
"amount": "56.99",
"currency": "USD"
},
"timeLimit": "2023-08-29T15:34:56+03:00",
"orderCreatedAt": "2023-08-29T15:34:56+03:00",
"orderPaidAt": "2023-08-29T15:34:56+03:00",
"autoCapture": true,
"payments": [
{
"paymentId": "79",
"paymentType": "payment",
"parentPayment": "83",
"cost": {
"amount": "56.99",
"currency": "USD"
},
"acquirer": {
"code": "fyst"
},
"instrumentType": "card",
"paymentDetails": {
"authCode": "auth94753457343",
"maskedCardNumber": "123456******1234",
"rrn": "rrn583743856734"
}
}
],
"customer": {
"customerId": "56656",
"firstName": "John",
"lastName": "Doe",
"middleName": "James",
"phone": "79221110500",
"email": "john.doe@mymail.com"
}
}
}

· 3 min read

Changelog

Updates

General

  • Update: The Developers -> Shop section has been updated to include the ability to specify separate webhook URLs for orders (payment acceptance) and for payouts.
  • New feature: Added a new callback for payouts, enhancing the integration options for payout functionalities.

Orders

  • Update: A new parameter acquirerCode has been added to the paymentSettings object of the Create Order endpoint.
  • Update: New possible parameters transferType and purpose have been added to the payments array in the paymentDetails object of the Retrieve Order Details endpoint. These are used for instrumentType=bank_transfer.
  • Update: A new mandatory parameter acquirerCode has been added to the response of the Retrieve Payment Methods endpoint.

Payouts

Changes expected in the next release

danger

The callback for orders will change in the next release (14.05.2024) without backward compatibility.

Lines highlighted will be removed from the webhook in the next release.

{
"id": 77,
"number": "7_1706275173",
"status": "in_progress",
"cost": {
"amount": "56.99",
"currency": "USD"
},
"timeLimit": {
"date": "2024-01-27 07:45:51.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"orderCreatedAt": {
"date": "2024-01-26 13:19:33.222170",
"timezone_type": 3,
"timezone": "UTC"
},
"orderPaidAt": {
"date": "2024-01-26 13:19:33.222170",
"timezone_type": 3,
"timezone": "UTC"
},
"captureNeeded": false,
"payments": [
{
"id": "79",
"type": "payment",
"parentPaymentId": "83",
"cost": {
"amount": "56.99",
"currency": "USD"
},
"acquirerCode": "fyst",
"paymentMethod": "card",
"paymentDetails": {
"type": "card",
"authCode": "auth94753457343",
"rrn": "rrn583743856734",
"maskedCardNumber": "123456******1234"
}
}
],
"customer": {
"id": 13,
"name": "John",
"middleName": "James",
"surname": "Doe",
"phone": "79221110500",
"email": "john.doe@mymail.com"
},
"data": {
"shopId": 123,
"orderNumber": "56573FDFVFDBWF",
"orderStatus": "in_progress",
"cost": {
"amount": "56.99",
"currency": "USD"
},
"timeLimit": "2023-08-29T15:34:56+03:00",
"orderCreatedAt": "2023-08-29T15:34:56+03:00",
"orderPaidAt": "2023-08-29T15:34:56+03:00",
"autoCapture": true,
"payments": [
{
"paymentId": "79",
"paymentType": "payment",
"parentPayment": "83",
"cost": {
"amount": "56.99",
"currency": "USD"
},
"acquirer": {
"code": "fyst"
},
"instrumentType": "card",
"paymentDetails": {
"authCode": "auth94753457343",
"maskedCardNumber": "123456******1234",
"rrn": "rrn583743856734"
}
}
],
"customer": {
"customerId": "56656",
"firstName": "John",
"lastName": "Doe",
"middleName": "James",
"phone": "79221110500",
"email": "john.doe@mymail.com"
}
}
}