Verifone Billing Agreement API
The Billing Agreement API from Verifone — 5 operation(s) for billing agreement.
The Billing Agreement API from Verifone — 5 operation(s) for billing agreement.
openapi: 3.0.1
info:
title: 3D Secure 3DS Authentication Billing Agreement 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: Billing Agreement
paths:
/billingAgreement/{agreementId}:
get:
tags:
- Billing Agreement
summary: Get agreement details
operationId: getBillingagreementAgreementid
parameters:
- name: agreementId
in: path
description: PayPal billing agreement id
required: true
schema:
type: string
- name: paymentProviderContract
in: query
description: PayPal Payment Provider Contract UUID
required: true
schema:
type: string
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/Model8'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
/billingAgreement/token/{tokenId}:
get:
tags:
- Billing Agreement
summary: Show token details
operationId: getBillingagreementTokenTokenid
parameters:
- name: tokenId
in: path
description: The ID of the agreement token for which to show details.
required: true
schema:
type: string
- name: paymentProviderContract
in: query
description: PayPal Payment Provider Contract UUID
required: true
schema:
type: string
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/Model17'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
/billingAgreement/create:
post:
tags:
- Billing Agreement
summary: Create billing agreement using token
operationId: postBillingagreementCreate
parameters:
- name: x-vfi-api-idempotencyKey
in: header
description: A value you specify that uniquely identifies the transaction. If you're unsure whether a particular transaction succeeded, you can reattempt it with the same idempotency key without worrying about duplicating the transaction.
schema:
type: string
requestBody:
content:
'*/*':
schema:
$ref: '#/components/schemas/Model29'
required: false
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/Model30'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
/billingAgreement/initiate:
post:
tags:
- Billing Agreement
summary: Initiate billing agreement
operationId: postBillingagreementInitiate
requestBody:
content:
'*/*':
schema:
$ref: '#/components/schemas/Model32'
required: false
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/Model33'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
/billingAgreement/{agreementId}/cancel:
post:
tags:
- Billing Agreement
summary: Cancel agreement details
operationId: postBillingagreementAgreementidCancel
parameters:
- name: agreementId
in: path
description: PayPal billing agreement id
required: true
schema:
type: string
requestBody:
content:
'*/*':
schema:
$ref: '#/components/schemas/Model38'
required: false
responses:
'200':
description: Successful
content:
application/json:
schema:
type: string
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Model5'
components:
schemas:
merchant:
type: object
properties:
payeeInfo:
$ref: '#/components/schemas/payeeInfo'
payerInfo:
required:
- email
- payerId
type: object
properties:
email:
type: string
description: The payer's email address.
suffix:
type: string
description: The payer's name suffix.
firstName:
type: string
description: The payer's first name.
lastName:
type: string
description: The payer's last name.
payerId:
type: string
description: The PayPal-assigned payer ID.
phone:
type: string
description: The payer's phone number.
billingAddress:
$ref: '#/components/schemas/billingAddress'
allowedCountries:
type: array
description: An array of legally accepted customer country codes
items:
maxLength: 2
minLength: 2
pattern: ^([A-Z]{2}|C2)$
type: string
description: The two-character ISO 3166-1 code that identifies the country or region.
Model29:
required:
- billingToken
- paymentProviderContract
type: object
properties:
billingToken:
type: string
description: PayPal agreement token
paymentProviderContract:
type: string
description: PayPal Payment Provider Contract UUID
billingAddress:
required:
- country
- postalCode
type: object
properties:
country:
maxLength: 2
minLength: 2
pattern: ^([A-Z]{2}|C2)$
type: string
description: The two-character ISO 3166-1 code that identifies the country or region.
postalCode:
maxLength: 60
type: string
description: The postal code, which is the zip code or equivalent. Typically required for countries with a postal code or an equivalent.
countrySubdivision:
maxLength: 300
type: string
description: The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision.
city:
maxLength: 120
type: string
description: A city, town, or village. Smaller than admin_area_level_1
addressLine2:
maxLength: 300
type: string
description: The second line of the address. For example, suite or apartment number.
addressLine1:
maxLength: 300
type: string
description: The first line of the address. For example, number or street. For example, 173 Drury Lane. Required for data entry and compliance and risk checks. Must contain the full address.
description: Shipping Address details
shippingAddress:
required:
- addressLine1
- city
- country
- countrySubdivision
- postalCode
type: object
properties:
fullName:
type: string
description: Full Name
addressLine1:
maxLength: 300
type: string
description: The first line of the address. For example, number or street. For example, 173 Drury Lane. Required for data entry and compliance and risk checks. Must contain the full address.
addressLine2:
maxLength: 300
type: string
description: The second line of the address. For example, suite or apartment number.
city:
maxLength: 120
type: string
description: A city, town, or village. Smaller than admin_area_level_1
countrySubdivision:
maxLength: 300
type: string
description: The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision.
country:
maxLength: 2
minLength: 2
pattern: ^([A-Z]{2}|C2)$
type: string
description: The two-character ISO 3166-1 code that identifies the country or region.
postalCode:
maxLength: 60
type: string
description: The postal code, which is the zip code or equivalent. Typically required for countries with a postal code or an equivalent.
payeeInfo:
required:
- email
type: object
properties:
email:
type: string
description: The email address that is associated with the payee's PayPal account.
Model17:
required:
- tokenId
type: object
properties:
tokenId:
type: string
description: The state of the agreement.
status:
type: string
description: The description of the agreement.
description:
type: string
description: The description of the agreement.
collectShippingAddress:
type: boolean
description: Indicates whether to skip the collection of the shipping address from the customer during the agreement sign-up phase.
enableAddressChange:
type: boolean
description: Indicates whether to show the shipping address but prevent the customer from editing it.
payerInfo:
$ref: '#/components/schemas/payerInfo'
redirectUrls:
$ref: '#/components/schemas/redirectUrls'
experienceId:
type: string
description: The ID of the experience profile to apply during the agreement approval UI flow.
externalSelectedFundingInstrumentType:
type: string
description: The type of financial instrument (FI) that the merchant wants to promote.
enum:
- CREDIT
- PAY_UPON_INVOICE
payer:
type: object
properties:
payerInfo:
$ref: '#/components/schemas/payerInfo'
Model30:
required:
- createTime
- id
- state
type: object
properties:
id:
type: string
description: The ID of the agreement.
state:
type: string
description: The state of the agreement.
description:
type: string
description: The description of the agreement.
merchant:
$ref: '#/components/schemas/merchant'
payer:
$ref: '#/components/schemas/payer'
plan:
$ref: '#/components/schemas/plan'
createTime:
type: string
description: The date and time when the agreement was created.
updateTime:
type: string
description: The date and time when the agreement was updated.
Model33:
required:
- approvalUrl
- billingToken
type: object
properties:
approvalUrl:
type: string
description: PayPal approval URL
billingToken:
type: string
description: Billing token
details:
type: object
Model31:
required:
- addressLine1
- city
- country
- countrySubdivision
- postalCode
type: object
properties:
country:
maxLength: 2
minLength: 2
pattern: ^([A-Z]{2}|C2)$
type: string
description: The two-character ISO 3166-1 code that identifies the country or region.
postalCode:
maxLength: 60
type: string
description: The postal code, which is the zip code or equivalent. Typically required for countries with a postal code or an equivalent.
countrySubdivision:
maxLength: 300
type: string
description: The highest level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision.
city:
maxLength: 120
type: string
description: A city, town, or village. Smaller than admin_area_level_1
addressLine2:
maxLength: 300
type: string
description: The second line of the address. For example, suite or apartment number.
addressLine1:
maxLength: 300
type: string
description: The first line of the address. For example, number or street. For example, 173 Drury Lane. Required for data entry and compliance and risk checks. Must contain the full address.
description: Shipping Address details
Model5:
required:
- code
- message
type: object
properties:
code:
type: number
description: A 3-digit code which uniquely identify an error.
details:
$ref: '#/components/schemas/details'
message:
type: string
description: A description of the error.
timestamp:
type: string
description: Error timestamp
format: date
Model8:
required:
- createTime
- id
- state
type: object
properties:
id:
type: string
description: The ID of the agreement.
state:
type: string
description: The state of the agreement.
description:
type: string
description: The description of the agreement.
merchant:
$ref: '#/components/schemas/merchant'
payer:
$ref: '#/components/schemas/payer'
shippingAddress:
$ref: '#/components/schemas/shippingAddress'
plan:
$ref: '#/components/schemas/plan'
createTime:
type: string
description: The date and time when the agreement was created.
updateTime:
type: string
description: The date and time when the agreement was updated.
Model32:
required:
- paymentProviderContract
type: object
properties:
paymentProviderContract:
type: string
description: PayPal Payment Provider Contract UUID
description:
type: string
description: Agreement description
shippingAddress:
$ref: '#/components/schemas/Model31'
enableAddressChange:
type: boolean
description: Indicates whether to show the shipping address but prevent the customer from editing it.
collectShippingAddress:
type: boolean
description: Indicates whether to skip the collection of the shipping address from the customer during the agreement sign-up phase.
allowedCountries:
$ref: '#/components/schemas/allowedCountries'
experienceId:
type: string
description: The ID of the experience profile to apply during the agreement approval UI flow.
externalSelectedFundingInstrumentType:
type: string
description: The type of financial instrument (FI) that the merchant wants to promote.
enum:
- CREDIT
- PAY_UPON_INVOICE
returnUrl:
type: string
description: The URL where the customer is redirected after the customer approves the payment
cancelUrl:
type: string
description: The URL where the customer is redirected after the customer cancels the payment
redirectUrls:
type: object
properties:
returnUrl:
type: string
description: The URL where the customer is redirected after the customer approves the payment
cancelUrl:
type: string
description: The URL where the customer is redirected after the customer cancels the payment
merchantPreferences:
type: object
properties:
collectShippingAddress:
type: string
description: Indicates whether to skip the collection of the shipping address from the customer during the agreement sign-up phase.
enableAddressChange:
type: string
description: Indicates whether to show the shipping address but prevent the customer from editing it.
experienceId:
type: string
description: The ID of the experience profile to apply during the agreement approval UI flow.
externalSelectedFundingInstrumentType:
type: string
description: The type of financial instrument (FI) that the merchant wants to promote.
allowedCountries:
$ref: '#/components/schemas/allowedCountries'
plan:
type: object
properties:
merchantPreferences:
$ref: '#/components/schemas/merchantPreferences'
Model38:
required:
- paymentProviderContract
type: object
properties:
paymentProviderContract:
type: string
description: PayPal Payment Provider Contract UUID
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: 'JWT Bearer token. Pass as: `Authorization: Bearer <token>`. The JWT must be signed with your Verifone-provisioned private key and must include `entity_id`, `sub` (user_id), and `roles` claims.'
BasicAuth:
type: http
scheme: basic
description: 'HTTP Basic authentication. Pass base64-encoded `username:password` as: `Authorization: Basic <credentials>`.'