Paze Merchant Business to Business API Technical Requirements

Introduction

The Paze service offers Merchants a simple and convenient way for their consumers to easily provide them withcheckout information. A Consumer’s Paze wallet contains their credit and debit card information from participating Issuers as well as contact information and address information that can be used for shipping.

The Paze Merchant Business to Business (B2B) APIs Technical Requirements provides information about application programming interfaces (APIs) intended to retrieve a payload that had not been retrieved during the original Paze processing using the Merchant JavaScript SDK. This API may be used by the Merchant or an entity acting on their behalf, such as a payment service provider.

OAuth Authentication

Paze uses OAuth Authentication to secure the link between businesses and Early Warning. This is a standard enterpriseservice for B2B communications. Details, including relevant URLs, are available in the guide referenced below.

The Paze server URL is b2b.wallet.earlywarning.com. For details, refer to the Paze Platform API OAuth Access User Guide**[JR1]**  available on Venue.

Detail Tables – Column Definitions

The following sections contain tables of fields with one or more of the columns described below.

Table 1. Detail Table Column Definitions

Column NameColumn Description
Seq. #Position of the field in the code
Field NameName of field
Field TypeField data type
Field UsageHow the field is used:•     Required – Must be provided•     Optional – Can be provided when available and/or applicable•     Conditional – Must be provided if other fields are populated
DescriptionField description

Authentication Endpoints

Paze authentication certificates are hosted at the following URLs.

Table 2. Authentication Endpoints

Retrieve Public Keys API

This API retrieves cryptographic public keys from a well-known URL hosted by Paze. The keys retrieved are used by Participants for:

  • JWS signature verification in checkoutResponse
  • Encrypted payment card and Consumer details presented during enrollment

Retrieve Public Keys Request

Endpoint/Method

Path/jwks
MethodGET

Query Parameter

Table 3. Retrieve Public Keys Request Parameter

FieldNameFieldTypeFieldUsageDescription/Expected Values
idStringRequiredIdentifier generated by Paze and shared with Merchant during onboardingFormat: Universally Unique Identifier (UUID)

Request Headers

Table 4. Retrieve Public Keys Request Headers

Field NameDescription
Authorization(Required) Base64 encoded username and password.
Content-Typeapplication/json
Acceptapplication/json

Request Body

None

Retrieve Public Keys Response

Response Body

Table 5. Retrieve Public Keys Response Body

FieldNameFieldTypeDescription
keysStringPublic key certificatesFormat: Array of JsonWebKey structures

JsonWebKey Structures

The JsonWebKey structure provides additional information when returned:

Table 6. JsonWebKeys Fields

Seq. #Field NameField TypeDescription
1ktyStringKey Type Parameter Format:Alphanumeric
2useStringKey usage Valid values:•     sig•     enc
3keyOpsStringKey operation Valid values:•     verify•     encrypt
4kidStringKey ID (kid) parameter is used to match a specific key Format:Alphanumeric
5algStringAlgorithm to use with the key Format:Alphanumeric
6x5cStringX.509 certificate chain (x5c) parameter contains a chain of one or more PKIX certificates [RFC5280]. The certificate chain is represented as a JSON array ofcertificate value strings. Each string in the array is a base64-encoded (Section 4 of [RFC4648], not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value. The PKIX certificate containing the key value MUST be the first certificate.Format: Alphanumeric

Retrieve Public Keys Response Codes

Table 7. Retrieve Public Keys Response Codes

HTTP Status CodeDescription
200Success
403Access is forbidden
500Internal server error, failed to build response; see error object for details.

Retrieve Public Keys Examples

Request

GET {host}/jwks

Response

{

"keys": [{

"typ": "string",

"use": "sig",

"alg": "string",

"kid": "string",

"x5c": "string"

}]

}

Get Payload API

This API enables the Merchant to retrieve payload data from Paze. Call this API to retrieve information required to process the Payment Transaction.

Get Payload Request

Endpoint/Method

Path/getPayload
MethodGET

Query Parameters

Table 8. Get Payload Request Query Parameters

Seq.#Field NameFieldTypeFieldUsageDescription
1idStringRequir edIdentifier generated by Paze and shared with the Merchant during onboarding
2payloadIdStringRequir edUnique identifier generated by Paze to track and link transaction-specific messagesThis identifier was provided in the Completeresponse of the Merchant JavaScript SDKFormat: String; 64 bytes
3processingNetwo rkEnumOption alPayment Network selected to process the transactionIf not provided, will default to card network on front of card.

Request Headers

Table 9. Get Payload Request Headers

FieldDescription
AuthorizationBearer access_token
Content-Typeapplication/json
Acceptapplication/json

Request Body

None

| |

| --- |
| | |

Get Payload Response

Response Body

Table 10. Get Payload Response Body

Seq. #Field NameField TypeField UsageDescription
1payloadIdStringRequiredUnique identifier generated by Paze to track and link transaction-specific messagesThis identifier was provided in the Complete response of the Merchant JavaScript SDK
2sessionIdStringConditionalMerchant-specific field that, if passed in as a query parameter, will be returned in the responseCondition: Returned if sessionId was passed in by the Merchant with the request to transact (Merchant JavaScript SDK Complete API).
4securedPayl oadJWE<JWS>RequiredInformation necessary to process Payment TransactionSee Secured Payload for a list of encrypted signed payload data elements.

Get Payload Response Codes

Table 11. Get Payload Response Codes

HTTP Status CodeDescription
200Success
403Access is forbidden
500Internal server error, failed to build response

4.   Types

Address Data Elements

The following structure details the Address object.

Table 12. Address Data Elements

Field NameField TypeField UsageDescription
nameStringOptionalName of the Consumer at the address
line1StringOptionalLine 1 of the address
line2StringOptionalLine 2 of the address
line3StringOptionalLine 3 of the address
CityStringOptionalName of the city
StateStringOptionalName of the state
ZipStringRequiredPostal code for this address
Country CodeStringRequiredCountry code for this address ISO3166-1 alpha-2 country code

Token Data Elements

The following structure details the Token object.

Table 13. Token Data Elements

Field NameFieldTypeFieldStatusDescription
paymentTokenStringRequiredTokenized payment instrument
tokenExpirationMonthStringRequiredTwo-digit expiration month
tokenExpirationYearStringRequiredFour-digit expiration year
paymentAccountRefere nceStringRequiredPAR linked to the token’s PAN

Secured Payload Data Elements

This section details the structure of the encrypted Payload object that is a part of the JWE claim. JWE must have a JWS as claim that contains a single composite JSON object, “payload” as a claim whose JSON structure is defined below.

The following structure details the Encrypted Signed Payload object.

Table 14. Encrypted Signed Payload Data Elements

Field NameFieldTypeFieldUsageDescription
idStringRequiredClient identifier. This is generated by Paze and shared with client during onboarding
profileIdStringRequiredThe Client profile that was used during checkout
tokenObject(T oken)RequiredA token payload that contains the token number and associated attributes
paymentCardNetw orkEnumRequiredPayment Network Valid values:•       VISA•       MASTERCARD•       DISCOVER
dynamicDataList(Dyn amicDa ta)RequiredDynamic data applicable for a consumer- initiated payment or request to keep a card on file.See Dynamic Data Elements for more information.
billingAddressObject( Address)Conditiona lBilling address of the card selected, at the verbosity indicated by transactionOptions.billingpreferenceCondition: Provided when the Merchant required a billing address.
consumerObject( Consum er)RequiredIdentifying information about the Consumer who completed the checkout including name andcontact information
eciStringConditiona lECommerce Indicator. Code indicating a transaction’s level of adherence to 3D Secure (3DS) authentication standardsCondition: Provided when the Merchant submitted a payment transaction.

Dynamic Data Elements

The following structure details the Dynamic Data object. This data is used for cryptographic verification of the transaction during authorization.

Table 15. Dynamic Data Elements

Field NameFieldTypeFieldUsageDescription
dynamicDataStringRequiredDynamic data value. (20 bytes or 3-4 digits)
dynamicDataT ypeEnumRequiredValid values:•       PURCHASE•       CARD_ON_FILENote: CARD_ON_FILE not supported for Discover.
dynamicDataE xpirationStringOptionalIndicates validity period for the dynamic data

Consumer Data Elements

The following structure details the Consumer object.

Table 16. Consumer Data Elements

Field NameFieldTypeFieldUsageDescription
firstNameStringOptionalFirst name of the Consumer
lastNameStringOptionalLast name of the Consumer
fullNameStringRequiredFull name of the Consumer
emailAddressStringRequiredEmail address of the Consumer
mobileNumberObject(P honeNu mber)OptionalMobile number of the Consumer
countryCodeStringOptionalConsumer provided CountryCodeCountry in ISO 3166-1 alpha-2 format, e.g., "US"
languageCodeStringOptionalConsumer’s LocaleBased on ISO format for language (ISO 639-1) and alpha-2 country code (ISO 3166-1 alpha-2). separated using a “_“.For example, "en_US".

PhoneNumber Data Elements

The following structure details the PhoneNumber object.

Table 17. PhoneNumber Data Elements

Field NameFieldTypeFieldUsageDescription
countryCodeStringRequiredPhone number Country code
phoneNumberStringRequiredPhone number

5.   API Error Handling

An error response notifies the caller that the action relating to the promise has failed. Use the errorDetail.reasonfield to drive your error handling logic.

Error Structure and Usage

Error reasons and messages appear in a standard structure, which is returned when the API request could not be handled.For programmatic actions, you should only rely on the value in the reason field. Errors are provided with a humanreadable error description in message field; however, this field should be used only to understand the problem. You may prefer to provide your own description based on the value in the reason field. In some cases, the errorDetailstructure provides additional information.

Error Response Fields

Table 18. Error Response Fields

Seq.#Field NameFieldTypeDescription
1messageStringInternal error message, which should not be displayed or used in the logic of your code; it is provided as a convenienceFormat: Maximum 255 characters
2statusIntegerHTTP status codeFormat: From 100 to 600, inclusive
3reasonStringMnemonic identifying the kind of error associated with the status; use thisfield to trigger error handling logic in your codeFormat: Maximum 32 characters
4errorDetailStringOne or more details associated error Format: Anarray of ErrorDetail structures

errorDetail Array Structure[JR2] 

The errorDetail structure provides additional information when returned:

Table 19. errorDetail Fields

Seq.#Field NameField TypeDescription
1reasonStringMnemonic identifying the kind of error associated with the status; use this field to trigger error handling logic in your codeFormat: Maximum 32 characters
2messageStringSpecific error associated with the field Format: Maximum 255 characters
3sourceTypeStringKind of sourceFormat: Maximum 255 characters

Example

{

"status": 100, "reason":"string", "message":"string","errorDetail": [

{

"reason": "string",

"source": "string",

"message": "string", "sourceType":"string"

}

]

6.   Support

For support inquiries, contact [email protected].


 [JR1]Confirm name, I think it now called Paze API Oauth

 [JR2]Fix formating