info:
title: Convenient Checkout Api
contact:
name: Karthik S. Balaram
email: balaramk@optum.com
version: v1
description: Convenient Checkout Gateway API - Prod
termsOfService: >-
https://legacy.optumdeveloper.com/content/odv-optumdev/optum-developer/en/legal-terms/terms-of-use.html
x-shortDescription: Convenient Checkout Gateway API
paths:
/sessions:
post:
tags:
- Merchant
summary: Draft - Create session for initializing the convenient checkout widget
description: >-
This api is used for creating the session id that is required to load
the convenient checkout widget. Refer [docs](
/docs/developers/convenient-checkout-ui/Integration-Options/Embedded-Experience/
) for widget setup. When Customer information is not present or
insufficient, the checkout will be a guest experience.
security:
- gateway:
- financial/commerce/checkout:merchant
- financial/commerce/nonprodcheckout:merchant
parameters:
- in: header
description: >-
Merchant Identifier [More info](
/docs/developers/API-Terminology/#merchant-id )
name: X-Merchant-Id
schema:
type: string
format: uuid
required: true
- in: header
description: Specify the env value, Only required for Non-Prod
name: X-Upstream-Env
schema:
type: string
format: string
enum:
- dev
- stage
- test
required: true
- in: header
description: Specify the Source System Identifier
name: X-source
schema:
type: string
format: string
required: false
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SessionRequest'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/SessionResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
/sessions/{sessionId}:
get:
tags:
- Merchant
summary: Draft - Get session details for the convenient checkout widget
description: >-
This api is used for getting the session details that is required to get
the status of convenient checkout widget. Refer [docs](
/docs/developers/convenient-checkout-ui/Integration-Options/Embedded-Experience/
) for widget setup. When Customer information is not present or
insufficient, the checkout will be a guest experience.
security:
- gateway:
- financial/commerce/checkout:merchant
- financial/commerce/nonprodcheckout:merchant
parameters:
- in: header
description: >-
Merchant Identifier [More info](
/docs/developers/API-Terminology/#merchant-id )
name: X-Merchant-Id
schema:
type: string
format: uuid
required: true
- in: header
description: Specify the env value, Only required for Non-Prod
name: X-Upstream-Env
schema:
type: string
format: string
enum:
- dev
- stage
- test
required: true
- in: path
name: sessionId
schema:
type: string
format: uuid
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceMerchantSessionResponse'
'202':
description: ACCEPTED
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceMerchantSessionResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'410':
description: Gone
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
/payments:
get:
tags:
- Merchant
summary: Draft - Get Payment by Merchant Transaction Id
security:
- gateway:
- financial/commerce/checkout:merchant
- financial/commerce/nonprodcheckout:merchant
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ResourcePaymentResponse'
'202':
description: ACCEPTED
content:
application/json:
schema:
$ref: '#/components/schemas/ResourcePaymentResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
'406':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResourceWithErrorDetails'
description: Not Acceptable
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: >-
Internal Server Error (If you received a 500, this indicates a
non-recoverable issue happened and that this payment has failed)
parameters:
- in: header
name: X-Merchant-Id
schema:
type: string
format: uuid
required: true
- in: header
description: Specify the env value, Only required for Non-Prod
name: X-Upstream-Env
schema:
type: string
format: string
enum:
- dev
- stage
- test
required: true
- in: query
name: merchantTransactionId
schema:
type: string
maxLength: 50
description: >-
Unique identifier that can be used to track this transaction. This
identifier will make sure that there wont be any duplicate
transaction.
required: true
operationId: getPaymentByMerchantTransactionId
post:
tags:
- Merchant
summary: Draft - Create Payment
security:
- gateway:
- financial/commerce/checkout:merchant
- financial/commerce/nonprodcheckout:merchant
responses:
'202':
description: ACCEPTED
content:
application/json:
schema:
$ref: '#/components/schemas/ResourcePaymentResponse'
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Bad Request
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'406':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Not Acceptable
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: >-
Internal Server Error (If you received a 500, this indicates a
non-recoverable issue happened and that this payment has failed)
parameters:
- in: header
name: X-Merchant-Id
schema:
type: string
format: uuid
required: true
- in: header
description: Specify the env value, Only required for Non-Prod
name: X-Upstream-Env
schema:
type: string
format: string
enum:
- dev
- stage
- test
required: true
operationId: createPayment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentRequest'
required: true
/payments/{paymentId}:
get:
tags:
- Merchant
summary: Draft - Get Payment by PaymentId
security:
- gateway:
- financial/commerce/checkout:merchant
- financial/commerce/nonprodcheckout:merchant
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ResourcePaymentResponse'
'202':
description: ACCEPTED
content:
application/json:
schema:
$ref: '#/components/schemas/ResourcePaymentResponse'
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Bad Request
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
'406':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Not Acceptable
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: >-
Internal Server Error (If you received a 500, this indicates a
non-recoverable issue happened and that this payment has failed)
parameters:
- in: path
name: paymentId
schema:
type: string
format: uuid
required: true
- in: header
name: X-Merchant-Id
schema:
type: string
format: uuid
required: true
- in: header
description: Specify the env value, Only required for Non-Prod
name: X-Upstream-Env
schema:
type: string
format: string
enum:
- dev
- stage
- test
required: true
operationId: getPayment
/payments/{paymentId}/capture:
patch:
tags:
- Merchant
summary: Capture partial or full amount in Auth operations by PaymentId
operationId: capturePayment
parameters:
- name: X-Merchant-Id
description: >-
Merchant Identifier [More info](
/docs/developers/API-Terminology/#merchant-id )
in: header
required: true
schema:
type: string
format: uuid
- in: header
description: Specify the env value, Only required for Non-Prod
name: X-Upstream-Env
schema:
type: string
format: string
enum:
- dev
- stage
- test
required: true
- name: paymentId
description: PaymentId for the authorized payment
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CaptureRequest'
responses:
'202':
description: ACCEPTED
content:
'*/*':
schema:
$ref: '#/components/schemas/ResourcePaymentResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
/payments/{paymentId}/cancel:
patch:
tags:
- Merchant
summary: Cancel payment by PaymentId
operationId: cancelPayment
parameters:
- name: X-Merchant-Id
description: >-
Merchant Identifier [More info](
/docs/developers/API-Terminology/#merchant-id )
in: header
required: true
schema:
type: string
format: uuid
- in: header
description: Specify the env value, Only required for Non-Prod
name: X-Upstream-Env
schema:
type: string
format: string
enum:
- dev
- stage
- test
required: true
- name: paymentId
description: PaymentId for the payment
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CancelRequest'
responses:
'202':
description: ACCEPTED
content:
'*/*':
schema:
$ref: '#/components/schemas/ResourcePaymentResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
/payment-methods/search:
post:
tags:
- Merchant-Wallet-Management
security:
- gateway:
- financial/commerce/checkout:merchant-wallet-management
- financial/commerce/nonprodcheckout:merchant-wallet-management
- financial/commerce/checkout:user
- financial/commerce/nonprodcheckout:user
summary: Find Payment Methods for customer
parameters:
- in: header
name: X-Merchant-Id
schema:
type: string
format: uuid
required: true
- in: header
description: Specify the env value, Only required for Non-Prod
name: X-Upstream-Env
schema:
type: string
format: string
enum:
- dev
- stage
- test
required: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentMethodSearchRequest'
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PaymentMethod'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Bad Request
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
/payment-methods/{payment-method-id}:
get:
tags:
- Merchant-Wallet-Management
security:
- gateway:
- financial/commerce/checkout:merchant-wallet-management
- financial/commerce/nonprodcheckout:merchant-wallet-management
- financial/commerce/checkout:user
- financial/commerce/nonprodcheckout:user
summary: Get details of Payment Method by payment-method-id
parameters:
- in: path
name: payment-method-id
schema:
type: string
format: uuid
required: true
- in: header
description: Specify the env value, Only required for Non-Prod
name: X-Upstream-Env
schema:
type: string
format: string
enum:
- dev
- stage
- test
required: true
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ApiResponsePaymentMethod'
description: OK
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
patch:
tags:
- Merchant-Wallet-Management
security:
- gateway:
- financial/commerce/checkout:merchant-wallet-management
- financial/commerce/nonprodcheckout:merchant-wallet-management
- financial/commerce/checkout:user
- financial/commerce/nonprodcheckout:user
summary: Update Payment Method by payment-method-id
parameters:
- in: path
name: payment-method-id
schema:
type: string
format: uuid
required: true
- in: header
description: Specify the env value, Only required for Non-Prod
name: X-Upstream-Env
schema:
type: string
format: string
enum:
- dev
- stage
- test
required: true
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WalletManagementPaymentMethodUpdateRequest'
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ApiResponsePaymentMethod'
description: OK
'202':
description: ACCEPTED
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponsePaymentMethod'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
delete:
tags:
- Merchant-Wallet-Management
security:
- gateway:
- financial/commerce/checkout:merchant-wallet-management
- financial/commerce/nonprodcheckout:merchant-wallet-management
- financial/commerce/checkout:user
- financial/commerce/nonprodcheckout:user
summary: Delete Payment Method by payment-method-id
parameters:
- in: path
name: payment-method-id
schema:
type: string
format: uuid
required: true
- in: header
description: Specify the env value, Only required for Non-Prod
name: X-Upstream-Env
schema:
type: string
format: string
enum:
- dev
- stage
- test
required: true
- in: header
name: Content-Type
schema:
type: string
enum:
- application/json
required: true
requestBody:
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/Agent'
responses:
'204':
description: Deleted successfully.
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
/refunds:
post:
tags:
- Merchant
summary: Create Refund
security:
- gateway:
- financial/commerce/checkout:merchant
- financial/commerce/nonprodcheckout:merchant
responses:
'202':
description: ACCEPTED
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceRefundResponse'
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Bad Request
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Internal Server Error
parameters:
- in: header
name: X-Merchant-Id
schema:
type: string
format: uuid
required: true
- in: header
description: Specify the env value, Only required for Non-Prod
name: X-Upstream-Env
schema:
type: string
format: string
enum:
- dev
- stage
- test
required: true
operationId: createRefund
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RefundRequest'
required: true
description: >-
Refund request can only processed either by paymentId or by
valid paymentMethodId associated with customer.
/refunds/{refund-id}:
get:
tags:
- Merchant
security:
- gateway:
- financial/commerce/checkout:merchant
- financial/commerce/nonprodcheckout:merchant
summary: Get Refund by RefundId
operationId: getRefund
parameters:
- name: X-Merchant-Id
in: header
required: true
schema:
type: string
format: uuid
- in: header
description: Specify the env value, Only required for Non-Prod
name: X-Upstream-Env
schema:
type: string
format: string
enum:
- dev
- stage
- test
required: true
- name: refund-id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/ResourceRefundResponse'
'202':
description: ACCEPTED
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceRefundResponse'
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Bad Request
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Internal Server Error
/token/setup-payment-methods:
post:
tags:
- Merchant - PCI
summary: Draft - Create Payment Method
security:
- gateway:
- financial/commerce/nonprodcheckout:merchant-pci
- financial/commerce/checkout:merchant-pci
parameters:
- in: header
name: X-Merchant-Id
schema:
type: string
format: uuid
required: true
- in: header
description: Specify the env value, Only required for Non-Prod
name: X-Upstream-Env
schema:
type: string
format: string
enum:
- dev
- stage
- test
required: true
operationId: setupPaymentMethod
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SetupPaymentMethodRequest'
required: true
responses:
'202':
description: ACCEPTED
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceSetupPaymentMethodResponse'
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Bad Request
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'406':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Not Acceptable
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Internal Server Error
/token/setup-payment-methods/{setupPaymentMethodId}:
get:
tags:
- Merchant - PCI
summary: Draft - Get Payment Method
security:
- gateway:
- financial/commerce/nonprodcheckout:merchant-pci
- financial/commerce/checkout:merchant-pci
parameters:
- in: header
name: X-Merchant-Id
schema:
type: string
format: uuid
required: true
- in: header
description: Specify the env value, Only required for Non-Prod
name: X-Upstream-Env
schema:
type: string
format: string
enum:
- dev
- stage
- test
required: true
responses:
'200':
description: ACCEPTED
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceSetupPaymentMethodResponse'
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Bad Request
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'406':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Not Acceptable
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Internal Server Error
/token/payments:
post:
tags:
- Merchant - PCI
summary: Draft - Create Payment
security:
- gateway:
- financial/commerce/nonprodcheckout:merchant-pci
- financial/commerce/checkout:merchant-pci
parameters:
- in: header
name: X-Merchant-Id
schema:
type: string
format: uuid
required: true
- in: header
description: Specify the env value, Only required for Non-Prod
name: X-Upstream-Env
schema:
type: string
format: string
enum:
- dev
- stage
- test
required: true
operationId: createPaymentWithToken
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TokenPaymentRequest'
required: true
responses:
'202':
description: ACCEPTED
content:
application/json:
schema:
$ref: '#/components/schemas/ResourcePaymentResponse'
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Bad Request
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorAuthorizationResource'
'406':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Not Acceptable
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResource'
description: Internal Server Error
x-slug: checkout
openapi: 3.0.1
servers:
- url: https://api-stg.uhg.com/api/financial/commerce/nonprodcheckout/v1
description: Stage CCG Api Server
- url: https://api.uhg.com/api/financial/commerce/checkout/v1
description: CCG Api Server
security:
- gateway:
- financial/commerce/checkout:all
- financial/commerce/nonprodcheckout:all
x-package:
package: financial
subpackage: commerce
components:
schemas:
ErrorAuthorizationResource:
type: object
properties:
message:
type: string
WalletManagementPaymentMethodUpdateRequest:
type: object
properties:
isDefault:
type: boolean
nickname:
type: string
maxLength: 30
description: >-
can only contain letters and numbers (cannot contain card number
applicable only for cards)
card:
type: object
deprecated: true
description: Deprecated in favour of paymentMethodDetails.
properties:
expiryYear:
type: integer
format: int32
description: expiry year cannot be past and cannot be greater than 50yrs
expiryMonth:
type: integer
format: int32
nameOnCard:
type: string
description: cannot contain card number
required: true
zipCode:
type: string
description: allowed only 5 digits
pattern: ^\d{5}$
example: '99950'
manufacturerCard:
description: >-
Only Agents can flag certain cards as manufacturer cards. Cards
flagged as manufacturer cards cannot be default card.
type: boolean
agent:
$ref: '#/components/schemas/Agent'
paymentMethodDetails:
oneOf:
- $ref: '#/components/schemas/UpdateCard'
- $ref: '#/components/schemas/UpdateUSBankAccountDetails'
ErrorResponse:
type: object
properties:
error:
type: string
status:
type: integer
format: int32
ApiResponsePaymentMethod:
type: object
properties:
url:
type: string
data:
$ref: '#/components/schemas/PaymentMethod'
Card:
type: object
properties:
type:
type: string
enum:
- CARD
last4:
type: string
status:
enum:
- ACTIVE
- EXPIRED
type: string
readOnly: true
cardBrand:
enum:
- VISA
- AMEX
- DINERS
- DISCOVER
- JCB
- MASTERCARD
- UNIONPAY
- UNKNOWN
type: string
expiryYear:
type: integer
format: int64
description: expiry year cannot be past and cannot be greater than 50yrs
nameOnCard:
type: string
description: cannot contain card number
required: true
expiryMonth:
type: integer
format: int64
zipCode:
type: string
description: allowed only 5 digits
pattern: ^\d{5}$
example: '99950'
manufacturerCard:
type: boolean
DeprecatedCard:
deprecated: true
description: Deprecated in favour of paymentMethodDetails.
type: object
displayName: false
properties:
type:
type: string
enum:
- CARD
last4:
type: string
status:
enum:
- ACTIVE
- EXPIRED
type: string
readOnly: true
cardBrand:
enum:
- VISA
- AMEX
- DINERS
- DISCOVER
- JCB
- MASTERCARD
- UNIONPAY
- UNKNOWN
type: string
expiryYear:
type: integer
format: int64
description: expiry year cannot be past and cannot be greater than 50yrs
nameOnCard:
type: string
expiryMonth:
type: integer
format: int64
zipCode:
type: string
description: allowed only 5 digits
pattern: ^\d{5}$
example: '99950'
manufacturerCard:
type: boolean
UpdateCard:
type: object
properties:
type:
type: string
enum:
- CARD
last4:
type: string
status:
enum:
- ACTIVE
- EXPIRED
type: string
readOnly: true
cardBrand:
enum:
- VISA
- AMEX
- DINERS
- DISCOVER
- JCB
- MASTERCARD
- UNIONPAY
- UNKNOWN
type: string
expiryYear:
type: integer
format: int64
description: expiry year cannot be past and cannot be greater than 50yrs
nameOnCard:
type: string
description: cannot contain card number
required: true
expiryMonth:
type: integer
format: int64
zipCode:
type: string
description: allowed only 5 digits
pattern: ^\d{5}$
example: '99950'
manufacturerCard:
type: boolean
ErrorResource:
type: object
properties:
title:
type: string
detail:
type: string
status:
type: integer
format: int32
ErrorResourceWithErrorDetails:
type: object
properties:
title:
type: string
detail:
type: string
status:
type: integer
format: int32
errorDetails:
$ref: '#/components/schemas/ErrorDetails'
ErrorDetails:
type: object
properties:
code:
type: string
message:
type: string
declineCode:
type: string
networkDeclineCode:
type: string
networkAdviceCode:
type: string
PaymentMethod:
type: object
properties:
id:
type: string
format: uuid
card:
$ref: '#/components/schemas/DeprecatedCard'
default:
type: boolean
paymentMethodType:
enum:
- CARD
- BANK_ACCOUNT
type: string
nickname:
type: string
maxLength: 30
description: >-
can only contain letters and numbers (cannot contain card number
applicable only for cards)
paymentMethodDetails:
oneOf:
- $ref: '#/components/schemas/Card'
- $ref: '#/components/schemas/USBankAccountDetails'
AbstractPaymentMethodDetails:
type: object
properties:
type:
type: string
discriminator:
propertyName: type
USBankAccountDetails:
type: object
allOf:
- $ref: '#/components/schemas/AbstractPaymentMethodDetails'
- type: object
properties:
type:
type: string
enum:
- BANK_ACCOUNT
accountHolderType:
type: string
accountType:
type: string
status:
enum:
- ACTIVE
- INVALIDATED
type: string
readOnly: true
bankName:
type: string
last4:
type: string
routingNumber:
type: string
nameOnAccount:
type: string
UpdateUSBankAccountDetails:
type: object
allOf:
- $ref: '#/components/schemas/AbstractPaymentMethodDetails'
- type: object
properties:
type:
type: string
enum:
- BANK_ACCOUNT
nameOnAccount:
type: string
accountType:
type: string
enum:
- checking
- savings
PaymentRequest:
type: object
required:
- amount
- paymentMethodId
- merchantTransactionId
properties:
amount:
type: integer
format: int64
description: Amount in Cents (United States)
minimum: 1
maximum: 100000000
customer:
$ref: '#/components/schemas/Customer'
paymentDetails:
$ref: '#/components/schemas/IIASPaymentDetails'
metadata:
type: object
additionalProperties:
type: string
description: >-
Payment metadata key value pairs. Example - Order Id, Invoice date
etc. Max 20 metadata entries. Max key length is 40. Max value length
is 100.
paymentType:
type: string
deprecated: true
enum:
- SALE
- PRE_AUTH
authorizeCard:
description: >-
When authorizeCard is set as true, the credit card will be
authorized for the amount supplied. Later we need to call the
Capture API to complete the transaction. The authorization is valid
only for 7 days. Applicable payment method types = [CARD]
type: boolean
default: false
partialAuthorization:
description: >-
When true, card issuers will consider the payment for partial
authorization. This flag shall be provided in combination with
authorizeCard flag. Applicable payment method types = [CARD]
type: boolean
default: false
paymentMethodId:
type: string
format: uuid
description: >-
Payment method Id of the saved card/bankAccount. To get the payment
method Id refer [/payment-methods/search
API](/api-reference/#tag/Merchant-Wallet-Management/paths/~1payment-methods~1search/post).
paymentDescription:
type: string
maxLength: 100
description: >-
Payment description that will be useful for user to identify the
payment.
merchantTransactionId:
description: >-
Unique identifier that can be used to track this transaction. This
identifier will make sure that there wont be any duplicate
transaction.
type: string
maxLength: 50
statementDescriptorSuffix:
type: string
description: >-
Must contain a letter. Learn more about statement descriptors in
[docs]( /docs/developers/API-Terminology/#statement-descriptors ).
maxLength: 10
pattern: ^(?=.*[a-zA-Z])[a-zA-Z0-9 \-.]{0,10}$
agent:
$ref: '#/components/schemas/Agent'
consent:
$ref: '#/components/schemas/Consent'
authRequired:
type: boolean
PaymentResponse:
type: object
properties:
id:
type: string
format: uuid
amount:
description: Amount requested for payment
type: integer
format: int64
authorizedAmount:
description: >-
Maximum amount approved for capture; Starting R27, pre-authorization
and partial-authorization, should infer this field to consider
authorized amount; Prior to R27, infer `amount` field;
type: integer
format: int64
capturedAmount:
description: >-
Amount immediately settled (or) successfully captured; All payments
(sale, pre-authorization, partial-authorization) should infer this
field for the final settled or captured amount;
type: integer
format: int64
description:
type: string
merchantTransactionId:
description: >-
Unique identifier that can be used to track this transaction. This
identifier will make sure that there wont be any duplicate
transaction.
type: string
maxLength: 50
merchantId:
type: string
format: uuid
paymentType:
type: string
deprecated: true
enum:
- SALE
- PRE_AUTH
authorizeCard:
type: boolean
default: false
partialAuthorization:
description: >-
When true, indicates the payment could have been partially
authorized based on the card issuer and the maximum amount available
for capture can be referred from `authorizedAmount` field.
type: boolean
default: false
currencyCode:
type: string
customerId:
type: string
format: UUID
status:
description: >-
The status of the payment. Note that INITIATED, PROCESSING,
PENDING_FOR_CUSTOMER_CREATION, and
PENDING_FOR_PAYMENT_METHOD_CREATION are deprecated and will be
removed in future versions. Please use PENDING for all cases that
previously used these statuses.
type: string
enum:
- PENDING
- INITIATED
- PROCESSING
- PENDING_FOR_CUSTOMER_CREATION
- PENDING_FOR_PAYMENT_METHOD_CREATION
- CANCEL_FAILED
- PAYMENT_METHOD_FAILED
- CAPTURE_INITIALIZED
- CANCEL_INITIALIZED
- CONFIRMATION_INITIALIZED
- AUTH_REQUIRED
- CONFIRMATION_REQUIRED
- ACCEPTED
- AUTHORIZED
- COMPLETED
- CANCELED
- FAILED
vendor:
type: string
enum:
- STRIPE
vendorPaymentId:
type: string
vendorPaymentSecret:
type: string
vendorMerchantId:
type: string
statementDescriptorSuffix:
type: string
paymentMethodId:
type: string
format: uuid
paymentMethodType:
type: string
enum:
- CARD
- CARD_PRESENT
- UNKNOWN
- BANK_ACCOUNT
checkoutId:
type: string
format: uuid
metadata:
type: object
additionalProperties:
type: string
customer:
$ref: '#/components/schemas/Customer'
paymentCancellationReason:
enum:
- DUPLICATE
- FRAUDULENT
- REQUESTED_BY_CUSTOMER
- ABANDONED
type: string
paymentCancellationMessage:
type: string
error:
$ref: '#/components/schemas/ErrorResponse'
paymentDetails:
$ref: '#/components/schemas/IIASPaymentDetails'
consent:
$ref: '#/components/schemas/Consent'
paymentMethod:
$ref: '#/components/schemas/PaymentMethod'
ResourcePaymentResponse:
type: object
properties:
url:
type: string
data:
$ref: '#/components/schemas/PaymentResponse'
SessionResponse:
type: object
properties:
url:
type: string
data:
$ref: '#/components/schemas/SessionData'
error:
type: string
SessionData:
properties:
sessionId:
type: string
description: Session Id that can be used to load the Convenient Checkout Widget
format: uuid
hostedUrl:
type: string
PaymentDetail:
type: object
description: payment details
properties:
merchantTransactionId:
description: >-
Unique identifier that can be used to track this transaction. This
identifier will make sure that there wont be any duplicate
transaction.
type: string
maxLength: 50
amount:
description: Amount in Cents (United States)
minimum: 1
maximum: 100000000
type: integer
format: int64
paymentDetails:
$ref: '#/components/schemas/IIASPaymentDetails'
authorizeCard:
description: >-
When authorizeCard is set as true, the credit card will be
authorized for the amount supplied. Later we need to call the
Capture API to complete the transaction. The authorization is valid
only for 7 days.
type: boolean
default: false
partialAuthorization:
description: >-
When true, card issuers will consider the payment for partial
authorization. This flag shall be provided in combination with
authorizeCard flag. Applicable payment method types = [CARD]
type: boolean
default: false
statementDescriptorSuffix:
type: string
description: >-
Must contain a letter. Learn more about statement descriptors in
[docs]( /docs/developers/API-Terminology/#statement-descriptors ).
maxLength: 10
pattern: ^(?=.*[a-zA-Z])[a-zA-Z0-9 \-.]{0,10}$
paymentDescription:
type: string
maxLength: 100
description: >-
Payment description that will be useful for user to identify the
payment.
metadata:
type: object
description: >-
Payment metadata key value pairs. Example - Order Id, Invoice date
etc. Max 20 metadata entries. Max key length is 40. Max value length
is 100.
additionalProperties:
type: string
Customer:
type: object
description: customer details
properties:
name:
type: string
deprecated: true
firstName:
type: string
lastName:
type: string
email:
type: string
format: email
ssnLastFour:
type: string
phoneNumber:
$ref: '#/components/schemas/PhoneNumber'
dateOfBirth:
type: string
format: date
example: '2000-12-30'
zip5:
type: string
pattern: ^\d{5}$
example: '99950'
hsid:
type: string
format: uuid
description: >-
HealthSafeId of the customer. [More
info](https://console.hcp.uhg.com/api-catalog/apis/uhgrg-69c07db0-9b7b-4c81-9f50-580d26097a78-ns%2Fstargate.api.v1%2Findividuals-iqdh#tag/hs-id)
enterpriseId:
type: string
description: >-
EnterpriseId of the customer. [More
info](https://console.hcp.uhg.com/api-catalog/apis/uhgrg-69c07db0-9b7b-4c81-9f50-580d26097a78-ns%2Fstargate.api.v1%2Findividuals-iqdh#tag/enterprise-id)
metadata:
description: >-
Merchant specific customer identifiers as key value pairs. These
could be internal customer ids. Example MemberId, CustomerId etc.
Max 20 metadata entries. Max key length is 40. Max value length is
100.
type: object
additionalProperties:
type: string
SessionPaymentMethod:
type: object
properties:
id:
type: string
format: uuid
description: >-
Payment method Id of the card/bankAccount we want to retrieved. This
field should not be empty if mode is *__PAYMENT_METHOD_DISPLAY__*.
To get the payment method Id refer [/payment-methods/search
API](/api-reference/#tag/Merchant-Wallet-Management/paths/~1payment-methods~1search/post).
Appearance:
type: object
description: >-
Custom Styling [More
info](/docs/developers/convenient-checkout-ui/Theming-and-Styling)
properties:
font:
$ref: '#/components/schemas/FontDetails'
palette:
$ref: '#/components/schemas/PaletteDetails'
visibility:
$ref: '#/components/schemas/Visibility'
border:
$ref: '#/components/schemas/Border'
height:
$ref: '#/components/schemas/Height'
merchantLogo:
$ref: '#/components/schemas/MerchantLogo'
FontDetails:
type: object
description: Font config
properties:
fontFamily:
type: string
example: Dosis, 'Optum Sans'
description: >-
Prioritized list of one or more custom and fallback font family
names. This field is `required` when `fontSources` is provided
fontSources:
type: array
items:
$ref: '#/components/schemas/FontSources'
FontSources:
type: object
description: Specifies a custom font that can be loaded from remote server.
properties:
cssSrc:
type: string
description: >-
Link to custom font. Supports only [google
font](https://fonts.google.com/)
example: >-
https://fonts.googleapis.com/css2?family=Dosis:wght@300;700&display=swap
src:
type: string
description: Link to merchant owned custom font
example: >-
url('https://walletprod.healthsafepay.com/wallet/assets/fonts/OptumSans-Regular.woff2')
family:
type: string
description: >-
Specifies a name that will be used as the font face value for font
referenced in `appearance.font.fontSources.src`.
example: Optum Sans
style:
type: string
description: >-
font style that will tied to the font face value referenced in
`appearance.font.fontSources.src`
enum:
- normal
- italic
- oblique
weight:
description: >-
font weight that will tied to the font face value referenced in
`appearance.font.fontSources.src`
type: string
enum:
- 100
- 200
- 300
- 400
- 500
- 600
- 700
- 800
- 900
example: '400'
PaletteDetails:
type: object
description: Color details for the UI elements
properties:
primary:
$ref: '#/components/schemas/PaletteConfig'
secondary:
$ref: '#/components/schemas/PaletteConfig'
PaletteConfig:
type: object
properties:
main:
description: Default - Background color of the element
type: string
example: '#110022'
light:
description: Light Theme - Background color of the element
type: string
example: '#808080'
dark:
description: Dark Theme - Background color of the element
type: string
example: '#4f1919'
contrastText:
description: Text Color of the element
type: string
example: '#ff0022'
Visibility:
type: object
properties:
headerLogo:
description: >-
If `headerLogo` is false then the logo will be hidden in the header.
**Note: If all header elements are hidden then the header will be
hidden as well.** `header element`
type: boolean
default: true
Border:
type: object
properties:
alertBoxBorderRadius:
description: >-
Should the alertBoxBorderRadius parameter be assigned a custom value
(e.g., 8px), this will be utilized as the border-radius for the
Alert Notification container. Default `border-radius` of alert
notification container is set at 12px.
type: string
buttonBorderRadius:
description: >-
Should the buttonBorderRadius parameter be assigned a custom value
(e.g., 10px), this will be utilized as the border-radius for the
GooglePay/ApplePay buttons. Default `border-radius` of
GooglePay/ApplePay buttons is set at 8px.
type: string
Height:
type: object
properties:
button:
description: >-
Should the button parameter be assigned a custom value (e.g., 50),
this will be utilized as the height for the GooglePay/ApplePay
buttons. Default `height` of GooglePay/ApplePay buttons is set at
48. The allowed range is from 40 to 55, if outside this range
session creation will fail.
type: integer
minimum: 40
maximum: 55
MerchantLogo:
type: string
description: URL pointing to the logo to be displayed in the email templates
example: >-
https://www.optum.com/content/dam/optum4/images/logos/optum-logo-ora-rgb1.svg
SessionConfig:
type: object
properties:
modes:
type: array
items:
enum:
- PAYMENT
- PAYMENT_WITH_WALLET
- PAYMENT_METHOD_ENTRY
- WALLET
- PAYMENT_METHOD_SELECT
- PAYMENT_METHOD_DISPLAY
description: >
*Defaults to __PAYMENT__ for guest* \
*Defaults to __PAYMENT_WITH_WALLET__ for customer* \
The supported modes are explained here [Widget
Capabilities](https://docs.healthsafepay.com/docs/developers/convenient-checkout-ui/widget-capabilities/)
paymentMethodChannel:
$ref: '#/components/schemas/PaymentMethodChannel'
privacyPolicyUrl:
type: string
description: Privacy Policy URL
senderEmailAddress:
type: string
description: >-
used for populating email's `from` field when sending email;
Validated against merchant configured SenderEmailAddresses, failing
which, defaults to no-reply@ccg.optum.com
options:
type: object
description: options
properties:
saveDisabled:
description: >
if saveDisabled is true, this will hide save payment check box
from Widget.
Not supported Modes are below
| Mode | saveDisabled | ResponseCode |
| --------------------- |--------------|--------------|
| `PAYMENT_WITH_WALLET` | true | 400 |
| `PAYMENT_METHOD_ENTRY` | true | 400 |
| `PAYMENT_METHOD_DISPLAY` | true | 400 |
| `PAYMENT_METHOD_SELECT` | true | 400 |
| `WALLET` | true | 400 |
type: boolean
default: false
preferredLanguage:
items:
enum:
- en
- es
description: >
This field is optional and will automatically default to English
("*__en__*") if left null, blank, or if any languages other than
"*__en__*" or "*__es__*" are specified in the request.
Supported Languages are below
| Code | Language |
| ------|----------|
| `en` | ENGLISH |
| `es` | SPANISH |
type: string
default: en
PaymentMethodChannel:
type: object
properties:
card:
type: array
items:
enum:
- TERMINAL
- TEXT
- EMAIL
- WEBFORM
- GOOGLE_PAY
- APPLE_PAY
- TELEPHONIC_ENTRY
bankAccount:
type: array
items:
enum:
- TERMINAL
- TEXT
- EMAIL
- WEBFORM
PaymentMethodSearchRequest:
type: object
properties:
customer:
$ref: '#/components/schemas/Customer'
SessionRequest:
type: object
properties:
payment:
$ref: '#/components/schemas/PaymentDetail'
customer:
$ref: '#/components/schemas/Customer'
appearance:
$ref: '#/components/schemas/Appearance'
config:
$ref: '#/components/schemas/SessionConfig'
agent:
$ref: '#/components/schemas/Agent'
consent:
$ref: '#/components/schemas/Consent'
paymentMethod:
$ref: '#/components/schemas/SessionPaymentMethod'
CaptureRequest:
type: object
properties:
amount:
type: integer
description: >-
Amount in Cents (United States). Max Capture amount is limited by
the original authorized amount. If no amount is specified, it
attempts to capture the full authorized amount
minimum: 1
maximum: 100000000
format: int64
metadata:
type: object
description: >-
Additional payment metadata. This metadata will be merged with the
original payment metadata used for authorizing this payment. Max 20
metadata entries. Max key length is 40. Max value length is 100.
additionalProperties:
type: string
CancelRequest:
type: object
required:
- paymentCancellationReason
properties:
paymentCancellationReason:
enum:
- DUPLICATE
- FRAUDULENT
- REQUESTED_BY_CUSTOMER
- ABANDONED
type: string
description: Payment Cancellation Reason
paymentCancellationMessage:
type: string
PhoneNumber:
type: object
required:
- countryCode
- number
properties:
countryCode:
type: string
pattern: \d{1-3}
number:
type: string
pattern: \d{4-11}
ConsentPhoneNumber:
type: object
properties:
countryCode:
type: string
pattern: \d{1-3}
number:
type: string
pattern: \d{4-11}
RefundRequest:
required:
- merchantTransactionId
type: object
properties:
paymentId:
type: string
format: uuid
description: paymentId of the payment that needs refund
paymentMethodId:
type: string
format: uuid
description: >-
paymentMethodId that receives the refund. This is not applicable
when paymentId is specified.
amount:
type: integer
description: >-
Amount in Cents (United States) and required when paymentMethodId is
present. For refund associated with payments, if amount not provided
full amount will be refunded.
minimum: 1
maximum: 100000000
format: int64
reason:
type: string
enum:
- REQUESTED_BY_CUSTOMER
- DUPLICATE
- FRAUDULENT
merchantTransactionId:
maxLength: 50
minLength: 0
type: string
metadata:
type: object
description: >-
Additional payment metadata. Max 20 metadata entries. Max key length
is 40. Max value length is 100.
additionalProperties:
type: string
customer:
$ref: '#/components/schemas/Customer'
agent:
$ref: '#/components/schemas/Agent'
RefundResponse:
type: object
properties:
id:
type: string
format: uuid
paymentId:
type: string
format: uuid
paymentMethodId:
type: string
format: uuid
merchantId:
type: string
format: uuid
amount:
type: integer
format: int64
reason:
type: string
enum:
- REQUESTED_BY_CUSTOMER
- DUPLICATE
- FRAUDULENT
merchantTransactionId:
type: string
maxLength: 50
description: >-
Unique identifier that can be used to track this transaction. This
identifier will make sure that there wont be any duplicate
transaction.
metadata:
type: object
additionalProperties:
type: string
description: >-
Refund metadata key value pairs. Example - Order Id, Invoice date
etc. Max 20 metadata entries. Max key length is 40. Max value length
is 100.
status:
type: string
enum:
- INITIATED
- COMPLETED
- FAILED
error:
$ref: '#/components/schemas/ErrorResponse'
ResourceRefundResponse:
type: object
properties:
data:
$ref: '#/components/schemas/RefundResponse'
ResourceMerchantSessionResponse:
type: object
properties:
sessionId:
type: string
format: uuid
data:
$ref: '#/components/schemas/MerchantSessionResponse'
MerchantSessionResponse:
type: object
properties:
paymentMethodResponse:
$ref: '#/components/schemas/PaymentMethod'
payment:
$ref: '#/components/schemas/PaymentResponse'
agent:
$ref: '#/components/schemas/Agent'
status:
type: string
enum:
- INITIATED
- COMPLETED
- FAILED
SetupPaymentMethodRequest:
type: object
properties:
requestId:
type: string
format: uuid
customer:
$ref: '#/components/schemas/Customer'
paymentMethod:
$ref: '#/components/schemas/SavePaymentMethodToken'
SavePaymentMethodToken:
type: object
properties:
type:
type: string
deprecated: true
enum:
- CARD
vendorPaymentMethodId:
type: string
vendor:
type: string
enum:
- STRIPE
default:
type: boolean
description: is applicable only when savePaymentMethod is true.
card:
type: object
deprecated: true
description: Deprecated in favour of paymentMethodDetails.
properties:
nameOnCard:
type: string
description: cannot contain card number
required: true
paymentMethodDetails:
oneOf:
- $ref: '#/components/schemas/PCICard'
- $ref: '#/components/schemas/USBankAccountDTO'
PCICard:
type: object
allOf:
- $ref: '#/components/schemas/BasePCIPaymentMethodDetailsDTO'
- type: object
properties:
type:
type: string
enum:
- CARD
nameOnCard:
type: string
description: cannot contain card number
required: true
BasePCIPaymentMethodDetailsDTO:
type: object
discriminator:
propertyName: type
USBankAccountDTO:
required:
- accountNumber
- accountType
- nameOnAccount
- routingNumber
type: object
properties:
type:
type: string
enum:
- BANK_ACCOUNT
allOf:
- $ref: '#/components/schemas/BasePCIPaymentMethodDetailsDTO'
- type: object
properties:
routingNumber:
pattern: '[\d]{9}'
type: string
accountNumber:
maxLength: 17
minLength: 0
pattern: ^[0-9]*$
type: string
accountType:
pattern: checking|savings
type: string
nameOnAccount:
type: string
PaymentMethodToken:
type: object
properties:
type:
type: string
deprecated: true
enum:
- CARD
vendorPaymentMethodId:
type: string
vendor:
type: string
enum:
- STRIPE
savePaymentMethod:
type: boolean
description: >-
when true(PayAndStore), the payment method will be saved upon
successful completion of the payment. If set to false(OneTimePay),
the payment method will not be saved. The default value is false.
default:
type: boolean
description: >-
when true, this sets the paymentMethod as the default in the wallet,
unsetting any previous default. The default value is false;
applicable only when savePaymentMethod is set to true.
nickname:
type: string
maxLength: 30
description: >-
can only contain letters and numbers (cannot contain card number
applicable only for cards)
nameOnCard:
type: string
description: cannot contain card number
required: true
paymentMethodDetails:
oneOf:
- $ref: '#/components/schemas/PCICard'
- $ref: '#/components/schemas/USBankAccountDTO'
SetupPaymentMethodResponse:
type: object
properties:
id:
type: string
format: uuid
paymentMethod:
$ref: '#/components/schemas/PaymentMethod'
status:
type: string
enum:
- INITIALIZED
- COMPLETED
- FAILED
ResourcePostSetupPaymentMethodResponse:
type: object
properties:
data:
$ref: '#/components/schemas/PostSetupPaymentMethodResponse'
warning:
$ref: '#/components/schemas/Warning'
Warning:
type: object
properties:
code:
description: Error Message Code
type: string
enum:
- DUPLICATE_ENTRY
- PAYMENT_METHOD_ERROR
title:
description: Error Message Title ex "Payment method already exists"
type: string
description:
description: Error Description for the action
type: string
PostSetupPaymentMethodResponse:
type: object
properties:
id:
type: string
format: uuid
paymentMethod:
$ref: '#/components/schemas/PaymentMethod'
status:
type: string
enum:
- INITIALIZED
- COMPLETED
- FAILED
ResourceSetupPaymentMethodResponse:
type: object
properties:
url:
type: string
data:
$ref: '#/components/schemas/SetupPaymentMethodResponse'
warning:
$ref: '#/components/schemas/Warning'
TokenPaymentRequest:
type: object
required:
- amount
- merchantTransactionId
properties:
amount:
type: integer
format: int64
description: Amount in Cents (United States)
minimum: 1
maximum: 100000000
customer:
$ref: '#/components/schemas/Customer'
paymentDetails:
$ref: '#/components/schemas/IIASPaymentDetails'
paymentMethod:
$ref: '#/components/schemas/PaymentMethodToken'
metadata:
type: object
additionalProperties:
type: string
description: >-
Payment metadata key value pairs. Example - Order Id, Invoice date
etc. Max 20 metadata entries. Max key length is 40. Max value length
is 100.
paymentType:
type: string
deprecated: true
enum:
- SALE
- PRE_AUTH
authorizeCard:
description: >-
When authorizeCard is set as true, the credit card will be
authorized for the amount supplied. Later we need to call the
Capture API to complete the transaction. The authorization is valid
only for 7 days.
type: boolean
default: false
partialAuthorization:
description: >-
When true, card issuers will consider the payment for partial
authorization. This flag shall be provided in combination with
authorizeCard flag. Applicable payment method types = [CARD]
type: boolean
default: false
paymentMethodId:
type: string
format: uuid
description: >-
Payment method Id of the saved card/bankAccount. To get the payment
method Id refer [/payment-methods/search
API](/api-reference/#tag/Merchant-Wallet-Management/paths/~1payment-methods~1search/post).
paymentDescription:
type: string
maxLength: 100
description: >-
Payment description that will be useful for user to identify the
payment.
merchantTransactionId:
description: >-
Unique identifier that can be used to track this transaction. This
identifier will make sure that there wont be any duplicate
transaction.
type: string
maxLength: 50
statementDescriptorSuffix:
type: string
description: >-
Must contain a letter. Learn more about statement descriptors in
[docs]( /docs/developers/API-Terminology/#statement-descriptors ).
maxLength: 10
pattern: ^(?=.*[a-zA-Z])[a-zA-Z0-9 \-.]{0,10}$
agent:
$ref: '#/components/schemas/Agent'
consent:
$ref: '#/components/schemas/Consent'
IIASPaymentDetails:
type: object
properties:
healthcare:
$ref: '#/components/schemas/HealthCare'
HealthCare:
type: object
properties:
iias:
$ref: '#/components/schemas/IIAS'
visionAmount:
type: integer
IIAS:
type: object
properties:
qualifiedAmount:
type: integer
qualifiedAmountDetails:
$ref: '#/components/schemas/QualifiedAmountDetail'
QualifiedAmountDetail:
type: object
properties:
prescriptionAmount:
type: integer
Agent:
type: object
properties:
firstName:
description: first name of the agent. This field is required for Agent flow.
type: string
maxLength: 50
lastName:
description: last name of the agent. This field is required for Agent flow.
type: string
maxLength: 50
userId:
description: msid of the agent. This field is required for Agent flow.
type: string
maxLength: 50
isAccessVerified:
description: >-
when merchant verifies access for the agent to allow entry of 16
digit card number, this can be set to true.
type: boolean
Consent:
type: object
properties:
merchantConsentId:
type: string
description: Consent id of the consent collected by the merchant.
merchantConsentText:
type: string
description: Consent text to display to the user or agent.
collectionTimestamp:
type: string
description: >-
Formatted date-time following ISO_DATE_TIME
yyyy-MM-dd'T'HH:mm:ss.SSSXXX, e.g. 2023-11-03T10:15:30.100+01:00
collectionDetails:
$ref: '#/components/schemas/CollectionDetails'
CollectionDetails:
type: object
properties:
type:
$ref: '#/components/schemas/ConsentCollectionType'
web:
$ref: '#/components/schemas/ConsentCollectionWeb'
tel:
$ref: '#/components/schemas/ConsentCollectionTel'
ConsentCollectionType:
enum:
- WEB
- TEL
- PPD
type: string
ConsentCollectionWeb:
type: object
properties:
ipAddress:
type: string
userAgent:
type: string
description: Browser User-Agent
ConsentCollectionTel:
type: object
properties:
inboundPhoneNumber:
$ref: '#/components/schemas/ConsentPhoneNumber'
securitySchemes:
gateway:
type: oauth2
flows:
clientCredentials:
scopes:
https://api.uhg.com/.default: Default scope assigned to all clients
financial/commerce/checkout:all: (Production) Full scope
financial/commerce/checkout:merchant: (Production) Merchant scope
financial/commerce/checkout:merchant-wallet-management: (Production) Merchant wallet management scope
financial/commerce/checkout:merchant-pci: (Production) Merchant PCI scope
financial/commerce/nonprodcheckout:all: (Non prod) Full scope
financial/commerce/nonprodcheckout:merchant: (Non prod) Merchant scope
financial/commerce/nonprodcheckout:merchant-wallet-management: (Non prod) Merchant wallet management scope
financial/commerce/nonprodcheckout:merchant-pci: (Non prod) Merchant PCI scope
tokenUrl: https://api.uhg.com/oauth2/token
x-instances:
- env: prod
path: /
probe:
path: /
method: GET
backends:
- host: api.healthsafepay.com
port: 443
weight: 100
location: azure-centralus
protocol: https
timeouts:
read: 1000
connect: 500
x-catalogEnabled: false
x-serviceLevelObjectives:
x-throughput: '10'
x-availability: '99.99'
x-responseTime: '1000'
x-maxMsgsPerHour: '500'
x-maxPayloadSize: '10'
x-expectedMsgsPerDay: '10000'