---
title: "Register Payment Method"
method: POST
path: "/register-payment-method"
---

# Register Payment Method

`POST /register-payment-method`

## Request

- Base URL: `https://secure.vend-o.com/api/gateway`
- URL: `https://secure.vend-o.com/api/gateway/register-payment-method`
- Auth: none required

This endpoint allows you to register a credit card payment with a 0 amount authorization.

## Request body

- object
  - `api_secret` string, required: This is the credential that Vendo will use to authenticate your request
  - `is_test` integer: Set to 1 if you want to process a test transaction. Check Appendix A for test card details.
  - `merchant_id` integer, required: Your Vendo Merchant ID. This will be provided by your account manager
  - `site_id` integer, required: The Vendo Site ID for which you're processing the transaction.
  - `currency` string, required: The 3-letter currency code of the amount to be charged. [Currencies](doc:data-types#currency-codes)
  - `external_references` object, required: This parameter has the following 4 child elements. All these values are pass-thru values, meaning that we'll post them back to you.
    - `transaction_reference` string, required: REQUIRED. A transaction reference that you can use to identify payments for specific users
    - `program_id` string: This is an extra parameter that you can use to track transactions for specific program IDs if you run multiple programs. This is specific for some e-commerce markets, it's an optional parameter
    - `campaign_id` string: This is an extra parameter that you can use to track transactions for specific Campaign IDs if you run multiple Marketing Campaigns. This is specific for some e-commerce markets, it's an optional parameter
    - `affiliate_id` string: This is an extra parameter that you can use to track transactions for specific Affiliate IDs if you run an affiliation program. This is specific for some e-commerce markets, it's an optional parameter
  - `payment_details` object, required: There are different possible sets of child elements depending on the payment_type: card, [sepa](doc:sepa), pix, crypto or tokenized.
    - `payment_method` string, required: REQUIRED for non-tokenized transactions. Supported values: card|[sepa](doc:sepa)|pix|[oxxo](doc:oxxo)|crypto|[paybybank](doc:pay-by-bank). Not used for Tokenized payments. Automatic rebills are not supported for some payment methods, f.ex. PIX, Pay by Bank, Crypto.
    - `card_number` string, required: REQUIRED for Card payments only. The credit/debit card number. For test transactions please check Appendix A to get the card details that you must use.
    - `expiration_month` string, required: REQUIRED for Card payments only. The expiration month of the card. Example: 09
    - `expiration_year` string, required: REQUIRED for Card payments only. The expiration year of the card. Example: 2025
    - `cvv` string: The CVV number. We accept 3 or 4 characters only. If you pass in the trace_id then you can't specify the CVV.
    - `name_on_card` string, required: REQUIRED for Card payments only. The name that is printed in the credit/debit card
    - `iban` string, required: REQUIRED for Sepa payments only. The International Bank Number.
    - `bic_swift` string: Optional for Sepa payments. The SWIFT Code of the bank. Not required for EU bank accounts.
    - `mandate` object: Optional for Sepa payments. Mandate reference collected on merchant side.
      - `reference` string, required: Unique identifier mandate reference
    - `token` string, required: REQUIRED for tokenized payments only. Tokenized payment details from the previous request.
    - `verification_id` integer: Use verification_id to reference verification of the payment method. Optional
    - `trace_id` string: Optional for Card payments only. This parameter allows you to reference a previous transaction processed through a card scheme (e.g., Visa, MasterCard).
    - `three_ds` object: A set of authentication 3DS parmeters
      - `version` string, required: 3DS version, example: 2.2.0
      - `ds_transactiond_id` string, required: Example: 0902482e-9e4a-5c41-8000-00000e2dce0b
      - `cavv` string, required: cavv, base 64 encoded string. example: jO7WU8G1ZGPhCBEChBQbAigAAAA=
      - `eci` string, required: eci. example: "02"
      - `xid` string, required: xid, base 64 encoded string. example: MjQwNjAzMDQyLTY3YjM1ZmY4YjQ=
      - `enrollment_status` string, required: Example: "Y"
    - `data` object: Used for wallet, Google Pay payments
      - `token` string, required: A valid encrypted token received from Google
  - `customer_details` object, required: REQUIRED for non-tokenized transactions. This node is not allowed for token transactions. This parameter contains the following 10 child elements. Not all of them are mandatory. This element contains the user's personal details.
    - `first_name` string, required: REQUIRED. The user's first name
    - `last_name` string, required: REQUIRED. The user's last name
    - `language` string, required: REQUIRED. The user's language. You must pass a valid ISO-639-1 string. e.g. en, es, de, nl, pt
    - `address` string: The user's address
    - `city` string: The user's city name
    - `state` string: The user's state or country region. eg. FL, CA. (Value can have up to 3 characters)
    - `country` string, required: REQUIRED. The user's country. You must pass a valid ISO 3166-1 alpha-2 Country Code string e.g. US, ES, DE, GB. For PIX must be BR. For Pay by Bank check the [available countries](doc:pay-by-bank#availability-by-country).
    - `postal_code` string: The user's postal code
    - `email` string, required: REQUIRED. The user's email address
    - `phone` string: The user's phone number
    - `national_identifier` string: REQUIRED for PIX payments only. A customer identifier required in some jurisdictions like personal or tax identifier (e.g. CPF in Brazil). When sending CPF, remove all special characters and only send digits.
  - `request_details` object, required: This parameter contains 2 child elements. Not all of them are mandatory.
    - `ip_address` string, required: REQUIRED. The user's ip address.
    - `browser_user_agent` string: The user agent of the user's browser

## Response `200`

200

- object
  - `status` integer
  - `external_references` object
    - `transaction_reference` string
    - `program_id` string
    - `campaign_id` string
    - `affiliate_id` string
  - `transaction` object
    - `id` integer
    - `amount` string
    - `currency` string
    - `datetime` string
  - `card_details` object
    - `auth_code` string
  - `payment_details_token` string
  - `request_id` string

## Other responses

- `201`: 201
- `400`: 400

## Changes

- **2026-11-03** `ab4e06fada96`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/vendoservices/apis/s2s-api/changes/register-payment-method/post.md)

---

[API](https://skmtc.dev/vendoservices/apis/s2s-api.md) - [All operations](https://skmtc.dev/vendoservices/apis/s2s-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vendoservices/apis/s2s-api/revisions/ab4e06fada96?raw)
