Verifone Payment Modifications API
The Payment Modifications API from Verifone — 12 operation(s) for payment modifications.
The Payment Modifications API from Verifone — 12 operation(s) for payment modifications.
openapi: 3.0.1
info:
title: 3D Secure 3DS Authentication Payment Modifications API
version: 3.43.0
description: Operations for listing and retrieving 3DS authentication records. Use these endpoints to query historical authentication results filtered by amount, currency, card, status, and more.
servers:
- url: https://emea.gsc.verifone.cloud/oidc/3ds-service
description: EMEA Production
- url: https://us.gsc.verifone.cloud/oidc/3ds-service
description: Americas Production
- url: https://nz.gsc.verifone.cloud/oidc/3ds-service
description: New Zealand Production
- url: https://cst.test-gsc.vfims.com/oidc/3ds-service
description: Global Sandbox
- url: https://uscst-gb.gsc.vficloud.net/oidc/3ds-service
description: Americas Sandbox
security:
- BearerAuth: []
- BasicAuth: []
tags:
- name: Payment Modifications
paths:
/api/v2/transactions/{id}/void:
post:
operationId: voidAuthorization
summary: Void authorization
description: Void/Cancel an authorization hold on a payment. Check the documentation in order to verify what payment method allows for this payment modification.
parameters:
- name: id
required: true
in: path
description: Original transaction id to cancel / void.
schema:
type: string
responses:
'201':
description: Ecommerce Payment Result
content:
application/json:
schema:
$ref: '#/components/schemas/EcomResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestV2Docs'
'401':
description: Unauthorised
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedV2Docs'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenV2Docs'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundV2Docs'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorV2Docs'
tags:
- Payment Modifications
/api/v2/transactions/{id}/klarna_complete:
post:
tags:
- Payment Modifications
summary: Complete a Klarna payment
description: A customer has completed a purchase and want to create the associated order in the system.
operationId: klarnaPaymentTransaction
parameters:
- name: id
in: path
description: Original transaction id to complete transaction.
required: true
style: simple
explode: false
schema:
title: Transaction ID
type: string
description: The ID of the transaction.
format: uuid-flexible
- name: x-vfi-api-idempotencyKey
in: header
required: false
style: simple
explode: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/klarnaPaymentCompletionRequest'
responses:
'200':
description: The Klarna Complete Payment Response.
content:
application/json:
schema:
$ref: '#/components/schemas/klarnaPaymentCompletionResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestV2Docs'
'401':
description: Unauthorised Request
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedV2Docs'
'403':
description: Forbidden Request
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenV2Docs'
'404':
description: Not Found Request
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundV2Docs'
'500':
description: Internal Error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorV2Docs'
/api/v2/transactions/{id}/adjust:
post:
operationId: Adjust Payment
summary: Adjust the preauth transaction amount
description: Allows for the modification of the amount of a previously initiated preauthorization before it is captured.
parameters:
- name: id
required: true
in: path
description: Original transaction id to adjust.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AdjustDto'
responses:
'201':
description: Ecommerce Payment Result
content:
application/json:
schema:
$ref: '#/components/schemas/EcomResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestV2Docs'
'401':
description: Unauthorised
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedV2Docs'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenV2Docs'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundV2Docs'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorV2Docs'
tags:
- Payment Modifications
/api/v2/transactions/{id}/capture:
post:
operationId: captureAuthorization
summary: Capture authorization
description: Capture an authorization hold on a payment. Check the documentation in order to verify what payment method allows for this payment modification.
parameters:
- name: id
required: true
in: path
description: Original transaction id to capture.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CaptureCardTransactionDto'
responses:
'201':
description: Ecommerce Payment Result
content:
application/json:
schema:
$ref: '#/components/schemas/EcomResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestV2Docs'
'401':
description: Unauthorised
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedV2Docs'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenV2Docs'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundV2Docs'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorV2Docs'
tags:
- Payment Modifications
/api/v2/transactions/{id}/refund:
post:
operationId: refundPayment
summary: Refund payment
description: Refund a payment that has previously been captured.
parameters:
- name: id
required: true
in: path
description: Original transaction id to refund.
schema:
type: string
- name: x-vfi-api-idempotencykey
required: false
in: header
schema:
type: string
description: '`Note:` This value is required to process a refund for an Affirm payment.'
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RefundCardTransactionDto'
responses:
'201':
description: Ecommerce Payment Result
content:
application/json:
schema:
$ref: '#/components/schemas/EcomResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestV2Docs'
'401':
description: Unauthorised
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedV2Docs'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenV2Docs'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundV2Docs'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorV2Docs'
tags:
- Payment Modifications
/api/v2/transactions/refund:
post:
tags:
- Payment Modifications
description: Refund a cardholder with an amount not related to a previous transaction.
summary: Unmatched refund
operationId: unmatchedRefund
requestBody:
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/unmatchedRefundEncryptedCardRequest'
- $ref: '#/components/schemas/unmatchedRefundTokenRequest'
responses:
'201':
description: Ecommerce Payment Result
content:
application/json:
schema:
$ref: '#/components/schemas/EcomResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestV2Docs'
'401':
description: Unauthorised
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedV2Docs'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenV2Docs'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundV2Docs'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorV2Docs'
/api/v2/transactions/{id}/void_capture:
post:
operationId: voidCapture
summary: Void capture
description: Cancel a payment that has previously been captured. Void capture can only be done on the full amount of the transaction. Check the documentation to verify what [payment method](https://docs.verifone.com/online-payments/payment-actions) allows for this payment modification.
parameters:
- name: id
required: true
in: path
description: Original transaction id to cancel / void the capture.
schema:
type: string
responses:
'201':
description: Ecommerce Payment Result
content:
application/json:
schema:
$ref: '#/components/schemas/EcomResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestV2Docs'
'401':
description: Unauthorised
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedV2Docs'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenV2Docs'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundV2Docs'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorV2Docs'
tags:
- Payment Modifications
/api/v2/transactions/reverse:
post:
operationId: reverseTransaction
summary: Reverse Transaction
description: Allows for technical reversal
parameters:
- name: x-vfi-api-idempotencykey
required: true
in: header
description: string(uuid)
schema:
type: string
responses:
'201':
description: Technical Reversal Result
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/EcomReverseTransactionResponse'
- $ref: '#/components/schemas/EcomResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestV2Docs'
'401':
description: Unauthorised
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedV2Docs'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenV2Docs'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundV2Docs'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorV2Docs'
tags:
- Payment Modifications
/api/v2/transactions/{id}/release:
post:
operationId: ReleasePreAuthorization
summary: Release PreAuthorization
description: Release the rest of preauthorisation which was not captured. This is a one time operation where all remaining funds are released. No further captures are allowed after that. Rest of amount to be released is automatically calculated internally.
parameters:
- name: id
required: true
in: path
description: Original preauthorized transaction id to release
schema:
type: string
- name: x-vfi-api-idempotencykey
required: false
in: header
description: "string(uuid)\n\nExample: 63bbc548-d2de-4546-b106-880a5018461c\n A value you specify that uniquely identifies this transaction. If you're unsure whether a particular transaction\n succeeded, you can reattempt it with the same idempotency key without worrying about duplicating the\n transaction."
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ReleasePreauthDto'
responses:
'201':
description: Ecommerce Payment Result
content:
application/json:
schema:
$ref: '#/components/schemas/EcomResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestV2Docs'
'401':
description: Unauthorised
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedV2Docs'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenV2Docs'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundV2Docs'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorV2Docs'
tags:
- Payment Modifications
/api/v2/transactions/{id}/extend:
post:
operationId: extendAuthorization
summary: Extend preauthorization
description: 'Extend the authorization period and confirm the availability of the funds of a previously initiated preauthorization.
If supported by the card brand (like Visa) this operation will be handled as a Reauthorization request.'
parameters:
- name: id
required: true
in: path
description: Original preauthorized transaction id to release
schema:
type: string
- name: x-vfi-api-idempotencykey
required: false
in: header
description: "string(uuid)\n\nExample: 63bbc548-d2de-4546-b106-880a5018461c\n A value you specify that uniquely identifies this transaction. If you're unsure whether a particular transaction\n succeeded, you can reattempt it with the same idempotency key without worrying about duplicating the\n transaction."
schema:
type: string
responses:
'201':
description: Ecommerce Payment Result
content:
application/json:
schema:
$ref: '#/components/schemas/EcomResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestV2Docs'
'401':
description: Unauthorised
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedV2Docs'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenV2Docs'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundV2Docs'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorV2Docs'
tags:
- Payment Modifications
/api/v2/transactions/{id}/issuer_instalment_selection:
post:
operationId: issuerInstalmentSelection
summary: Issuer Instalment Selection
description: Confirm selection of instalment option where multiple issuer instalment options proposed.
parameters:
- name: id
required: true
in: path
description: Original transaction id to apply instalment selection to.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/issuerInstalmentSelectionRequest'
responses:
'201':
description: Ecommerce Payment Result
content:
application/json:
schema:
$ref: '#/components/schemas/EcomResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestV2Docs'
'401':
description: Unauthorised
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedV2Docs'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenV2Docs'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundV2Docs'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorV2Docs'
tags:
- Payment Modifications
/api/v2/transactions/affirm_complete:
post:
tags:
- Payment Modifications
summary: Complete a Affirm payment
description: A customer has completed a purchase and want to create the associated order in the system.
operationId: affirmCompleteTransaction
parameters:
- name: x-vfi-api-idempotencykey
required: true
in: header
schema:
type: string
description: A value you specify that uniquely identifies this transaction. This must be used to trigger a reversal if there is a timeout.
format: uuid
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/affirmPaymentCompletionRequest'
responses:
'201':
description: The Affirm Initiation Response.
content:
application/json:
schema:
$ref: '#/components/schemas/affirmPaymentCompletionResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/BadRequestV2Docs'
'401':
description: Unauthorised Request
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedV2Docs'
'403':
description: Forbidden Request
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenV2Docs'
'404':
description: Not Found Request
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundV2Docs'
'500':
description: Internal Error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorV2Docs'
components:
schemas:
ecomPaymentResponse_issuer_instalment_result:
type: object
properties:
instalment_program:
type: string
description: The name of special program designated by scheme or issuer.
enum:
- MCINST
payment_option:
type: string
description: Available payment mode allowed by issuer for the transaction.
enum:
- FULL
- FULL_OR_INSTALMENT
- INSTALMENT
payment_plan_option:
type: array
description: The issuer may offer more than one instalment options within certain instalment programs.
items:
$ref: '#/components/schemas/paymentPlanOption'
number_of_instalments:
minimum: 0
type: integer
description: The number of individual parts that the total amount should be paid in.
min_number_of_instalments:
type: integer
description: The minimal number of individual parts that the total amount could be paid in, if choice is available.
max_number_of_instalments:
type: integer
description: The maximal number of individual parts that the total amount could be paid in, if choice is available.
interest_rate:
type: number
description: The interest rate.
format: float
annual_percentage_rate:
type: number
description: The interest rate expressed in Annual Percentage Rate.
format: float
handling_fee:
$ref: '#/components/schemas/amountDecimal'
down_payment_amount:
$ref: '#/components/schemas/amountDecimal'
instalment_amount:
$ref: '#/components/schemas/amountDecimal'
total_amount_with_cost:
$ref: '#/components/schemas/amountDecimal'
additionalProperties: false
description: Issuer-managed instalment response. May be used to inform on supported instalment options for the transaction in specific programs (e.g., Mastercard Instalment Payment Service).
affirmPaymentCompletionRequest:
title: Affirm Complete Payment Request
type: object
properties:
merchant_reference:
type: string
title: merchantReference
description: A reference specified by the merchant to identify the transaction
maxLength: 50
refusal_reason:
$ref: '#/components/schemas/RefusalReason'
ShippingInformation:
type: object
properties:
address:
type: string
maxLength: 300
description: Street address of the recipient.
city:
type: string
maxLength: 28
description: City of the recipient.
country:
type: string
maxLength: 2
minLength: 2
format: country-code
description: A 2-letter ISO3166 alpha-2 country code for the address.
postal_code:
type: string
minLength: 1
maxLength: 16
description: A postal code for the address.
email:
type: string
title: Email Address
minLength: 3
maxLength: 254
format: email
description: A valid internationalized email address, as defined by RFC 5322, RFC 6530, and other RFCs. Due to RFC 5321, an email address can be up to 254 characters long even though up to 64 characters are allowed before and 255 characters are allowed after the @ sign. This pattern verifies only that the string contains an unquoted @ sign. See https://tools.ietf.org/html/rfc5322#section-3.4.1.
first_name:
type: string
maxLength: 100
description: First name of the recipient.
last_name:
type: string
maxLength: 100
description: Last name of the recipient.
phone:
type: number
maxLength: 15
description: Numbers only, no dash or any other separator.
state:
type: string
maxLength: 35
description: A region / state / province for the address.
required:
- address
- city
- country
- postal_code
StoredCredential:
type: object
properties:
reference:
type: string
description: Reference of a successfully processed initial COF transaction. Only used by subsequent COF transactions.
stored_credential_type:
type: string
scheme_reference:
type: string
description: Scheme Reference Data received from issuer/acquirer.
processing_model:
type: string
enum:
- UNSCHEDULED_CREDENTIAL_ON_FILE
- CREDENTIAL_ON_FILE
- RECURRING
- REAUTHORIZATION
- NONE
description: Processing model to use for COF transaction. Refer to the card integration guide for more information on the usage.
details:
deprecated: true
type: string
enum:
- UNSCHEDULED_CREDENTIAL_ON_FILE
- CREDENTIAL_ON_FILE
- RECURRING
description: Processing model to use for COF transaction. Refer to the card integration guide for more information on the usage.
paymentPlanOption:
title: Instalment payment plan option
type: object
properties:
number_of_instalments:
minimum: 1
type: integer
description: The number of individual parts that the total amount should be paid in.
first_instalment_amount:
$ref: '#/components/schemas/amountDecimal'
instalment_amount:
$ref: '#/components/schemas/amountDecimal'
interest_rate:
type: number
description: The interest rate.
format: float
annual_percentage_rate:
type: number
description: The interest rate expressed in Annual Percentage Rate.
format: float
handling_fee:
$ref: '#/components/schemas/amountDecimal'
total_amount_with_cost:
$ref: '#/components/schemas/amountDecimal'
description: An instalment plan option available for the transaction. Instalments are managed by the issuer. To the merchant this is just another transaction.
EcomResponse:
type: object
properties:
id:
type: string
title: Transaction ID
format: uuid-flexible
description: The ID of the transaction.
payment_provider_contract:
type: string
description: The identifier of payment provider contract you want to process the transaction request with.
format: uuid-flexible
amount:
type: integer
description: Amount is charged without a decimal place e.g. $1.5 = 150. Currencies can have different decimals/exponentials, see Currencies Section for more details. For Account Verification transactions, provide 0 as value for this field.
blocked:
type: boolean
description: True if the transaction has been blocked by a ruleset, false otherwise
created_at:
type: string
description: The time at which the transaction was created.
format: date-time
customer:
type: string
description: The ID of a customer
invoice_number:
type: string
title: Invoice Number
description: Optional. The invoice number to track this payment.
maxLength: 127
merchant_reference:
type: string
description: A reference specified by the merchant to identify the transaction
payment_product:
type: string
description: The payment product corresponding to this transaction
payment_product_type:
type: string
description: The name of the processor used for this transaction
processor_reference:
type: string
description: Reference identifying the transaction, as provided by the processor.
processor_details:
type: object
description: Stores all details specific for the processor of the transaction.
status:
type: string
description: The outcome of the payment request.
title: Ecommerce Transaction Status
enum:
- INITIATED
- AUTHORIZED
- AUTHORIZATION_VOIDED
- CANCELLED
- CUSTOMER_ACCEPTED
- REFUNDED
- FAILED
- PENDING
- DECLINED
- SETTLEMENT_CANCELLED
- SETTLEMENT_REQUESTED
- SETTLEMENT_SUBMITTED
- SETTLEMENT_COMPLETED
- SETTLEMENT_PARTIAL
- SETTLEMENT_DECLINED
- VOIDED
- UNKNOWN
status_reason:
type: string
description: Message provided by the 3rd party service as additional information, when the transaction does not succeed.
shipping_information:
allOf:
- $ref: '#/components/schemas/ShippingInformation'
arn:
type: string
description: Acquirer reference number. Generated by the Acquirer at the time of clearing for card transactions.
# --- truncated at 32 KB (96 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/verifone/refs/heads/main/openapi/verifone-payment-modifications-api-openapi.yml