PURCHASE Collection Example

1. Authorize by Virtual Device

Endpoint: {{url}}/api-gateway/authorize_virtual_device

  • The request requires a serviceCode, which is provided to you before integration into the production environment.

  • In response, an encrypted server key (serverPublicKey) is returned in JWE format.

  • This key is required for Step 2.

2. Decrypt Authorization Response

Endpoint: {{url}}/cipher/decrypt_by_jwk?message={{responseJwe}}

  • This request decrypts the bank’s response using the private key (userPrivateKey).

  • The Merchant generates this key following the instructions in the "Client Communication JWK Key Generation Process."

  • The decrypted serverPublicKey obtained in this step is required for Steps 5 and 8.

  • In the production environment, the Merchant must perform decryption independently.

3. Encrypt Card Number

Endpoint: {{url}}/cipher/encrypt_by_jwk?message={{card_number}}

  • The payment key (paymentPublicKey), provided by the Bank, is used to encrypt the customer’s card number.

  • For testing, an auxiliary method /ecom/help/encrypt_by_jwk is available.

  • In the production environment, the Merchant must handle encryption independently.

4. Encrypt Expiration Date and CVV

Endpoint: {{url}}/cipher/encrypt_by_jwk?message={{year_month_day}}

  • The payment key (paymentPublicKey), provided by the Bank, is used to encrypt the card expiration date and CVV.

  • The data should be formatted as: year, month, CVV (e.g., "2603123").

  • For testing, the auxiliary method /ecom/help/encrypt_by_jwk can be used.

  • In the production environment, the Merchant must perform encryption independently.

5. Encrypt Create Purchase Request Body

Endpoint: {{url}}/cipher/encrypt_by_jwk?message={{body_request}}

  • {{body_request}} must meet the mandatory input parameters for PURCHASE Step 1.

  • The decrypted server key (serverPublicKey) from Steps 1 and 2 is used to encrypt the purchase request body.

  • The response contains the encrypted request body: {{encryptJweT}}.

  • For testing, the auxiliary method /ecom/help/encrypt_by_jwk is available.

6. Create Purchase Request

Endpoint: {{url}}/ecom/execute_request/payments/v3/create/purchase

  • The request sends the encrypted request body ({{encryptJweT}}), generated in Step 5.

  • The response contains an encrypted response ({{responseJwe}}), required for Step 7.

7. Decrypt Create Purchase Response

Endpoint: {{url}}/cipher/decrypt_by_jwk?message={{responseJwe}}

  • This request decrypts the bank’s response using the private key (userPrivateKey).

  • The Merchant generates this key following the instructions in the "Client Communication JWK Key Generation Process."

  • The response contains the decrypted response body from Step 6.

8. Encrypt Execute Purchase Request Body

Endpoint: {{url}}/cipher/encrypt_by_jwk?message={{body_request}}

  • {{body_request}} must meet the mandatory input parameters for PURCHASE Step 2.

  • The decrypted server key (serverPublicKey) from Steps 1 and 2 is used to encrypt the purchase execution request body.

  • The response contains the encrypted request body: {{encryptJweT}}.

  • For testing, the auxiliary method /ecom/help/encrypt_by_jwk is available.

9. Execute Purchase Request

Endpoint: {{url}}/ecom/execute_request/payments/v1/execute/purchase

  • The request sends the encrypted request body ({{encryptJweT}}), generated in Step 8.

  • The response contains an encrypted response ({{responseJwe}}), required for Step 10.

10. Decrypt Execute Purchase Response

Endpoint: {{url}}/cipher/decrypt_by_jwk?message={{responseJwe}}

  • This request decrypts the bank’s response using the private key (userPrivateKey).

  • The Merchant generates this key following the instructions in the "Client Communication JWK Key Generation Process."

  • The response contains the decrypted response body from Step 9.

  • For testing, the auxiliary method /ecom/help/encrypt_by_jwk can be used.

Last updated