openapi: 3.0.0 info: title: Accounts API description: REST 2.0 Accounts API version: 2.23.0 servers: - url: https://api-sandbox.nuvei.com/account-api description: sandbox - url: https://api.nuvei.com/account-api description: prod security: - bearerAuth: [] - apiKeyAuth: [] tags: - name: Payment Tokens description: CRUD for payment tokens - name: Buyers Management description: CRUD for buyers - name: Manage Payment Tokens for Buyers description: Manage payment tokens for buyers - name: Payment Options description: Entity Payment Options - name: Card Recognition description: Card Recognition - name: Network Tokens description: Provision and manage network tokens paths: /buyers/{buyer-id}/payment-tokens: get: tags: - Manage Payment Tokens for Buyers summary: Retrieve All Payment Tokens description: Retrieves all of the payment tokens of a Buyer. operationId: readBuyerPaymentTokens parameters: - name: buyer-id in: path description: Unique identifier of the customer in your system. required: true style: simple explode: false schema: $ref: '#/components/schemas/BuyerId' - name: processing_entity_id in: query description: ID of processing entity. required: false style: form explode: true schema: $ref: '#/components/schemas/EntityId' - name: payment_token_status in: query description: Filter by payment token status. When omitted, only active tokens are returned. required: false style: form explode: true schema: type: array items: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PaymentTokensResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/PaymentTokensResponse' /buyers/{buyer-id}/payment-tokens/{payment-token-id}: get: tags: - Manage Payment Tokens for Buyers summary: Retrieve Single Payment Token description: Retrieves a single payment token of a Buyer. operationId: readBuyerPaymentTokenDetails parameters: - name: buyer-id in: path description: Unique identifier of the customer in your system. required: true style: simple explode: false schema: $ref: '#/components/schemas/BuyerId' - name: payment-token-id in: path description: Represents a customer bank account in the Nuvei system. required: true style: simple explode: false schema: $ref: '#/components/schemas/PaymentTokenId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PaymentTokenResponse' /buyers/{buyer-id}: get: tags: - Buyers Management summary: Retrieve Buyer Details description: Retrieves the Buyer details. operationId: readBuyerDetails parameters: - name: buyer-id in: path description: Unique identifier of the customer in your system. required: true style: simple explode: false schema: $ref: '#/components/schemas/BuyerId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/BuyerResponse' put: tags: - Buyers Management summary: Create or Override Buyer Details description: Creates or overrides buyer details for subsequent transactions. operationId: createOrUpdateBuyer parameters: - name: buyer-id in: path description: Unique identifier of the customer in your system. required: true style: simple explode: false schema: $ref: '#/components/schemas/BuyerId' requestBody: description: An object containing buyer details content: application/json: schema: $ref: '#/components/schemas/CreateBuyerInput' required: true responses: '201': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' /payment-tokens: post: tags: - Payment Tokens summary: Create Payment Token description: Tokenizes payment details for use in subsequent transactions. The same payment method can be tokenized a few times. operationId: createPaymentToken requestBody: description: An object containing payment method details content: application/json: schema: $ref: '#/components/schemas/PaymentTokenInput' examples: Card Payment Token: value: processingEntityId: 80aef199-b89a-4d59-ba0c-f2cd3c25d5cd merchantReference: MREF_6f06168d-ff6e-448b-8401-30051eb6b1af paymentOption: card: cardHolderName: John Doe cardNumber: '4111111111111111' expirationMonth: '06' expirationYear: '2028' cvv: '591' buyerId: john@doe.com usageIntent: recurring custom: reason: New card ACH Payment Token: value: processingEntityId: 80aef199-b89a-4d59-ba0c-f2cd3c25d5cd merchantReference: MREF_6f06168d-ff6e-448b-8401-30051eb6b1af paymentOption: alternativePaymentMethod: name: ACH data: accountNumber: '11345739548759' routingNumber: '847937857' buyerId: john@doe.com custom: reason: New ACH account required: true responses: '201': description: OK content: application/json: schema: $ref: '#/components/schemas/PaymentTokenCreatedResponse' examples: Card Payment Token: summary: Card Payment Token value: paymentToken: paymentTokenId: 1eaf1356-a9a2-4a16-a0c1-290ba2265257 cccId: 1 paymentOption: card: cardHolderName: John Doe maskedCardNumber: 4***1111 bin: '411111' expirationMonth: '06' expirationYear: '2028' cardType: Credit cardBrand: VISA result: status: success ACH Payment Token: summary: ACH Payment Token value: paymentToken: paymentTokenId: 1eaf1356-a9a2-4a16-a0c1-290ba2265257 cccId: 573 paymentOption: alternativePaymentMethod: name: ACH data: accountNumber: '11345739548759' routingNumber: '847937857' result: status: success '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/PaymentTokenCreatedResponse' examples: Invalid Value: value: result: status: error errors: code: '5000.1000' reason: '[paymentOption.card.expirationMonth] must match "^(0[1-9]|1[0-2])$"' Missing Mandatory Field Value: value: result: status: error errors: code: '5000.1000' reason: '[processingEntityId] must not be null' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/PaymentTokenCreatedResponse' examples: Authorization Error: value: result: status: error errors: code: '7300.3000' reason: Authorization error. '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/PaymentTokenCreatedResponse' examples: Authorization Error: summary: Authorization error value: result: status: error errors: code: '7300.3000' reason: Authorization error. '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/PaymentTokenCreatedResponse' examples: Internal Processing Error: summary: Internal processing error value: result: status: error errors: code: '7000.1000' reason: Internal Processing Error. /payment-tokens/{payment-token-id}: get: tags: - Payment Tokens summary: Retrieve Payment Token Details description: Retrieves the payment token details. operationId: readPaymentToken parameters: - name: payment-token-id in: path description: Represents a customer bank account in the Nuvei system. required: true style: simple explode: false schema: $ref: '#/components/schemas/PaymentTokenId' - name: processing_entity_id in: query description: ID of processing entity. required: true style: form explode: true schema: $ref: '#/components/schemas/EntityId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PaymentTokenResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/PaymentTokensResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/PaymentTokensResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/PaymentTokensResponse' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/PaymentTokensResponse' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/PaymentTokensResponse' patch: tags: - Payment Tokens summary: Update Payment Token Details description: For cards, allows updating cardholder name and expiration of the token. Can link to a buyer as well. operationId: updatePaymentToken parameters: - name: payment-token-id in: path description: Represents a customer bank account in the Nuvei system. required: true style: simple explode: false schema: $ref: '#/components/schemas/PaymentTokenId' requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/UpdatePaymentTokenInput' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' /temporary-payment-tokens: post: tags: - Payment Tokens summary: Tokenize Card Temporarily description: Creates a temporary card token for the duration of the session. operationId: createTemporaryPaymentToken requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/TemporaryPaymentTokenRequest' required: true responses: '201': description: OK content: application/json: schema: $ref: '#/components/schemas/TemporaryPaymentTokenResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/TemporaryPaymentTokenResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/TemporaryPaymentTokenResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/TemporaryPaymentTokenResponse' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/TemporaryPaymentTokenResponse' /account-captures: post: tags: - Payment Tokens summary: Capture Account Details description: Tokenizes payment details by capturing account details. operationId: postAccountCaptures parameters: - name: idempotency-key in: header description: Idempotency Key for the request required: false style: simple explode: false schema: type: string example: 31f9952c-0058-458b-8244-4ae110ef1556 requestBody: description: An object containing payment method details content: application/json: schema: $ref: '#/components/schemas/AccountCaptureRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/AccountCaptureResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/AccountCaptureResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/AccountCaptureResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/AccountCaptureResponse' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/AccountCaptureResponse' /payment-options: get: tags: - Payment Options summary: Retrieve Payment Option Details description: Retrieves the payment option details per processing entity. operationId: readEntityPaymentOptions parameters: - name: processing_entity_id in: query description: ID of processing entity. required: false style: form explode: true schema: $ref: '#/components/schemas/EntityId' - name: country_code in: query description: The [2-letter ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes). required: false style: form explode: true schema: maxLength: 2 minLength: 2 type: string - name: currency in: query description: The [3-letter ISO currency code](https://docs.nuvei.com/?p=8513#currency-codes). required: false style: form explode: true schema: maxLength: 3 minLength: 3 type: string - name: include_optional_fields in: query description: Include optional fields in the response required: false style: form explode: true schema: type: boolean default: false - name: compact_response in: query description: Provide a compact response with only name, cccId and processing gateway required: false style: form explode: true schema: type: boolean default: false responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PaymentOptionsResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' /card-details: post: tags: - Card Recognition summary: Retrieve Additional Credit Card Details description: Retrieves additional details of a credit card. operationId: postCardDetails requestBody: content: application/json: schema: $ref: '#/components/schemas/CardDetailsRequest' required: true responses: '201': description: OK content: application/json: schema: $ref: '#/components/schemas/CardDetailsResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' /network-tokens: post: tags: - Network Tokens summary: Provision Network Token description: Provision a network token via Visa or MDES. operationId: provisionNetworkToken requestBody: description: An object containing payment method details content: application/json: schema: $ref: '#/components/schemas/NetworkTokenInput' examples: Card Payment Token: value: processingEntityId: 80aef199-b89a-4d59-ba0c-f2cd3c25d5cd paymentOption: card: cardNumber: '4111111111111111' expirationMonth: '06' expirationYear: '2028' cvv: '591' required: true responses: '201': description: OK content: application/json: schema: $ref: '#/components/schemas/NetworkTokenProvisionedResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/NetworkTokenProvisionedResponse' examples: Invalid Value: value: result: status: error errors: code: '5000.1000' reason: '[paymentOption.card.expirationMonth] must match "^(0[1-9]|1[0-2])$"' Missing Mandatory Field Value: value: result: status: error errors: code: '5000.1000' reason: '[processingEntityId] must not be null' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/NetworkTokenProvisionedResponse' examples: Authorization Error: value: result: status: error errors: code: '7300.3000' reason: Authorization error. '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/NetworkTokenProvisionedResponse' examples: Authorization Error: summary: Authorization error value: result: status: error errors: code: '7300.3000' reason: Authorization error. '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/NetworkTokenProvisionedResponse' examples: Internal Processing Error: summary: Internal processing error value: result: status: error errors: code: '7000.1000' reason: Internal Processing Error. /network-tokens/cryptograms: post: tags: - Network Tokens summary: Provision Network Cryptogram description: Provision a network cryptogram via Visa or MDES. operationId: provisionNetworkCryptogram requestBody: content: application/json: schema: $ref: '#/components/schemas/NetworkTokenCryptogramInput' required: true responses: '201': description: OK content: application/json: schema: $ref: '#/components/schemas/CryptogramResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/CryptogramResponse' examples: Invalid Value: value: result: status: error errors: code: '5000.1000' reason: '[paymentOption.card.expirationMonth] must match "^(0[1-9]|1[0-2])$"' Missing Mandatory Field Value: value: result: status: error errors: code: '5000.1000' reason: '[processingEntityId] must not be null' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/CryptogramResponse' examples: Authorization Error: value: result: status: error errors: code: '7300.3000' reason: Authorization error. '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/CryptogramResponse' examples: Authorization Error: summary: Authorization error value: result: status: error errors: code: '7300.3000' reason: Authorization error. '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/CryptogramResponse' examples: Internal Processing Error: summary: Internal processing error value: result: status: error errors: code: '7000.1000' reason: Internal Processing Error. /network-tokens/{payment-token-id}: get: tags: - Network Tokens summary: Get Network Token Information description: Retrieves network token information. operationId: readNetworkToken parameters: - name: payment-token-id in: path description: Represents a customer bank account in the Nuvei system. required: true style: simple explode: false schema: $ref: '#/components/schemas/PaymentTokenId' - name: processing_entity_id in: query description: ID of processing entity. required: true style: form explode: true schema: $ref: '#/components/schemas/EntityId' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/NetworkTokenProvisionedResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/NetworkTokenProvisionedResponse' examples: Invalid Value: value: result: status: error errors: code: '5000.1000' reason: '[paymentOption.card.expirationMonth] must match "^(0[1-9]|1[0-2])$"' Missing Mandatory Field Value: value: result: status: error errors: code: '5000.1000' reason: '[processingEntityId] must not be null' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/NetworkTokenProvisionedResponse' examples: Authorization Error: value: result: status: error errors: code: '7300.3000' reason: Authorization error. '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/NetworkTokenProvisionedResponse' examples: Authorization Error: summary: Authorization error value: result: status: error errors: code: '7300.3000' reason: Authorization error. '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/NetworkTokenProvisionedResponse' examples: Internal Processing Error: summary: Internal processing error value: result: status: error errors: code: '7000.1000' reason: Internal Processing Error. /network-tokens/deactivate: patch: tags: - Network Tokens summary: Deactivate a network token description: Deactivate a network token via Visa or MDES. operationId: deactivateNetworkToken requestBody: content: application/json: schema: $ref: '#/components/schemas/DeactivateNetworkTokenInput' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DeactivateResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/DeactivateResponse' examples: Invalid Value: value: result: status: error errors: code: '5000.1000' reason: '[paymentOption.card.expirationMonth] must match "^(0[1-9]|1[0-2])$"' Missing Mandatory Field Value: value: result: status: error errors: code: '5000.1000' reason: '[processingEntityId] must not be null' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/DeactivateResponse' examples: Authorization Error: value: result: status: error errors: code: '7300.3000' reason: Authorization error. '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/DeactivateResponse' examples: Authorization Error: summary: Authorization error value: result: status: error errors: code: '7300.3000' reason: Authorization error. '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/DeactivateResponse' examples: Internal Processing Error: summary: Internal processing error value: result: status: error errors: code: '7000.1000' reason: Internal Processing Error. components: schemas: CreateBuyerInput: title: Buyer Details Request required: - buyerDetails - processingEntityId type: object properties: processingEntityId: $ref: '#/components/schemas/EntityId' buyerDetails: $ref: '#/components/schemas/BasicBuyerDetails' Buyer: title: Buyer type: object properties: buyerId: $ref: '#/components/schemas/BuyerId' buyerDetails: $ref: '#/components/schemas/BasicBuyerDetails' BuyerResponse: title: Buyer API Response required: - result type: object properties: buyer: $ref: '#/components/schemas/Buyer' result: $ref: '#/components/schemas/ApiResultOutput' BuyerId: maxLength: 255 type: string example: buyer@wherever.com PaymentTokenResponse: title: Payment Token Response required: - result type: object properties: paymentToken: $ref: '#/components/schemas/PaymentToken' result: $ref: '#/components/schemas/ApiResultOutput' PaymentTokenCreatedResponse: title: Payment Token Response required: - result type: object properties: paymentToken: $ref: '#/components/schemas/BasePaymentToken' result: $ref: '#/components/schemas/ApiResultOutput' NetworkTokenProvisionedResponse: required: - result type: object properties: paymentOption: $ref: '#/components/schemas/PaymentOptionNT' tokenRequestorId: $ref: '#/components/schemas/TokenRequestorId' result: $ref: '#/components/schemas/ApiResultOutput' NetworkTokenNT: type: object properties: paymentTokenId: type: string tokenNumber: $ref: '#/components/schemas/Token' expirationYear: $ref: '#/components/schemas/ExpirationYear' expirationMonth: $ref: '#/components/schemas/ExpirationMonth' tokenStatus: $ref: '#/components/schemas/TokenStatus' tokenUniqueReference: $ref: '#/components/schemas/TokenUniqueReference' paymentAccountReference: $ref: '#/components/schemas/PaymentAccountReference' tokenAssuranceLevel: $ref: '#/components/schemas/TokenAssuranceLevel' card: $ref: '#/components/schemas/CardNTIn' merchantReference: $ref: '#/components/schemas/MerchantRef' PaymentOptionNT: type: object properties: networkToken: $ref: '#/components/schemas/NetworkTokenNT' CardNTIn: title: card type: object properties: last4Digits: $ref: '#/components/schemas/Last4Digits' expirationYear: $ref: '#/components/schemas/ExpirationYear' expirationMonth: $ref: '#/components/schemas/ExpirationMonth' cardUpdated: $ref: '#/components/schemas/CardUpdated' updateReason: $ref: '#/components/schemas/UpdateReason' updateDate: $ref: '#/components/schemas/UpdateDate' CryptogramResponse: required: - result type: object properties: paymentOption: $ref: '#/components/schemas/PaymentOptionNTCR' result: $ref: '#/components/schemas/ApiResultOutput' DeactivateResponse: required: - result type: object properties: paymentOption: $ref: '#/components/schemas/PaymentOptionDeactivate' result: $ref: '#/components/schemas/ApiResultOutput' PaymentOptionNTCR: type: object properties: networkToken: $ref: '#/components/schemas/NetworkTokenNTCR' PaymentOptionDeactivate: type: object properties: networkToken: $ref: '#/components/schemas/NetworkTokenDeactivate' NetworkTokenNTCR: type: object properties: paymentTokenId: type: string tokenNumber: $ref: '#/components/schemas/Token' expirationYear: $ref: '#/components/schemas/ExpirationYear' expirationMonth: $ref: '#/components/schemas/ExpirationMonth' tokenStatus: $ref: '#/components/schemas/TokenStatus' tokenUniqueReference: $ref: '#/components/schemas/TokenUniqueReference' paymentAccountReference: $ref: '#/components/schemas/PaymentAccountReference' tokenAssuranceLevel: $ref: '#/components/schemas/TokenAssuranceLevel' cryptogram: type: string merchantReference: $ref: '#/components/schemas/MerchantRef' NetworkTokenDeactivate: type: object properties: paymentTokenId: type: string tokenStatus: $ref: '#/components/schemas/TokenStatus' tokenUniqueReference: $ref: '#/components/schemas/TokenUniqueReference' paymentAccountReference: $ref: '#/components/schemas/PaymentAccountReference' TokenUniqueReference: maxLength: 64 type: string TokenRequestorId: maxLength: 15 type: string Token: maxLength: 29 type: string TokenStatus: maxLength: 40 type: string PaymentAccountReference: type: string Last4Digits: maxLength: 4 type: string ExpirationYear: type: string ExpirationMonth: type: string UpdateReason: type: string UpdateDate: type: string CardUpdated: type: string PaymentTokensResponse: title: Payment Tokens Response required: - result type: object properties: paymentTokens: type: array items: title: Card Payment Token required: - paymentOption - paymentTokenId - processingEntityId type: object properties: paymentTokenId: $ref: '#/components/schemas/PaymentTokenId' cccId: $ref: '#/components/schemas/CccId' displayName: type: string description: Payment Token Display Name paymentOption: $ref: '#/components/schemas/CardPciDescopedWrapped' status: $ref: '#/components/schemas/PaymentTokenStatus' buyerId: $ref: '#/components/schemas/BuyerId' merchantReference: $ref: '#/components/schemas/MerchantRef' processingEntityId: $ref: '#/components/schemas/EntityId' usageIntent: $ref: '#/components/schemas/TokenUsage' result: $ref: '#/components/schemas/ApiResultOutput' PaymentTokenId: title: Payment Token ID type: string example: 1eaf1356-a9a2-4a16-a0c1-290ba2265257 PaymentTokenStatus: type: string description: The status of the payment token. enum: - active - suspended - disabled TemporaryPaymentTokenRequest: title: Temporary Payment Token Request required: - paymentOption - processingEntityId type: object properties: processingEntityId: $ref: '#/components/schemas/EntityId' paymentOption: $ref: '#/components/schemas/PaymentOptionTemporaryTokenCardInput' custom: $ref: '#/components/schemas/Custom' TemporaryPaymentTokenResponse: title: Temporary Payment Token Response required: - result type: object properties: temporaryPaymentToken: $ref: '#/components/schemas/TemporaryPaymentToken' result: $ref: '#/components/schemas/ApiResultOutput' PaymentTokenInput: title: Payment Token Request required: - paymentOption - processingEntityId type: object properties: processingEntityId: $ref: '#/components/schemas/EntityId' merchantReference: $ref: '#/components/schemas/MerchantRef' paymentOption: $ref: '#/components/schemas/CardWrapped' buyerId: $ref: '#/components/schemas/BuyerId' usageIntent: $ref: '#/components/schemas/TokenUsage' custom: $ref: '#/components/schemas/Custom' UrlDetails: title: urlDetails type: object properties: webhookUrl: type: string description: The URL to which notifications for outcome of the financial transactions will be sent successUrl: type: string description: The URL to which the end user will be redirected in case of a successful transaction with Alternative Payment Method failureUrl: type: string description: The URL to which the end user will be redirected in case of an unsuccessful transaction with Alternative Payment Method pendingUrl: type: string description: The URL to which the end user will be redirected in case of a pending transaction with Alternative Payment Method returnToAppUrl: type: string description: The URL to which the end user is redirected in case of a successful transaction with an APM that shuold open in an external browser. AccountCaptureRequest: title: Payment Token Request required: - paymentOption - processingEntityId type: object properties: processingEntityId: $ref: '#/components/schemas/EntityId' merchantReference: $ref: '#/components/schemas/MerchantRef' currency: maxLength: 3 minLength: 3 type: string paymentOption: $ref: '#/components/schemas/PaymentOptionAccountCapture' buyerDetails: $ref: '#/components/schemas/BuyerDetails' deviceDetails: $ref: '#/components/schemas/DeviceDetails' custom: $ref: '#/components/schemas/Custom' urlDetails: $ref: '#/components/schemas/UrlDetails' PaymentOptionAccountCapture: title: PaymentOptionAccountCapture required: - alternativePaymentMethod type: object properties: alternativePaymentMethod: $ref: '#/components/schemas/ApmDetails' AccountCaptureResponse: title: Account Capture Response required: - result type: object properties: accountCaptureId: type: string redirectUrl: maxLength: 2000 type: string result: $ref: '#/components/schemas/AccountCaptureResultOutput' PaymentToken: title: Card Payment Token allOf: - $ref: '#/components/schemas/BasePaymentToken' - required: - processingEntityId type: object properties: buyerId: $ref: '#/components/schemas/BuyerId' merchantReference: $ref: '#/components/schemas/MerchantRef' processingEntityId: $ref: '#/components/schemas/EntityId' usageIntent: $ref: '#/components/schemas/TokenUsage' BasePaymentToken: title: Card Payment Token required: - paymentOption - paymentTokenId type: object properties: paymentTokenId: $ref: '#/components/schemas/PaymentTokenId' cccId: $ref: '#/components/schemas/CccId' displayName: type: string description: Payment Token Display Name paymentOption: $ref: '#/components/schemas/CardPciDescopedWrapped' status: $ref: '#/components/schemas/PaymentTokenStatus' TemporaryPaymentToken: title: Temporary Card Payment Token required: - paymentOption - paymentTokenId type: object properties: paymentTokenId: $ref: '#/components/schemas/PaymentTokenId' paymentOption: $ref: '#/components/schemas/TemporaryPaymentTokenCardPciDescopedWrapped' UpdatePaymentTokenInput: title: Update Card Token Request required: - processingEntityId type: object properties: processingEntityId: $ref: '#/components/schemas/EntityId' paymentOption: $ref: '#/components/schemas/UpdateCardInputWrapped' buyerId: $ref: '#/components/schemas/BuyerId' merchantReference: $ref: '#/components/schemas/MerchantRef' usageIntent: $ref: '#/components/schemas/TokenUsage' ApmDetails: title: ApmDetails required: - name type: object properties: name: maxLength: 50 minLength: 1 type: string example: ACH data: $ref: '#/components/schemas/MaskedKeyValuePair' ApmDetailsUpdate: title: ApmDetailsUpdate type: object properties: data: $ref: '#/components/schemas/MaskedKeyValuePair' UpdateCardInputWrapped: type: object properties: card: $ref: '#/components/schemas/UpdateCardInput' alternativePaymentMethod: $ref: '#/components/schemas/ApmDetailsUpdate' UpdateCardInput: title: Update Card Token Request type: object properties: cardHolderName: $ref: '#/components/schemas/CardHolderName' expirationMonth: $ref: '#/components/schemas/CardExpirationMonth' expirationYear: $ref: '#/components/schemas/CardExpirationYear' TemporaryPaymentTokenInput: title: TemporaryPaymentToken required: - paymentTokenId type: object properties: paymentTokenId: $ref: '#/components/schemas/PaymentTokenId' CardWrapped: type: object properties: card: $ref: '#/components/schemas/Card' alternativePaymentMethod: $ref: '#/components/schemas/ApmDetails' temporaryPaymentToken: $ref: '#/components/schemas/TemporaryPaymentTokenInput' PaymentOptionTemporaryTokenCardInput: required: - card type: object properties: card: $ref: '#/components/schemas/TemporaryTokenCardInput' Card: title: Card Details required: - cardNumber - expirationMonth - expirationYear type: object properties: cardHolderName: $ref: '#/components/schemas/CardHolderName' cardNumber: $ref: '#/components/schemas/CardNumber' expirationMonth: $ref: '#/components/schemas/CardExpirationMonth' expirationYear: $ref: '#/components/schemas/CardExpirationYear' cvv: $ref: '#/components/schemas/CVV' TemporaryTokenCardInput: title: Temporary Token Card Input allOf: - $ref: '#/components/schemas/Card' - type: object properties: selectedBrand: type: string CardNT: title: Card Details for Network Token required: - cardNumber - expirationMonth - expirationYear type: object properties: cardNumber: $ref: '#/components/schemas/CardNumber' expirationMonth: $ref: '#/components/schemas/CardExpirationMonth' expirationYear: $ref: '#/components/schemas/CardExpirationYear' cvv: $ref: '#/components/schemas/CVV' merchantReference: $ref: '#/components/schemas/MerchantRef' TemporaryPaymentTokenCardPciDescopedWrapped: type: object properties: card: $ref: '#/components/schemas/CardPciDescopedTemporaryToken' CardPciDescopedWrapped: type: object properties: card: $ref: '#/components/schemas/CardPciDescoped' alternativePaymentMethod: $ref: '#/components/schemas/ApmDetails' CardPciDescoped: title: Card PCI Descoped Details required: - expirationMonth - expirationYear type: object properties: cardHolderName: $ref: '#/components/schemas/CardHolderName' maskedCardNumber: $ref: '#/components/schemas/CardNumberMasked' bin: $ref: '#/components/schemas/CardBIN' expirationMonth: $ref: '#/components/schemas/CardExpirationMonth' expirationYear: $ref: '#/components/schemas/CardExpirationYear' cardType: $ref: '#/components/schemas/CardType' cardBrand: $ref: '#/components/schemas/CardBrand' secondaryBrand: $ref: '#/components/schemas/CardBrand' isDualBranded: type: boolean lastBrand: $ref: '#/components/schemas/CardBrand' cardProduct: type: string cardProgram: type: string cardProductType: type: string isPrepaid: type: boolean description: Indicates if the card is prepaid or not. issuerCountry: maxLength: 2 minLength: 2 type: string issuerBankName: type: string isVirtual: type: boolean isDynamicCurrencyConversionSupported: type: boolean CardPciDescopedTemporaryToken: allOf: - $ref: '#/components/schemas/CardPciDescoped' - type: object properties: selectedBrand: type: string CardNumber: title: Card Number maxLength: 20 minLength: 6 type: string description: The full credit card number. example: '5113981660016597' CardNumberMasked: maxLength: 20 type: string description: The masked credit card number. example: 5***6597 CardBIN: maxLength: 8 type: string description: The first six or eight digits from the credit card number for identifying the processing bank. The rest of the number is not displayed. example: '546221' CardHolderName: maxLength: 70 type: string description: The cardholder name. example: Jada Pinkett CardExpirationMonth: title: Card Expiration - Month pattern: ^(0[1-9]|1[0-2])$ type: string description: The card expiration month. example: '06' CardExpirationYear: title: Card Expiration - Year pattern: ^(\d{4}|\d{2})$ type: string description: The card expiration year. example: '2022' CardBrand: type: string description: The card brand used in the transaction. CardType: type: string description: The type of card used in the transaction. enum: - Credit - Debit CccId: title: Credit Card Company ID type: integer description: 'ID of card in the Gateway. Values: 1 = VISA | 2 = MasterCard | 3 = Amex | 4 = Diners | 5 = JCB | 6 = Discover' example: 1 CVV: maxLength: 4 type: string description: The CVV/CVC security code. example: '591' ApiResultWrapped: required: - result type: object properties: result: $ref: '#/components/schemas/ApiResultOutput' ApiResultOutput: title: Api Result required: - status type: object properties: status: type: string enum: - success - error errors: $ref: '#/components/schemas/ResultError' AccountCaptureResultOutput: title: Api Result required: - status type: object properties: status: type: string enum: - redirect - error - pending errors: $ref: '#/components/schemas/ResultError' ResultError: title: Result Error type: object properties: code: maxLength: 11 type: string description: If an error occurred on the request side, an error code is returned in this parameter. example: '7000.1000' reason: maxLength: 400 type: string description: If an error occurred on the request side, then an error reason is returned in this parameter. example: Unexpected error reference: maxLength: 400 type: string description: Internal reference for troubleshooting Custom: title: Key-Value type: object example: hello: world EntityId: title: Entity ID type: string description: Processing `entityId` provided by Nuvei. format: uuid example: 80aef199-b89a-4d59-ba0c-f2cd3c25d5cd MerchantRef: title: Merchant Reference for Payment Token maxLength: 50 type: string description: Merchant Reference for a business entity (token, subscription, etc.) example: MREF_6f06168d-ff6e-448b-8401-30051eb6b1af TokenUsage: title: declared MIT usage for the payment token type: string enum: - recurring - unscheduled FieldValue: title: FieldValue type: object properties: code: maxLength: 50 type: string displayName: maxLength: 100 type: string mandatoryFields: type: array items: maxLength: 100 type: string description: Representation of a single value for LIST dataType fields KeyboardType: title: KeyboardType type: string default: any enum: - any - tel - number - email - text - password - date PaymentOptionInputField: title: Payment Option Input Field required: - dataType - isMandatory - name type: object properties: name: maxLength: 100 type: string description: The name of the input parameter as expected by REST API methods dataType: type: string description: The data type of the value enum: - INTEGER - DECIMAL - STRING - DATE - BOOLEAN - OBJECT - LIST isMandatory: type: boolean description: Indication if the field is required for the Payment Option minimumLength: type: integer description: The minimum supported length of the provided value. Valid for STRING data type maximumLength: type: integer description: The maximum supported length of the provided value. Valid for STRING data type keyboardType: $ref: '#/components/schemas/KeyboardType' values: type: array items: $ref: '#/components/schemas/FieldValue' description: Defines an input field for a Payment Option PaymentOptionInputFields: type: array description: List of input fields for a Payment Option items: $ref: '#/components/schemas/PaymentOptionInputField' CountryCurrencyRestriction: type: object properties: countryCode: maxLength: 2 minLength: 2 type: string description: '' currency: maxLength: 3 minLength: 3 type: string description: '' minimumAmount: type: number description: '' maximumAmount: type: number description: '' description: '' CountryCurrencyRestrictions: type: array description: '' items: $ref: '#/components/schemas/CountryCurrencyRestriction' ProcessingGateway: type: string enum: - APM - card PaymentOption: required: - name - supportsFieldsRecovery type: object properties: name: maxLength: 50 type: string description: '' cccId: type: integer processingGateway: $ref: '#/components/schemas/ProcessingGateway' isDirect: type: boolean description: Indication if the Payment Option supports direct flow default: false supportsFieldsRecovery: type: boolean description: Indication if the Payment Option supports fields recovery functionality default: false fields: $ref: '#/components/schemas/PaymentOptionInputFields' restrictions: $ref: '#/components/schemas/CountryCurrencyRestrictions' logoUrl: type: string launchInBrowser: type: boolean description: '' PaymentOptions: type: array description: '' items: $ref: '#/components/schemas/PaymentOption' PaymentOptionsResponse: title: Payment Options Response allOf: - type: object properties: paymentOptions: $ref: '#/components/schemas/PaymentOptions' - $ref: '#/components/schemas/ApiResultWrapped' CardDetailsResponse: title: CardDetailsResponse required: - result type: object properties: card: $ref: '#/components/schemas/CardRecognitionDetails' result: $ref: '#/components/schemas/ApiResultOutput' description: Card Details Response CardDetailsRequest: title: Card Details Request required: - cardNumber - processingEntityId type: object properties: processingEntityId: $ref: '#/components/schemas/EntityId' cardNumber: $ref: '#/components/schemas/CardNumber' NetworkTokenInput: title: Network Token Request required: - paymentOption - processingEntityId type: object properties: processingEntityId: $ref: '#/components/schemas/EntityId' paymentOption: $ref: '#/components/schemas/PaymentOptionNetworkToken' NetworkTokenCryptogramInput: title: Network Token Cryptogram Request required: - paymentOption - processingEntityId - transactionType type: object properties: processingEntityId: $ref: '#/components/schemas/EntityId' paymentOption: $ref: '#/components/schemas/PaymentOptionCr' transactionType: type: string description: Td. enum: - ECOM - AFT DeactivateNetworkTokenInput: title: Deactivate Network Token Input required: - paymentOption - processingEntityId type: object properties: processingEntityId: $ref: '#/components/schemas/EntityId' paymentOption: $ref: '#/components/schemas/PaymentOptionCr' PaymentTokenInCr: title: PaymentToken required: - paymentTokenId type: object properties: paymentTokenId: $ref: '#/components/schemas/PaymentTokenId' PaymentOptionCr: title: PaymentOptionCr type: object properties: paymentToken: $ref: '#/components/schemas/PaymentTokenInCr' PaymentOptionNetworkToken: title: PaymentOptionNetworkToken type: object properties: card: $ref: '#/components/schemas/CardNT' paymentToken: $ref: '#/components/schemas/TokenInput' TokenInput: type: object properties: paymentTokenId: $ref: '#/components/schemas/PaymentTokenId' TokenAssuranceLevel: type: string BasicBuyerDetails: title: userDetailsNoId type: object properties: firstName: maxLength: 30 type: string middleName: maxLength: 40 type: string lastName: maxLength: 40 type: string companyName: maxLength: 100 type: string locale: maxLength: 5 type: string dateOfBirth: type: string format: date email: maxLength: 100 type: string phone: maxLength: 18 type: string phone2: maxLength: 18 type: string workPhone: maxLength: 18 type: string identificationType: $ref: '#/components/schemas/IdentificationType' identificationValue: $ref: '#/components/schemas/IdentificationValue' cardHolderEntityType: $ref: '#/components/schemas/CardHolderEntityType' nationalIdentificationNumber: maxLength: 25 type: string accountReference: $ref: '#/components/schemas/BuyerAccountReference' billingAddress: $ref: '#/components/schemas/BillingAddress' shippingAddress: $ref: '#/components/schemas/ShippingAddress' IdentificationType: title: Identification Type Code type: string enum: - DateOfBirth - CustomerId - NationalId - PassportNumber - DriverLicense - TaxId - CompanyRegistrationNumber - ProxyId - SocialSecurityNumber - AlienRegistrationNumber - LawEnforcementId - MilitaryId - TravelId - Email - PhoneNumber IdentificationValue: title: Identification Value maxLength: 100 type: string CardHolderEntityType: title: Cardholder Entity Type type: string enum: - Business - Individual BuyerAccountReference: maxLength: 34 type: string BillingAddress: title: billingAddress required: - countryCode type: object properties: address: maxLength: 60 type: string addressLine2: maxLength: 60 type: string addressLine3: maxLength: 60 type: string street: maxLength: 100 type: string state: maxLength: 6 type: string zip: maxLength: 10 type: string city: maxLength: 30 type: string countryCode: maxLength: 2 minLength: 2 type: string description: 2 digits ISO country code phone: maxLength: 18 type: string addressMatch: type: boolean ShippingAddress: title: shippingAddress type: object properties: sameAsBilling: type: boolean default: false address: maxLength: 60 type: string addressLine2: maxLength: 60 type: string addressLine3: maxLength: 60 type: string streetNumber: maxLength: 20 type: string state: maxLength: 6 type: string zip: maxLength: 10 type: string city: maxLength: 30 type: string countryCode: maxLength: 2 minLength: 2 type: string firstName: maxLength: 30 type: string lastName: maxLength: 40 type: string phone: maxLength: 18 type: string phone2: maxLength: 18 type: string careOf: type: string description: Name of the person/entity to whose care the shipment is addressed. salutation: type: string description: Salutation used for the shipping recipient (e.g., Mr, Ms, Dr). ShippingTrackingDetails: $ref: '#/components/schemas/ShippingTrackingDetails' ShippingTrackingDetails: type: object properties: customerNumber: type: string description: Customer number associated with the shipment. addressType: type: string description: Type of shipping address (e.g., residential, business). shippingType: type: string description: Shipping method/type (e.g., standard, express). shippingCarrierName: type: string description: Name of the shipping carrier. trackingId: type: string description: Tracking identifier provided by the carrier. trackingUrl: type: string description: URL where tracking status can be viewed. format: uri BuyerDetails: title: userDetails allOf: - type: object properties: buyerId: maxLength: 255 type: string description: The `buyerId` is required if `buyerToken` is provided as a value in the `store` parameter. - $ref: '#/components/schemas/BasicBuyerDetails' DeviceDetails: title: DeviceDetails type: object properties: deviceName: type: string deviceOS: type: string deviceType: type: string description: 'Supported device types include: DESKTOP, SMARTPHONE, TABLET, TV, UNKNOWN (if device type cannot be recognized).' ipAddress: type: string description: The customer's IP address. browser: $ref: '#/components/schemas/Browser' msisdn: type: string description: Device MSISDN iccId: type: string description: Device ICCID imei: type: string description: Device IMEI devicePossessionStatus: $ref: '#/components/schemas/DevicePossessionStatus' deviceManufacturerIdentifier: type: string Browser: title: Browser type: object properties: acceptHeader: type: string description: Exact content of the HTTP accept headers as sent to the 3DS Requestor from the cardholder's browser. If the total length of the accept header sent by the browser exceeds 2048 characters, the 3D-Secure Server truncates the excess portion. colorDepth: type: integer description: 'Value representing the bit depth of the color palette for displaying images, in bits per pixel. Obtained from cardholder browser using the screen.colorDepth property. Values: 1, 4, 8, 15, 16, 24, 32, 48' javaEnabled: type: boolean description: 'Represents the ability of the cardholder browser to execute Java. REQUIRED when `javaScriptEnabled` is TRUE. Value is returned from the navigator.javaEnabled property. Values: TRUE, FALSE' javaScriptEnabled: type: boolean description: 'Determines whether the browser is JavaScript enabled (from `navigator.javaScriptEnabled` property). Values: TRUE, FALSE' language: type: string description: Value representing the browser language as defined in IETF BCP47. Returned from `navigator.language` property. screenHeight: type: integer description: Total height of the cardholder's screen in pixels. Value is returned from the `screen.height` property. screenWidth: type: integer description: Total width of the cardholder's screen in pixels. Value is returned from the `screen`.width property. timeZone: type: string description: 'Time difference between UTC time and the cardholder browser local time, in minutes. Values: Value is returned from the `getTimezoneOffset()` method.' userAgent: type: string description: 'Exact content of the HTTP user-agent header. Values: If the total length of the user-agent header sent by the browser exceeds 2048 characters, the 3D-Secure Server truncates the excess portion.' DevicePossessionStatus: title: DevicePossessionStatus type: string description: Indication if the device is lost or stolen enum: - lost - stolen MaskedKeyValuePair: title: MaskedKeyValuePair type: object example: accountNumber: '11345739548759' routingNumber: '847937857' CardRecognitionDetails: title: CardRecognitionDetails type: object properties: maskedCardNumber: type: string last4Digits: maxLength: 4 minLength: 4 type: string type: type: string brands: $ref: '#/components/schemas/CardBrands' isPrepaid: type: boolean isReloadableCard: type: boolean cardPayoutSupportCode: type: integer product: type: string program: type: string dccAllowed: type: boolean issuerCountry: maxLength: 2 minLength: 2 type: string issuerBankName: type: string currency: maxLength: 3 minLength: 3 type: string description: Card Details CardBrands: title: CardBrands required: - main type: object properties: main: type: string secondary: type: string responses: OkResponse: description: OK content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' BadRequest: description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' Unauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' Forbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' NotFound: description: Not Found content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' InternalServerError: description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ApiResultWrapped' parameters: idempotency-key: name: idempotency-key in: header description: Idempotency Key for the request required: false style: simple explode: false schema: type: string example: 31f9952c-0058-458b-8244-4ae110ef1556 buyer-id-path: name: buyer-id in: path description: Unique identifier of the customer in your system. required: true style: simple explode: false schema: $ref: '#/components/schemas/BuyerId' payment-token-id-path: name: payment-token-id in: path description: Represents a customer bank account in the Nuvei system. required: true style: simple explode: false schema: $ref: '#/components/schemas/PaymentTokenId' merchant-ref-path: name: merchant-reference in: path description: The token name in your system. required: true style: simple explode: false schema: $ref: '#/components/schemas/MerchantRef' entity-id-path: name: entity-id in: path description: Processing `entityId` provided by Nuvei. required: true style: simple explode: false schema: $ref: '#/components/schemas/EntityId' payment-option-name: name: payment-option-name in: path description: Payment Option Name required: true style: simple explode: false schema: type: string buyer_id_search_query_string: name: buyer_id_prefix in: query required: true style: form explode: true size_query_string: name: size in: query description: Page size for pagination. required: false style: form explode: true offset_query_string: name: offset in: query description: Page number for pagination. required: false style: form explode: true merchant_ref_query_string: name: merchant_reference in: query description: Merchant Reference for a business entity (token, subscription, etc.). required: true style: form explode: true schema: $ref: '#/components/schemas/MerchantRef' processing_entity_id_query_string: name: processing_entity_id in: query description: ID of processing entity. required: true style: form explode: true schema: $ref: '#/components/schemas/EntityId' processing_entity_id_optional_query_string: name: processing_entity_id in: query description: ID of processing entity. required: false style: form explode: true schema: $ref: '#/components/schemas/EntityId' payment_token_status: name: payment_token_status in: query description: Filter by payment token status. When omitted, only active tokens are returned. required: false style: form explode: true schema: type: array items: type: string card-number: name: card-number in: path description: Card Number required: true style: simple explode: false schema: $ref: '#/components/schemas/CardNumber' country_code_optional_query_string: name: country_code in: query description: The [2-letter ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes). required: false style: form explode: true schema: maxLength: 2 minLength: 2 type: string currency_optional_query_string: name: currency in: query description: The [3-letter ISO currency code](https://docs.nuvei.com/?p=8513#currency-codes). required: false style: form explode: true schema: maxLength: 3 minLength: 3 type: string include_optional_fields_optional_query_string: name: include_optional_fields in: query description: Include optional fields in the response required: false style: form explode: true schema: type: boolean default: false compact_response_optional_query_string: name: compact_response in: query description: Provide a compact response with only name, cccId and processing gateway required: false style: form explode: true schema: type: boolean default: false requestBodies: upoCreateBody: description: Payment Token creation Request content: application/json: schema: $ref: '#/components/schemas/PaymentTokenInput' required: true securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT apiKeyAuth: type: apiKey name: X-API-KEY in: header