Follow the question structure recommended by Dev Bot before submitting your integration questions.
π The EVO permission that grants access to this endpoint is Vendas - EdiΓ§Γ£o.
NOTE. Available for use with both Branch Access Keys and General Admin Access Keys.
π§ Attention! totalInstallmentsin thecardDataobject is valid only for payment type 1 (Credit Card).Include the culturefield in the request Header with the valuept-BR. This parameter tells the API that responses must be returned in Brazilian Portuguese, ensuring that texts such as messages, descriptions, and statuses are returned in pt-BR.
curl --location --request POST 'https://evo-integracao-api.w12app.com.br/api/v2/sales' \
--header 'Content-Type: application/json-patch+json' \
--header 'Authorization: Basic Og==' \
--header 'culture: pt-BR' \ πππ
--data-raw '{
"idBranch": 0,
"idBranchToken": "string",
"idMembership": 0,
...
}'| Parameter | Type | Required | Description |
|---|---|---|---|
idBranch | int32 | No | Identifier of the branch where the sale was made. If the system is multi-location, provide the ID of the specific branch. Otherwise, the value generated by the token will be used. |
idBranchToken | string | No | Branch token, used to identify the location when the system is multi-location. |
idMembership | int32 | No | Identifier of the acquired membership, when applicable. |
membershipValue | double | No | Final value of the membership. |
additionalMemberships | arrayobject | No | List of optional add-on memberships to be sold. See below. |
idService | int32 | No | Identifier of the purchased service or experimental class. |
serviceValue | double | No | Final value of the service. |
idProduct | int32 | No | ID of the product related to the sale. |
productValue | double | No | Value of the product related to the sale. |
productAmount | int32 | No | Quantity of the product related to the sale. |
memberData | object | Yes | Member data, if the customer is already a member. Contains the idMember field. |
cardData | object | No | Credit card data, if the transaction is made by card. |
idProspect | int32 | No | Identifier of the prospect purchasing the service. |
idProspectToken | string | No | Prospect token, used to validate the transaction and ensure that the prospect is converted into a member after the purchase. |
idMemberToken | string | No | Member token, if the customer is already registered. |
voucher | string | No | Discount voucher code, if the customer uses one to obtain a discount. |
idVoucherToken | int32 | No | Discount voucher token, when applicable. |
idCardMember | int32 | No | Member card identifier, when applicable. |
idMemberCardToken | string | No | Member card token, when applicable. |
membershipStart | string | No | Contract / membership start date. |
totalInstallments | int32 | Yes | Number of installments for installment payments. For a single payment, it will be 0 or 1. |
payment | int32 | Yes | Payment type: 5 for zero-value transactions, such as experimental classes, and 6 for single payments. |
sessionId | string | No | Session identifier, used to track the transaction during the sale process. |
paymentData | object | No | Payment data accepted when the payment type is external payment = 16 or 17. |
additionalMemberships Object Structure| Parameter | Type | Required | Description |
|---|---|---|---|
idMembership | int32 | Yes | ID of the optional add-on membership to be sold. The add-on must already be linked as Optional to the main membership. |
membershipValue | number (double) | No | Final value of the add-on membership provided by the integration. When provided, it overrides the default value defined by EVO and is not multiplied by the membership duration again. When omitted, EVO uses the default sale value applicable to the link. |
π§ NOTE The additionalMembershipsfield allows one or more optional add-on memberships to be provided in the same operation.Only add-on memberships previously linked as Optionalto the main membership can be provided.Add-on memberships of type Fixedmust not be sent by the integration, as they are automatically included when the main membership is sold.When membershipValueis not provided, EVO uses the default sale value of the link, according to the membership configuration and thedefaultSaleValuefield returned by theGET /api/v3/membershipendpoint.When membershipValueis provided, the value is considered final for the add-on and is not multiplied by the membership duration again.When additionalMembershipsis not provided or is sent empty, only the main membership and itsFixedadd-ons will be sold.Optionaladd-ons are never included automatically.
memberData Object Structure| Parameter | Type | Required | Description |
|---|---|---|---|
idMember | int32 | Yes | Unique member identifier. |
document | string | No | Member identification document, such as CPF or CNPJ. |
zipCode | string | No | Postal code (ZIP code) of the member's address. |
address | string | No | Member's address. |
number | string | No | Member's address number. |
complement | string | No | Address complement, such as apartment or block. |
neighborhood | string | No | Member's neighborhood. |
city | string | No | Member's city. |
idState | int32 | No | Identifier of the state where the member resides. |
cardData Object Structure| Parameter | Type | Required | Description |
|---|---|---|---|
token | string | No | Unique identifier for the card. |
temporaryToken | string | No | Temporary token associated with the card, when applicable. |
branchToken | string | No | Branch token used to identify a location when the system is multi-location. |
totalInstallments | int32 | No | Total number of installments for the payment, applicable to installment transactions. |
truncatedCardNumber | string | No | Truncated card number, showing only the last 4 actual digits for security. (****1234) |
brand | string | No | Card brand (e.g., Visa, MasterCard, etc.). |
cardHolderName | string | No | Cardholder name. |
cardExpirationYear | int32 | No | Card expiration year. |
cardExpirationMonth | int32 | No | Card expiration month. |
payment Enum| Code | Payment Type | Description |
|---|---|---|
| null | LinkCheckout | If the payment value is null, it is treated as LinkCheckout. |
1 | Credit Card | Payment made by credit card. (The card token must be generated using Evo Pay) |
2 | Boleto | Payment made by bank slip. |
3 | Sale Credits | Payment made using sales credits. |
4 | Transfer | Payment made by bank transfer. |
5 | ValorZerado | Used for zero-value transactions, such as experimental classes. |
6 | LinkCheckout | Payment made through a checkout link (externally generated). |
7 | Pix | Payment made through Pix. |
13 | TransferΓͺncia | Payment made by bank transfer. |
14 | Cash | Payment made in cash. |
15 | GiftCard | Payment made by gift card. |
16 | ExternalCreditCard | Payment made by external credit card. |
17 | ExternalDebitCard | Payment made by external debit card. |
paymentData Object Structure| Parameter | Type | Required | Description |
|---|---|---|---|
tid | string | No | Transaction identifier. |
nsu | string | No | Transaction NSU. |
authorization | string | No | Authorization code. |
brand | string | No | Card brand (e.g., Visa, MasterCard, etc.). |
acquirer | string | No | Acquirer responsible for the transaction. |
idMembership identifies the first add-on membership and the additionalMemberships field can be used to provide the other add-ons in the same operation.{
"idBranch": 1,
"idMembership": 200,
"membershipValue": 45.00,
"memberData": {
"idMember": 123
},
"payment": 14,
"additionalMemberships": [
{
"idMembership": 201,
"membershipValue": 30.00
}
]
}π§ NOTE This operation is available only for members. Each add-on must have an eligible main membership that already belongs to the member. When different add-ons are eligible for different main memberships owned by the member, each add-on will be linked to its corresponding eligible main membership.