# Create order This endpoint allows to create orders in "automatic" (processing the transaction in a single stage) or "manual" (processing the transaction in stages that can be configured and executed incrementally) mode for payment transactions. In case of success, the request will return a response with status 201. **POST** `/v1/orders` ## Request parameters ### Header - `X-Idempotency-Key` (string, required) This feature allows you to safely retry requests without the risk of accidentally performing the same action more than once. This is useful for avoiding errors, such as creating two identical payments. To ensure that each request is unique, it's important to use an exclusive value in the header of your request. We suggest using a UUID V4 or random strings. The header accepts values between 1 and 64 characters. - `type` (string, optional) Order type, associated with the Mercado Pago solution for which it is created. For online card payments, the only possible value is "online". Possible enum values: - `online` Value associated with the creation of Orders for online payments. - `external_reference` (string, optional) It is an external reference of the order. It can be, for example, a hashcode from the Central Bank, functioning as an identifier of the transaction origin. This field must have a maximum of 150 characters and can only be numbers, letters, hyphens (-) and underscores (_). Special characters ([ ], (), '', @) are not allowed. Optional for card, Rapipago, and Pago Fácil payments. - `transactions` (object, optional) Contains information about the transactions associated with the order. It can contain only one transaction. Required when processing payment in "automatic" mode, optional in "manual" mode. If not sent in "manual" mode, it must be "null" (not an empty array). - `transactions.payments` (array, optional) Contains information about the payment order. Required when processing payment in "automatic" mode. Must not be present (or must be empty) when creating an order in "manual" mode, as transactions are added later via POST to the endpoint "/v1/orders/{order_id}/transactions". - `transactions.payments.amount` (string, optional) Transaction amount. If only one payment method is used, it must be equivalent to the amount entered in the "total_amount" field. If two are used, it is the sum between the two "amount" that must be equivalent to the "total_amount" value. The field can contain two decimal places or none. - `transactions.payments.payment_method` (object, optional) Information about the payment method. Access the endpoint "/v1/payment_methods" to check all available payment methods and get a list with the details of each one and their properties. The requirement of this parameter varies according to the need to send its attributes in the request. Depending on the payment method you are integrating, check below which of these attributes are required. - `transactions.payments.payment_method.id` (string, optional) Identifier of the payment method selected to make the payment. If it's a "card" payment, it will show the brand. Possible enum values: - `visa` "Visa credit" card. - `master` "Master credit" card. - `debmaster` "Master debit" card. - `debvisa` "Visa debit" card. - `rapipago` "Rapipago" payment. - `pagofacil` "Pago fácil" payment. - `transactions.payments.payment_method.type` (string, optional) Type of payment method selected to make the payment. Possible enum values: - `credit_card` Credit card. - `debit_card` Debit card. - `ticket` Cash payment. - `transactions.payments.payment_method.token` (string, optional) Token that identifies the card and contains its data securely. Only required for "card" payments. It has a minimum length of 32 characters, and a maximum length of 33. If you don't know how to generate it, go to the "card" payment configuration in the Checkout API documentation. - `transactions.payments.payment_method.installments` (integer, optional) Number of installments selected. - `transactions.payments.payment_method.statement_descriptor` (string, optional) Description that the payment will appear with in the card statement. Accepts up to 50 characters. - `transactions.payments.expiration_time` (string, optional) Transaction expiration date. Only applicable to Rapipago and Pago Fácil payments. The valid format of the attribute is ISO 8601 duration format, for example: "P3Y6M4DT12H30M5S" represents a duration of 3 years, 6 months, 4 days, 12 hours, 30 minutes, and 5 seconds. - `transactions.payments.date_of_expiration` (string, optional) Date and time of the expiration of the payment. If an "expiration_time" is not sent, this field adopts a default value that depends on the payment method. - `payer` (object, optional) Payer information. The requirement of this parameter varies according to the need to send its attributes in the request. Depending on the payment method you are integrating, check below which of these attributes are required. - `payer.email` (string, optional) Payer email. Required only for Rapipago and Pago Fácil payments. - `payer.entity_type` (string, optional) Type of payer's entity. Optional for card, Rapipago, and Pago Fácil payments. Possible enum values: - `individual` Payer is individual. - `association` Payer is an association. - `payer.first_name` (string, optional) Payer first name. - `payer.last_name` (string, optional) Payer last name. - `payer.identification` (object, optional) Payer's personal identification. This parameter and its required attributes are needed only for Rapipago and Pago Fácil payments. - `payer.identification.type` (string, optional) Payer's identification document type. Access the endpoint "/v1/identification_type" to check all available identification types by country and get a list with the details of each one and their properties. - `payer.identification.number` (string, optional) Payer's identification document number. - `payer.phone` (object, optional) Payer's phone information. This parameter and its attributes are optional for card, Rapipago, and Pago Fácil payments. - `payer.phone.area_code` (string, optional) Phone area code. - `payer.phone.number` (string, optional) Phone number. - `payer.address` (object, optional) Payer's address information. This parameter and its attributes are optional for card, Rapipago, and Pago Fácil payments. - `payer.address.zip_code` (string, optional) Payer's address zip code. - `payer.address.street_name` (string, optional) Payer's address street name. - `payer.address.street_number` (string, optional) Payer address street number. - `payer.address.state` (string, optional) Payer's address state. Can contain up to 50 characters. - `payer.address.city` (string, optional) Payer's address city. - `payer.address.complement` (string, optional) Payer's address complement. - `shipment` (object, optional) Shipping information. This parameter and its attributes are optional for card, Rapipago, and Pago Fácil payments. - `shipment.address` (object, optional) Shipping address information. - `shipment.address.zip_code` (string, optional) Shipping address zip code. - `shipment.address.street_name` (string, optional) Shipping address street name. - `shipment.address.street_number` (string, optional) Shipping address street number. - `shipment.address.city` (string, optional) Shipping address city. - `shipment.address.state` (string, optional) Shipping address state. Can contain up to 50 characters. - `shipment.address.complement` (string, optional) Shipping address complement. - `total_amount` (string, optional) Total amount to be paid. The field can contain two decimal places or none. - `capture_mode` (string, optional) Order capture mode. Possible enum values: - `manual` Order's capture will be made manually. It allows the reservation of the transaction value in the payer's card, so the capture can be made afterwards, by using the 'Capture order' ("/v1/orders/{order_id}/capture") endpoint. - `automatic` Order's capture will be made automatically. Authorize and capture values at the same time. - `automatic_async` The order can be processed asynchronously. The order may remain in "status=processing" awaiting asynchronous update and the final status will be updated later through webhooks or queries. - `processing_mode` (string, optional) Order processing mode Possible enum values: - `manual` Order's processing will be made manually. It is the processing mode used for the "manual" option, as it sets the processing to be made afterwards, by using the 'Process order by ID' ("/v1/orders/{order_id}/process") endpoint. - `automatic` Order's processing will be made instantly. It is the capture mode used for the "automatic" option. - `description` (string, optional) Description of the purchased product or service, the reason for the payment order, or the description of a product in the marketplace. - `integration_data` (object, optional) Additional information that can be used to integrate with other systems, such as the identifier of the order in the integrator's system. - `integration_data.integrator_id` (string, optional) Identifier of the integrator in Mercado Pago. It is the unique identifier of the integrator in Mercado Pago's systems. - `integration_data.platform_id` (string, optional) Identifier of the platform in Mercado Pago. It is the unique identifier of the platform in Mercado Pago's systems. - `integration_data.corporation_id` (string, optional) Identifier of the corporation in Mercado Pago. It is the unique identifier of the corporation in Mercado Pago's systems. - `integration_data.sponsor` (object, optional) Identifier of the sponsor in Mercado Pago. It is the unique identifier of the sponsor in Mercado Pago's systems. - `integration_data.sponsor.id` (string, optional) Identifier of the sponsor in Mercado Pago. It is the unique identifier of the sponsor in Mercado Pago's systems. - `items` (array, optional) Information about the list of items to be paid. - `items[].title` (string, optional) Item name. The character limit is 150. - `items[].unit_price` (string, optional) Unit price of the purchased item. - `items[].quantity` (Integer, optional) Purchased items quantity. - `items[].description` (string, optional) Purchased item description. The character limit is 100. - `items[].external_code` (string, optional) Item External code. - `items[].picture_url` (string, optional) Image URL corresponding to the item. - `items[].category_id` (string, optional) Item category ID. - `items[].type` (string, optional) Item type. - `items[].warranty` (boolean, optional) If the item has a warranty. - `items[].event_date` (string, optional) Event date. - `config` (object, optional) This object allows you to configure specific settings for the order, such as security settings for online transactions with cards using the 3DS (3D Secure) authentication protocol. - `config.online` (object, optional) This object contains settings that apply only to online transactions with cards. Use this configuration to indicate when 3DS (3D Secure) authentication should be triggered in case of fraud risk and to define financial liability in case of disputes. - `config.online.transaction_security` (object, optional) Transaction security configuration for 3DS (3D Secure). After creating the order, the response will indicate if the challenge is required. If not required, the "status" field will have the value "processed", allowing you to continue normally with the application flow. If the challenge is required, the order will be returned with "status=action_required", "status_detail=pending_challenge" and the challenge URL will be available in the "url" field. The challenge must be displayed in an iframe using the URL returned, allowing the buyer to complete authentication without leaving the checkout flow. The buyer has 40 minutes to complete the challenge from when the URL is created. If not completed within this period, the bank will reject the transaction and Mercado Pago will consider the payment expired. - `config.online.transaction_security.validation` (string, optional) Defines when the 3DS (3D Secure) flow should be executed. Possible enum values: - `on_fraud_risk` 3DS (3D Secure) is required according to transaction risk. Recommended to balance security and transaction approval. - `never` The 3DS (3D Secure) flow and challenge are never executed. This is the default value if the field is not sent. - `config.online.transaction_security.liability_shift` (string, optional) Defines the financial responsibility in case of dispute. Should not be sent when "validation" is "never". Possible enum values: - `required` The financial responsibility in case of dispute is of the card brand. This is the only value accepted for 3DS (3D Secure). - `config.online.callback_url` (string, optional) ## Response parameters - `id` (string, optional) Identifier of the order created in the request, automatically generated by Mercado Pago. - `type` (string, optional) Order type, associated with the Mercado Pago solution for which it is created. For online card payments, the only possible value is "online". Possible enum values: - `online` Value associated with the creation of Orders for online payments. - `processing_mode` (string, optional) Order processing mode Possible enum values: - `manual` Order's processing will be made manually. It is the processing mode used for the "manual" option, as it sets the processing to be made afterwards, by using the 'Process order by ID' ("/v1/orders/{order_id}/process") endpoint. - `automatic` Order's processing will be made instantly. It is the capture mode used for the "automatic" option. - `external_reference` (string, optional) It is an external reference of the order. It can be, for example, a hashcode from the Central Bank, functioning as an identifier of the transaction origin. This field must have a maximum of 150 characters and can only be numbers, letters, hyphens (-) and underscores (_). Special characters ([ ], (), '', @) are not allowed. Optional for card, Rapipago, and Pago Fácil payments. - `total_amount` (string, optional) Total amount to be paid. - `total_paid_amount` (string, optional) Total amount to be paid, represents the sum of all the transaction's "paid_amount" values. - `integration_data` (object, optional) Additional information that can be used to integrate with other systems, such as the identifier of the order in the integrator's system. - `integration_data.application_id` (string, optional) Identifier of the Mercado Pago application that created the order. - `integration_data.integrator_id` (string, optional) Identifier of the integrator in Mercado Pago. It is the unique identifier of the integrator in Mercado Pago's systems. - `integration_data.platform_id` (string, optional) Identifier of the platform in Mercado Pago. It is the unique identifier of the platform in Mercado Pago's systems. - `integration_data.corporation_id` (string, optional) Identifier of the corporation in Mercado Pago. It is the unique identifier of the corporation in Mercado Pago's systems. - `integration_data.sponsor` (object, optional) Identifier of the sponsor in Mercado Pago. It is the unique identifier of the sponsor in Mercado Pago's systems. - `integration_data.sponsor.id` (string, optional) Identifier of the sponsor in Mercado Pago. It is the unique identifier of the sponsor in Mercado Pago's systems. - `created_date` (string, optional) Order's creation date, in "yyyy-MM-ddTHH:mm:ss.sssZ" format. - `last_updated_date` (string, optional) Order's las update date, in "yyyy-MM-ddTHH:mm:ss.sssZ" format. - `country_code` (string, optional) Identifier of the site (country) to which the Mercado Pago application that created the order belongs. - `status` (string, optional) Current status of the order. Possible enum values: - `created` The order has been created successfully. - `processed` All transactions have been succesfully processed. - `action_required` Integrator action is required to complete processing. For example, the capture of an authorized payment. - `processing` The order is being processed and does not require any action from the integrator. For example, the payment may be pending manual review. This status may also be returned in the case of asynchronous payment creation. - `cancelled` The order has been canceled and will not be processed further. - `status_detail` (string, optional) Details about payment status. Possible enum values: - `created` The order has been created successfully. - `accredited` Payment accredited. - `in_process` The payment is being processed. - `in_review` The payment is being reviewed. - `waiting_payment` The order is waiting for payment. - `waiting_capture` In cases of "status=action_required", integrator action is required to complete processing. This "status_detail" indicates that the capture of an authorized payment is needed. - `waiting_transfer` The order is waiting for the transfer of funds. - `capture_mode` (string, optional) Order capture mode. Possible enum values: - `manual` Order's capture will be made manually. It allows the reservation of the transaction value in the payer's card, so the capture can be made afterwards, by using the 'Capture order' ("/v1/orders/{order_id}/capture") endpoint. - `automatic` Order's capture will be made automatically. Authorize and capture values at the same time. - `automatic_async` The order can be processed asynchronously. The order may remain in "status=processing" awaiting asynchronous update and the final status will be updated later through webhooks or queries. - `shipment` (object, optional) Shipping information. This parameter and its attributes are optional for card, Rapipago, and Pago Fácil payments. - `shipment.address` (object, optional) Shipping address information. - `shipment.address.zip_code` (string, optional) Shipping address zip code. - `shipment.address.street_name` (string, optional) Shipping address street name. - `shipment.address.street_number` (string, optional) Shipping address street number. - `shipment.address.city` (string, optional) Shipping address city. - `shipment.address.state` (string, optional) Shipping address state. Can contain up to 50 characters. - `shipment.address.complement` (string, optional) Shipping address complement. - `transactions` (object, optional) Contains information about the transactions associated with the order. - `transactions.payments` (array, optional) Contains information about the payment associated with the order. - `transactions.payments[].id` (string, optional) Identifier of the payment transaction created in the request, automatically generated by Mercado Pago. - `transactions.payments[].amount` (string, optional) Payment amount. - `transactions.payments[].paid_amount` (string, optional) Transaction paid amount. Represents the real amount paid including discounts or tips. - `transactions.payments[].reference_id` (string, optional) Reference ID of the transaction. - `transactions.payments[].status` (string, optional) Payment status. Possible enum values: - `created` The transaction has been created successfully. - `processed` All transactions have been succesfully processed. - `action_required` Integrator action is required to complete processing. For example, the capture of an authorized payment. - `processing` The transaction is being processed and does not require any action from the integrator. For example, the payment may be pending manual review. - `transactions.payments[].status_detail` (string, optional) Details about payment status. Possible enum values: - `accredited` Payment accredited. - `waiting_capture` In cases of "status=action_required", integrator action is required to complete processing. This "status_detail" indicates that the capture of an authorized payment is needed. - `created` The transaction has been created successfully. - `pending_review_manual` The payment is pending manual review. - `in_process` The payment is being processed. - `transactions.payments[].expiration_time` (string, optional) Transaction expiration date. - `transactions.payments[].payment_method` (object, optional) Information about the payment method. Access the endpoint "/v1/payment_methods" to check all available payment methods and get a list with the details of each one and their properties. - `transactions.payments[].payment_method.id` (string, optional) Identifier of the payment method selected to make the payment. If it's a "card" payment, it will show the brand. - `transactions.payments[].payment_method.type` (string, optional) Type of payment method selected to make the payment. - `transactions.payments[].payment_method.token` (string, optional) It is a mandatory field for "card" payments, as it is the token that identifies the card and contains its data securely. It has a minimum length of 32 characters, and a maximum length of 33. If you don't know how to generate it, go to the "card" payment configuration in the Checkout API documentation. - `transactions.payments[].payment_method.installments` (integer, optional) Number of installments selected. - `transactions.payments[].payment_method.statement_descriptor` (string, optional) Description that the payment will appear with in the card statement. Accepts maximum of 50 characters. - `transactions.payments[].payment_method.ticket_url` (string, optional) Ticket URL. It is returned for payment methods such as Rapipago and Pago fácil. - `transactions.payments[].payment_method.barcode_content` (string, optional) Barcode content. It is returned for payment methods such as Rapipago and Pago fácil. - `transactions.payments[].payment_method.reference` (string, optional) Reference number. It is returned for payment methods such as Rapipago and Pago fácil. - `transactions.payments[].payment_method.verification_code` (string, optional) Verification code. It is returned for payment methods such as Rapipago and Pago fácil. - `transactions.payments[].payment_method.transaction_security` (object, optional) Transaction security configuration for 3DS (3D Secure), an authentication protocol used in online transactions with card. After creating the order, the response will indicate if the challenge is required. If not required, the "status" field will have the value "processed", allowing you to continue normally with the application flow. If the challenge is required, the order will be returned with "status=action_required", "status_detail=pending_challenge" and the challenge URL will be available in the "url" field. The challenge must be displayed in an iframe using the URL returned, allowing the buyer to complete authentication without leaving the checkout flow. The buyer has 40 minutes to complete the challenge from when the URL is created. If not completed within this period, the bank will reject the transaction and Mercado Pago will consider the payment expired. - `transactions.payments[].payment_method.transaction_security.validation` (string, optional) Defines when the 3DS (3D Secure) flow should be executed. Possible enum values: - `on_fraud_risk` 3DS (3D Secure) is required according to transaction risk. Recommended to balance security and transaction approval. - `never` The 3DS (3D Secure) flow and challenge are never executed. This is the default value if the field is not sent. - `transactions.payments[].payment_method.transaction_security.liability_shift` (string, optional) Defines the financial responsibility in case of dispute. Should not be sent when "validation" is "never". Possible enum values: - `required` The financial responsibility in case of dispute is of the card brand. This is the only value accepted for 3DS (3D Secure). - `transactions.payments[].payment_method.transaction_security.url` (string, optional) URL of the challenge displayed after creating an order returned with "status=action_required" and "status_detail=pending_challenge". The challenge must be displayed in an iframe using the returned URL, allowing the buyer to complete authentication without leaving the checkout flow. The buyer has 40 minutes to complete the challenge from when the URL is created. If not completed within this period, the bank will reject the transaction and Mercado Pago will consider the payment expired. - `transactions.payments[].payment_method.transaction_security.id` (string, optional) ID of the challenge of the 3DS (3D Secure) security protocol. - `transactions.payments[].payment_method.transaction_security.type` (string, optional) Type of challenge. In the case of 3DS (3D Secure), the only possible value is "three_ds". - `transactions.payments[].payment_method.transaction_security.status` (string, optional) Status of the challenge in the 3DS (3D Secure) security protocol. Possible enum values: - `AUTHENTICATED` Authentication performed by the responsible bank and forwarded to card brand validation. - `NOT_AUTHENTICATED` The challenge was not performed correctly or the responsible bank did not authorize the transaction due to some possible risk. - `CHALLENGE` The bank requested a challenge from the buyer and it has not yet been completed. - `ATTEMPTED` Authentication performed by the card brand. - `REJECTED` The responsible bank rejected the authentication due to some possible risk and also denied the possibility of challenge. - `ERROR` Missing some information required for 3DS authentication. Example: the "device_id" field was not filled. - `transactions.payments[].date_of_expiration` (string, optional) Date and time of the expiration of the payment. It is returned in the response to the 'Create order' ("/v1/orders") request. If an "expiration_time" is not sent, this field adopts a default value that depends on the payment method. - `description` (string, optional) Description of the purchased product or service , the reason for the payment order, or the description of a product in the marketplace. - `items` (array, optional) Information about the list of items to be paid. - `items[].title` (string, optional) Item name. The character limit is 150. - `items[].unit_price` (string, optional) Unit price of the purchased item. - `items[].quantity` (Integer, optional) Purchased items quantity. - `items[].description` (string, optional) Purchased item description. The character limit is 100. - `items[].external_code` (string, optional) Item External code. - `items[].picture_url` (string, optional) Image URL corresponding to the item. - `items[].category_id` (string, optional) Item category ID. - `items[].type` (string, optional) Item type. - `items[].warranty` (boolean, optional) If the item has a warranty. - `items[].event_date` (string, optional) Event date. - `client_token` (string, optional) Authentication token to execute operations on the client side. - `config` (object, optional) Specific settings configured for the order. - `config.online` (object, optional) Settings that apply only to online transactions with cards. ## Errors | Status | Error | Description | | ------- | ------- | ----------- | | 400 | empty_required_header | The "X-Idempotency-Key" header is required and was not sent. Make the requisition again including it. | | 400 | invalid_idempotency_key_length | The value sent in the "X-Idempotency-Key" header exceeded the allowed size. The header accepts values between 1 and 150 characters. | | 400 | required_properties | There are some required properties missing. Check the message returned in the error details to find out what the problem was and try again. | | 400 | unsupported_properties | An unsupported property was sent. Check the message returned in the error details to find out what the problem was and try again. | | 400 | minimum_properties | The minimum number of properties required to execute the request was not sent. Check the message returned in the error details to find out what the problem was and try again. | | 400 | property_type | The wrong property type was submitted. For example, an "integer" value for a "string" property. Check the message returned in the error details to find out what the problem was and try again. | | 400 | minimum_items | The minimum number of items for some property was not sent. Check the message returned in the error details to find out what the problem was and try again. | | 400 | maximum_items | A greater number of items were sent than allowed for some property. Check the message returned in the error details to find out what the problem was and try again. | | 400 | property_value | An incorrect value for some property was sent. Check the message returned in the error details to find out what the problem was and try again. | | 400 | json_syntax_error | An incorrect JSON was sent. Check the message returned in the error details to find out what the problem was and try again. | | 400 | invalid_properties | Incorrect information was sent. Check the message returned in the error details to find out what the problem was and try again. | | 400 | invalid_total_amount | The value entered in "total_amount" is not equivalent to the sum of the "transactions.payments.amount" field of the total transactions. Please verify if the values ​​are correct. | | 400 | invalid_email_for_sandbox | Email format is invalid for sandbox environment, must contains "@testuser.com". | | 400 | order_invalid_sponsor_id | Order sponsor id is invalid. Make sure the ID is correct. | | 400 | invalid_header_value | Caller id ("caller_id") not found. Make sure the ID is correct. | | 400 | order_builder_without_transactions | The "transactions" node of the order created in "manual" mode cannot be an empty array. Send it with the value "null" to try again. | | 400 | invalid_order_type | The order type provided is invalid or not supported. Expected one of: "online". | | 401 | 401 | The value sent as Access Token is incorrect. Please check and try again with the correct value. | | 401 | invalid_credentials | There is no support for test credentials. Use test users with production credentials for the sandbox environment and your production credentials for the production environment. | | 402 | 402 | Order was created but some transaction failed. Check the "errors" field for more information. | | 409 | idempotency_key_already_used | The value sent as the idempotency header ("X-Idempotency-Key") has already been used. Please try the request again sending a new value. | | 423 | resource_locked | Idempotency Key Locked. Please retry after some time. | | 500 | idempotency_validation_failed | Validation fail. Please try submitting the request again. | | 500 | internal_error | Generic error. Please try submitting the request again. | ## Request example ### cURL ```bash curl -X POST \ 'https://api.mercadopago.com/v1/orders' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "type": "online", "external_reference": "ext_ref_1234", "transactions": { "payments": { "amount": "50.00", "payment_method": { "id": "master", "type": "credit_card", "token": "12345", "installments": 1, "statement_descriptor": "My Store" }, "expiration_time": "P3Y6M4DT12H30M5S", "date_of_expiration": "2023-03-01T10:00:00.000-04:00" } }, "payer": { "email": "test@testuser.com", "entity_type": "individual", "first_name": "María", "last_name": "González", "identification": { "type": "DNI", "number": "12345678" }, "phone": { "area_code": "11", "number": "2323-5555" }, "address": { "zip_code": "C1264AAK", "street_name": "Rua Teste", "street_number": "3039", "state": "CABA", "city": "Buenos Aires", "complement": "Apto 303" } }, "shipment": { "address": { "zip_code": "C1264AAK", "street_name": "Rua Teste", "street_number": "3039", "city": "Buenos Aires", "state": "CABA", "complement": "Apto 303" } }, "total_amount": "50.00", "capture_mode": "automatic", "processing_mode": "automatic", "description": "Smartphone", "integration_data": { "integrator_id": "dev_123", "platform_id": "1234567890", "corporation_id": "string", "sponsor": { "id": "446566691" } }, "items": [ { "title": "Smartphone", "unit_price": "24.50", "quantity": 4, "description": "Smartphone", "external_code": "1234", "picture_url": "https://http2.mlstatic.com/resources/frontend/statics/growth-sellers-landings/device-mlb-point-i_medium2x.png", "category_id": "MLB1055", "type": "MLB1055", "warranty": "true", "event_date": "2014-06-28T16:53:03.176-04:00" } ], "config": { "online": { "transaction_security": { "validation": "on_fraud_risk", "liability_shift": "required" }, "callback_url": "string" } } }' ``` ## Response example ```json { "id": "ORD01J49MMW3SSBK5PSV3DFR32959", "type": "online", "processing_mode": "automatic", "external_reference": "ext_ref_1234", "total_amount": "50.00", "total_paid_amount": "50.00", "integration_data": { "application_id": "1234", "integrator_id": "dev_123", "platform_id": "1234567890", "corporation_id": "string", "sponsor": { "id": "446566691" } }, "created_date": "2024-08-26T13:06:51.045317772Z", "last_updated_date": "2024-08-26T13:06:51.045317772Z", "country_code": "AR", "status": "processed", "status_detail": "accredited", "capture_mode": "automatic", "shipment": { "address": { "zip_code": "C1264AAK", "street_name": "Rua Teste", "street_number": "3039", "city": "Buenos Aires", "state": "CABA", "complement": "Apto 303" } }, "transactions": { "payments": [ { "id": "PAY01J67CQQH5904WDBVZEM4JMEP3", "amount": "24.50", "paid_amount": "50.00", "reference_id": "01JEVQM899NWSQC4FYWWW7KTF9", "status": "processed", "status_detail": "accredited", "expiration_time": "P3Y6M4DT12H30M5S", "payment_method": { "id": null, "type": null, "token": null, "installments": null, "statement_descriptor": null, "ticket_url": null, "barcode_content": null, "reference": null, "verification_code": null, "transaction_security": null }, "date_of_expiration": "2023-03-01T10:00:00.000-04:00" } ] }, "description": "Smartphone", "items": [ { "title": "Smartphone", "unit_price": "24.50", "quantity": 4, "description": "Smartphone", "external_code": "1234", "picture_url": "https://http2.mlstatic.com/resources/frontend/statics/growth-sellers-landings/device-mlb-point-i_medium2x.png", "category_id": "MLB1055", "type": "MLB1055", "warranty": "true", "event_date": "2014-06-28T16:53:03.176-04:00" } ], "client_token": "QWERTY12345.ASDFG67890", "config": { "online": {} } } ``` ## Use cases ### Create payment with credit card ```bash curl -X POST \ 'https://api.mercadopago.com/v1/orders' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "type": "online", "external_reference": "ext_ref_1234", "transactions": { "payments": { "amount": "24.50", "payment_method": { "id": "master", "type": "credit_card", "token": "1c87b6b301010101ddcd92f9bbbb3be2", "installments": 1 } } }, "payer": { "email": "test@testuser.com" }, "total_amount": "100.00", "processing_mode": "automatic" }' ``` ```json { "id": "ORDTST01KB0JDVXYPD6HPP2HSJDKH8FG", "type": "online", "processing_mode": "automatic", "external_reference": "ext_ref_1234", "total_amount": "100.00", "total_paid_amount": "100.00", "integration_data": { "application_id": "874202490101010", "corporation_id": "string" }, "created_date": "2025-11-26T17:12:25.791Z", "last_updated_date": "2025-11-26T17:12:27.093Z", "country_code": "AR", "status": "processed", "status_detail": "accredited", "capture_mode": "automatic_async", "transactions": { "payments": [ { "id": "PAY01KB0JDVXYPD6HPP2HSMJS11QN", "amount": "100.00", "paid_amount": "100.00", "reference_id": "00076jffff", "status": "processed", "status_detail": "accredited", "payment_method": { "id": null, "type": null, "token": null, "installments": null, "transaction_security": null } } ] }, "config": { "online": {} } } ``` ### Create payment with Pago Fácil ```bash curl -X POST \ 'https://api.mercadopago.com/v1/orders' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "type": "online", "external_reference": "ext_ref_1234", "transactions": { "payments": { "amount": "100.00", "payment_method": { "id": "pagofacil", "type": "ticket" } } }, "payer": { "email": "test@testuser.com", "identification": { "type": "DNI", "number": "12345678" } }, "total_amount": "100.00", "capture_mode": "automatic_async", "processing_mode": "automatic" }' ``` ```json { "id": "ORD01J6TC8BYRR0T4ZKY0QR39WGYE", "type": "online", "processing_mode": "automatic", "external_reference": "ext_ref_1234", "total_amount": "50.00", "total_paid_amount": "50.00", "integration_data": { "application_id": "8275829243271683", "corporation_id": "string" }, "created_date": "2025-11-25T21:30:28.736Z", "last_updated_date": "2025-11-25T21:30:29.985Z", "country_code": "AR", "status": "action_required", "status_detail": "waiting_payment", "capture_mode": "automatic_async", "transactions": { "payments": [ { "id": "PAY01KAYESN00DG63QAJ6A93XJAXH", "amount": "24.50", "reference_id": "00076axsfl", "status": "action_required", "status_detail": "waiting_payment", "payment_method": { "id": null, "type": null, "ticket_url": null, "barcode_content": null, "reference": null, "verification_code": null, "transaction_security": null }, "date_of_expiration": "2025-12-02T21:30:29.519+00:00" } ] }, "config": { "online": {} } } ``` ### Create payment with Rapipago ```bash curl -X POST \ 'https://api.mercadopago.com/v1/orders' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "type": "online", "external_reference": "ext_ref_1234", "transactions": { "payments": { "amount": "100.00", "payment_method": { "id": "rapipago", "type": "ticket" } } }, "payer": { "email": "test@testuser.com", "identification": { "type": "DNI", "number": "12345678" } }, "total_amount": "100.00", "capture_mode": "automatic_async", "processing_mode": "automatic" }' ``` ```json { "id": "ORDTST01KAYESN00DG63QAJ6A5VA3KFQ", "type": "online", "processing_mode": "automatic", "external_reference": "ext_ref_1234", "total_amount": "100.00", "total_paid_amount": "100.00", "integration_data": { "application_id": "8275829243271683", "corporation_id": "string" }, "created_date": "2025-11-25T21:30:28.736Z", "last_updated_date": "2025-11-25T21:30:29.985Z", "country_code": "AR", "status": "action_required", "status_detail": "waiting_payment", "capture_mode": "automatic_async", "transactions": { "payments": [ { "id": "PAY01KAYESN00DG63QAJ6A93XJAXH", "amount": "100.00", "reference_id": "00076axsfl", "status": "action_required", "status_detail": "waiting_payment", "payment_method": { "id": null, "type": null, "ticket_url": null, "barcode_content": null, "reference": null, "verification_code": null, "transaction_security": null }, "date_of_expiration": "2025-12-02T21:30:29.519+00:00" } ] }, "config": { "online": {} } } ``` ### Create payment with debit card ```bash curl -X POST \ 'https://api.mercadopago.com/v1/orders' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer ' \ -d '{ "type": "online", "external_reference": "ext_ref_123", "transactions": { "payments": { "amount": "100.00", "payment_method": { "id": "debmaster", "type": "debit_card", "token": "1c87b6b301010101ddcd92f9bbbb3be2", "installments": 1 } } }, "payer": { "email": "test@testuser.com" }, "total_amount": "50.00", "processing_mode": "automatic" }' ``` ```json { "id": "ORDTST01KB0JDVXYPD6HPP2HSJDKH8FG", "type": "online", "processing_mode": "automatic", "external_reference": "ext_ref_123", "total_amount": "100.00", "total_paid_amount": "100.00", "integration_data": { "application_id": "01010182923271683", "corporation_id": "string" }, "created_date": "2025-11-26T17:12:25.791Z", "last_updated_date": "2025-11-26T17:12:27.093Z", "country_code": "AR", "status": "processed", "status_detail": "accredited", "capture_mode": "automatic_async", "transactions": { "payments": [ { "id": "PAY01KB0JDVXYPD6HPP2HSMJS11QN", "amount": "100.00", "paid_amount": "100.00", "reference_id": "00076ggggg", "status": "processed", "status_detail": "accredited", "payment_method": { "id": null, "type": null, "token": null, "installments": null, "transaction_security": null } } ] }, "config": { "online": {} } } ```