Showing preview only (1,291K chars total). Download the full file or copy to clipboard to get everything.
Repository: mercadopago/sdk-java
Branch: master
Commit: 37c6a3be1db5
Files: 485
Total size: 1.1 MB
Directory structure:
gitextract_2_mobys_/
├── .code_quality/
│ └── checkstyle_rules.xml
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.yml
│ │ ├── config.yml
│ │ ├── feature_request.yml
│ │ └── question.yml
│ └── workflows/
│ ├── main.yml
│ ├── maven-publish-release.yml
│ └── maven-publish-snapshot.yml
├── .gitignore
├── .pre-commit-config.yaml
├── CODE_OF_CONDUCT.md
├── CODING_GUIDELINES.md
├── CONTRIBUTING.md
├── LICENSE
├── PULL_REQUEST_TEMPLATE.md
├── README.md
├── SUPPORT.md
├── build-gradle.sh
├── maven-central-deploy.sh
├── mp_ref_report.md
├── pom.xml
└── src/
├── main/
│ └── java/
│ └── com/
│ └── mercadopago/
│ ├── MercadoPagoConfig.java
│ ├── client/
│ │ ├── MercadoPagoClient.java
│ │ ├── cardtoken/
│ │ │ ├── CardTokenClient.java
│ │ │ └── CardTokenRequest.java
│ │ ├── common/
│ │ │ ├── AddressRequest.java
│ │ │ ├── IdentificationRequest.java
│ │ │ ├── InvoicePeriod.java
│ │ │ ├── PhoneRequest.java
│ │ │ ├── SubMerchant.java
│ │ │ └── SubscriptionSequence.java
│ │ ├── customer/
│ │ │ ├── CustomerAddressRequest.java
│ │ │ ├── CustomerCardClient.java
│ │ │ ├── CustomerCardCreateRequest.java
│ │ │ ├── CustomerClient.java
│ │ │ └── CustomerRequest.java
│ │ ├── identificationtype/
│ │ │ └── IdentificationTypeClient.java
│ │ ├── merchantorder/
│ │ │ ├── MerchantOrderClient.java
│ │ │ ├── MerchantOrderCreateRequest.java
│ │ │ ├── MerchantOrderItemRequest.java
│ │ │ ├── MerchantOrderPayerRequest.java
│ │ │ ├── MerchantOrderReceiverAddressCityRequest.java
│ │ │ ├── MerchantOrderReceiverAddressCountryRequest.java
│ │ │ ├── MerchantOrderReceiverAddressRequest.java
│ │ │ ├── MerchantOrderReceiverAddressStateRequest.java
│ │ │ ├── MerchantOrderShipmentRequest.java
│ │ │ ├── MerchantOrderShippingEstimatedDeliveryRequest.java
│ │ │ ├── MerchantOrderShippingOptionRequest.java
│ │ │ ├── MerchantOrderShippingSpeedRequest.java
│ │ │ └── MerchantOrderUpdateRequest.java
│ │ ├── oauth/
│ │ │ ├── CreateOauthCredentialRequest.java
│ │ │ ├── OauthClient.java
│ │ │ └── RefreshOauthCredentialRequest.java
│ │ ├── order/
│ │ │ ├── AdditionalInfoRequest.java
│ │ │ ├── OrderAutomaticPaymentsRequest.java
│ │ │ ├── OrderClient.java
│ │ │ ├── OrderConfigRequest.java
│ │ │ ├── OrderCreateRequest.java
│ │ │ ├── OrderDifferentialPricing.java
│ │ │ ├── OrderInvoicePeriodRequest.java
│ │ │ ├── OrderItemRequest.java
│ │ │ ├── OrderOnlineConfig.java
│ │ │ ├── OrderPayerAddressRequest.java
│ │ │ ├── OrderPayerRequest.java
│ │ │ ├── OrderPaymentMethodConfig.java
│ │ │ ├── OrderPaymentMethodRequest.java
│ │ │ ├── OrderPaymentRequest.java
│ │ │ ├── OrderPointConfig.java
│ │ │ ├── OrderReceiverAddressRequest.java
│ │ │ ├── OrderRefundPaymentRequest.java
│ │ │ ├── OrderRefundRequest.java
│ │ │ ├── OrderRouteRequest.java
│ │ │ ├── OrderShipmentRequest.java
│ │ │ ├── OrderStoredCredentialRequest.java
│ │ │ ├── OrderSubscriptionDataRequest.java
│ │ │ ├── OrderSubscriptionSequenceRequest.java
│ │ │ ├── OrderTransactionRequest.java
│ │ │ ├── OrderTransactionSecurity.java
│ │ │ ├── PassengerIdentification.java
│ │ │ ├── PayerInfo.java
│ │ │ ├── PlatformInfo.java
│ │ │ ├── PlatformShipment.java
│ │ │ ├── SellerAddress.java
│ │ │ ├── SellerIdentification.java
│ │ │ ├── SellerInfo.java
│ │ │ ├── SellerPhone.java
│ │ │ ├── ShipmentInfo.java
│ │ │ ├── TrackingInfo.java
│ │ │ ├── TravelInfo.java
│ │ │ ├── TravelPassengerRequest.java
│ │ │ └── TravelRouteRequest.java
│ │ ├── payment/
│ │ │ ├── PaymentAdditionalInfoBarcodeRequest.java
│ │ │ ├── PaymentAdditionalInfoPayerRequest.java
│ │ │ ├── PaymentAdditionalInfoRequest.java
│ │ │ ├── PaymentAmountsRequest.java
│ │ │ ├── PaymentAuthenticationRequest.java
│ │ │ ├── PaymentCancelRequest.java
│ │ │ ├── PaymentCaptureRequest.java
│ │ │ ├── PaymentCategoryDescriptorRequest.java
│ │ │ ├── PaymentClient.java
│ │ │ ├── PaymentCounterCurrencyRequest.java
│ │ │ ├── PaymentCreateRequest.java
│ │ │ ├── PaymentDataRequest.java
│ │ │ ├── PaymentDiscountRequest.java
│ │ │ ├── PaymentFeeRequest.java
│ │ │ ├── PaymentForwardDataRequest.java
│ │ │ ├── PaymentInvoicePeriodRequest.java
│ │ │ ├── PaymentItemRequest.java
│ │ │ ├── PaymentMerchantServicesRequest.java
│ │ │ ├── PaymentMethodRequest.java
│ │ │ ├── PaymentNetworkTransactionDataRequest.java
│ │ │ ├── PaymentOrderRequest.java
│ │ │ ├── PaymentPassengerRequest.java
│ │ │ ├── PaymentPayerAddressRequest.java
│ │ │ ├── PaymentPayerPhoneRequest.java
│ │ │ ├── PaymentPayerRequest.java
│ │ │ ├── PaymentPaymentReferenceRequest.java
│ │ │ ├── PaymentPointOfInteractionRequest.java
│ │ │ ├── PaymentReceiverAddressRequest.java
│ │ │ ├── PaymentRefundClient.java
│ │ │ ├── PaymentRefundCreateRequest.java
│ │ │ ├── PaymentRouteRequest.java
│ │ │ ├── PaymentRulesRequest.java
│ │ │ ├── PaymentShipmentsRequest.java
│ │ │ ├── PaymentSubscriptionSequenceRequest.java
│ │ │ ├── PaymentTaxRequest.java
│ │ │ ├── PaymentTransactionDataRequest.java
│ │ │ ├── PaymentTransactionDetailsRequest.java
│ │ │ └── PaymentUserAmountRequest.java
│ │ ├── paymentmethod/
│ │ │ └── PaymentMethodClient.java
│ │ ├── point/
│ │ │ ├── OperatingMode.java
│ │ │ ├── PointClient.java
│ │ │ ├── PointDeviceOperatingModeRequest.java
│ │ │ ├── PointPaymentIntentAdditionalInfoRequest.java
│ │ │ ├── PointPaymentIntentListRequest.java
│ │ │ ├── PointPaymentIntentPaymentRequest.java
│ │ │ └── PointPaymentIntentRequest.java
│ │ ├── preapproval/
│ │ │ ├── PreApprovalAutoRecurringCreateRequest.java
│ │ │ ├── PreApprovalAutoRecurringUpdateRequest.java
│ │ │ ├── PreapprovalClient.java
│ │ │ ├── PreapprovalCreateRequest.java
│ │ │ └── PreapprovalUpdateRequest.java
│ │ ├── preference/
│ │ │ ├── PreferenceAmountsRequest.java
│ │ │ ├── PreferenceBackUrlsRequest.java
│ │ │ ├── PreferenceCategoryDescriptorRequest.java
│ │ │ ├── PreferenceClient.java
│ │ │ ├── PreferenceCounterCurrencyRequest.java
│ │ │ ├── PreferenceDifferentialPricingRequest.java
│ │ │ ├── PreferenceFreeMethodRequest.java
│ │ │ ├── PreferenceItemRequest.java
│ │ │ ├── PreferencePassengerRequest.java
│ │ │ ├── PreferencePayerRequest.java
│ │ │ ├── PreferencePaymentMethodRequest.java
│ │ │ ├── PreferencePaymentMethodsRequest.java
│ │ │ ├── PreferencePaymentTypeRequest.java
│ │ │ ├── PreferenceReceiverAddressRequest.java
│ │ │ ├── PreferenceRequest.java
│ │ │ ├── PreferenceRouteRequest.java
│ │ │ ├── PreferenceShipmentsRequest.java
│ │ │ ├── PreferenceTaxRequest.java
│ │ │ ├── PreferenceTrackRequest.java
│ │ │ ├── PreferenceTrackValuesRequest.java
│ │ │ └── PreferenceUserAmountRequest.java
│ │ └── user/
│ │ └── UserClient.java
│ ├── core/
│ │ └── MPRequestOptions.java
│ ├── example/
│ │ └── apis/
│ │ ├── order/
│ │ │ ├── CancelOrder.java
│ │ │ ├── CaptureOrder.java
│ │ │ ├── CreateOrder.java
│ │ │ ├── CreateOrderPSE.java
│ │ │ ├── CreateOrderWith3DS.java
│ │ │ ├── CreateOrderWithIndustryFields.java
│ │ │ ├── CreateOrderWithPointConfig.java
│ │ │ ├── CreateTransaction.java
│ │ │ ├── DeleteTransaction.java
│ │ │ ├── GetOrderById.java
│ │ │ ├── ProcessOrderById.java
│ │ │ ├── RefundPartial.java
│ │ │ ├── RefundTotal.java
│ │ │ └── UpdateTransaction.java
│ │ └── payment/
│ │ └── Main.java
│ ├── exceptions/
│ │ ├── MPApiException.java
│ │ ├── MPException.java
│ │ ├── MPInvalidWebhookSignatureException.java
│ │ ├── MPJsonParseException.java
│ │ ├── MPMalformedRequestException.java
│ │ └── SignatureFailureReason.java
│ ├── net/
│ │ ├── Headers.java
│ │ ├── HttpMethod.java
│ │ ├── HttpStatus.java
│ │ ├── KeepAliveStrategy.java
│ │ ├── MPDefaultHttpClient.java
│ │ ├── MPElementsResourcesPage.java
│ │ ├── MPHttpClient.java
│ │ ├── MPRequest.java
│ │ ├── MPResource.java
│ │ ├── MPResourceList.java
│ │ ├── MPResponse.java
│ │ ├── MPResultsResourcesPage.java
│ │ ├── MPSearchRequest.java
│ │ └── UrlFormatter.java
│ ├── resources/
│ │ ├── CardToken.java
│ │ ├── ResultsPaging.java
│ │ ├── common/
│ │ │ ├── Address.java
│ │ │ ├── Identification.java
│ │ │ ├── Phone.java
│ │ │ └── Source.java
│ │ ├── customer/
│ │ │ ├── Customer.java
│ │ │ ├── CustomerAddress.java
│ │ │ ├── CustomerAddressCity.java
│ │ │ ├── CustomerAddressCountry.java
│ │ │ ├── CustomerAddressMunicipality.java
│ │ │ ├── CustomerAddressNeighborhood.java
│ │ │ ├── CustomerAddressState.java
│ │ │ ├── CustomerCard.java
│ │ │ ├── CustomerCardCardholder.java
│ │ │ ├── CustomerCardCardholderIdentification.java
│ │ │ ├── CustomerCardIssuer.java
│ │ │ ├── CustomerCardPaymentMethod.java
│ │ │ ├── CustomerCardSecurityCode.java
│ │ │ ├── CustomerDefaultAddress.java
│ │ │ └── Identification.java
│ │ ├── identificationtype/
│ │ │ └── IdentificationType.java
│ │ ├── merchantorder/
│ │ │ ├── MerchantOrder.java
│ │ │ ├── MerchantOrderCollector.java
│ │ │ ├── MerchantOrderItem.java
│ │ │ ├── MerchantOrderPayer.java
│ │ │ ├── MerchantOrderPayment.java
│ │ │ ├── MerchantOrderReceiverAddress.java
│ │ │ ├── MerchantOrderReceiverAddressCity.java
│ │ │ ├── MerchantOrderReceiverAddressCountry.java
│ │ │ ├── MerchantOrderReceiverAddressState.java
│ │ │ ├── MerchantOrderShipment.java
│ │ │ ├── MerchantOrderShippingEstimatedDelivery.java
│ │ │ ├── MerchantOrderShippingOption.java
│ │ │ └── MerchantOrderShippingSpeed.java
│ │ ├── oauth/
│ │ │ ├── CreateOauthCredential.java
│ │ │ ├── OauthCredential.java
│ │ │ └── RefreshOauthCredential.java
│ │ ├── order/
│ │ │ ├── Order.java
│ │ │ ├── OrderAttempts.java
│ │ │ ├── OrderAutomaticPayments.java
│ │ │ ├── OrderCategoryDescriptor.java
│ │ │ ├── OrderChargeback.java
│ │ │ ├── OrderConfig.java
│ │ │ ├── OrderDifferentialPricing.java
│ │ │ ├── OrderDiscountPaymentMethod.java
│ │ │ ├── OrderDiscounts.java
│ │ │ ├── OrderExternalCategory.java
│ │ │ ├── OrderInstallments.java
│ │ │ ├── OrderInstallmentsAvailable.java
│ │ │ ├── OrderInstallmentsInterestFree.java
│ │ │ ├── OrderIntegrationData.java
│ │ │ ├── OrderInvoicePeriod.java
│ │ │ ├── OrderItem.java
│ │ │ ├── OrderOnlineConfig.java
│ │ │ ├── OrderPaging.java
│ │ │ ├── OrderPassenger.java
│ │ │ ├── OrderPayer.java
│ │ │ ├── OrderPayment.java
│ │ │ ├── OrderPaymentDiscount.java
│ │ │ ├── OrderPaymentMethod.java
│ │ │ ├── OrderPointConfig.java
│ │ │ ├── OrderReceiverAddress.java
│ │ │ ├── OrderReference.java
│ │ │ ├── OrderRefund.java
│ │ │ ├── OrderRefundItem.java
│ │ │ ├── OrderRoute.java
│ │ │ ├── OrderSearchResponse.java
│ │ │ ├── OrderShipment.java
│ │ │ ├── OrderStoredCredential.java
│ │ │ ├── OrderSubscriptionData.java
│ │ │ ├── OrderSubscriptionSequence.java
│ │ │ ├── OrderTax.java
│ │ │ ├── OrderTransaction.java
│ │ │ ├── OrderTransactionRefund.java
│ │ │ ├── OrderTransactionSecurity.java
│ │ │ ├── OrderTypeResponse.java
│ │ │ └── UpdateOrderTransaction.java
│ │ ├── payment/
│ │ │ ├── Payment.java
│ │ │ ├── PaymentAdditionalInfo.java
│ │ │ ├── PaymentAdditionalInfoPayer.java
│ │ │ ├── PaymentAmounts.java
│ │ │ ├── PaymentApplicationData.java
│ │ │ ├── PaymentBankInfo.java
│ │ │ ├── PaymentBankInfoCollector.java
│ │ │ ├── PaymentBankInfoPayer.java
│ │ │ ├── PaymentBarcode.java
│ │ │ ├── PaymentCard.java
│ │ │ ├── PaymentCardholder.java
│ │ │ ├── PaymentCounterCurrency.java
│ │ │ ├── PaymentData.java
│ │ │ ├── PaymentDiscount.java
│ │ │ ├── PaymentExpanded.java
│ │ │ ├── PaymentFee.java
│ │ │ ├── PaymentFeeDetail.java
│ │ │ ├── PaymentInvoicePeriod.java
│ │ │ ├── PaymentItem.java
│ │ │ ├── PaymentMethod.java
│ │ │ ├── PaymentOrder.java
│ │ │ ├── PaymentPayer.java
│ │ │ ├── PaymentPaymentReference.java
│ │ │ ├── PaymentPhone.java
│ │ │ ├── PaymentPointOfInteraction.java
│ │ │ ├── PaymentReceiverAddress.java
│ │ │ ├── PaymentRefund.java
│ │ │ ├── PaymentRules.java
│ │ │ ├── PaymentShipments.java
│ │ │ ├── PaymentStatus.java
│ │ │ ├── PaymentSubscriptionSequence.java
│ │ │ ├── PaymentTax.java
│ │ │ ├── PaymentThreeDSInfo.java
│ │ │ ├── PaymentTransactionData.java
│ │ │ ├── PaymentTransactionDetails.java
│ │ │ ├── PaymentUsersAmountCollector.java
│ │ │ └── PaymentUsersAmountPayer.java
│ │ ├── paymentmethod/
│ │ │ ├── PaymentMethod.java
│ │ │ ├── PaymentMethodFinancialInstitutions.java
│ │ │ ├── PaymentMethodSettings.java
│ │ │ ├── PaymentMethodSettingsBin.java
│ │ │ ├── PaymentMethodSettingsCardNumber.java
│ │ │ └── PaymentMethodSettingsSecurityCode.java
│ │ ├── point/
│ │ │ ├── OperatingMode.java
│ │ │ ├── PointCancelPaymentIntent.java
│ │ │ ├── PointDevice.java
│ │ │ ├── PointDeviceOperatingMode.java
│ │ │ ├── PointDevices.java
│ │ │ ├── PointPaymentIntent.java
│ │ │ ├── PointPaymentIntentAdditionalInfo.java
│ │ │ ├── PointPaymentIntentList.java
│ │ │ ├── PointPaymentIntentListEvent.java
│ │ │ ├── PointPaymentIntentPayment.java
│ │ │ ├── PointSearchPaymentIntent.java
│ │ │ └── PointStatusPaymentIntent.java
│ │ ├── preapproval/
│ │ │ ├── Preapproval.java
│ │ │ └── PreapprovalAutoRecurring.java
│ │ ├── preference/
│ │ │ ├── Preference.java
│ │ │ ├── PreferenceAmounts.java
│ │ │ ├── PreferenceBackUrls.java
│ │ │ ├── PreferenceCategoryDescriptor.java
│ │ │ ├── PreferenceCounterCurrency.java
│ │ │ ├── PreferenceDifferentialPricing.java
│ │ │ ├── PreferenceFreeMethod.java
│ │ │ ├── PreferenceItem.java
│ │ │ ├── PreferencePassenger.java
│ │ │ ├── PreferencePayer.java
│ │ │ ├── PreferencePaymentMethod.java
│ │ │ ├── PreferencePaymentMethods.java
│ │ │ ├── PreferencePaymentType.java
│ │ │ ├── PreferenceReceiverAddress.java
│ │ │ ├── PreferenceRoute.java
│ │ │ ├── PreferenceSearch.java
│ │ │ ├── PreferenceShipments.java
│ │ │ ├── PreferenceTax.java
│ │ │ ├── PreferenceTrack.java
│ │ │ ├── PreferenceTrackValues.java
│ │ │ └── PreferenceUserAmount.java
│ │ └── user/
│ │ └── User.java
│ ├── serialization/
│ │ └── Serializer.java
│ └── webhook/
│ └── WebhookSignatureValidator.java
└── test/
└── java/
└── com/
└── mercadopago/
├── BaseClientIT.java
├── BaseClientTest.java
├── client/
│ ├── MercadoPagoClientTest.java
│ ├── cardtoken/
│ │ ├── CardTokenCardholderTestCreateRequest.java
│ │ ├── CardTokenClientIT.java
│ │ ├── CardTokenClientTest.java
│ │ ├── CardTokenTestClient.java
│ │ └── CardTokenTestCreateRequest.java
│ ├── customer/
│ │ ├── CustomerCardClientTest.java
│ │ ├── CustomerClientIT.java
│ │ └── CustomerClientTest.java
│ ├── identificationtype/
│ │ ├── IdentificationTypeClientIT.java
│ │ └── IdentificationTypeClientTest.java
│ ├── merchantorder/
│ │ ├── MerchantOrderClientIT.java
│ │ └── MerchantOrderClientTest.java
│ ├── oauth/
│ │ └── OauthClientTest.java
│ ├── order/
│ │ ├── OrderClientIT.java
│ │ ├── OrderClientTest.java
│ │ ├── OrderClientWith3DSTest.java
│ │ └── OrderPointConfigTest.java
│ ├── payment/
│ │ ├── PaymentClientIT.java
│ │ ├── PaymentClientTest.java
│ │ ├── PaymentRefundClientIT.java
│ │ └── PaymentRefundClientTest.java
│ ├── paymentmethod/
│ │ ├── PaymentMethodClientIT.java
│ │ └── PaymentMethodClientTest.java
│ ├── point/
│ │ ├── PointClientIT.java
│ │ └── PointClientTest.java
│ ├── preapproval/
│ │ ├── PreapprovalClientIT.java
│ │ └── PreapprovalClientTest.java
│ ├── preference/
│ │ ├── PreferenceClientIT.java
│ │ └── PreferenceClientTest.java
│ └── user/
│ ├── UserClientIT.java
│ └── UserClientTest.java
├── helper/
│ ├── HttpStatusCode.java
│ └── MockHelper.java
├── mock/
│ ├── HttpClientMock.java
│ ├── HttpRequestMatcher.java
│ └── MPDefaultHttpClientMock.java
├── net/
│ ├── MPDefaultHttpClientTest.java
│ └── UrlFormatterTest.java
├── resources/
│ └── mocks/
│ ├── helper/
│ │ └── serializer_iso8601_timestamps.json
│ ├── request/
│ │ ├── advancedPayment/
│ │ │ ├── advanced_payment_base.json
│ │ │ ├── captured.json
│ │ │ ├── money_release_date.json
│ │ │ ├── payment_captured.json
│ │ │ └── status_cancelled.json
│ │ ├── card/
│ │ │ └── card_new.json
│ │ ├── customer/
│ │ │ ├── customer_base.json
│ │ │ └── customer_first_name.json
│ │ ├── merchant/
│ │ │ ├── order_base.json
│ │ │ └── order_updated.json
│ │ ├── payment/
│ │ │ ├── captured.json
│ │ │ ├── payment_3ds.json
│ │ │ ├── payment_base.json
│ │ │ ├── payment_boleto.json
│ │ │ ├── payment_captured.json
│ │ │ ├── payment_pix.json
│ │ │ ├── payment_pse.json
│ │ │ └── status_cancelled.json
│ │ ├── point/
│ │ │ ├── devices_operating_mode.json
│ │ │ └── payment_intent.json
│ │ ├── preapproval/
│ │ │ ├── preapproval_base.json
│ │ │ └── preapproval_update.json
│ │ ├── preference/
│ │ │ ├── preference_base.json
│ │ │ └── preference_updated.json
│ │ ├── refund/
│ │ │ ├── refund.json
│ │ │ └── refund_partial.json
│ │ └── request_generic.json
│ └── response/
│ ├── advancedPayment/
│ │ ├── payment_base.json
│ │ ├── payment_cancelled.json
│ │ ├── payment_captured.json
│ │ ├── payment_updated.json
│ │ └── refund.json
│ ├── card/
│ │ ├── card_all.json
│ │ ├── card_new.json
│ │ └── card_single.json
│ ├── cardtoken/
│ │ └── card_token_base.json
│ ├── customer/
│ │ ├── customer_base.json
│ │ ├── customer_updated.json
│ │ └── search_by_email.json
│ ├── identification/
│ │ └── types.json
│ ├── merchant/
│ │ ├── order_base.json
│ │ ├── order_search.json
│ │ └── order_updated.json
│ ├── oauth/
│ │ ├── oauth_credential.json
│ │ └── oauth_refresh_token.json
│ ├── order/
│ │ ├── capture_order_response.json
│ │ ├── create_order_response.json
│ │ ├── create_refund_partial_response.json
│ │ ├── create_refund_total_response.json
│ │ ├── create_transaction_response.json
│ │ ├── order_search_response.json
│ │ └── update_transaction_response.json
│ ├── payment/
│ │ ├── by_external_reference.json
│ │ ├── payment_3ds.json
│ │ ├── payment_base.json
│ │ ├── payment_boleto.json
│ │ ├── payment_cancelled.json
│ │ ├── payment_captured.json
│ │ ├── payment_card_token_error.json
│ │ ├── payment_pix.json
│ │ ├── payment_pse.json
│ │ └── payment_search.json
│ ├── paymentmethod/
│ │ └── payment_method_base.json
│ ├── point/
│ │ ├── devices_list.json
│ │ ├── devices_operating_mode.json
│ │ ├── payment_intent.json
│ │ ├── payment_intent_delete.json
│ │ ├── payment_intent_list.json
│ │ ├── payment_intent_search.json
│ │ └── payment_intent_status.json
│ ├── preapproval/
│ │ ├── preapproval_base.json
│ │ ├── preapproval_list.json
│ │ └── preapproval_update.json
│ ├── preference/
│ │ ├── preference_base.json
│ │ ├── preference_list.json
│ │ └── preference_updated.json
│ ├── refund/
│ │ ├── refund_all.json
│ │ ├── refund_base.json
│ │ ├── refund_list.json
│ │ └── refund_partial.json
│ ├── response_generic_success.json
│ └── user/
│ └── user_base.json
├── serialization/
│ └── SerializerTest.java
└── webhook/
└── WebhookSignatureValidatorTest.java
================================================
FILE CONTENTS
================================================
================================================
FILE: .code_quality/checkstyle_rules.xml
================================================
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<!--
Checkstyle configuration that checks the Google coding conventions from Google Java Style
that can be found at https://google.github.io/styleguide/javaguide.html
Checkstyle is very configurable. Be sure to read the documentation at
http://checkstyle.org (or in your downloaded distribution).
To completely disable a check, just comment it out or delete it from the file.
To suppress certain violations please review suppression filters.
Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
-->
<module name="Checker">
<property name="charset" value="UTF-8"/>
<property name="severity" value="error"/>
<property name="fileExtensions" value="java, properties, xml"/>
<!-- Excludes all 'module-info.java' files -->
<!-- See https://checkstyle.org/config_filefilters.html -->
<module name="BeforeExecutionExclusionFileFilter">
<property name="fileNamePattern" value="module\-info\.java$"/>
</module>
<!-- https://checkstyle.org/config_filters.html#SuppressionFilter -->
<module name="SuppressionFilter">
<property name="file" value="${org.checkstyle.google.suppressionfilter.config}"
default="checkstyle-suppressions.xml"/>
<property name="optional" value="true"/>
</module>
<!-- Checks for whitespace -->
<!-- See http://checkstyle.org/config_whitespace.html -->
<module name="FileTabCharacter">
<property name="eachLine" value="true"/>
</module>
<module name="LineLength">
<property name="fileExtensions" value="java"/>
<property name="max" value="100"/>
<property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
</module>
<module name="TreeWalker">
<module name="OuterTypeFilename"/>
<module name="IllegalTokenText">
<property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
<property name="format"
value="\\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
<property name="message"
value="Consider using special escape sequence instead of octal value or Unicode escaped value."/>
</module>
<module name="AvoidEscapedUnicodeCharacters">
<property name="allowEscapesForControlCharacters" value="true"/>
<property name="allowByTailComment" value="true"/>
<property name="allowNonPrintableEscapes" value="true"/>
</module>
<module name="AvoidStarImport"/>
<module name="OneTopLevelClass"/>
<module name="NoLineWrap">
<property name="tokens" value="PACKAGE_DEF, IMPORT, STATIC_IMPORT"/>
</module>
<module name="EmptyBlock">
<property name="option" value="TEXT"/>
<property name="tokens"
value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
</module>
<module name="LeftCurly">
<property name="tokens"
value="ANNOTATION_DEF, CLASS_DEF, CTOR_DEF, ENUM_CONSTANT_DEF, ENUM_DEF,
INTERFACE_DEF, LAMBDA, LITERAL_CASE, LITERAL_CATCH, LITERAL_DEFAULT,
LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF,
LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, METHOD_DEF,
OBJBLOCK, STATIC_INIT, RECORD_DEF, COMPACT_CTOR_DEF"/>
</module>
<module name="RightCurly">
<property name="id" value="RightCurlySame"/>
<property name="tokens"
value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE,
LITERAL_DO"/>
</module>
<module name="RightCurly">
<property name="id" value="RightCurlyAlone"/>
<property name="option" value="alone"/>
<property name="tokens"
value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT,
INSTANCE_INIT, ANNOTATION_DEF, ENUM_DEF, INTERFACE_DEF, RECORD_DEF,
COMPACT_CTOR_DEF"/>
</module>
<module name="SuppressionXpathSingleFilter">
<!-- suppresion is required till https://github.com/checkstyle/checkstyle/issues/7541 -->
<property name="id" value="RightCurlyAlone"/>
<property name="query" value="//RCURLY[parent::SLIST[count(./*)=1]
or preceding-sibling::*[last()][self::LCURLY]]"/>
</module>
<module name="WhitespaceAfter">
<property name="tokens"
value="COMMA, SEMI, TYPECAST, LITERAL_IF, LITERAL_ELSE,
LITERAL_WHILE, LITERAL_DO, LITERAL_FOR, DO_WHILE"/>
</module>
<module name="WhitespaceAround">
<property name="allowEmptyConstructors" value="true"/>
<property name="allowEmptyLambdas" value="true"/>
<property name="allowEmptyMethods" value="true"/>
<property name="allowEmptyTypes" value="true"/>
<property name="allowEmptyLoops" value="true"/>
<property name="ignoreEnhancedForColon" value="false"/>
<property name="tokens"
value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR,
BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, DO_WHILE, EQUAL, GE, GT, LAMBDA, LAND,
LCURLY, LE, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY,
LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SWITCH, LITERAL_SYNCHRONIZED,
LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN,
NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR,
SR_ASSIGN, STAR, STAR_ASSIGN, LITERAL_ASSERT, TYPE_EXTENSION_AND"/>
<message key="ws.notFollowed"
value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/>
<message key="ws.notPreceded"
value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
</module>
<module name="OneStatementPerLine"/>
<module name="MultipleVariableDeclarations"/>
<module name="ArrayTypeStyle"/>
<module name="MissingSwitchDefault"/>
<module name="FallThrough"/>
<module name="UpperEll"/>
<module name="ModifierOrder"/>
<module name="EmptyLineSeparator">
<property name="tokens"
value="PACKAGE_DEF, IMPORT, STATIC_IMPORT, CLASS_DEF, INTERFACE_DEF, ENUM_DEF,
STATIC_INIT, INSTANCE_INIT, METHOD_DEF, CTOR_DEF, VARIABLE_DEF, RECORD_DEF,
COMPACT_CTOR_DEF"/>
<property name="allowNoEmptyLineBetweenFields" value="true"/>
</module>
<module name="SeparatorWrap">
<property name="id" value="SeparatorWrapDot"/>
<property name="tokens" value="DOT"/>
<property name="option" value="nl"/>
</module>
<module name="SeparatorWrap">
<property name="id" value="SeparatorWrapComma"/>
<property name="tokens" value="COMMA"/>
<property name="option" value="EOL"/>
</module>
<module name="SeparatorWrap">
<!-- ELLIPSIS is EOL until https://github.com/google/styleguide/issues/259 -->
<property name="id" value="SeparatorWrapEllipsis"/>
<property name="tokens" value="ELLIPSIS"/>
<property name="option" value="EOL"/>
</module>
<module name="SeparatorWrap">
<!-- ARRAY_DECLARATOR is EOL until https://github.com/google/styleguide/issues/258 -->
<property name="id" value="SeparatorWrapArrayDeclarator"/>
<property name="tokens" value="ARRAY_DECLARATOR"/>
<property name="option" value="EOL"/>
</module>
<module name="SeparatorWrap">
<property name="id" value="SeparatorWrapMethodRef"/>
<property name="tokens" value="METHOD_REF"/>
<property name="option" value="nl"/>
</module>
<module name="PackageName">
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
<message key="name.invalidPattern"
value="Package name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="TypeName">
<property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF,
ANNOTATION_DEF, RECORD_DEF"/>
<message key="name.invalidPattern"
value="Type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="MemberName">
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
<message key="name.invalidPattern"
value="Member name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="ParameterName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Parameter name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="LambdaParameterName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Lambda parameter name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="CatchParameterName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Catch parameter name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="LocalVariableName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Local variable name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="PatternVariableName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Pattern variable name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="ClassTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Class type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="RecordComponentName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
<message key="name.invalidPattern"
value="Record component name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="RecordTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Record type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="MethodTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Method type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="InterfaceTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Interface type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="NoFinalizer"/>
<module name="GenericWhitespace">
<message key="ws.followed"
value="GenericWhitespace ''{0}'' is followed by whitespace."/>
<message key="ws.preceded"
value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
<message key="ws.illegalFollow"
value="GenericWhitespace ''{0}'' should followed by whitespace."/>
<message key="ws.notPreceded"
value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
</module>
<module name="Indentation">
<property name="basicOffset" value="2"/>
<property name="braceAdjustment" value="2"/>
<property name="caseIndent" value="2"/>
<property name="throwsIndent" value="4"/>
<property name="lineWrappingIndentation" value="4"/>
<property name="arrayInitIndent" value="2"/>
</module>
<module name="NoWhitespaceBeforeCaseDefaultColon"/>
<module name="OverloadMethodsDeclarationOrder"/>
<module name="CustomImportOrder">
<property name="sortImportsInGroupAlphabetically" value="true"/>
<property name="separateLineBetweenGroups" value="true"/>
<property name="customImportOrderRules" value="STATIC###THIRD_PARTY_PACKAGE"/>
<property name="tokens" value="IMPORT, STATIC_IMPORT, PACKAGE_DEF"/>
</module>
<module name="MethodParamPad">
<property name="tokens"
value="CTOR_DEF, LITERAL_NEW, METHOD_CALL, METHOD_DEF,
SUPER_CTOR_CALL, ENUM_CONSTANT_DEF, RECORD_DEF"/>
</module>
<module name="NoWhitespaceBefore">
<property name="tokens"
value="COMMA, SEMI, POST_INC, POST_DEC, DOT,
LABELED_STAT, METHOD_REF"/>
<property name="allowLineBreaks" value="true"/>
</module>
<module name="ParenPad">
<property name="tokens"
value="ANNOTATION, ANNOTATION_FIELD_DEF, CTOR_CALL, CTOR_DEF, DOT, ENUM_CONSTANT_DEF,
EXPR, LITERAL_CATCH, LITERAL_DO, LITERAL_FOR, LITERAL_IF, LITERAL_NEW,
LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_WHILE, METHOD_CALL,
METHOD_DEF, QUESTION, RESOURCE_SPECIFICATION, SUPER_CTOR_CALL, LAMBDA,
RECORD_DEF"/>
</module>
<module name="OperatorWrap">
<property name="option" value="NL"/>
<property name="tokens"
value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR,
LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR, METHOD_REF,
TYPE_EXTENSION_AND "/>
</module>
<module name="AnnotationLocation">
<property name="id" value="AnnotationLocationMostCases"/>
<property name="tokens"
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF,
RECORD_DEF, COMPACT_CTOR_DEF"/>
</module>
<module name="AnnotationLocation">
<property name="id" value="AnnotationLocationVariables"/>
<property name="tokens" value="VARIABLE_DEF"/>
<property name="allowSamelineMultipleAnnotations" value="true"/>
</module>
<module name="NonEmptyAtclauseDescription"/>
<module name="InvalidJavadocPosition"/>
<module name="JavadocTagContinuationIndentation"/>
<module name="SummaryJavadoc">
<property name="forbiddenSummaryFragments"
value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
</module>
<module name="JavadocParagraph"/>
<module name="RequireEmptyLineBeforeBlockTagGroup"/>
<module name="AtclauseOrder">
<property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
<property name="target"
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
</module>
<module name="JavadocMethod">
<property name="accessModifiers" value="public"/>
<property name="allowMissingParamTags" value="true"/>
<property name="allowMissingReturnTag" value="true"/>
<property name="allowedAnnotations" value="Override, Test"/>
<property name="tokens" value="METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF, COMPACT_CTOR_DEF"/>
</module>
<module name="MissingJavadocMethod">
<property name="scope" value="public"/>
<property name="minLineCount" value="2"/>
<property name="allowedAnnotations" value="Override, Test"/>
<property name="tokens" value="METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF,
COMPACT_CTOR_DEF"/>
</module>
<module name="MissingJavadocType">
<property name="scope" value="protected"/>
<property name="tokens"
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF,
RECORD_DEF, ANNOTATION_DEF"/>
<property name="excludeScope" value="nothing"/>
</module>
<module name="MethodName">
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>
<message key="name.invalidPattern"
value="Method name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="SingleLineJavadoc"/>
<module name="EmptyCatchBlock">
<property name="exceptionVariableName" value="expected"/>
</module>
<module name="CommentsIndentation">
<property name="tokens" value="SINGLE_LINE_COMMENT, BLOCK_COMMENT_BEGIN"/>
</module>
<!-- https://checkstyle.org/config_filters.html#SuppressionXpathFilter -->
<module name="SuppressionXpathFilter">
<property name="file" value="${org.checkstyle.google.suppressionxpathfilter.config}"
default="checkstyle-xpath-suppressions.xml"/>
<property name="optional" value="true"/>
</module>
</module>
</module>
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: 🐛 Bug Report
description: Report a bug or unexpected behavior in the SDK
title: "[BUG]: "
labels: ["bug", "needs-triage"]
assignees: ["danielalfarourrea","luismeli10","orojaspardo"]
body:
- type: markdown
attributes:
value: |
## 🐛 Thanks for reporting this issue!
Please make sure you tested with the latest version of the relevant packages and/or checked existing issues to avoid duplicates. If the bug persists, open the issue with a clear and concise description including screenshots, if applicable. We appreciate your feedback!
**Before reporting a bug:**
- 🔍 **Search [existing issues](./issues?q=is%3Aissue) to avoid duplicates**
- 📚 **Verify you are using the [latest version](../../releases)**
- 💡 **Try to reproduce the problem in sandbox environment**
- ⚠️ **IMPORTANT: Your bug will be resolved faster if you can share a self-contained example that doesn't rely on internal or private dependencies.**
> **🔒 SECURITY WARNING:** Issues without reproduction steps or code examples may be immediately closed as not actionable. Always remember to **REMOVE ALL PII AND PERSONAL INFORMATION** from your examples. **Bugs opened with real data will be immediately reported and closed.**
- type: input
id: sdk-version
attributes:
label: 📦 SDK Version
description: "Example: 2.1.0"
placeholder: "x.y.z"
validations:
required: true
- type: textarea
id: environment-details
attributes:
label: 🖥️ Environment Details
description: |
System and dependencies information
placeholder: |
- Operating System: [e.g. Ubuntu 20.04, Windows 11, macOS 13]
- Language Version: [e.g. Python 3.9.0, Node.js 18.0.0]
- Framework: [e.g. Django 4.0, Express 4.18]
- Package Manager: [e.g. pip 21.0, npm 8.0]
- Other relevant dependencies: ...
validations:
required: true
- type: dropdown
id: country
attributes:
label: 🌎 Country
description: Country where the issue occurs
options:
- Argentina (MLA)
- Brazil (MLB)
- Chile (MLC)
- Colombia (MCO)
- Mexico (MLM)
- Peru (MPE)
- Uruguay (MLU)
- Other
validations:
required: true
- type: textarea
id: description
attributes:
label: 📝 Bug Description
description: A clear and concise description of what the bug is
placeholder: The SDK fails when I try to...
validations:
required: true
- type: textarea
id: expected
attributes:
label: ✅ Expected Behavior
description: A clear description of the behavior you expected from the SDK
placeholder: I expected the SDK to...
validations:
required: true
- type: textarea
id: actual
attributes:
label: ❌ Actual Behavior
description: A description of what the SDK actually does instead
placeholder: Instead, the SDK...
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: 🔄 Steps To Reproduce
description: Detailed steps to reproduce the problem
placeholder: |
1. Configure the SDK with...
2. Execute the method...
3. Send the following parameters...
4. Observe the error...
validations:
required: true
- type: textarea
id: code-sample
attributes:
label: 💻 Code Example
description: |
Minimal code that reproduces the problem. **REMOVE ALL CREDENTIALS AND SENSITIVE DATA.**
You can provide:
- A CodeSandbox (https://codepen.io/pen/)
- A link to a GitHub repository
- A minimal code example that reproduces the problem
- A screenshot of the application if you think it is relevant
**Remember to REMOVE ALL SENSITIVE DATA FIRST.**
render: python
placeholder: |
import mercadopago
sdk = mercadopago.SDK("YOUR_ACCESS_TOKEN") # ⚠️ DO NOT USE REAL TOKENS
# Your code here that reproduces the bug...
validations:
required: true
- type: textarea
id: error-logs
attributes:
label: 📋 Logs and Error Messages
description: Copy complete logs, stack traces, or error messages
render: shell
placeholder: |
Error: ...
Stack trace: ...
- type: checkboxes
id: checklist
attributes:
label: ✅ Checklist
options:
- label: I have verified that I am using the latest SDK version
required: true
- label: I have searched existing issues and this bug has not been reported
required: true
- label: I have included a minimal code example to reproduce the problem
required: true
- label: I have removed all sensitive information (tokens, credentials, real data)
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
- name: Support Center Mercado Pago - ES
url: https://www.mercadopago.com/developers/es/support/center
about: Problems with payments, account, or general inquiries
- name: Support Center Mercado Pago - PT
url: https://www.mercadopago.com/developers/pt/support/center
about: Problems with payments, account, or general inquiries
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: ✨ Feature Request
description: Propose a new feature for the Mercado Pago SDK
title: "[FEATURE]: "
labels: ["enhancement", "needs-triage"]
assignees: ["danielalfarourrea","luismeli10","orojaspardo"]
body:
- type: markdown
attributes:
value: |
## 💡 Thanks for contributing with ideas!
Your feedback is valuable to improve the SDK. Before submitting:
- 🔍 **Search [existing issues](./issues?q=is%3Aissue) to avoid duplicates**.
- 📚 **Check the [documentation](https://www.mercadopago.com/developers/es/docs) to confirm this isn't already supported**.
- type: dropdown
id: feature-type
attributes:
label: ⚙️ Feature Type
description: What type of improvement are you proposing?
options:
- New feature
- Enhancement of existing feature
- Support for new Mercado Pago product
- Better error handling
- Documentation improvement
- Performance optimization
- Other
validations:
required: true
- type: textarea
id: problem
attributes:
label: 🎯 Problem to solve
description: Describe the problem or need this feature would solve.
placeholder: |
As a developer of [application type]...
I need [feature]...
To be able to [goal]...
validations:
required: true
- type: textarea
id: solution
attributes:
label: 💡 Proposed Solution
description: Describe how you would like this new feature to work.
placeholder: |
I would like the SDK to support...
The implementation could be...
Usage example:
```
// example code
```
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: 🔄 Alternatives Considered
description: |
Have you tried any workarounds?
Are there similar features in other SDKs or libraries?
placeholder: |
- Alternative 1: ...
- Alternative 2: ...
- In the [language] SDK they do...
- type: checkboxes
id: checklist
attributes:
label: ✅ Checklist
options:
- label: I have searched existing issues and this feature has not been requested before
required: true
- label: I have clearly described the problem I am trying to solve
required: true
- label: I have proposed a concrete solution or API design
required: true
- label: This feature would benefit other users, not just my specific use case
required: true
- label: I have not included any sensitive information (tokens, credentials, real data)
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/question.yml
================================================
name: 💬 Question
description: Ask a question about the Mercado Pago SDK
title: "[QUESTION]: "
labels: ["question", "needs-triage"]
assignees: ["danielalfarourrea","luismeli10","orojaspardo"]
body:
- type: markdown
attributes:
value: |
## 👋 Thanks for using the Mercado Pago SDK!
Before asking your question, please:
- 🔍 **Search [existing issues](./issues?q=is%3Aissue) to see if it was already answered**
- 📚 **Check the [official documentation](https://www.mercadopago.com/developers/es/docs)**
- 💡 **Review the repository examples**
- type: input
id: sdk-version
attributes:
label: 📦 SDK Version
description: "Example: 2.1.0"
placeholder: "x.y.z"
validations:
required: true
- type: dropdown
id: country
attributes:
label: 🌎 Country
description: In which country are you operating?
options:
- Argentina (MLA)
- Brazil (MLB)
- Chile (MLC)
- Colombia (MCO)
- Mexico (MLM)
- Peru (MPE)
- Uruguay (MLU)
- Other
validations:
required: true
- type: textarea
id: context
attributes:
label: 🖥️ Environment Details
description: |
Provide details about your environment to help us understand your setup:
- Platform (Web, Mobile, Backend)
- Framework used
- Relevant error messages
- Documentation consulted
placeholder: |
- Platform: [e.g. Backend, Web, Mobile]
- Language Version: [e.g. Python 3.9.0, Node.js 18.0.0]
- Framework: [e.g. Django 4.0, Express 4.18]
- Other relevant dependencies: ...
- type: textarea
id: question
attributes:
label: ❓ Your Question
description: Ask your question as clearly and specifically as possible. The more detail you provide, the faster we can help.
placeholder: |
What are you trying to do?
What have you tried so far?
What is the result you are getting vs. what you expected?
Is there an error message involved?
validations:
required: true
- type: textarea
id: code-sample
attributes:
label: 💻 Code Example (optional)
description: If applicable, share a code snippet that illustrates your question. **Remember to remove all sensitive data (tokens, credentials, etc)**
render: python
placeholder: |
import mercadopago
sdk = mercadopago.SDK("YOUR_ACCESS_TOKEN") # ⚠️ DO NOT USE REAL TOKENS
# Your code here...
- type: checkboxes
id: checklist
attributes:
label: ✅ Checklist
options:
- label: I have searched existing issues
required: true
- label: I have checked the official documentation
required: true
- label: I have removed sensitive information (tokens, credentials, etc)
required: true
================================================
FILE: .github/workflows/main.yml
================================================
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Java CI with Maven
on:
push:
branches: [ master, develop ]
pull_request:
branches: [ master, develop ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
- name: Compile
run: mvn compile
- name: Run tests
run: mvn test
env:
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN_V2 }}
PUBLIC_KEY: ${{ secrets.PUBLIC_KEY }}
# Upload coverage result
# - name: Upload Coverage
# uses: codecov/codecov-action@v1
# with:
# file: ./target/site/jacoco/jacoco.xml
================================================
FILE: .github/workflows/maven-publish-release.yml
================================================
# This workflow will build a package using Maven and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#apache-maven-with-a-settings-path
name: Publish package to the Maven Central Repository and GitHub Packages
on:
release:
types: [ released ]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
server-id: central
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
gpg-private-key: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE
- id: publish-to-central
name: Publish to Central Repository
env:
MAVEN_USERNAME: ${{ secrets.CENTRAL_TOKEN_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.CENTRAL_TOKEN_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
run: |
mvn --no-transfer-progress --batch-mode clean deploy
================================================
FILE: .github/workflows/maven-publish-snapshot.yml
================================================
# This workflow will build a package using Maven and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#apache-maven-with-a-settings-path
name: Publish SNAPSHOT package
on:
release:
types: [ prereleased ]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
- id: install-secret-key
name: Install GPG Secret Key
run: |
cat <(echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import
gpg --list-secret-keys --keyid-format LONG
- id: publish-to-central
name: Publish to Central Repository
env:
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
run: |
mvn \
--no-transfer-progress \
--batch-mode \
-Dgpg.passphrase=${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} \
clean deploy
================================================
FILE: .gitignore
================================================
settings.xml
.idea/
.vscode/
out/
*.iml
target/
maven-central-deploy.log
*.jks
*.cer
*.pem
.DS_Store
.classpath
.settings
.project
classes/
### Gradle ###
.gradle
gradle/
build.gradle
settings.gradle
gradlew
gradlew.bat
# Ignore Gradle GUI config
gradle-app.setting
# Cache of project
.gradletasknamecache
### Gradle Patch ###
# Java heap dump
*.hprof
### Docs
*.html
docs/
================================================
FILE: .pre-commit-config.yaml
================================================
repos:
# Websec hook is MANDATORY, DO NOT comment it.
- repo: https://github.com/melisource/fury_websec-git-hooks
rev: v2.0.0
hooks:
- id: pre_commit_hook
stages: [commit]
- id: post_commit_hook
stages: [post-commit]
# Datasec hook is MANDATORY, DO NOT comment it.
- repo: https://github.com/melisource/fury_datasec-git-hooks
rev: 1.2.2
hooks:
- id: pre_commit_hook
stages: [commit]
- id: post_commit_hook
stages: [post-commit]
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to make participation in
our community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment of individuals or the company
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct that could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned with this Code of Conduct, as well as temporarily or
permanently ban any contributor for other behavior deemed inappropriate, threatening, offensive, or harmful with or without prior notice..
## Scope
This Code of Conduct applies within all project spaces and it also applies when
an individual is representing the project or its community in public spaces.
Examples of representing a project or community include using an official
project email address, posting via an official social media account, or acting
as an appointed representative at an online or offline event. Representation of
a project may be further defined and clarified by project maintainers.
This Code of Conduct also applies outside the project spaces when there is a
reasonable belief that an individual's behavior may have a negative impact on
the project, the company or the community.
## Enforcement
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq
================================================
FILE: CODING_GUIDELINES.md
================================================
# Coding Guidelines
The Mercado Pago Java SDK is a collaborative effort from the start. The SDK team thinks that contributions from
different developer will enrich its feature set and make it more relevant to the community.
However, absorbing all contributions as-is, while expedient, might lead to difficulties in maintenance of the codebase
is left unchecked. A collaborative codebase often establish guidelines for contributors to ensure code remains
maintainable over time. The effort to maintain the SDK is no different in this regard, so a bit of guidance is in order.
The purpose of this guide is to set a baseline for contributions. These guidelines are not intended to limit the tools
at your disposal nor to rewire the way you think but rather to encourage good neighbor behavior.
## Language Guidelines
We use **english** language. This is to be consistent everywhere, and to be considerate with developers that do not
speak our native language.
Therefore: source code, comments, documentation, commit messages, review comments, and any other kind of contribution *
MUST* use english language.
Typos are unavoidable, but try to reduce them by using a spellchecker. Most IDEs can be configured to run one
automatically.
## Code Guidelines
To contribute to the project you need to have installed in your machine [pre-commit tool](https://pre-commit.com/) to
check the code style and formatting. To make pre-commit work you must have installed `Docker` as well.
1. To check if pre-commit is installed, you must run the command below successfully:
```
$ pre-commit --version
pre-commit 2.17.0
```
2. After pre-commit is installed at your machine, inside the SDK project folder, you must run the command below to set
up the git hook scripts of the project:
```
$ pre-commit install
```
After that, git hooks will run automatically before every commit command.
Generally speaking, be conscious when contributing and try following the same style that the code in the SDK already
has. If you have any doubts, just ask us!
This rules will be enforced automatically when making a pull requests, and checks will fail if you do not follow them,
resulting in your contribution being automatically rejected until fixed.
## Comment Guidelines
Comments in code are a hard thing to write, not because the words are difficult to produce but because it is hard to
make relevant comments. Too much of it and people do not read comments (and it obfuscates code reading) and too little
of it gives you no recourse but to read large portions of codebase to get insight as to what a feature/codeblock is
doing. Both situations are undesirable and efforts should be made at all time to have a please comment reading
experience
As a general rule you would have to comment on decisions you made while coding that are not part of any specification.
In particular, you should always comment any decision that:
* Departs from common wisdom or convention (The **why's** are necessary).
* Takes a significant amount of time to produce. A good rule of thumb here is that if you spent more than 1 hour
thinking on how to produce a fragment of code that took 2 minutes of wrist time to write you should document your
thinking to aid reader and allow for validation.
* Need to preserve properties of the implementation. This is the case of performance sensitive portions of the codebase,
goroutines synchronization, implementations of security primitives, congestion control algorithms, etc.
As a general rule of what not to comment you should avoid:
* Commenting on structure of programs that is already part of a convention, specified or otherwise.
* Having pedantic explanations of behavior that can be found by immediate examination of the surrounding code artifacts.
* Commenting on behavior you cannot attest.
### Branching Guidelines
Currently `master` is our only long term branch, below a few suggestions of short term branches naming:
* `hotfix/something-needs-fix`: Small routine patches in code to feature already there.
* `feature/something-new`: A new feature or a change in an existent feature. Beware of breaking changes that would
require a major version bump.
* `doc/improves-documentation-for-this-feature`: If you add or change documentation with no impact to the source code.
### Git Guidelines
All commits **SHOULD** follow the [seven rules of a great Git commit message](https://chris.beams.io/posts/git-commit):
1. Separate subject from body with a blank line.
2. Limit the subject line to 72 characters.
3. Capitalize the subject line.
4. Do not end the subject line with a period.
5. Use the imperative mood in the subject line.
6. Wrap the body at 72 characters.
7. Use the body to explain what and why vs. how.
Commits such as "fix tests", "now it's working", and many other common messages we find usually in code **WON'T** be
accepted.
Ideally we would like to enforce these rules, but we are realistic and understand that it might be a big change for some
people. So unless deviating heavily from what was stated we might accept your commits even if not following these rules
perfectly.
Please avoid taking too much time to deliver code, and always [rebase](https://git-scm.com/docs/git-rebase) your code to
avoid reverse merge commits.
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to the Mercado Pago Java SDK
Thank you for your interest in contributing to the Mercado Pago Java SDK!
## How to contribute
In order to contribute to the Mercado Pago Java SDK effectively we provide guidelines to address common case for
contributions. Presently we have guides for the following type of changes.
* Request For Change (RFC) / Feature Request: These are suggestions / requests for features the SDK currently does not
have. The SDK team evaluates these requests for adequacy / relevance / capacity and overall architectural consistency.
* Bug Reports: These are reports of noncompliance behavior with the SDK specification and other blatantly wrong behavior
of the Mercado Pago Java SDK.
In addition to contributing in the form of Bug Reports and RFCs it is also possible to contribute directly in code with
a Pull Request (PR). In the case of a Pull Request you should also indicate the nature of the Pull Request (
Feature/Bug/etc.) to help the team asses the Pull Request. If you are enthusiastic about a particular Feature being
added or a bug being fixed, a PR is often the quickest way to promote your change as the team does not have to allocate
as many resources to process the contribution.
In the case of PRs it is often best to consult with the SDK team before embarking on a PR, specially if it's a beefy
one. Spending time on a PR that might later be rejected because major discrepancies with vision or competing
contributions is an uncomfortable outcome for all involved people. Remember the SDK team with privilege overall
consistency and progress over any one particular contribution.
## Coding Guidance
All contributions *MUST* follow the [Coding Guidelines](CODING_GUIDELINES.md). Contributions that fail to follow these
guidelines will be disregarded and told to make the required modifications to do so.
## Request For Change / Feature Request
Generally speaking an RFC is needed when you want to add a new feature or change an existing one in an incompatible way
that might result in a major version bump to the toolkit.
Though it seems a little bureaucratic, the process is in place in order to avoid frustration of a potential contributor
by making the discussions take place before any code is written. Once the design and direction is fully agreed then the
contributor can work peacefully knowing that their change will be committed.
As of this moment all you need to do is create an issue and use
the [Feature Request Template](.github/ISSUE_TEMPLATE/feature_request.md).
Please prepend your issue title with `[RFC]` so that's easier to filter.
## Bug Reports
Bugs are a reality in software. We can't fix what we don't know about, so please report liberally. If you're not sure if
something is a bug or not, feel free to file it anyway.
Before reporting a bug, please search existing issues and pull requests, as it's possible that someone else has already
reported your error. In the off case that you find your issue as fixed/closed, please add a reference to it on your new
one.
Your issue should contain a title and a clear description of the issue. You should also include as much relevant
information as possible, and a code sample that demonstrates the issue. The goal of a bug report is to make it easy for
yourself - and others - to replicate the bug and develop a fix.
Opening an issue is as easy as
following [this link](https://github.com/mercadopago/sdk-java/issues/new?assignees=&labels=&template=bug_report.md) and
filling out the given template.
Bug reports may also be sent in the form of a [pull request](#pull-request) containing a failing test.
## Pull Request
First and foremost: Source code, documentation, commit messages, review comments, and any other kind of contribution
must *MUST* follow the [Coding Guidelines](CODING_GUIDELINES.md).
We use the "fork and pull"
model [described here](https://help.github.com/articles/about-collaborative-development-models/), where contributors
push changes to their personal fork and create pull requests to bring those changes into the source repository.
Your basic steps to get going:
* Fork the corresponding toolkit repository and create a branch from master for the issue you are working on.
* Commit as you go following our git conventions.
* Include tests that cover all non-trivial code. The existing tests should provide a template on how to test the toolkit
correctly.
* Make sure all test passes.
* All code changes are expected to comply with the formatting style.
* Push your commits to GitHub and create a pull request against the corresponding toolkit component master branch.
If taking too much time to deliver code, **always** [rebase](https://git-scm.com/docs/git-rebase) towards `master` before
asking for a review, and avoid reverse merge commits.
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2021 MercadoPago Developers
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: PULL_REQUEST_TEMPLATE.md
================================================
## Cambios realizados para el feature:
* item 1
## Cambios generales
* item 1
## Issues cerrados
* Closes #XX
## Checklist validación PR:
- [ ] Título y descripción clara del PR
- [ ] Tests de mi funcionalidad
- [ ] Documentación de mi funcionalidad
- [ ] Tests ejecutados y pasados
- [ ] Branch Coverage >= 80%
================================================
FILE: README.md
================================================
# Mercado Pago SDK for Java
[](https://search.maven.org/search?q=g:com.mercadopago%20AND%20a:sdk-java)

The official [Mercado Pago](https://www.mercadopago.com/developers/en/guides) Java client library.
## 💡 Requirements
Java 1.8 or later
## 📲 Installation
First time using Mercado Pago? Create your [Mercado Pago account](https://www.mercadopago.com), if you don’t have one
already.
1. Append MercadoPago dependencies to pom.xml
```xml
<dependency>
<groupId>com.mercadopago</groupId>
<artifactId>sdk-java</artifactId>
<version>3.1.0</version>
</dependency>
```
2. Run `mvn install` and that's all, you have Mercado Pago SDK installed.
3. Copy the access_token in the [credentials](https://www.mercadopago.com/developers/panel) section of the page and
replace YOUR_ACCESS_TOKEN with it.
That's it! Mercado Pago SDK has been successfully installed.
## 🌟 Getting Started
Simple usage looks like:
```java
import com.mercadopago.MercadoPagoConfig;
import com.mercadopago.client.order.*;
import com.mercadopago.core.MPRequestOptions;
import com.mercadopago.exceptions.MPApiException;
import com.mercadopago.exceptions.MPException;
import com.mercadopago.resources.order.Order;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Example {
public static void main(String[] args) {
MercadoPagoConfig.setAccessToken("{{ACCESS_TOKEN}}");
OrderClient client = new OrderClient();
OrderPaymentRequest payment = OrderPaymentRequest.builder()
.amount("10.00")
.paymentMethod(OrderPaymentMethodRequest.builder()
.id("master")
.type("credit_card")
.token("{{CARD_TOKEN}}")
.installments(1)
.build())
.build();
List<OrderPaymentRequest> payments = new ArrayList<>();
payments.add(payment);
OrderCreateRequest request = OrderCreateRequest.builder()
.type("online")
.totalAmount("10.00")
.externalReference("ext_ref")
.payer(OrderPayerRequest.builder().email("{{EMAIL}}").build())
.transactions(OrderTransactionRequest.builder()
.payments(payments)
.build())
.build();
Map<String, String> headers = new HashMap<>();
headers.put("X-Idempotency-Key", "{{IDEMPOTENCY_KEY}}");
MPRequestOptions requestOptions = MPRequestOptions.builder()
.customHeaders(headers)
.build();
try {
Order order = client.create(request, requestOptions);
System.out.println("Order created: " + order.getId());
} catch (MPApiException | MPException e) {
System.out.println("Error creating order: " + e.getMessage());
}
}
}
```
### Per-request Configuration
All the request methods accept an optional `MPRequestOptions` object. With this you can set a custom access token,
custom timeouts or even any custom headers you want, like an idempotency key for example.
```java
public class Example {
public static void main(String[] args) {
OrderClient client = new OrderClient();
Map<String, String> customHeaders = new HashMap<>();
customHeaders.put("x-idempotency-key", "...");
MPRequestOptions requestOptions =
MPRequestOptions.builder()
.accessToken("custom_access_token")
.connectionRequestTimeout(2000)
.connectionTimeout(2000)
.socketTimeout(2000)
.customHeaders(customHeaders)
.build();
OrderCreateRequest createRequest = OrderCreateRequest.builder().build();
try {
Order order = client.create(createRequest, requestOptions);
System.out.println(order);
} catch (MPException | MPApiException ex) {
ex.printStackTrace();
}
}
}
```
### SDK configurations
You can also set some customizations directly at MercadoPagoConfig class, for example set custom timeouts, a custom http
client, log configurations, etc...
```java
public class Example {
public static void main(String[] args) {
MercadoPagoConfig.setConnectionRequestTimeout(2000);
MercadoPagoConfig.setSocketTimeout(2000);
MercadoPagoConfig.setLoggingLevel(Level.FINEST);
}
}
```
### Custom Http Client
You can use a custom http client instead of using the default `MPDefaultHttpClient` by implementing the `MPHttpClient`
interface.
```java
public class CustomHttpClient implements MPHttpClient {
//...
}
```
## 📚 Documentation
See our documentation for more details.
- Mercado Pago reference API. [Portuguese](https://www.mercadopago.com/developers/pt/reference)
/ [English](https://www.mercadopago.com/developers/en/reference)
/ [Spanish](https://www.mercadopago.com/developers/es/reference)
## 🤝 Contributing
All contributions are welcome, ranging from people wanting to triage issues, others wanting to write documentation, to
people wanting to contribute code.
Please read and follow our [contribution guidelines](CONTRIBUTING.md). Contributions not following these guidelines will
be disregarded. The guidelines are in place to make all of our lives easier and make contribution a consistent process
for everyone.
### Patches to version 1.x.x
Since the release of version 2.0.0, version 1 is deprecated and will not be receiving new
features, only bug fixes. If you need to submit PRs for that version, please do so by using `develop-v1` as your base
branch.
## ❤️ Support
If you require technical support, please contact our support team at our developers
site: [English](https://www.mercadopago.com/developers/en/support/center/contact)
/ [Portuguese](https://www.mercadopago.com/developers/pt/support/center/contact)
/ [Spanish](https://www.mercadopago.com/developers/es/support/center/contact)
## 🏻 License
```
MIT license. Copyright (c) 2022 - Mercado Pago / Mercado Libre
For more information, see the LICENSE file.
```
================================================
FILE: SUPPORT.md
================================================
# 🆘 Support and Help
> **Quick guide:** Have a bug? → [Bug Report](../../issues/new/choose) | Questions? → [Question](../../issues/new/choose) | New idea? → [Feature Request](../../issues/new/choose)
---
## 🎯 Quick Decision Guide
| If you need... | Then... |
|----------------|---------|
| 💬 Question about how to use the SDK | [Create Question](../../issues/new/choose) |
| 🐛 Report an error or bug | [Create Bug Report](../../issues/new/choose) |
| ✨ Propose new feature | [Create Feature Request](../../issues/new/choose) |
| 💳 Problem with your MP account | [Official MP Support - ES ](https://www.mercadopago.com.co/developers/en/support/center)- [Official MP Support - PT ](https://www.mercadopago.com.co/developers/pt/support/center) |
---
## 📚 Before Creating an Issue
**Search first, ask later:**
1. **[Official Documentation](https://www.mercadopago.com/developers/es/docs)** - Most questions are answered here
2. **[Closed Issues](../../issues?q=is%3Aissue+is%3Aclosed)** - Your problem may be solved
3. **[Open Issues](../../issues?q=is%3Aissue+is%3Aopen)** - Your problem may be already reported
---
## 💬 How to Report Issues
### 1. For Questions 💬
**When to use?** Doubts about usage, configuration, or best practices.
**Steps:**
1. Search in [closed questions](../../issues?q=is%3Aissue+is%3Aclosed+label%3Aquestion)
2. [Create new question](../../issues/new/choose)
3. **Include:** SDK version, country, environment, code example.
### 2. For Bugs 🐛
**When to use?** Errors, unexpected behavior and/or crashes.
**Steps:**
1. Verify [latest version](../../releases/latest)
2. Search in [existing bugs](../../issues?q=is%3Aissue+label%3Abug)
3. [Report bug](../../issues/new/choose)
4. **Include:** reproducible steps, logs, environment, SDK version.
### 3. For Features ✨
**When to use?** Propose improvements or new features
**Steps:**
1. Search in [feature requests](../../issues?q=is%3Aissue+label%3Afeature%20request)
2. [Propose feature](../../issues/new/choose)
3. **Explain:** problem it solves, use cases, benefit.
### 4. To Contribute 🤝
**Want to help?** Read [CONTRIBUTING.md](./CONTRIBUTING.md)
---
## 🔒 Security
### ⚠️ NEVER Share in Public Issues:
- ❌ Access tokens or production credentials
- ❌ Client IDs / Client Secrets
- ❌ Customer or card data
- ❌ Personally Identifiable Information (PII)
> **⚠️ IMPORTANT:** Issues with real data will be closed and reported immediately.
---
## 🌎 Official Mercado Pago SDK Support
### ⚡ GitHub Issues Scope
**GitHub Issues is ONLY for SDK technical support.**
✅ **Use GitHub for:**
- SDK bugs
- Questions about SDK usage
- SDK features
- Code contributions
❌ **DO NOT use GitHub for:**
- Problems with your MP account
- Specific transactions or payments
- Commercial or billing topics
- Homologation/certification
- Account access or credentials
- Webhook configuration in your account
### 🏢 Contact Official MP Support for:
[**🔗 Official Mercado Pago Support - ES**](https://www.mercadopago.com.co/developers/es/support/center)
[**🔗 Official Mercado Pago Support - PT**](https://www.mercadopago.com.co/developers/pt/support/center)
- ✉️ Account problems
- 💳 Transactions and payments
- 🤝 Commercial topics
- 📋 Homologation
- 🔐 Account access
- 🌐 Webhooks in your account
- 📊 Reports and statistics
---
## 🔗 Resources and Contacts
### Documentation
- **[Official Documentation](https://www.mercadopago.com/developers/es/docs)** - Complete guides
- **[API Reference](https://www.mercadopago.com/developers/en/reference)** - API reference
- **[SDKs](https://www.mercadopago.com/developers/en/docs/sdks-library/server-side)** - Other SDKs
### Support
- **[GitHub Issues](../../issues/new/choose)** - SDK technical support
### Community channels
- **[Discord](https://discord.gg/96nqqpaycN)** - Community channel
- **[Newsletter](https://www.mercadopago.com/developers/panel/contact)** - Mercado Pago Newsletter
- **[Status Page](https://status.mercadopago.com/)** - Service status
---
## 💡 Tips for Getting Quick Help
1. **🔍 Search first** - Saves everyone time
2. **📝 Be specific** - "Error 400 on POST /payments" vs "It doesn't work"
3. **💻 Reproducible code** - Minimal and complete example
4. **📋 Follow templates** - They're designed to help you
5. **🚫 No sensitive data** - Protect your security
6. **🤝 Be respectful** - We're all part of the community
---
💙 **Thank you for being part of the Mercado Pago developer community!**
================================================
FILE: build-gradle.sh
================================================
#!/bin/sh
VERSION="7.6.1"
BREW_VERSION=${VERSION:0:1}
INSTALL_DIR=gradle
CMD=$(which gradle)
check_gradle_installed() {
echo "Checking if gradle is installed globally..."
which gradle > /dev/null 2>&1
return $?
}
install() {
which brew > /dev/null 2>&1
if [ $? -eq 0 ];
then
echo "Homebrew detected. Install gradle globally?"
echo "[yes/no] default: yes"
read brew
if [[ "$brew" == "yes" ]] || [[ "$brew" == "" ]];
then
echo "brew"
install_brew
else
echo "local"
install_locally
fi
else
install_locally
fi
}
install_brew() {
echo "Installing version $BREW_VERSION globally with Homebrew..."
brew install "gradle@$BREW_VERSION"
ln -s /usr/local/opt/gradle@$BREW_VERSION/bin/gradle /usr/local/bin/gradle
CMD=$(which gradle)
}
install_locally() {
echo "Installing version $VERSION locally @ ./$INSTALL_DIR/..."
ls gradle > /dev/null 2>&1
if [ $? -gt 0 ];
then
mkdir gradle
fi
curl "https://downloads.gradle-dn.com/distributions/gradle-$VERSION-bin.zip" > "gradle/gradle-$VERSION-bin.zip"
unzip -d gradle "gradle/gradle-$GRADLE_VERSION-bin.zip"
export GRADLE_HOME="gradle/gradle-$VERSION"
CMD="$GRADLE_HOME/bin/gradle"
}
init() {
ls settings.gradle > /dev/null 2>&1
if [ $? -gt 0 ];
then
echo "Setting up project..."
$CMD init <<< "\r\rno\r"
fi
}
build() {
which gradle > /dev/null 2>&1
if [ $? -gt 0 ];
then
export GRADLE_HOME="gradle/gradle-$VERSION"
CMD="$GRADLE_HOME/bin/gradle"
fi
$CMD build
}
check_gradle_installed
installed=$?
if [ $installed -gt 0 ] ;
then
echo "Gradle not found. Installing..."
install
fi
init
build
================================================
FILE: maven-central-deploy.sh
================================================
#!/usr/bin/env bash
!/bin/bash
# Deploy maven artefact in current directory into Maven central repository
# using maven-release-plugin goals
read -p "Really deploy to maven central repository (yes/no)? "
if ( [ "$REPLY" == "yes" ] ) then
ssh-add ~/.ssh/lubos.krnac
ssh-add -l
mvn release:clean release:prepare release:perform -B -e | tee maven-central-deploy.log
ssh-add -D
else
echo 'Exit without deploy'
fi
================================================
FILE: mp_ref_report.md
================================================
# MP API Reference Audit Report — Java SDK
_Generado: 2026-04-24_
## Resumen
| Categoria | Cantidad |
|-----------|----------|
| Total metodos API | 48 |
| Con reference URL | 28 (58%) |
| Sin reference URL (gaps) | 20 (42%) |
| URLs no canonicas (dominio pais) | 16 |
| URLs canonicas (.com) | 10 |
---
## URLs no canonicas (dominio por pais)
Estas URLs usan dominios por pais (`.com.br`, `.com.ar`) en lugar del canonico `https://www.mercadopago.com/developers/en/reference/...`:
| Archivo | URL encontrada | Dominio |
|---------|---------------|---------|
| PaymentRefundClient.java | `https://www.mercadopago.com.br/developers/en/reference/chargebacks/_payments_id_refunds/post` | .com.br |
| PaymentRefundClient.java | `https://www.mercadopago.com.br/developers/en/reference/chargebacks/_payments_id_refunds_refund_id/get` | .com.br |
| PaymentRefundClient.java | `https://www.mercadopago.com.br/developers/en/reference/chargebacks/_payments_id_refunds/get` | .com.br |
| CustomerClient.java | `https://www.mercadopago.com.br/developers/en/reference/online-payments/checkout-api/customers/search-customer/get` | .com.br |
| CustomerCardClient.java | `https://www.mercadopago.com.br/developers/en/reference/cards/_customers_customer_id_cards/get` | .com.br |
| IdentificationTypeClient.java | `https://www.mercadopago.com.br/developers/en/reference/identification_types/_identification_types/get` | .com.br |
| MerchantOrderClient.java | `https://www.mercadopago.com.br/developers/en/reference/merchant_orders/_merchant_orders/post` | .com.br |
| MerchantOrderClient.java | `https://www.mercadopago.com.br/developers/en/reference/merchant_orders/_merchant_orders_id/get` | .com.br |
| MerchantOrderClient.java | `https://www.mercadopago.com.br/developers/en/reference/merchant_orders/_merchant_orders_id/put` | .com.br |
| MerchantOrderClient.java | `https://www.mercadopago.com.br/developers/en/reference/merchant_orders/_merchant_orders_search/get` | .com.br |
| OauthClient.java | `https://www.mercadopago.com.br/developers/en/reference/oauth/_oauth_token/post` | .com.br |
| PreferenceClient.java | `https://www.mercadopago.com.br/developers/en/reference/preferences/_checkout_preferences/post` | .com.br |
| PreferenceClient.java | `https://www.mercadopago.com.br/developers/en/reference/preferences/_checkout_preferences_id/get` | .com.br |
| PreferenceClient.java | `https://www.mercadopago.com.br/developers/en/reference/preferences/_checkout_preferences_id/put` | .com.br |
| PreferenceClient.java | `https://www.mercadopago.com.br/developers/en/reference/preferences/_checkout_preferences_search/get` | .com.br |
| PaymentMethodClient.java | `https://www.mercadopago.com.br/developers/en/reference/payment_methods/_payment_methods/get` | .com.br |
| PointClient.java | `https://www.mercadopago.com.ar/developers/en/reference/in-person-payments/point/orders/create-order/post` | .com.ar |
| PointClient.java | `https://www.mercadopago.com.ar/developers/en/reference/in-person-payments/point/orders/get-order/get` | .com.ar |
| PointClient.java | `https://www.mercadopago.com.ar/developers/en/reference/in-person-payments/point/orders/cancel-order/post` | .com.ar |
| PointClient.java | `https://www.mercadopago.com.ar/developers/en/reference/in-person-payments/point/terminals/get-terminals/get` | .com.ar |
| PointClient.java | `https://www.mercadopago.com.ar/developers/en/reference/in-person-payments/point/terminals/update-operation-mode/patch` | .com.ar |
---
## Links faltantes (gaps) — 20 metodos sin referencia
### PaymentClient.java (4 gaps de 5 metodos)
- [ ] `get(Long id)` — GET /v1/payments/{id}
- [ ] `cancel(Long id)` — PUT /v1/payments/{id} (status=cancelled)
- [ ] `capture(Long id, BigDecimal amount)` — PUT /v1/payments/{id} (capture=true)
- [ ] `search(MPSearchRequest request)` — GET /v1/payments/search
### CustomerCardClient.java (4 gaps de 4 metodos)
- [ ] `get(String customerId, String cardId)` — GET /v1/customers/{id}/cards/{cardId}
- [ ] `create(String customerId, CustomerCardCreateRequest request)` — POST /v1/customers/{id}/cards
- [ ] `delete(String customerId, String cardId)` — DELETE /v1/customers/{id}/cards/{cardId}
- [ ] `listAll(String customerId)` — GET /v1/customers/{id}/cards
### CardTokenClient.java (2 gaps de 2 metodos)
- [ ] `get(String id)` — GET /v1/card_tokens/{id}
- [ ] `create(CardTokenRequest request)` — POST /v1/card_tokens
### OrderClient.java (9 gaps de 10 metodos)
- [ ] `get(String id)` — GET /v1/orders/{id}
- [ ] `process(String id)` — POST /v1/orders/{id}/process
- [ ] `createTransaction(String orderId, OrderTransactionRequest request)` — POST /v1/orders/{id}/transactions
- [ ] `updateTransaction(String orderId, String transactionId, OrderPaymentRequest request)` — PUT /v1/orders/{id}/transactions/{transactionId}
- [ ] `cancel(String orderId)` — POST /v1/orders/{id}/cancel
- [ ] `capture(String orderId)` — POST /v1/orders/{id}/capture
- [ ] `deleteTransaction(String orderId, String transactionId)` — DELETE /v1/orders/{id}/transactions/{transactionId}
- [ ] `refund(String orderId, OrderRefundRequest request)` — POST /v1/orders/{id}/refund
- [ ] `search(MPSearchRequest request)` — GET /v1/orders
### PreapprovalClient.java (4 gaps de 4 metodos)
- [ ] `get(String id)` — GET /preapproval/{id}
- [ ] `create(PreapprovalCreateRequest request)` — POST /preapproval
- [ ] `update(String id, PreapprovalUpdateRequest request)` — PUT /preapproval/{id}
- [ ] `search(MPSearchRequest request)` — GET /preapproval/search
### Otros
- [ ] `CustomerClient.delete(String customerId)` — DELETE /v1/customers/{id}
- [ ] `OauthClient.getAuthorizationURL(...)` — URL builder (no endpoint directo)
- [ ] `PointClient.getPaymentIntentStatus(String id)` — GET /point/integration-api/payment-intents/{id}/events
- [ ] `UserClient.get()` — GET /users/me
---
## Cobertura por cliente
| Cliente | Metodos | Con URL | Sin URL | Cobertura |
|---------|---------|---------|---------|-----------|
| PaymentClient | 6 | 1 | 5* | 17% |
| PaymentRefundClient | 3 | 3 | 0 | 100% |
| CustomerClient | 5 | 4 | 1 | 80% |
| CustomerCardClient | 4 | 0 | 4 | 0% |
| CardTokenClient | 2 | 0 | 2 | 0% |
| IdentificationTypeClient | 1 | 1 | 0 | 100% |
| MerchantOrderClient | 4 | 4 | 0 | 100% |
| OauthClient | 3 | 2 | 1 | 67% |
| OrderClient | 10 | 1 | 9 | 10% |
| PointClient | 7 | 6 | 1 | 86% |
| PreapprovalClient | 4 | 0 | 4 | 0% |
| PreferenceClient | 4 | 4 | 0 | 100% |
| PaymentMethodClient | 1 | 1 | 0 | 100% |
| UserClient | 1 | 0 | 1 | 0% |
*PaymentClient: tiene 1 URL a nivel de clase pero solo cubre create()
---
## Lista de revision manual
- [ ] PaymentClient.java — 4 metodos sin referencia API
- [ ] CustomerCardClient.java — 4 metodos sin referencia API (0% cobertura)
- [ ] CardTokenClient.java — 2 metodos sin referencia API (0% cobertura)
- [ ] OrderClient.java — 9 metodos sin referencia API (10% cobertura)
- [ ] PreapprovalClient.java — 4 metodos sin referencia API (0% cobertura)
- [ ] CustomerClient.java — delete() sin referencia API
- [ ] OauthClient.java — getAuthorizationURL() sin referencia API
- [ ] PointClient.java — getPaymentIntentStatus() sin referencia API
- [ ] UserClient.java — get() sin referencia API
- [ ] 16 URLs usan dominio por pais (.com.br/.com.ar) en lugar del canonico (.com)
================================================
FILE: pom.xml
================================================
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mercadopago</groupId>
<artifactId>sdk-java</artifactId>
<version>3.1.0</version>
<packaging>jar</packaging>
<name>Mercadopago SDK</name>
<description>Mercadopago SDK</description>
<url>https://github.com/mercadopago/sdk-java</url>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<developers>
<developer>
<name>Mercado Pago</name>
<email>mp_sdk@mercadopago.com</email>
<organization>Mercado Pago</organization>
<organizationUrl>https://www.mercadopago.com/developers</organizationUrl>
</developer>
</developers>
<build>
<finalName>${project.artifactId}-${project.version}</finalName>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>auto-clean</id>
<phase>initialize</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
<passphraseEnvName>MAVEN_GPG_PASSPHRASE</passphraseEnvName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<doclint>none</doclint>
<sourcepath>${project.build.directory}/delombok</sourcepath>
<outputDirectory>${project.basedir}/docs</outputDirectory>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.9.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.7</version>
<configuration>
<formats>
<format>html</format>
<format>xml</format>
</formats>
<check/>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.7</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.20.0</version>
<configuration>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<outputDirectory>${project.build.directory}/delombok</outputDirectory>
<addOutputDirectory>false</addOutputDirectory>
</configuration>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>delombok</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<scm>
<url>https://github.com/mercadopago/sdk-java/tree/master</url>
<connection>scm:git:git://github.com/mercadopago/sdk-java.git</connection>
<developerConnection>scm:git:ssh://github.com:mercadopago/sdk-java.git</developerConnection>
<tag>HEAD</tag>
</scm>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.14</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.27.1</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.4.1</version>
<exclusions>
<exclusion>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.velocity.tools</groupId>
<artifactId>velocity-tools-generic</artifactId>
<version>3.1</version>
<exclusions>
<!-- It was moved to https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 -->
<exclusion>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.18.0</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
<version>5.4.3</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.32</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.18.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
================================================
FILE: src/main/java/com/mercadopago/MercadoPagoConfig.java
================================================
package com.mercadopago;
import com.mercadopago.net.MPDefaultHttpClient;
import com.mercadopago.net.MPHttpClient;
import java.util.Objects;
import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.StreamHandler;
import lombok.Getter;
import lombok.Setter;
import lombok.Synchronized;
import org.apache.http.HttpHost;
import org.apache.http.client.HttpRequestRetryHandler;
/**
* Global configuration class for the MercadoPago Java SDK.
*
* <p>This class holds all SDK-wide settings such as the OAuth access token, HTTP timeouts,
* connection pool limits, proxy configuration, logging behavior, and tracking identifiers.
* All fields are static and thread-safe (declared {@code volatile} or synchronized), so a
* single configuration applies across the entire application.
*
* <p>Per-request overrides (e.g., a different access token or timeout for one call) can be
* specified via {@link com.mercadopago.core.MPRequestOptions}; any field left at its
* zero/null default in that object will fall back to the values defined here.
*
* <p><b>Usage example:</b>
* <pre>{@code
* MercadoPagoConfig.setAccessToken("APP_USR-...");
* MercadoPagoConfig.setConnectionTimeout(30000);
* }</pre>
*
* @see com.mercadopago.core.MPRequestOptions
* @see com.mercadopago.net.MPDefaultHttpClient
*/
public class MercadoPagoConfig {
public static final String CURRENT_VERSION = "3.1.0";
/** Internal MercadoPago product identifier sent in every API request for analytics. */
public static final String PRODUCT_ID = "BC32A7VTRPP001U8NHJ0";
/**
* Tracking header value sent with every API request. Encodes the Java runtime version
* and SDK version so the MercadoPago platform can identify the client environment.
*/
public static final String TRACKING_ID = String.format(
"platform:%s,type:SDK%s,so;",
MercadoPagoConfig.getJavaVersion(), MercadoPagoConfig.CURRENT_VERSION);
/** Base URL for all MercadoPago REST API calls. */
public static final String BASE_URL = "https://api.mercadopago.com";
/** Default maximum number of concurrent HTTP connections in the connection pool. Value: 10. */
private static final int DEFAULT_MAX_CONNECTIONS = 10;
/** Default timeout in milliseconds for establishing an HTTP connection. Value: 20 000 ms. */
private static final int DEFAULT_CONNECTION_TIMEOUT_MS = 20000;
/** Default timeout in milliseconds for obtaining a connection from the pool. Value: 20 000 ms. */
private static final int DEFAULT_CONNECTION_REQUEST_TIMEOUT_MS = 20000;
/** Default socket (read) timeout in milliseconds for waiting for response data. Value: 20 000 ms. */
private static final int DEFAULT_SOCKET_TIMEOUT_MS = 20000;
/** Default scope label used when reporting SDK metrics. Value: {@code "prod"}. */
private static final String DEFAULT_METRICS_SCOPE = "prod";
/** Default logging level for the SDK logger. Value: {@link Level#OFF} (logging disabled). */
private static final Level DEFAULT_LOGGING_LEVEL = Level.OFF;
/** OAuth access token used to authenticate API requests when no per-request token is provided. */
@Getter
@Setter
private static volatile String accessToken;
/** Platform identifier header sent with API requests for tracking and analytics. */
@Getter
@Setter
private static volatile String platformId;
/** Corporation identifier header sent with API requests for multi-entity tracking. */
@Getter
@Setter
private static volatile String corporationId;
/** Integrator identifier header sent with API requests to attribute traffic to a specific integrator. */
@Getter
@Setter
private static volatile String integratorId;
/**
* Custom {@link StreamHandler} for SDK log output. When {@code null}, a default
* {@link ConsoleHandler} is used instead.
*
* @see #getStreamHandler()
*/
@Getter
@Setter
private static volatile StreamHandler loggingHandler;
/** Scope label used when reporting SDK metrics. Defaults to {@code "prod"}. */
@Getter
@Setter
private static volatile String metricsScope = DEFAULT_METRICS_SCOPE;
/**
* Java {@link Level} controlling the verbosity of SDK log output. Defaults to
* {@link Level#OFF} (no logging).
*/
@Getter
@Setter
private static volatile Level loggingLevel = DEFAULT_LOGGING_LEVEL;
/** Maximum number of concurrent HTTP connections maintained in the connection pool. Defaults to 10. */
@Getter
@Setter
private static volatile int maxConnections = DEFAULT_MAX_CONNECTIONS;
/** Timeout in milliseconds for establishing a new HTTP connection. Defaults to 20 000 ms. */
@Getter
@Setter
private static volatile int connectionTimeout = DEFAULT_CONNECTION_TIMEOUT_MS;
/** Timeout in milliseconds for obtaining a connection from the pool. Defaults to 20 000 ms. */
@Getter
@Setter
private static volatile int connectionRequestTimeout = DEFAULT_CONNECTION_REQUEST_TIMEOUT_MS;
/** Timeout in milliseconds for waiting for response data on an open socket. Defaults to 20 000 ms. */
@Getter
@Setter
private static volatile int socketTimeout = DEFAULT_SOCKET_TIMEOUT_MS;
/**
* HTTP client implementation used for all API calls. Lazily initialized to
* {@link MPDefaultHttpClient} on first access via {@link #getHttpClient()}.
*/
@Setter
private static volatile MPHttpClient httpClient;
/**
* HTTP proxy host through which all API requests are routed. When {@code null},
* requests are made directly without a proxy.
*/
@Getter(onMethod_ = { @Synchronized })
@Setter(onMethod_ = { @Synchronized })
private static HttpHost proxy;
/**
* Custom retry handler for HTTP requests. When set, the underlying Apache HTTP client
* will delegate retry decisions to this handler instead of using its default strategy.
*/
@Getter
@Setter
private static HttpRequestRetryHandler retryHandler;
/**
* Returns the HTTP client used for API communication, creating a default
* {@link MPDefaultHttpClient} instance on first invocation (lazy initialization).
*
* <p>The returned client is a singleton shared across all SDK calls. To replace it
* with a custom implementation, use {@link #setHttpClient(MPHttpClient)} before making
* any API requests.
*
* @return the current {@link MPHttpClient} instance, never {@code null}
* @see MPDefaultHttpClient
*/
public static synchronized MPHttpClient getHttpClient() {
if (Objects.isNull(httpClient)) {
httpClient = new MPDefaultHttpClient();
}
return httpClient;
}
/**
* Returns the Java runtime version formatted as {@code "major|full"}.
*
* <p>For example, on Java 11.0.12+7, this method returns {@code "11|11.0.12+7"}.
* The value is used in the {@link #TRACKING_ID} header sent with every API request.
*
* @return a string in the format {@code "majorVersion|fullVersion"}, or {@code null}
* if the {@code java.runtime.version} system property is unavailable
*/
public static synchronized String getJavaVersion() {
String version = System.getProperty("java.runtime.version");
if (Objects.isNull(version)) {
return null;
}
String major = version.replaceAll("^1\\.", "");
int dotIndex = major.indexOf('.');
if (dotIndex != -1) {
major = major.substring(0, dotIndex);
}
return major + "|" + version;
}
/**
* Returns the active {@link StreamHandler} for SDK logging. If a custom handler has been
* set via {@link #setLoggingHandler(StreamHandler)}, it is returned; otherwise a new
* {@link ConsoleHandler} is created as a fallback.
*
* @return the configured {@link StreamHandler}, or a default {@link ConsoleHandler}
*/
public static StreamHandler getStreamHandler() {
return Objects.nonNull(loggingHandler) ? loggingHandler : new ConsoleHandler();
}
}
================================================
FILE: src/main/java/com/mercadopago/client/MercadoPagoClient.java
================================================
package com.mercadopago.client;
import static java.util.Objects.nonNull;
import static org.apache.commons.collections4.MapUtils.isNotEmpty;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
import com.google.gson.JsonObject;
import com.mercadopago.MercadoPagoConfig;
import com.mercadopago.core.MPRequestOptions;
import com.mercadopago.exceptions.MPApiException;
import com.mercadopago.exceptions.MPException;
import com.mercadopago.net.Headers;
import com.mercadopago.net.HttpMethod;
import com.mercadopago.net.MPHttpClient;
import com.mercadopago.net.MPRequest;
import com.mercadopago.net.MPResponse;
import com.mercadopago.net.MPSearchRequest;
import com.mercadopago.net.UrlFormatter;
import java.util.HashMap;
import java.util.Map;
/**
* Abstract base client for all MercadoPago API interactions.
*
* <p>This class provides the foundation for every specialized API client in the SDK. It handles
* HTTP request execution, default and custom header management (including authorization via Bearer
* tokens), timeout resolution with a three-level priority (request options, request object, global
* config), and automatic idempotency key generation for {@code POST}, {@code PUT}, and
* {@code PATCH} requests.
*
* <p>Subclasses should use the protected {@code send()}, {@code search()}, and {@code list()}
* helper methods to communicate with the MercadoPago REST API.
*
* @see com.mercadopago.MercadoPagoConfig
* @see MPHttpClient
* @see MPRequestOptions
*/
public abstract class MercadoPagoClient {
/** Default value for the {@code Accept} HTTP header. */
private static final String ACCEPT_HEADER_VALUE = "application/json";
/** Default value for the {@code Content-Type} HTTP header, including UTF-8 charset. */
private static final String CONTENT_TYPE_HEADER_VALUE = "application/json; charset=UTF-8";
/** Format string used to build the {@code Authorization: Bearer} header value. */
private static final String BEARER = "Bearer %s";
/** Path segment used to detect OAuth token requests and skip the Bearer header. */
private static final String OAUTH_TOKEN = "/oauth/token";
/** HTTP client used to execute every request dispatched by this client instance. */
protected final MPHttpClient httpClient;
/**
* Default HTTP headers sent with every request. Populated during construction with
* {@code Accept}, {@code Content-Type}, {@code User-Agent}, {@code Product-Id}, and
* {@code Tracking-Id}.
*/
protected Map<String, String> defaultHeaders;
/**
* Constructs a new {@code MercadoPagoClient} with the given HTTP client.
*
* <p>Initialises the default headers map with {@code Accept}, {@code Content-Type},
* {@code User-Agent}, {@code Product-Id}, and {@code Tracking-Id} values taken from
* {@link MercadoPagoConfig}.
*
* @param httpClient the {@link MPHttpClient} implementation used to execute HTTP requests
*/
public MercadoPagoClient(MPHttpClient httpClient) {
this.httpClient = httpClient;
this.defaultHeaders = new HashMap<>();
defaultHeaders.put(Headers.ACCEPT, ACCEPT_HEADER_VALUE);
defaultHeaders.put(Headers.PRODUCT_ID, MercadoPagoConfig.PRODUCT_ID);
defaultHeaders.put(
Headers.USER_AGENT,
String.format("MercadoPago Java SDK/%s", MercadoPagoConfig.CURRENT_VERSION));
defaultHeaders.put(Headers.TRACKING_ID, MercadoPagoConfig.TRACKING_ID);
defaultHeaders.put(Headers.CONTENT_TYPE, CONTENT_TYPE_HEADER_VALUE);
}
/**
* Sends an HTTP request using the pre-built {@link MPRequest} object with default configuration.
*
* <p>This is a convenience overload that delegates to {@link #send(MPRequest, MPRequestOptions)}
* with {@code null} request options, meaning global configuration from
* {@link MercadoPagoConfig} is used for timeouts and access tokens.
*
* @param request the {@link MPRequest} containing URI, HTTP method, payload, and query parameters
* @return the {@link MPResponse} with status code, headers, and body returned by the API
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
protected MPResponse send(MPRequest request) throws MPException, MPApiException {
return this.send(request, null);
}
/**
* Sends an HTTP request using the pre-built {@link MPRequest} object, applying optional
* per-request overrides.
*
* <p>This method resolves the final URL (formatting query parameters), selects the access token
* (preferring {@code requestOptions} over global config), merges default and custom headers,
* and resolves timeouts with a three-level priority: request options > request object >
* {@link MercadoPagoConfig} defaults. An idempotency key is automatically generated for
* {@code POST}, {@code PUT}, and {@code PATCH} methods unless one is already present.
*
* @param request the {@link MPRequest} containing URI, HTTP method, payload, and query parameters
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the {@link MPResponse} with status code, headers, and body returned by the API
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
protected MPResponse send(MPRequest request, MPRequestOptions requestOptions)
throws MPException, MPApiException {
String uri = UrlFormatter.format(request.getUri(), request.getQueryParams());
return httpClient.send(
MPRequest.builder()
.uri(uri)
.accessToken(getAccessToken(requestOptions))
.method(request.getMethod())
.headers(addRequestHeaders(request, requestOptions))
.payload(request.getPayload())
.connectionRequestTimeout(addConnectionRequestTimeout(request, requestOptions))
.connectionTimeout(addConnectionTimeout(request, requestOptions))
.socketTimeout(addSocketTimeout(request, requestOptions))
.build());
}
/**
* Builds and sends an HTTP request from individual components with default configuration.
*
* <p>This is a convenience overload that delegates to
* {@link #send(String, HttpMethod, JsonObject, Map, MPRequestOptions)} with {@code null}
* request options.
*
* @param path the relative API path (e.g. {@code "/v1/payments"})
* @param method the {@link HttpMethod} to use (GET, POST, PUT, DELETE, PATCH)
* @param payload the JSON request body, or {@code null} for body-less requests
* @param queryParams a map of query-string parameters, or {@code null} if none
* @return the {@link MPResponse} with status code, headers, and body returned by the API
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
protected MPResponse send(
String path, HttpMethod method, JsonObject payload, Map<String, Object> queryParams)
throws MPException, MPApiException {
return this.send(path, method, payload, queryParams, null);
}
/**
* Builds and sends an HTTP request from individual components, applying optional per-request
* overrides.
*
* <p>Internally constructs an {@link MPRequest} via {@code buildRequest()}, then delegates to
* {@link #send(MPRequest)}. This is the most flexible {@code send()} variant and is the
* ultimate target of all other convenience overloads.
*
* @param path the relative API path (e.g. {@code "/v1/payments"})
* @param method the {@link HttpMethod} to use (GET, POST, PUT, DELETE, PATCH)
* @param payload the JSON request body, or {@code null} for body-less requests
* @param queryParams a map of query-string parameters, or {@code null} if none
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the {@link MPResponse} with status code, headers, and body returned by the API
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
protected MPResponse send(
String path,
HttpMethod method,
JsonObject payload,
Map<String, Object> queryParams,
MPRequestOptions requestOptions)
throws MPException, MPApiException {
MPRequest mpRequest = buildRequest(path, method, payload, queryParams, requestOptions);
return this.send(mpRequest);
}
/**
* Performs a search request against the given API path using default configuration.
*
* <p>Delegates to {@link #search(String, MPSearchRequest, MPRequestOptions)} with {@code null}
* request options.
*
* @param path the relative API path for the search endpoint (e.g. {@code "/v1/payments/search"})
* @param request the {@link MPSearchRequest} containing search/filter/pagination parameters, or
* {@code null} for an unfiltered search
* @return the {@link MPResponse} with the search results returned by the API
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
protected MPResponse search(String path, MPSearchRequest request)
throws MPException, MPApiException {
return this.search(path, request, null);
}
/**
* Performs a search request against the given API path, applying optional per-request overrides.
*
* <p>Extracts query parameters from the {@link MPSearchRequest} and issues an HTTP {@code GET}
* via the underlying {@code send()} method. If {@code searchRequest} is {@code null}, no
* query parameters are appended.
*
* @param path the relative API path for the search endpoint (e.g. {@code "/v1/payments/search"})
* @param searchRequest the {@link MPSearchRequest} containing search/filter/pagination
* parameters, or {@code null} for an unfiltered search
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the {@link MPResponse} with the search results returned by the API
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
protected MPResponse search(
String path, MPSearchRequest searchRequest, MPRequestOptions requestOptions)
throws MPException, MPApiException {
Map<String, Object> queryParams =
nonNull(searchRequest) ? searchRequest.getParameters() : null;
return this.send(path, HttpMethod.GET, null, queryParams, requestOptions);
}
/**
* Performs an HTTP {@code GET} request that returns a list of resources from the given API path.
*
* <p>This is a convenience overload that delegates to
* {@link #list(String, HttpMethod, JsonObject, Map, MPRequestOptions)} using {@code GET} with
* no payload or query parameters.
*
* @param path the relative API path for the list endpoint
* (e.g. {@code "/v1/customers/123/cards"})
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the {@link MPResponse} containing the list of resources returned by the API
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
protected MPResponse list(String path, MPRequestOptions requestOptions)
throws MPException, MPApiException {
return this.list(path, HttpMethod.GET, null, null, requestOptions);
}
/**
* Performs an HTTP request that returns a list of resources, with full control over all request
* parameters.
*
* <p>This method is functionally identical to
* {@link #send(String, HttpMethod, JsonObject, Map, MPRequestOptions)} and exists as a
* semantic alias to improve readability in subclasses that list resources.
*
* @param path the relative API path for the list endpoint
* @param method the {@link HttpMethod} to use (typically {@code GET})
* @param payload the JSON request body, or {@code null} for body-less requests
* @param queryParams a map of query-string parameters, or {@code null} if none
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the {@link MPResponse} containing the list of resources returned by the API
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
protected MPResponse list(
String path,
HttpMethod method,
JsonObject payload,
Map<String, Object> queryParams,
MPRequestOptions requestOptions)
throws MPException, MPApiException {
return this.send(path, method, payload, queryParams, requestOptions);
}
private MPRequest buildRequest(
String path,
HttpMethod method,
JsonObject payload,
Map<String, Object> queryParams,
MPRequestOptions requestOptions) {
return MPRequest.builder()
.uri(path)
.accessToken(getAccessToken(requestOptions))
.payload(payload)
.method(method)
.queryParams(queryParams)
.headers(addCustomHeaders(path, requestOptions))
.connectionRequestTimeout(addConnectionRequestTimeout(null, requestOptions))
.connectionTimeout(addConnectionTimeout(null, requestOptions))
.socketTimeout(addSocketTimeout(null, requestOptions))
.build();
}
private int addSocketTimeout(MPRequest request, MPRequestOptions requestOptions) {
if (nonNull(requestOptions) && requestOptions.getSocketTimeout() > 0) {
return requestOptions.getSocketTimeout();
}
if (nonNull(request) && request.getSocketTimeout() > 0) {
return request.getSocketTimeout();
}
return MercadoPagoConfig.getSocketTimeout();
}
private int addConnectionTimeout(MPRequest request, MPRequestOptions requestOptions) {
if (nonNull(requestOptions) && requestOptions.getConnectionTimeout() > 0) {
return requestOptions.getConnectionTimeout();
}
if (nonNull(request) && request.getConnectionTimeout() > 0) {
return request.getConnectionTimeout();
}
return MercadoPagoConfig.getConnectionTimeout();
}
private int addConnectionRequestTimeout(MPRequest request, MPRequestOptions requestOptions) {
if (nonNull(requestOptions) && requestOptions.getConnectionRequestTimeout() > 0) {
return requestOptions.getConnectionRequestTimeout();
}
if (nonNull(request) && request.getConnectionRequestTimeout() > 0) {
return request.getConnectionRequestTimeout();
}
return MercadoPagoConfig.getConnectionRequestTimeout();
}
private Map<String, String> addRequestHeaders(MPRequest request, MPRequestOptions requestOptions) {
Map<String, String> headers =
nonNull(request.getHeaders()) ? request.getHeaders() : new HashMap<>();
headers.putAll(addDefaultHeaders(request));
if (isNotBlank(MercadoPagoConfig.getCorporationId())) {
headers.put(Headers.CORPORATION_ID, MercadoPagoConfig.getCorporationId());
}
if (isNotBlank(MercadoPagoConfig.getIntegratorId())) {
headers.put(Headers.INTEGRATOR_ID, MercadoPagoConfig.getIntegratorId());
}
if (isNotBlank(MercadoPagoConfig.getPlatformId())) {
headers.put(Headers.PLATFORM_ID, MercadoPagoConfig.getPlatformId());
}
if (nonNull(requestOptions) && isNotEmpty(requestOptions.getCustomHeaders()) ) {
for (Map.Entry<String, String> header : requestOptions.getCustomHeaders().entrySet()) {
if (!headers.containsKey(header.getKey()) && !Headers.CONTENT_TYPE.equalsIgnoreCase(header.getKey())) {
headers.put(header.getKey().toLowerCase(), header.getValue());
}
}
}
headers.putAll(addCustomHeaders(request.getUri(), requestOptions));
return headers;
}
private Map<String, String> addDefaultHeaders(MPRequest request) {
Map<String, String> headers = new HashMap<>(defaultHeaders);
if (shouldAddIdempotencyKey(request)) {
headers.put(Headers.IDEMPOTENCY_KEY, request.createIdempotencyKey());
}
if (nonNull(request) && !request.getUri().contains(OAUTH_TOKEN) && !headers.containsKey(Headers.AUTHORIZATION)) {
headers.put(Headers.AUTHORIZATION, String.format(BEARER, chooseAccessToken(request)));
}
return headers;
}
private String chooseAccessToken(MPRequest request) {
return request.getAccessToken() != null ? request.getAccessToken() : MercadoPagoConfig.getAccessToken();
}
private Map<String, String> addCustomHeaders(String uri, MPRequestOptions requestOptions) {
Map<String, String> headers = new HashMap<>();
if (nonNull(requestOptions) && nonNull(requestOptions.getCustomHeaders())) {
for (Map.Entry<String, String> entry : requestOptions.getCustomHeaders().entrySet()) {
headers.put(entry.getKey().toLowerCase(), entry.getValue());
}
}
if (requestOptions!= null && !uri.contains(OAUTH_TOKEN)) {
headers.put(Headers.AUTHORIZATION, String.format(BEARER, getAccessToken(requestOptions)));
}
return headers;
}
private boolean shouldAddIdempotencyKey(MPRequest request) {
boolean containsIdempotency = false;
if (nonNull(request) && nonNull(request.getHeaders())) {
containsIdempotency = request.getHeaders().containsKey(Headers.IDEMPOTENCY_KEY.toLowerCase());
}
if (containsIdempotency) return false;
return request.getMethod() == HttpMethod.POST ||
request.getMethod() == HttpMethod.PUT ||
request.getMethod() == HttpMethod.PATCH;
}
private String getAccessToken(MPRequestOptions requestOptions) {
return nonNull(requestOptions)
&& nonNull(requestOptions.getAccessToken())
&& !requestOptions.getAccessToken().isEmpty()
? requestOptions.getAccessToken()
: MercadoPagoConfig.getAccessToken();
}
}
================================================
FILE: src/main/java/com/mercadopago/client/cardtoken/CardTokenClient.java
================================================
package com.mercadopago.client.cardtoken;
import static com.mercadopago.MercadoPagoConfig.getStreamHandler;
import com.mercadopago.MercadoPagoConfig;
import com.mercadopago.client.MercadoPagoClient;
import com.mercadopago.core.MPRequestOptions;
import com.mercadopago.exceptions.MPApiException;
import com.mercadopago.exceptions.MPException;
import com.mercadopago.net.HttpMethod;
import com.mercadopago.net.MPHttpClient;
import com.mercadopago.net.MPResponse;
import com.mercadopago.resources.CardToken;
import com.mercadopago.serialization.Serializer;
import java.util.logging.Logger;
import java.util.logging.StreamHandler;
/**
* Client for the MercadoPago Card Tokens API.
*
* <p>Provides PCI-compliant card tokenization operations. Tokens represent card data securely
* and are used when creating payments or saving cards to a customer profile.
*
* <p>Usage example:
* <pre>{@code
* CardTokenClient client = new CardTokenClient();
* CardToken token = client.create(cardTokenRequest);
* // Use token.getId() when creating a payment
* }</pre>
*
* @see <a href="https://www.mercadopago.com/developers/en/reference">Card Tokens API reference</a>
*/
public class CardTokenClient extends MercadoPagoClient {
/** Class-level logger for card token operations. */
private static final Logger LOGGER = Logger.getLogger(CardTokenClient.class.getName());
/**
* Default constructor. Uses the default HTTP client provided by {@link MercadoPagoConfig}.
*/
public CardTokenClient() {
this(MercadoPagoConfig.getHttpClient());
}
/**
* Constructs a {@code CardTokenClient} with a custom HTTP client.
*
* @param httpClient the {@link MPHttpClient} implementation used to execute HTTP requests
*/
public CardTokenClient(MPHttpClient httpClient) {
super(httpClient);
StreamHandler streamHandler = getStreamHandler();
streamHandler.setLevel(MercadoPagoConfig.getLoggingLevel());
LOGGER.addHandler(streamHandler);
LOGGER.setLevel(MercadoPagoConfig.getLoggingLevel());
}
/**
* Retrieves a card token by its unique identifier.
*
* @param id the unique identifier of the card token
* @return the requested {@link CardToken}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
public CardToken get(String id) throws MPException, MPApiException {
return this.get(id, null);
}
/**
* Retrieves a card token by its unique identifier with custom request options.
*
* @param id the unique identifier of the card token
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the requested {@link CardToken}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
public CardToken get(String id, MPRequestOptions requestOptions)
throws MPException, MPApiException {
MPResponse response =
send(String.format("/v1/card_tokens/%s", id), HttpMethod.GET, null, null, requestOptions);
CardToken cardToken = Serializer.deserializeFromJson(CardToken.class, response.getContent());
cardToken.setResponse(response);
return cardToken;
}
/**
* Creates a new card token from card data.
*
* @param request the {@link CardTokenRequest} with card number, expiration, security code, and
* cardholder details
* @return the created {@link CardToken} containing the token identifier
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
public CardToken create(CardTokenRequest request) throws MPException, MPApiException {
return this.create(request, null);
}
/**
* Creates a new card token from card data with custom request options.
*
* @param request the {@link CardTokenRequest} with card number, expiration, security code, and
* cardholder details
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the created {@link CardToken} containing the token identifier
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
public CardToken create(CardTokenRequest request, MPRequestOptions requestOptions)
throws MPException, MPApiException {
MPResponse response =
send(
"/v1/card_tokens",
HttpMethod.POST,
Serializer.serializeToJson(request),
null,
requestOptions);
CardToken cardToken = Serializer.deserializeFromJson(CardToken.class, response.getContent());
cardToken.setResponse(response);
return cardToken;
}
}
================================================
FILE: src/main/java/com/mercadopago/client/cardtoken/CardTokenRequest.java
================================================
package com.mercadopago.client.cardtoken;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO used to create a card token for secure payment processing. Card tokens allow
* sensitive card data to be handled in a PCI-compliant manner by replacing actual card details
* with a temporary token that can be used in payment requests.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/card_tokens">Card Token API Reference</a>
*/
@Builder
@Getter
public class CardTokenRequest {
/** Unique identifier of the saved card to be tokenized. */
private final String cardId;
/** Unique identifier of the customer who owns the card. */
private final String customerId;
/** Security code (CVV/CVC) printed on the card, required for token creation. */
private final String securityCode;
}
================================================
FILE: src/main/java/com/mercadopago/client/common/AddressRequest.java
================================================
package com.mercadopago.client.common;
import lombok.Getter;
import lombok.experimental.SuperBuilder;
/**
* Request DTO representing a physical address used across multiple Mercado Pago API resources such
* as payments, customers, and shipping. Serves as a reusable base for address-related requests.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference">Mercado Pago API Reference</a>
*/
@Getter
@SuperBuilder
public class AddressRequest {
/** Postal or ZIP code of the address (e.g., "01310-100"). */
private final String zipCode;
/** Name of the street (e.g., "Avenida Paulista"). */
private final String streetName;
/** Street number or house number (e.g., "1578"). */
private final String streetNumber;
/** Neighborhood or district name. */
private final String neighborhood;
/** City name (e.g., "Sao Paulo"). */
private final String city;
/** State or province name (e.g., "SP"). */
private final String state;
/** Additional address details such as suite or unit number. */
private final String complement;
/** Floor number in the building, if applicable. */
private final String floor;
}
================================================
FILE: src/main/java/com/mercadopago/client/common/IdentificationRequest.java
================================================
package com.mercadopago.client.common;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO representing a personal identification document used to identify payers,
* customers, and cardholders. The type and number vary by country (e.g., CPF in Brazil,
* DNI in Argentina, CC in Colombia).
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference">Mercado Pago API Reference</a>
*/
@Getter
@Builder
public class IdentificationRequest {
/** Type of identification document (e.g., "CPF", "DNI", "CNPJ", "CC"). */
private final String type;
/** Identification document number. */
private final String number;
}
================================================
FILE: src/main/java/com/mercadopago/client/common/InvoicePeriod.java
================================================
package com.mercadopago.client.common;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO representing the billing period configuration for subscription invoices. Defines
* the frequency type and interval at which recurring charges are generated for a subscription plan.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/subscriptions">Subscriptions API Reference</a>
*/
@Getter
@Builder
public class InvoicePeriod {
/** Frequency type of the billing period (e.g., "monthly", "daily"). */
private String type;
/** Number of frequency units between each billing cycle (e.g., 1 for every month). */
private Integer period;
}
================================================
FILE: src/main/java/com/mercadopago/client/common/PhoneRequest.java
================================================
package com.mercadopago.client.common;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO representing a phone number, split into area code and number. Used across multiple
* Mercado Pago API resources such as customers, payers, and shipping contacts.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference">Mercado Pago API Reference</a>
*/
@Getter
@Builder
public class PhoneRequest {
/** Telephone area code (e.g., "11" for Sao Paulo, "54" for Argentina). */
private final String areaCode;
/** Phone number without the area code. */
private final String number;
}
================================================
FILE: src/main/java/com/mercadopago/client/common/SubMerchant.java
================================================
package com.mercadopago.client.common;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO representing sub-merchant information for Payment Facilitator (PF) transactions.
* Required by card brands and regulators to identify the actual merchant in payment facilitator
* models, including details such as MCC, address, and tax identification.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference">Mercado Pago API Reference</a>
*/
@Getter
@Builder
public class SubMerchant {
/** Unique identifier code of the sub-merchant in the facilitator's system. */
private final String subMerchantId;
/** Merchant Category Code (MCC) per ABECS standards and/or primary CNAE classification. */
private final String mcc;
/** ISO 3166-1 country code where the sub-merchant is located (e.g., "BRA"). */
private final String country;
/** Street number of the sub-merchant's address. */
private final Integer addressDoorNumber;
/** Postal code (CEP) of the sub-merchant's address. */
private final String zip;
/** Tax identification number of the sub-merchant (CPF or CNPJ). */
private final String documentNumber;
/** City where the sub-merchant is located. */
private final String city;
/** Street name of the sub-merchant's address. */
private final String addressStreet;
/** Registered legal name of the sub-merchant. */
private final String legalName;
/** ISO code of the state or region where the sub-merchant is located. */
private final String regionCodeIso;
/** State or region code of the sub-merchant's address. */
private final String regionCode;
/** Type of tax identification document (e.g., "CPF", "CNPJ"). */
private final String documentType;
/** Phone number of the sub-merchant. */
private final String phone;
/** Website URL of the sub-merchant or payment facilitator. */
private final String url;
}
================================================
FILE: src/main/java/com/mercadopago/client/common/SubscriptionSequence.java
================================================
package com.mercadopago.client.common;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO representing the sequence tracking information for a recurring subscription payment.
* Indicates the current installment number and the total number of planned installments in the
* subscription lifecycle.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/subscriptions">Subscriptions API Reference</a>
*/
@Getter
@Builder
public class SubscriptionSequence {
/** Current sequence number of this payment within the subscription (e.g., 3 of 12). */
private Integer number;
/** Total number of planned payments in the subscription series. */
private Integer total;
}
================================================
FILE: src/main/java/com/mercadopago/client/customer/CustomerAddressRequest.java
================================================
package com.mercadopago.client.customer;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO representing a customer's default address. Used when creating or updating
* a customer to specify their primary address information for shipping or billing purposes.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/customers">Customers API Reference</a>
*/
@Getter
@Builder
public class CustomerAddressRequest {
/** Unique identifier of an existing address to set as default. */
private final String id;
/** Postal or ZIP code of the address. */
private final String zipCode;
/** Name of the street. */
private final String streetName;
/** Street number or house number. */
private final Integer streetNumber;
}
================================================
FILE: src/main/java/com/mercadopago/client/customer/CustomerCardClient.java
================================================
package com.mercadopago.client.customer;
import static com.mercadopago.MercadoPagoConfig.getStreamHandler;
import com.google.gson.JsonObject;
import com.mercadopago.MercadoPagoConfig;
import com.mercadopago.client.MercadoPagoClient;
import com.mercadopago.core.MPRequestOptions;
import com.mercadopago.exceptions.MPApiException;
import com.mercadopago.exceptions.MPException;
import com.mercadopago.net.HttpMethod;
import com.mercadopago.net.MPHttpClient;
import com.mercadopago.net.MPRequest;
import com.mercadopago.net.MPResourceList;
import com.mercadopago.net.MPResponse;
import com.mercadopago.resources.customer.CustomerCard;
import com.mercadopago.serialization.Serializer;
import java.util.logging.Logger;
import java.util.logging.StreamHandler;
/**
* Client for the MercadoPago Customer Cards API.
*
* <p>Provides operations to get, create, delete, and list cards associated with a customer.
* Cards are stored securely and can be reused for future payments without requiring the payer
* to re-enter card details.
*
* <p>This client is typically used internally by {@link CustomerClient}, but can also be
* instantiated directly.
*
* @see CustomerClient
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/cards/_customers_customer_id_cards/get">
* Customer Cards API reference</a>
*/
public class CustomerCardClient extends MercadoPagoClient {
/** Class-level logger for customer card operations. */
private static final Logger LOGGER = Logger.getLogger(CustomerCardClient.class.getName());
/**
* Default constructor. Uses the default HTTP client provided by {@link MercadoPagoConfig}.
*/
public CustomerCardClient() {
this(MercadoPagoConfig.getHttpClient());
}
/**
* Constructs a {@code CustomerCardClient} with a custom HTTP client.
*
* @param httpClient the {@link MPHttpClient} implementation used to execute HTTP requests
*/
public CustomerCardClient(MPHttpClient httpClient) {
super(httpClient);
StreamHandler streamHandler = getStreamHandler();
streamHandler.setLevel(MercadoPagoConfig.getLoggingLevel());
LOGGER.addHandler(streamHandler);
LOGGER.setLevel(MercadoPagoConfig.getLoggingLevel());
}
/**
* Retrieves a specific card belonging to a customer.
*
* @param customerId the unique identifier of the customer who owns the card
* @param cardId the unique identifier of the card to retrieve
* @return the requested {@link CustomerCard}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
public CustomerCard get(String customerId, String cardId) throws MPException, MPApiException {
return this.get(customerId, cardId, null);
}
/**
* Retrieves a specific card belonging to a customer with custom request options.
*
* @param customerId the unique identifier of the customer who owns the card
* @param cardId the unique identifier of the card to retrieve
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the requested {@link CustomerCard}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
public CustomerCard get(String customerId, String cardId, MPRequestOptions requestOptions)
throws MPException, MPApiException {
MPResponse response =
send(
String.format("/v1/customers/%s/cards/%s", customerId, cardId),
HttpMethod.GET,
null,
null,
requestOptions);
CustomerCard card = Serializer.deserializeFromJson(CustomerCard.class, response.getContent());
card.setResponse(response);
return card;
}
/**
* Creates and associates a new card with a customer.
*
* @param customerId the unique identifier of the customer
* @param request the {@link CustomerCardCreateRequest} with the card token and other details
* @return the newly created {@link CustomerCard}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
public CustomerCard create(String customerId, CustomerCardCreateRequest request)
throws MPException, MPApiException {
return this.create(customerId, request, null);
}
/**
* Creates and associates a new card with a customer with custom request options.
*
* @param customerId the unique identifier of the customer
* @param request the {@link CustomerCardCreateRequest} with the card token and other details
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the newly created {@link CustomerCard}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
public CustomerCard create(
String customerId, CustomerCardCreateRequest request, MPRequestOptions requestOptions)
throws MPException, MPApiException {
LOGGER.info("Sending create customer card request");
JsonObject payload = Serializer.serializeToJson(request);
MPRequest mpRequest =
MPRequest.buildRequest(
String.format("/v1/customers/%s/cards", customerId),
HttpMethod.POST,
payload,
null,
requestOptions);
MPResponse response = send(mpRequest);
CustomerCard card = Serializer.deserializeFromJson(CustomerCard.class, response.getContent());
card.setResponse(response);
return card;
}
/**
* Removes a card from a customer.
*
* @param customerId the unique identifier of the customer
* @param cardId the unique identifier of the card to remove
* @return the removed {@link CustomerCard}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
public CustomerCard delete(String customerId, String cardId) throws MPException, MPApiException {
return this.delete(customerId, cardId, null);
}
/**
* Removes a card from a customer with custom request options.
*
* @param customerId the unique identifier of the customer
* @param cardId the unique identifier of the card to remove
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the removed {@link CustomerCard}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
public CustomerCard delete(String customerId, String cardId, MPRequestOptions requestOptions)
throws MPException, MPApiException {
LOGGER.info("Sending delete customer card request");
MPResponse response =
send(
String.format("/v1/customers/%s/cards/%s", customerId, cardId),
HttpMethod.DELETE,
null,
null,
requestOptions);
CustomerCard card = Serializer.deserializeFromJson(CustomerCard.class, response.getContent());
card.setResponse(response);
return card;
}
/**
* Lists all cards belonging to a customer.
*
* @param customerId the unique identifier of the customer
* @return an {@link MPResourceList} of {@link CustomerCard} for the given customer
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
public MPResourceList<CustomerCard> listAll(String customerId)
throws MPException, MPApiException {
return this.listAll(customerId, null);
}
/**
* Lists all cards belonging to a customer with custom request options.
*
* @param customerId the unique identifier of the customer
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return an {@link MPResourceList} of {@link CustomerCard} for the given customer
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
public MPResourceList<CustomerCard> listAll(String customerId, MPRequestOptions requestOptions)
throws MPException, MPApiException {
LOGGER.info("Sending list all customer cards request");
MPResponse response =
list(
String.format("/v1/customers/%s/cards", customerId),
HttpMethod.GET,
null,
null,
requestOptions);
MPResourceList<CustomerCard> cards =
Serializer.deserializeListFromJson(CustomerCard.class, response.getContent());
cards.setResponse(response);
return cards;
}
}
================================================
FILE: src/main/java/com/mercadopago/client/customer/CustomerCardCreateRequest.java
================================================
package com.mercadopago.client.customer;
import com.mercadopago.resources.customer.CustomerCardIssuer;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO used to associate a new card with a customer. The card token is generated on the
* frontend using the MercadoPago.js SDK, ensuring that sensitive card data never reaches your
* server directly. Once associated, the card can be reused in future payments.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/cards">Cards API Reference</a>
*/
@Getter
@Builder
public class CustomerCardCreateRequest {
/** Temporary card token generated by MercadoPago.js on the frontend. */
private final String token;
/** Card issuer information (e.g., issuing bank details). */
private final CustomerCardIssuer issuer;
/** Payment method identifier for the card (e.g., "visa", "master", "amex"). */
private final String paymentMethodId;
}
================================================
FILE: src/main/java/com/mercadopago/client/customer/CustomerClient.java
================================================
package com.mercadopago.client.customer;
import static com.mercadopago.MercadoPagoConfig.getStreamHandler;
import static com.mercadopago.serialization.Serializer.deserializeResultsResourcesPageFromJson;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import com.mercadopago.MercadoPagoConfig;
import com.mercadopago.client.MercadoPagoClient;
import com.mercadopago.core.MPRequestOptions;
import com.mercadopago.exceptions.MPApiException;
import com.mercadopago.exceptions.MPException;
import com.mercadopago.net.HttpMethod;
import com.mercadopago.net.MPHttpClient;
import com.mercadopago.net.MPRequest;
import com.mercadopago.net.MPResourceList;
import com.mercadopago.net.MPResponse;
import com.mercadopago.net.MPResultsResourcesPage;
import com.mercadopago.net.MPSearchRequest;
import com.mercadopago.resources.customer.Customer;
import com.mercadopago.resources.customer.CustomerCard;
import com.mercadopago.serialization.Serializer;
import java.lang.reflect.Type;
import java.util.logging.Logger;
import java.util.logging.StreamHandler;
/**
* Client for the MercadoPago Customers API.
*
* <p>Provides CRUD operations for customers (create, get, update, delete) and search with
* pagination. Card operations (get, create, delete, list) are delegated to an internal
* {@link CustomerCardClient} and exposed via convenience methods on this class.
*
* <p>Usage example:
* <pre>{@code
* CustomerClient client = new CustomerClient();
* Customer customer = client.create(customerRequest);
* MPResourceList<CustomerCard> cards = client.listCards(customer.getId());
* }</pre>
*
* @see CustomerCardClient
* @see <a href="https://www.mercadopago.com/developers/en/reference/customers/_customers/post">
* Customers API reference</a>
*/
public class CustomerClient extends MercadoPagoClient {
/** Class-level logger for customer operations. */
private static final Logger LOGGER = Logger.getLogger(CustomerClient.class.getName());
/** Internal client used to perform card operations on behalf of this client. */
private final CustomerCardClient cardClient;
/**
* Default constructor. Uses the default HTTP client provided by {@link MercadoPagoConfig}.
*/
public CustomerClient() {
this(MercadoPagoConfig.getHttpClient());
}
/**
* Constructs a {@code CustomerClient} with a custom HTTP client.
*
* <p>Also initialises the internal {@link CustomerCardClient} with the same HTTP client.
*
* @param httpClient the {@link MPHttpClient} implementation used to execute HTTP requests
*/
public CustomerClient(MPHttpClient httpClient) {
super(httpClient);
cardClient = new CustomerCardClient(httpClient);
StreamHandler streamHandler = getStreamHandler();
streamHandler.setLevel(MercadoPagoConfig.getLoggingLevel());
LOGGER.addHandler(streamHandler);
LOGGER.setLevel(MercadoPagoConfig.getLoggingLevel());
}
/**
* Retrieves a customer by its unique identifier.
*
* @param customerId the unique identifier of the customer
* @return the requested {@link Customer}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com/developers/en/reference/customers/_customers_id/get/">api
* docs</a>
*/
public Customer get(String customerId) throws MPException, MPApiException {
return this.get(customerId, null);
}
/**
* Retrieves a customer by its unique identifier with custom request options.
*
* @param customerId the unique identifier of the customer
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the requested {@link Customer}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com/developers/en/reference/customers/_customers_id/get/">api
* docs</a>
*/
public Customer get(String customerId, MPRequestOptions requestOptions)
throws MPException, MPApiException {
LOGGER.info("Sending get customer request");
MPResponse response =
send(
String.format("/v1/customers/%s", customerId),
HttpMethod.GET,
null,
null,
requestOptions);
Customer customer = Serializer.deserializeFromJson(Customer.class, response.getContent());
customer.setResponse(response);
return customer;
}
/**
* Creates a new customer.
*
* @param request the {@link CustomerRequest} with customer details (email, identification, etc.)
* @return the newly created {@link Customer}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com/developers/en/reference/customers/_customers/post/">api
* docs</a>
*/
public Customer create(CustomerRequest request) throws MPException, MPApiException {
return this.create(request, null);
}
/**
* Creates a new customer with custom request options.
*
* @param request the {@link CustomerRequest} with customer details (email, identification, etc.)
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the newly created {@link Customer}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com/developers/en/reference/customers/_customers/post/">api
* docs</a>
*/
public Customer create(CustomerRequest request, MPRequestOptions requestOptions)
throws MPException, MPApiException {
LOGGER.info("Sending create customer request");
JsonObject payload = Serializer.serializeToJson(request);
MPRequest mpRequest =
MPRequest.buildRequest("/v1/customers", HttpMethod.POST, payload, null, requestOptions);
MPResponse response = send(mpRequest);
Customer customer = Serializer.deserializeFromJson(Customer.class, response.getContent());
customer.setResponse(response);
return customer;
}
/**
* Updates an existing customer.
*
* @param customerId the unique identifier of the customer to update
* @param request the {@link CustomerRequest} with the updated customer details
* @return the updated {@link Customer}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com/developers/en/reference/customers/_customers_id/put/">api
* docs</a>
*/
public Customer update(String customerId, CustomerRequest request)
throws MPException, MPApiException {
return this.update(customerId, request, null);
}
/**
* Updates an existing customer with custom request options.
*
* @param customerId the unique identifier of the customer to update
* @param request the {@link CustomerRequest} with the updated customer details
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the updated {@link Customer}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com/developers/en/reference/customers/_customers_id/put/">api
* docs</a>
*/
public Customer update(
String customerId, CustomerRequest request, MPRequestOptions requestOptions)
throws MPException, MPApiException {
LOGGER.info("Sending update customer request");
JsonObject payload = Serializer.serializeToJson(request);
MPRequest mpRequest =
MPRequest.buildRequest(
String.format("/v1/customers/%s", customerId),
HttpMethod.PUT,
payload,
null,
requestOptions);
MPResponse response = send(mpRequest);
Customer customer = Serializer.deserializeFromJson(Customer.class, response.getContent());
customer.setResponse(response);
return customer;
}
/**
* Deletes a customer by its unique identifier.
*
* @param customerId the unique identifier of the customer to delete
* @return the deleted {@link Customer}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
public Customer delete(String customerId) throws MPException, MPApiException {
return this.delete(customerId, null);
}
/**
* Deletes a customer by its unique identifier with custom request options.
*
* @param customerId the unique identifier of the customer to delete
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the deleted {@link Customer}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
public Customer delete(String customerId, MPRequestOptions requestOptions)
throws MPException, MPApiException {
LOGGER.info("Sending delete customer request");
MPRequest mpRequest =
MPRequest.buildRequest(
String.format("/v1/customers/%s", customerId),
HttpMethod.DELETE,
null,
null,
requestOptions);
MPResponse response = send(mpRequest);
Customer customer = Serializer.deserializeFromJson(Customer.class, response.getContent());
customer.setResponse(response);
return customer;
}
/**
* Searches for customers matching the specified criteria.
*
* @param request the {@link MPSearchRequest} containing search filters and pagination parameters
* @return an {@link MPResultsResourcesPage} of {@link Customer} with matching results and
* pagination metadata
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/customers/_customers_search/get">api
* docs</a>
*/
public MPResultsResourcesPage<Customer> search(MPSearchRequest request)
throws MPException, MPApiException {
return this.search(request, null);
}
/**
* Searches for customers matching the specified criteria with custom request options.
*
* @param request the {@link MPSearchRequest} containing search filters and pagination parameters
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return an {@link MPResultsResourcesPage} of {@link Customer} with matching results and
* pagination metadata
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/customers/_customers_search/get">api
* docs</a>
*/
public MPResultsResourcesPage<Customer> search(
MPSearchRequest request, MPRequestOptions requestOptions) throws MPException, MPApiException {
LOGGER.info("Sending search customer request");
MPResponse response = search("/v1/customers/search", request, requestOptions);
Type responseType = new TypeToken<MPResultsResourcesPage<Customer>>() {}.getType();
MPResultsResourcesPage<Customer> result =
deserializeResultsResourcesPageFromJson(responseType, response.getContent());
result.setResponse(response);
return result;
}
/**
* Retrieves a specific card associated with a customer.
*
* <p>Delegates to the internal {@link CustomerCardClient}.
*
* @param customerId the unique identifier of the customer
* @param cardId the unique identifier of the card
* @return the requested {@link CustomerCard}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/cards/_customers_customer_id_cards_id/get">api
* docs</a>
*/
public CustomerCard getCard(String customerId, String cardId) throws MPException, MPApiException {
return this.getCard(customerId, cardId, null);
}
/**
* Retrieves a specific card associated with a customer with custom request options.
*
* <p>Delegates to the internal {@link CustomerCardClient}.
*
* @param customerId the unique identifier of the customer
* @param cardId the unique identifier of the card
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the requested {@link CustomerCard}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/cards/_customers_customer_id_cards_id/get">api
* docs</a>
*/
public CustomerCard getCard(String customerId, String cardId, MPRequestOptions requestOptions)
throws MPException, MPApiException {
return cardClient.get(customerId, cardId, requestOptions);
}
/**
* Associates a new card with a customer.
*
* <p>Delegates to the internal {@link CustomerCardClient}.
*
* @param customerId the unique identifier of the customer
* @param request the {@link CustomerCardCreateRequest} with the card token and other details
* @return the newly created {@link CustomerCard}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/cards/_customers_customer_id_cards/post">api
* docs</a>
*/
public CustomerCard createCard(String customerId, CustomerCardCreateRequest request)
throws MPException, MPApiException {
return this.createCard(customerId, request, null);
}
/**
* Associates a new card with a customer with custom request options.
*
* <p>Delegates to the internal {@link CustomerCardClient}.
*
* @param customerId the unique identifier of the customer
* @param request the {@link CustomerCardCreateRequest} with the card token and other details
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the newly created {@link CustomerCard}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/cards/_customers_customer_id_cards/post">api
* docs</a>
*/
public CustomerCard createCard(
String customerId, CustomerCardCreateRequest request, MPRequestOptions requestOptions)
throws MPException, MPApiException {
return cardClient.create(customerId, request, requestOptions);
}
/**
* Removes a card from a customer.
*
* <p>Delegates to the internal {@link CustomerCardClient}.
*
* @param customerId the unique identifier of the customer
* @param cardId the unique identifier of the card to remove
* @return the removed {@link CustomerCard}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/cards/_customers_customer_id_cards_id/delete">api
* docs</a>
*/
public CustomerCard deleteCard(String customerId, String cardId)
throws MPException, MPApiException {
return this.deleteCard(customerId, cardId, null);
}
/**
* Removes a card from a customer with custom request options.
*
* <p>Delegates to the internal {@link CustomerCardClient}.
*
* @param customerId the unique identifier of the customer
* @param cardId the unique identifier of the card to remove
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the removed {@link CustomerCard}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/cards/_customers_customer_id_cards_id/delete">api
* docs</a>
*/
public CustomerCard deleteCard(String customerId, String cardId, MPRequestOptions requestOptions)
throws MPException, MPApiException {
return cardClient.delete(customerId, cardId, requestOptions);
}
/**
* Lists all cards associated with a customer.
*
* <p>Delegates to the internal {@link CustomerCardClient}.
*
* @param customerId the unique identifier of the customer
* @return an {@link MPResourceList} of {@link CustomerCard} for the given customer
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/cards/_customers_customer_id_cards/get">api
* docs</a>
*/
public MPResourceList<CustomerCard> listCards(String customerId)
throws MPException, MPApiException {
return this.listCards(customerId, null);
}
/**
* Lists all cards associated with a customer with custom request options.
*
* <p>Delegates to the internal {@link CustomerCardClient}.
*
* @param customerId the unique identifier of the customer
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return an {@link MPResourceList} of {@link CustomerCard} for the given customer
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/cards/_customers_customer_id_cards/get">api
* docs</a>
*/
public MPResourceList<CustomerCard> listCards(String customerId, MPRequestOptions requestOptions)
throws MPException, MPApiException {
return cardClient.listAll(customerId, requestOptions);
}
}
================================================
FILE: src/main/java/com/mercadopago/client/customer/CustomerRequest.java
================================================
package com.mercadopago.client.customer;
import com.mercadopago.client.common.IdentificationRequest;
import com.mercadopago.client.common.PhoneRequest;
import java.time.OffsetDateTime;
import java.util.Map;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO used to create or update a customer in Mercado Pago. Customers can be associated
* with saved cards, addresses, and identification documents to streamline recurring payments
* and checkout experiences.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/customers">Customers API Reference</a>
*/
@Getter
@Builder
public class CustomerRequest {
/** Customer's email address, used as a unique identifier for the customer. */
private final String email;
/** Customer's first name. */
private final String firstName;
/** Customer's last name. */
private final String lastName;
/** Customer's phone information including area code and number. */
private final PhoneRequest phone;
/** Customer's identification document (e.g., CPF, DNI). */
private final IdentificationRequest identification;
/** ID of the customer's default address from their address list. */
private final String defaultAddress;
/** Customer's address details for registration purposes. */
private final CustomerAddressRequest address;
/** ID of the customer's default saved card. */
private final String defaultCard;
/** Date when the customer was registered in the merchant's system. */
private final OffsetDateTime dateRegistred;
/** Free-text description or notes about the customer. */
private final String description;
/** Custom key-value metadata associated with the customer. */
private final Map<String, Object> metadata;
}
================================================
FILE: src/main/java/com/mercadopago/client/identificationtype/IdentificationTypeClient.java
================================================
package com.mercadopago.client.identificationtype;
import static com.mercadopago.MercadoPagoConfig.getStreamHandler;
import static com.mercadopago.serialization.Serializer.deserializeListFromJson;
import com.mercadopago.MercadoPagoConfig;
import com.mercadopago.client.MercadoPagoClient;
import com.mercadopago.core.MPRequestOptions;
import com.mercadopago.exceptions.MPApiException;
import com.mercadopago.exceptions.MPException;
import com.mercadopago.net.HttpMethod;
import com.mercadopago.net.MPHttpClient;
import com.mercadopago.net.MPResourceList;
import com.mercadopago.net.MPResponse;
import com.mercadopago.resources.identificationtype.IdentificationType;
import java.util.logging.Logger;
import java.util.logging.StreamHandler;
/**
* Client for the MercadoPago Identification Types API.
*
* <p>Retrieves the list of identification document types available for the country associated
* with the authenticated user's credentials (e.g., CPF for Brazil, DNI for Argentina).
*
* <p>Usage example:
* <pre>{@code
* IdentificationTypeClient client = new IdentificationTypeClient();
* MPResourceList<IdentificationType> types = client.list();
* }</pre>
*
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/identification_types/_identification_types/get">
* Identification Types API reference</a>
*/
public class IdentificationTypeClient extends MercadoPagoClient {
/** Class-level logger for identification type operations. */
private static final Logger LOGGER = Logger.getLogger(IdentificationTypeClient.class.getName());
/**
* Default constructor. Uses the default HTTP client provided by {@link MercadoPagoConfig}.
*/
public IdentificationTypeClient() {
this(MercadoPagoConfig.getHttpClient());
}
/**
* Constructs an {@code IdentificationTypeClient} with a custom HTTP client.
*
* @param httpClient the {@link MPHttpClient} implementation used to execute HTTP requests
*/
public IdentificationTypeClient(MPHttpClient httpClient) {
super(httpClient);
StreamHandler streamHandler = getStreamHandler();
streamHandler.setLevel(MercadoPagoConfig.getLoggingLevel());
LOGGER.addHandler(streamHandler);
LOGGER.setLevel(MercadoPagoConfig.getLoggingLevel());
}
/**
* Lists all available identification types for the authenticated user's country.
*
* @return an {@link MPResourceList} of {@link IdentificationType} (e.g., CPF, DNI, CURP)
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/identification_types/_identification_types/get">api
* docs</a>
*/
public MPResourceList<IdentificationType> list() throws MPException, MPApiException {
return this.list(null);
}
/**
* Lists all available identification types with custom request options.
*
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return an {@link MPResourceList} of {@link IdentificationType} (e.g., CPF, DNI, CURP)
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/identification_types/_identification_types/get">api
* docs</a>
*/
public MPResourceList<IdentificationType> list(MPRequestOptions requestOptions)
throws MPException, MPApiException {
LOGGER.info("Sending list identification types");
MPResponse response =
list("/v1/identification_types", HttpMethod.GET, null, null, requestOptions);
MPResourceList<IdentificationType> identificationTypes =
deserializeListFromJson(IdentificationType.class, response.getContent());
identificationTypes.setResponse(response);
return identificationTypes;
}
}
================================================
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderClient.java
================================================
package com.mercadopago.client.merchantorder;
import static com.mercadopago.MercadoPagoConfig.getStreamHandler;
import static com.mercadopago.serialization.Serializer.deserializeElementsResourcesPageFromJson;
import static com.mercadopago.serialization.Serializer.deserializeFromJson;
import com.google.gson.reflect.TypeToken;
import com.mercadopago.MercadoPagoConfig;
import com.mercadopago.client.MercadoPagoClient;
import com.mercadopago.core.MPRequestOptions;
import com.mercadopago.exceptions.MPApiException;
import com.mercadopago.exceptions.MPException;
import com.mercadopago.net.HttpMethod;
import com.mercadopago.net.MPElementsResourcesPage;
import com.mercadopago.net.MPHttpClient;
import com.mercadopago.net.MPRequest;
import com.mercadopago.net.MPResponse;
import com.mercadopago.net.MPSearchRequest;
import com.mercadopago.resources.merchantorder.MerchantOrder;
import com.mercadopago.serialization.Serializer;
import java.lang.reflect.Type;
import java.util.logging.Logger;
import java.util.logging.StreamHandler;
/**
* Client for the MercadoPago Merchant Orders API.
*
* <p>Provides operations to create, retrieve, update, and search merchant orders. Merchant orders
* group one or more payments and can be associated with preferences, shipments, or external
* references.
*
* <p>Usage example:
* <pre>{@code
* MerchantOrderClient client = new MerchantOrderClient();
* MerchantOrder order = client.create(merchantOrderCreateRequest);
* MerchantOrder retrieved = client.get(order.getId());
* }</pre>
*
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders/_merchant_orders/post">
* Merchant Orders API reference</a>
*/
public class MerchantOrderClient extends MercadoPagoClient {
/** Class-level logger for merchant order operations. */
private static final Logger LOGGER = Logger.getLogger(MerchantOrderClient.class.getName());
/** URL template for single-merchant-order endpoints (e.g. {@code /merchant_orders/{id}}). */
private static final String URL_WITH_ID = "/merchant_orders/%s";
/**
* Default constructor. Uses the default HTTP client provided by {@link MercadoPagoConfig}.
*/
public MerchantOrderClient() {
this(MercadoPagoConfig.getHttpClient());
}
/**
* Constructs a {@code MerchantOrderClient} with a custom HTTP client.
*
* @param httpClient the {@link MPHttpClient} implementation used to execute HTTP requests
*/
public MerchantOrderClient(MPHttpClient httpClient) {
super(httpClient);
StreamHandler streamHandler = getStreamHandler();
streamHandler.setLevel(MercadoPagoConfig.getLoggingLevel());
LOGGER.addHandler(streamHandler);
LOGGER.setLevel(MercadoPagoConfig.getLoggingLevel());
}
/**
* Retrieves a merchant order by its unique identifier.
*
* @param id the unique identifier of the merchant order
* @return the requested {@link MerchantOrder}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders/_merchant_orders_id/get">api
* docs</a>
*/
public MerchantOrder get(Long id) throws MPException, MPApiException {
return this.get(id, null);
}
/**
* Retrieves a merchant order by its unique identifier with custom request options.
*
* @param id the unique identifier of the merchant order
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the requested {@link MerchantOrder}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders/_merchant_orders_id/get">api
* docs</a>
*/
public MerchantOrder get(Long id, MPRequestOptions requestOptions)
throws MPException, MPApiException {
LOGGER.info("Sending get merchant order request");
MPRequest mpRequest =
MPRequest.builder()
.uri(String.format(URL_WITH_ID, id.toString()))
.method(HttpMethod.GET)
.build();
MPResponse response = send(mpRequest, requestOptions);
MerchantOrder result = deserializeFromJson(MerchantOrder.class, response.getContent());
result.setResponse(response);
return result;
}
/**
* Creates a new merchant order.
*
* @param request the {@link MerchantOrderCreateRequest} with order details (items, preference
* id, etc.)
* @return the created {@link MerchantOrder}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders/_merchant_orders/post">api
* docs</a>
*/
public MerchantOrder create(MerchantOrderCreateRequest request)
throws MPException, MPApiException {
return this.create(request, null);
}
/**
* Creates a new merchant order with custom request options.
*
* @param request the {@link MerchantOrderCreateRequest} with order details (items, preference
* id, etc.)
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the created {@link MerchantOrder}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders/_merchant_orders/post">api
* docs</a>
*/
public MerchantOrder create(MerchantOrderCreateRequest request, MPRequestOptions requestOptions)
throws MPException, MPApiException {
LOGGER.info("Sending create merchant order request");
MPRequest mpRequest =
MPRequest.builder()
.uri("/merchant_orders")
.method(HttpMethod.POST)
.payload(Serializer.serializeToJson(request))
.build();
MPResponse response = send(mpRequest, requestOptions);
MerchantOrder result = deserializeFromJson(MerchantOrder.class, response.getContent());
result.setResponse(response);
return result;
}
/**
* Updates an existing merchant order.
*
* @param id the unique identifier of the merchant order to update
* @param request the {@link MerchantOrderUpdateRequest} with the updated attributes
* @return the updated {@link MerchantOrder}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders/_merchant_orders_id/put">api
* docs</a>
*/
public MerchantOrder update(Long id, MerchantOrderUpdateRequest request)
throws MPException, MPApiException {
return this.update(id, request, null);
}
/**
* Updates an existing merchant order with custom request options.
*
* @param id the unique identifier of the merchant order to update
* @param request the {@link MerchantOrderUpdateRequest} with the updated attributes
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the updated {@link MerchantOrder}
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders/_merchant_orders_id/put">api
* docs</a>
*/
public MerchantOrder update(
Long id, MerchantOrderUpdateRequest request, MPRequestOptions requestOptions)
throws MPException, MPApiException {
LOGGER.info("Sending update merchant order request");
MPRequest mpRequest =
MPRequest.builder()
.uri(String.format(URL_WITH_ID, id.toString()))
.method(HttpMethod.PUT)
.payload(Serializer.serializeToJson(request))
.build();
MPResponse response = send(mpRequest, requestOptions);
MerchantOrder result = deserializeFromJson(MerchantOrder.class, response.getContent());
result.setResponse(response);
return result;
}
/**
* Searches for merchant orders matching the specified criteria.
*
* @param request the {@link MPSearchRequest} containing search filters and pagination parameters
* @return an {@link MPElementsResourcesPage} of {@link MerchantOrder} with matching results and
* pagination metadata
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders/_merchant_orders_search/get">api
* docs</a>
*/
public MPElementsResourcesPage<MerchantOrder> search(MPSearchRequest request)
throws MPException, MPApiException {
return this.search(request, null);
}
/**
* Searches for merchant orders matching the specified criteria with custom request options.
*
* @param request the {@link MPSearchRequest} containing search filters and pagination parameters
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return an {@link MPElementsResourcesPage} of {@link MerchantOrder} with matching results and
* pagination metadata
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders/_merchant_orders_search/get">api
* docs</a>
*/
public MPElementsResourcesPage<MerchantOrder> search(
MPSearchRequest request, MPRequestOptions requestOptions) throws MPException, MPApiException {
LOGGER.info("Sending search merchant order request");
MPResponse response = search("/merchant_orders/search", request, requestOptions);
Type responseType = new TypeToken<MPElementsResourcesPage<MerchantOrder>>() {}.getType();
MPElementsResourcesPage<MerchantOrder> result =
deserializeElementsResourcesPageFromJson(responseType, response.getContent());
result.setResponse(response);
return result;
}
}
================================================
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderCreateRequest.java
================================================
package com.mercadopago.client.merchantorder;
import java.util.List;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO used to create a new Merchant Order. A merchant order groups one or more payments
* for a set of items, enabling the merchant to track fulfillment, shipments, and payment
* collection for a complete purchase operation.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders">Merchant Orders API Reference</a>
*/
@Getter
@Builder
public class MerchantOrderCreateRequest {
/** Checkout preference ID that links this order to a payment preference. */
private final String preferenceId;
/** Application ID that originated this merchant order. */
private final String applicationId;
/** Mercado Libre site ID indicating the country of operation (e.g., "MLA", "MLB"). */
private final String siteId;
/** Payer information associated with this order. */
private final MerchantOrderPayerRequest payer;
/** Sponsor ID for marketplace or platform integrations. */
private final String sponsorId;
/** List of items included in this merchant order. */
private final List<MerchantOrderItemRequest> items;
/** Webhook URL to receive payment and order status notifications. */
private final String notificationUrl;
/** Free-text field for additional information about the order. */
private final String additionalInfo;
/** External reference ID to correlate this order with the merchant's own system. */
private final String externalReference;
/** Marketplace identifier indicating the origin of the payment. */
private final String marketplace;
}
================================================
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderItemRequest.java
================================================
package com.mercadopago.client.merchantorder;
import java.math.BigDecimal;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO representing an item within a Merchant Order. Each item describes a product or
* service being sold, including its price, quantity, and descriptive information.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders">Merchant Orders API Reference</a>
*/
@Getter
@Builder
public class MerchantOrderItemRequest {
/** Unique item code or SKU identifier. */
private final String id;
/** Display title or name of the item. */
private final String title;
/** Detailed description of the item. */
private final String description;
/** URL of the item's image for display purposes. */
private final String pictureUrl;
/** Category identifier for the item (e.g., "electronics", "clothing"). */
private final String categoryId;
/** Number of units of this item in the order. */
private final int quantity;
/** Price per unit of the item. */
private final BigDecimal unitPrice;
/** ISO 4217 currency code for the unit price (e.g., "BRL", "ARS", "USD"). */
private final String currencyId;
}
================================================
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderPayerRequest.java
================================================
package com.mercadopago.client.merchantorder;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO representing the payer associated with a Merchant Order. Identifies the buyer
* who will pay for the items in the order.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders">Merchant Orders API Reference</a>
*/
@Getter
@Builder
public class MerchantOrderPayerRequest {
/** Unique identifier of the payer in Mercado Pago. */
private final Long id;
/** Display nickname or username of the payer. */
private final String nickname;
}
================================================
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderReceiverAddressCityRequest.java
================================================
package com.mercadopago.client.merchantorder;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO representing city information within a Merchant Order receiver address. Used as
* part of the structured address breakdown for shipping destinations.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders">Merchant Orders API Reference</a>
*/
@Getter
@Builder
public class MerchantOrderReceiverAddressCityRequest {
/** Unique identifier of the city. */
private final String id;
/** Display name of the city. */
private final String name;
}
================================================
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderReceiverAddressCountryRequest.java
================================================
package com.mercadopago.client.merchantorder;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO representing country information within a Merchant Order receiver address. Used as
* part of the structured address breakdown for shipping destinations.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders">Merchant Orders API Reference</a>
*/
@Getter
@Builder
public class MerchantOrderReceiverAddressCountryRequest {
/** Unique identifier of the country (e.g., "AR", "BR"). */
private final String id;
/** Display name of the country. */
private final String name;
}
================================================
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderReceiverAddressRequest.java
================================================
package com.mercadopago.client.merchantorder;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO representing the receiver's shipping address for a Merchant Order shipment. Contains
* the full delivery address including geographic coordinates, structured city/state/country
* information, and contact details.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders">Merchant Orders API Reference</a>
*/
@Getter
@Builder
public class MerchantOrderReceiverAddressRequest {
/** Unique identifier of the receiver address. */
private final Long id;
/** Full address line combining street name and number. */
private final String addressLine;
/** Apartment, suite, or unit identifier. */
private final String apartment;
/** City information for the delivery address. */
private final MerchantOrderReceiverAddressCityRequest city;
/** State or province information for the delivery address. */
private final MerchantOrderReceiverAddressStateRequest state;
/** Country information for the delivery address. */
private final MerchantOrderReceiverAddressCountryRequest country;
/** Additional delivery instructions or comments for the carrier. */
private final String comment;
/** Contact name or reference at the delivery address. */
private final String contact;
/** Postal or ZIP code of the delivery address. */
private final String zipCode;
/** Street name of the delivery address. */
private final String streetName;
/** Street number of the delivery address. */
private final String streetNumber;
/** Floor number in the building, if applicable. */
private final String floor;
/** Contact phone number at the delivery address. */
private final String phone;
/** Geographic latitude coordinate of the delivery address. */
private final String latitude;
/** Geographic longitude coordinate of the delivery address. */
private final String longitude;
}
================================================
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderReceiverAddressStateRequest.java
================================================
package com.mercadopago.client.merchantorder;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO representing state or province information within a Merchant Order receiver address.
* Used as part of the structured address breakdown for shipping destinations.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders">Merchant Orders API Reference</a>
*/
@Getter
@Builder
public class MerchantOrderReceiverAddressStateRequest {
/** Unique identifier of the state or province. */
private final String id;
/** Display name of the state or province. */
private final String name;
}
================================================
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderShipmentRequest.java
================================================
package com.mercadopago.client.merchantorder;
import java.time.OffsetDateTime;
import java.util.List;
import java.util.Map;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO representing a shipment associated with a Merchant Order. Contains all logistics
* information including shipping method, status, sender/receiver details, delivery address,
* and shipping options.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders">Merchant Orders API Reference</a>
*/
@Getter
@Builder
public class MerchantOrderShipmentRequest {
/** Unique identifier of the shipment. */
private final Long id;
/** Type of shipping (e.g., "custom_shipping", "mercado_envios"). */
private final String shippingType;
/** Shipping mode indicating the logistics model (e.g., "me1", "me2", "custom"). */
private final String shippingMode;
/** Picking type for the shipment (e.g., "seller", "warehouse"). */
private final String pickingType;
/** Current status of the shipment (e.g., "pending", "shipped", "delivered"). */
private final String status;
/** Detailed sub-status providing additional context about the shipping status. */
private final String shippingSubstatus;
/** List of item references included in this shipment, each as a key-value map. */
private final List<Map<String, Object>> items;
/** Timestamp when the shipment record was created. */
private final OffsetDateTime dateCreated;
/** Timestamp of the last modification to the shipment. */
private final OffsetDateTime lastModified;
/** Timestamp when the shipping label was first printed. */
private final OffsetDateTime dateFirstPrinted;
/** Identifier of the shipping service or carrier used. */
private final String serviceId;
/** Unique identifier of the sender (seller). */
private final Long senderId;
/** Unique identifier of the receiver (buyer). */
private final Long receiverId;
/** Delivery address where the shipment will be received. */
private final MerchantOrderReceiverAddressRequest receiverAddress;
/** Selected shipping option with cost and delivery estimates. */
private final MerchantOrderShippingOptionRequest shippingOption;
}
================================================
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderShippingEstimatedDeliveryRequest.java
================================================
package com.mercadopago.client.merchantorder;
import java.time.OffsetDateTime;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO representing the estimated delivery window for a Merchant Order shipping option.
* Provides the expected delivery date along with a time range within that day.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders">Merchant Orders API Reference</a>
*/
@Getter
@Builder
public class MerchantOrderShippingEstimatedDeliveryRequest {
/** Estimated date of delivery. */
private final OffsetDateTime date;
/** Start of the estimated delivery time window (e.g., "09:00"). */
private final String timeFrom;
/** End of the estimated delivery time window (e.g., "18:00"). */
private final String timeTo;
}
================================================
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderShippingOptionRequest.java
================================================
package com.mercadopago.client.merchantorder;
import java.math.BigDecimal;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO representing a shipping option for a Merchant Order. Defines the delivery method,
* cost, estimated delivery window, and transit speed for shipping the order items.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders">Merchant Orders API Reference</a>
*/
@Getter
@Builder
public class MerchantOrderShippingOptionRequest {
/** Unique identifier of the shipping option. */
private final Long id;
/** Net shipping cost charged to the buyer. */
private final BigDecimal cost;
/** ISO 4217 currency code for the shipping cost (e.g., "BRL", "ARS"). */
private final String currencyId;
/** Estimated delivery date and time window for this shipping option. */
private final MerchantOrderShippingEstimatedDeliveryRequest estimatedDelivery;
/** Full list price of shipping before any discounts. */
private final BigDecimal listCost;
/** Display name of the shipping option (e.g., "Standard", "Express"). */
private final String name;
/** Identifier of the shipping method or carrier service. */
private final Long shippingMethodId;
/** Handling and transit speed information for this shipping option. */
private final MerchantOrderShippingSpeedRequest speed;
}
================================================
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderShippingSpeedRequest.java
================================================
package com.mercadopago.client.merchantorder;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO representing the shipping speed breakdown for a Merchant Order shipping option.
* Separates the total delivery time into handling (preparation) and transit (shipping) durations.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders">Merchant Orders API Reference</a>
*/
@Getter
@Builder
public class MerchantOrderShippingSpeedRequest {
/** Handling time in hours required to prepare the shipment before dispatch. */
private final Long handling;
/** Transit time in hours from dispatch to delivery at the destination. */
private final Long shipping;
}
================================================
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderUpdateRequest.java
================================================
package com.mercadopago.client.merchantorder;
import java.util.List;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO used to update an existing Merchant Order. Allows modifying order attributes such
* as items, shipments, notification settings, and external references after the order has been
* created.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/reference/merchant_orders">Merchant Orders API Reference</a>
*/
@Getter
@Builder
public class MerchantOrderUpdateRequest {
/** Mercado Libre site ID indicating the country of operation (e.g., "MLA", "MLB"). */
private final String siteId;
/** Updated payer information associated with this order. */
private final MerchantOrderPayerRequest payer;
/** Sponsor ID for marketplace or platform integrations. */
private final String sponsorId;
/** Updated list of items included in this merchant order. */
private final List<MerchantOrderItemRequest> items;
/** List of shipments associated with this merchant order. */
private final List<MerchantOrderShipmentRequest> shipments;
/** Webhook URL to receive payment and order status notifications. */
private final String notificationUrl;
/** Free-text field for additional information about the order. */
private final String additionalInfo;
/** External reference ID to correlate this order with the merchant's own system. */
private final String externalReference;
/** Marketplace identifier indicating the origin of the payment. */
private final String marketplace;
}
================================================
FILE: src/main/java/com/mercadopago/client/oauth/CreateOauthCredentialRequest.java
================================================
package com.mercadopago.client.oauth;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO used to exchange an authorization code for OAuth access and refresh tokens. This
* is part of the OAuth 2.0 authorization code flow, which allows your application to act on
* behalf of a seller after they grant access through the Mercado Pago authorization URL.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/guides/security/oauth">OAuth Guide</a>
*/
@Getter
@Builder
public class CreateOauthCredentialRequest {
/**
* Grant type for the OAuth token request. Fixed as {@code "authorization_code"} for the
* authorization code exchange flow.
*/
private final String grantType = "authorization_code";
/**
* Application secret key (client_secret) used to authenticate the token request. Obtained from
* the Mercado Pago developer credentials panel.
*/
private final String clientSecret;
/** Application ID (client_id) that uniquely identifies your integration. */
private final String clientId;
/** Authorization code received via the redirect URL after the seller grants permission. */
private final String code;
/** Redirect URI configured in the application settings, used to validate the token exchange. */
private final String redirectUri;
}
================================================
FILE: src/main/java/com/mercadopago/client/oauth/OauthClient.java
================================================
package com.mercadopago.client.oauth;
import static com.mercadopago.MercadoPagoConfig.getStreamHandler;
import com.mercadopago.MercadoPagoConfig;
import com.mercadopago.client.MercadoPagoClient;
import com.mercadopago.client.user.UserClient;
import com.mercadopago.core.MPRequestOptions;
import com.mercadopago.exceptions.MPApiException;
import com.mercadopago.exceptions.MPException;
import com.mercadopago.net.HttpMethod;
import com.mercadopago.net.MPHttpClient;
import com.mercadopago.net.MPRequest;
import com.mercadopago.net.MPResponse;
import com.mercadopago.net.UrlFormatter;
import com.mercadopago.resources.oauth.CreateOauthCredential;
import com.mercadopago.resources.oauth.RefreshOauthCredential;
import com.mercadopago.resources.user.User;
import com.mercadopago.serialization.Serializer;
import java.util.HashMap;
import java.util.Objects;
import java.util.logging.Logger;
import java.util.logging.StreamHandler;
/**
* Client for the MercadoPago OAuth 2.0 API.
*
* <p>Provides operations for the OAuth authorization flow used in marketplace and platform
* integrations: generating authorization URLs, creating credentials from authorization codes,
* and refreshing expired tokens.
*
* <p>Usage example:
* <pre>{@code
* OauthClient client = new OauthClient();
* String authUrl = client.getAuthorizationURL(appId, redirectUri);
* // After user authorizes, exchange the code for credentials:
* CreateOauthCredential credential = client.createCredential(authorizationCode, redirectUri);
* }</pre>
*
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/oauth/_oauth_token/post">
* OAuth API reference</a>
*/
public class OauthClient extends MercadoPagoClient {
/** Class-level logger for OAuth operations. */
private static final Logger LOGGER = Logger.getLogger(OauthClient.class.getName());
/** Internal client used to retrieve user information for building authorization URLs. */
private final UserClient userClient;
/** Base host for MercadoPago OAuth authorization endpoints. */
private final String authHost = "https://auth.mercadopago.com";
/** Relative path for the OAuth token endpoint. */
private final String path = "/oauth/token";
/**
* Default constructor. Uses the default HTTP client provided by {@link MercadoPagoConfig}.
*/
public OauthClient() {
this(MercadoPagoConfig.getHttpClient());
StreamHandler streamHandler = getStreamHandler();
streamHandler.setLevel(MercadoPagoConfig.getLoggingLevel());
LOGGER.addHandler(streamHandler);
LOGGER.setLevel(MercadoPagoConfig.getLoggingLevel());
}
/**
* Constructs an {@code OauthClient} with a custom HTTP client.
*
* <p>Also initialises the internal {@link UserClient} with the same HTTP client.
*
* @param httpClient the {@link MPHttpClient} implementation used to execute HTTP requests
*/
public OauthClient(MPHttpClient httpClient) {
super(httpClient);
userClient = new UserClient(httpClient);
}
/**
* Builds the OAuth authorization URL that the seller must visit to grant access.
*
* <p>Internally fetches the authenticated user's country to construct the correct
* country-specific authorization host.
*
* @param appId the application ID (client_id) registered in MercadoPago
* @param redirectUri the URL to which the user is redirected after authorizing
* @return the full authorization URL, or {@code null} if the user's country cannot be determined
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
public String getAuthorizationURL(String appId, String redirectUri)
throws MPException, MPApiException {
return this.getAuthorizationURL(appId, redirectUri, null);
}
/**
* Builds the OAuth authorization URL with custom request options.
*
* <p>Internally fetches the authenticated user's country to construct the correct
* country-specific authorization host.
*
* @param appId the application ID (client_id) registered in MercadoPago
* @param redirectUri the URL to which the user is redirected after authorizing
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the full authorization URL, or {@code null} if the user's country cannot be determined
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
*/
public String getAuthorizationURL(
String appId, String redirectUri, MPRequestOptions requestOptions)
throws MPException, MPApiException {
LOGGER.info("Sending get oauth authorization url request");
User user = userClient.get(requestOptions);
if (Objects.isNull(user) || user.getCountryId().isEmpty()) {
return null;
}
HashMap<String, Object> queryParams = new HashMap<>();
queryParams.put("client_id", appId);
queryParams.put("response_type", "code");
queryParams.put("platform_id", "mp");
queryParams.put("redirect_uri", redirectUri);
return UrlFormatter.format(
String.format("%s.%s/authorization", authHost, user.getCountryId().toLowerCase()),
queryParams);
}
/**
* Creates OAuth credentials by exchanging an authorization code for access and refresh tokens.
*
* <p>Used in the marketplace authorization flow to operate on behalf of a seller. See the
* <a href="https://www.mercadopago.com.br/developers/en/guides/security/oauth">OAuth guide</a>
* for more details.
*
* @param authorizationCode the authorization code received after the seller grants access via the
* authorization URL
* @param redirectUri the same redirect URI used when generating the authorization URL
* @return the {@link CreateOauthCredential} containing access token, refresh token, and
* expiration
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/oauth/_oauth_token/post">api
* docs</a>
*/
public CreateOauthCredential createCredential(String authorizationCode, String redirectUri)
throws MPException, MPApiException {
return this.createCredential(authorizationCode, redirectUri, null);
}
/**
* Creates OAuth credentials with custom request options by exchanging an authorization code.
*
* <p>Used in the marketplace authorization flow to operate on behalf of a seller. See the
* <a href="https://www.mercadopago.com.br/developers/en/guides/security/oauth">OAuth guide</a>
* for more details.
*
* @param authorizationCode the authorization code received after the seller grants access via the
* authorization URL
* @param redirectUri the same redirect URI used when generating the authorization URL
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return the {@link CreateOauthCredential} containing access token, refresh token, and
* expiration
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/oauth/_oauth_token/post">api
* docs</a>
*/
public CreateOauthCredential createCredential(
String authorizationCode, String redirectUri, MPRequestOptions requestOptions)
throws MPException, MPApiException {
LOGGER.info("Sending create oauth credential request");
CreateOauthCredentialRequest request =
CreateOauthCredentialRequest.builder()
.clientSecret(getAccessToken(requestOptions))
.code(authorizationCode)
.redirectUri(redirectUri)
.build();
MPRequest mpRequest =
MPRequest.buildRequest(
path, HttpMethod.POST, Serializer.serializeToJson(request), null, requestOptions);
MPResponse response = send(mpRequest);
CreateOauthCredential credential =
Serializer.deserializeFromJson(CreateOauthCredential.class, response.getContent());
credential.setResponse(response);
return credential;
}
/**
* Refreshes OAuth credentials using a previously obtained refresh token.
*
* @param refreshToken the refresh token received during credential creation
* @return a new {@link RefreshOauthCredential} containing a fresh access token and refresh token
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/oauth/_oauth_token/post">api
* docs</a>
*/
public RefreshOauthCredential refreshCredential(String refreshToken)
throws MPException, MPApiException {
return this.refreshCredential(refreshToken, null);
}
/**
* Refreshes OAuth credentials with custom request options.
*
* @param refreshToken the refresh token received during credential creation
* @param requestOptions optional {@link MPRequestOptions} to override access token, headers, or
* timeouts for this single request; may be {@code null}
* @return a new {@link RefreshOauthCredential} containing a fresh access token and refresh token
* @throws MPException if a transport-level or SDK-internal error occurs
* @throws MPApiException if the API returns a non-successful HTTP status code
* @see <a
* href="https://www.mercadopago.com.br/developers/en/reference/oauth/_oauth_token/post">api
* docs</a>
*/
public RefreshOauthCredential refreshCredential(
String refreshToken, MPRequestOptions requestOptions) throws MPException, MPApiException {
LOGGER.info("Sending refresh oauth credential request");
RefreshOauthCredentialRequest request =
RefreshOauthCredentialRequest.builder()
.clientSecret(getAccessToken(requestOptions))
.refreshToken(refreshToken)
.build();
MPRequest mpRequest =
MPRequest.buildRequest(
path, HttpMethod.POST, Serializer.serializeToJson(request), null, requestOptions);
MPResponse response = send(mpRequest);
RefreshOauthCredential credential =
Serializer.deserializeFromJson(RefreshOauthCredential.class, response.getContent());
credential.setResponse(response);
return credential;
}
private String getAccessToken(MPRequestOptions requestOptions) {
return Objects.isNull(requestOptions)
? MercadoPagoConfig.getAccessToken()
: requestOptions.getAccessToken();
}
}
================================================
FILE: src/main/java/com/mercadopago/client/oauth/RefreshOauthCredentialRequest.java
================================================
package com.mercadopago.client.oauth;
import lombok.Builder;
import lombok.Getter;
/**
* Request DTO used to refresh an expired OAuth access token using a previously obtained refresh
* token. This avoids requiring the seller to re-authorize the application and ensures
* uninterrupted API access.
*
* @see <a href="https://www.mercadopago.com.br/developers/en/guides/security/oauth">OAuth Guide</a>
*/
@Getter
@Builder
public class RefreshOauthCredentialRequest {
/**
* Grant type for the OAuth token request. Fixed as {@code "refresh_token"} for the token
* refresh flow.
*/
private final String grantType = "refresh_token";
/**
* Application secret key (client_secret) used to authenticate the refresh request. Obtained
* from the Mercado Pago developer credentials panel.
*/
private final String clientSecret;
/**
* Application ID (client_id) that uniquely identifies your integration in Mercado Pago.
*/
private final String clientId;
/** Refresh token obtained from the initial OAuth authorization code exchange. */
private final String refreshToken;
}
================================================
FILE: src/main/java/com/mercadopago/client/order/AdditionalInfoRequest.java
================================================
package com.mercadopago.client.order;
import lombok.Builder;
import lombo
gitextract_2_mobys_/
├── .code_quality/
│ └── checkstyle_rules.xml
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.yml
│ │ ├── config.yml
│ │ ├── feature_request.yml
│ │ └── question.yml
│ └── workflows/
│ ├── main.yml
│ ├── maven-publish-release.yml
│ └── maven-publish-snapshot.yml
├── .gitignore
├── .pre-commit-config.yaml
├── CODE_OF_CONDUCT.md
├── CODING_GUIDELINES.md
├── CONTRIBUTING.md
├── LICENSE
├── PULL_REQUEST_TEMPLATE.md
├── README.md
├── SUPPORT.md
├── build-gradle.sh
├── maven-central-deploy.sh
├── mp_ref_report.md
├── pom.xml
└── src/
├── main/
│ └── java/
│ └── com/
│ └── mercadopago/
│ ├── MercadoPagoConfig.java
│ ├── client/
│ │ ├── MercadoPagoClient.java
│ │ ├── cardtoken/
│ │ │ ├── CardTokenClient.java
│ │ │ └── CardTokenRequest.java
│ │ ├── common/
│ │ │ ├── AddressRequest.java
│ │ │ ├── IdentificationRequest.java
│ │ │ ├── InvoicePeriod.java
│ │ │ ├── PhoneRequest.java
│ │ │ ├── SubMerchant.java
│ │ │ └── SubscriptionSequence.java
│ │ ├── customer/
│ │ │ ├── CustomerAddressRequest.java
│ │ │ ├── CustomerCardClient.java
│ │ │ ├── CustomerCardCreateRequest.java
│ │ │ ├── CustomerClient.java
│ │ │ └── CustomerRequest.java
│ │ ├── identificationtype/
│ │ │ └── IdentificationTypeClient.java
│ │ ├── merchantorder/
│ │ │ ├── MerchantOrderClient.java
│ │ │ ├── MerchantOrderCreateRequest.java
│ │ │ ├── MerchantOrderItemRequest.java
│ │ │ ├── MerchantOrderPayerRequest.java
│ │ │ ├── MerchantOrderReceiverAddressCityRequest.java
│ │ │ ├── MerchantOrderReceiverAddressCountryRequest.java
│ │ │ ├── MerchantOrderReceiverAddressRequest.java
│ │ │ ├── MerchantOrderReceiverAddressStateRequest.java
│ │ │ ├── MerchantOrderShipmentRequest.java
│ │ │ ├── MerchantOrderShippingEstimatedDeliveryRequest.java
│ │ │ ├── MerchantOrderShippingOptionRequest.java
│ │ │ ├── MerchantOrderShippingSpeedRequest.java
│ │ │ └── MerchantOrderUpdateRequest.java
│ │ ├── oauth/
│ │ │ ├── CreateOauthCredentialRequest.java
│ │ │ ├── OauthClient.java
│ │ │ └── RefreshOauthCredentialRequest.java
│ │ ├── order/
│ │ │ ├── AdditionalInfoRequest.java
│ │ │ ├── OrderAutomaticPaymentsRequest.java
│ │ │ ├── OrderClient.java
│ │ │ ├── OrderConfigRequest.java
│ │ │ ├── OrderCreateRequest.java
│ │ │ ├── OrderDifferentialPricing.java
│ │ │ ├── OrderInvoicePeriodRequest.java
│ │ │ ├── OrderItemRequest.java
│ │ │ ├── OrderOnlineConfig.java
│ │ │ ├── OrderPayerAddressRequest.java
│ │ │ ├── OrderPayerRequest.java
│ │ │ ├── OrderPaymentMethodConfig.java
│ │ │ ├── OrderPaymentMethodRequest.java
│ │ │ ├── OrderPaymentRequest.java
│ │ │ ├── OrderPointConfig.java
│ │ │ ├── OrderReceiverAddressRequest.java
│ │ │ ├── OrderRefundPaymentRequest.java
│ │ │ ├── OrderRefundRequest.java
│ │ │ ├── OrderRouteRequest.java
│ │ │ ├── OrderShipmentRequest.java
│ │ │ ├── OrderStoredCredentialRequest.java
│ │ │ ├── OrderSubscriptionDataRequest.java
│ │ │ ├── OrderSubscriptionSequenceRequest.java
│ │ │ ├── OrderTransactionRequest.java
│ │ │ ├── OrderTransactionSecurity.java
│ │ │ ├── PassengerIdentification.java
│ │ │ ├── PayerInfo.java
│ │ │ ├── PlatformInfo.java
│ │ │ ├── PlatformShipment.java
│ │ │ ├── SellerAddress.java
│ │ │ ├── SellerIdentification.java
│ │ │ ├── SellerInfo.java
│ │ │ ├── SellerPhone.java
│ │ │ ├── ShipmentInfo.java
│ │ │ ├── TrackingInfo.java
│ │ │ ├── TravelInfo.java
│ │ │ ├── TravelPassengerRequest.java
│ │ │ └── TravelRouteRequest.java
│ │ ├── payment/
│ │ │ ├── PaymentAdditionalInfoBarcodeRequest.java
│ │ │ ├── PaymentAdditionalInfoPayerRequest.java
│ │ │ ├── PaymentAdditionalInfoRequest.java
│ │ │ ├── PaymentAmountsRequest.java
│ │ │ ├── PaymentAuthenticationRequest.java
│ │ │ ├── PaymentCancelRequest.java
│ │ │ ├── PaymentCaptureRequest.java
│ │ │ ├── PaymentCategoryDescriptorRequest.java
│ │ │ ├── PaymentClient.java
│ │ │ ├── PaymentCounterCurrencyRequest.java
│ │ │ ├── PaymentCreateRequest.java
│ │ │ ├── PaymentDataRequest.java
│ │ │ ├── PaymentDiscountRequest.java
│ │ │ ├── PaymentFeeRequest.java
│ │ │ ├── PaymentForwardDataRequest.java
│ │ │ ├── PaymentInvoicePeriodRequest.java
│ │ │ ├── PaymentItemRequest.java
│ │ │ ├── PaymentMerchantServicesRequest.java
│ │ │ ├── PaymentMethodRequest.java
│ │ │ ├── PaymentNetworkTransactionDataRequest.java
│ │ │ ├── PaymentOrderRequest.java
│ │ │ ├── PaymentPassengerRequest.java
│ │ │ ├── PaymentPayerAddressRequest.java
│ │ │ ├── PaymentPayerPhoneRequest.java
│ │ │ ├── PaymentPayerRequest.java
│ │ │ ├── PaymentPaymentReferenceRequest.java
│ │ │ ├── PaymentPointOfInteractionRequest.java
│ │ │ ├── PaymentReceiverAddressRequest.java
│ │ │ ├── PaymentRefundClient.java
│ │ │ ├── PaymentRefundCreateRequest.java
│ │ │ ├── PaymentRouteRequest.java
│ │ │ ├── PaymentRulesRequest.java
│ │ │ ├── PaymentShipmentsRequest.java
│ │ │ ├── PaymentSubscriptionSequenceRequest.java
│ │ │ ├── PaymentTaxRequest.java
│ │ │ ├── PaymentTransactionDataRequest.java
│ │ │ ├── PaymentTransactionDetailsRequest.java
│ │ │ └── PaymentUserAmountRequest.java
│ │ ├── paymentmethod/
│ │ │ └── PaymentMethodClient.java
│ │ ├── point/
│ │ │ ├── OperatingMode.java
│ │ │ ├── PointClient.java
│ │ │ ├── PointDeviceOperatingModeRequest.java
│ │ │ ├── PointPaymentIntentAdditionalInfoRequest.java
│ │ │ ├── PointPaymentIntentListRequest.java
│ │ │ ├── PointPaymentIntentPaymentRequest.java
│ │ │ └── PointPaymentIntentRequest.java
│ │ ├── preapproval/
│ │ │ ├── PreApprovalAutoRecurringCreateRequest.java
│ │ │ ├── PreApprovalAutoRecurringUpdateRequest.java
│ │ │ ├── PreapprovalClient.java
│ │ │ ├── PreapprovalCreateRequest.java
│ │ │ └── PreapprovalUpdateRequest.java
│ │ ├── preference/
│ │ │ ├── PreferenceAmountsRequest.java
│ │ │ ├── PreferenceBackUrlsRequest.java
│ │ │ ├── PreferenceCategoryDescriptorRequest.java
│ │ │ ├── PreferenceClient.java
│ │ │ ├── PreferenceCounterCurrencyRequest.java
│ │ │ ├── PreferenceDifferentialPricingRequest.java
│ │ │ ├── PreferenceFreeMethodRequest.java
│ │ │ ├── PreferenceItemRequest.java
│ │ │ ├── PreferencePassengerRequest.java
│ │ │ ├── PreferencePayerRequest.java
│ │ │ ├── PreferencePaymentMethodRequest.java
│ │ │ ├── PreferencePaymentMethodsRequest.java
│ │ │ ├── PreferencePaymentTypeRequest.java
│ │ │ ├── PreferenceReceiverAddressRequest.java
│ │ │ ├── PreferenceRequest.java
│ │ │ ├── PreferenceRouteRequest.java
│ │ │ ├── PreferenceShipmentsRequest.java
│ │ │ ├── PreferenceTaxRequest.java
│ │ │ ├── PreferenceTrackRequest.java
│ │ │ ├── PreferenceTrackValuesRequest.java
│ │ │ └── PreferenceUserAmountRequest.java
│ │ └── user/
│ │ └── UserClient.java
│ ├── core/
│ │ └── MPRequestOptions.java
│ ├── example/
│ │ └── apis/
│ │ ├── order/
│ │ │ ├── CancelOrder.java
│ │ │ ├── CaptureOrder.java
│ │ │ ├── CreateOrder.java
│ │ │ ├── CreateOrderPSE.java
│ │ │ ├── CreateOrderWith3DS.java
│ │ │ ├── CreateOrderWithIndustryFields.java
│ │ │ ├── CreateOrderWithPointConfig.java
│ │ │ ├── CreateTransaction.java
│ │ │ ├── DeleteTransaction.java
│ │ │ ├── GetOrderById.java
│ │ │ ├── ProcessOrderById.java
│ │ │ ├── RefundPartial.java
│ │ │ ├── RefundTotal.java
│ │ │ └── UpdateTransaction.java
│ │ └── payment/
│ │ └── Main.java
│ ├── exceptions/
│ │ ├── MPApiException.java
│ │ ├── MPException.java
│ │ ├── MPInvalidWebhookSignatureException.java
│ │ ├── MPJsonParseException.java
│ │ ├── MPMalformedRequestException.java
│ │ └── SignatureFailureReason.java
│ ├── net/
│ │ ├── Headers.java
│ │ ├── HttpMethod.java
│ │ ├── HttpStatus.java
│ │ ├── KeepAliveStrategy.java
│ │ ├── MPDefaultHttpClient.java
│ │ ├── MPElementsResourcesPage.java
│ │ ├── MPHttpClient.java
│ │ ├── MPRequest.java
│ │ ├── MPResource.java
│ │ ├── MPResourceList.java
│ │ ├── MPResponse.java
│ │ ├── MPResultsResourcesPage.java
│ │ ├── MPSearchRequest.java
│ │ └── UrlFormatter.java
│ ├── resources/
│ │ ├── CardToken.java
│ │ ├── ResultsPaging.java
│ │ ├── common/
│ │ │ ├── Address.java
│ │ │ ├── Identification.java
│ │ │ ├── Phone.java
│ │ │ └── Source.java
│ │ ├── customer/
│ │ │ ├── Customer.java
│ │ │ ├── CustomerAddress.java
│ │ │ ├── CustomerAddressCity.java
│ │ │ ├── CustomerAddressCountry.java
│ │ │ ├── CustomerAddressMunicipality.java
│ │ │ ├── CustomerAddressNeighborhood.java
│ │ │ ├── CustomerAddressState.java
│ │ │ ├── CustomerCard.java
│ │ │ ├── CustomerCardCardholder.java
│ │ │ ├── CustomerCardCardholderIdentification.java
│ │ │ ├── CustomerCardIssuer.java
│ │ │ ├── CustomerCardPaymentMethod.java
│ │ │ ├── CustomerCardSecurityCode.java
│ │ │ ├── CustomerDefaultAddress.java
│ │ │ └── Identification.java
│ │ ├── identificationtype/
│ │ │ └── IdentificationType.java
│ │ ├── merchantorder/
│ │ │ ├── MerchantOrder.java
│ │ │ ├── MerchantOrderCollector.java
│ │ │ ├── MerchantOrderItem.java
│ │ │ ├── MerchantOrderPayer.java
│ │ │ ├── MerchantOrderPayment.java
│ │ │ ├── MerchantOrderReceiverAddress.java
│ │ │ ├── MerchantOrderReceiverAddressCity.java
│ │ │ ├── MerchantOrderReceiverAddressCountry.java
│ │ │ ├── MerchantOrderReceiverAddressState.java
│ │ │ ├── MerchantOrderShipment.java
│ │ │ ├── MerchantOrderShippingEstimatedDelivery.java
│ │ │ ├── MerchantOrderShippingOption.java
│ │ │ └── MerchantOrderShippingSpeed.java
│ │ ├── oauth/
│ │ │ ├── CreateOauthCredential.java
│ │ │ ├── OauthCredential.java
│ │ │ └── RefreshOauthCredential.java
│ │ ├── order/
│ │ │ ├── Order.java
│ │ │ ├── OrderAttempts.java
│ │ │ ├── OrderAutomaticPayments.java
│ │ │ ├── OrderCategoryDescriptor.java
│ │ │ ├── OrderChargeback.java
│ │ │ ├── OrderConfig.java
│ │ │ ├── OrderDifferentialPricing.java
│ │ │ ├── OrderDiscountPaymentMethod.java
│ │ │ ├── OrderDiscounts.java
│ │ │ ├── OrderExternalCategory.java
│ │ │ ├── OrderInstallments.java
│ │ │ ├── OrderInstallmentsAvailable.java
│ │ │ ├── OrderInstallmentsInterestFree.java
│ │ │ ├── OrderIntegrationData.java
│ │ │ ├── OrderInvoicePeriod.java
│ │ │ ├── OrderItem.java
│ │ │ ├── OrderOnlineConfig.java
│ │ │ ├── OrderPaging.java
│ │ │ ├── OrderPassenger.java
│ │ │ ├── OrderPayer.java
│ │ │ ├── OrderPayment.java
│ │ │ ├── OrderPaymentDiscount.java
│ │ │ ├── OrderPaymentMethod.java
│ │ │ ├── OrderPointConfig.java
│ │ │ ├── OrderReceiverAddress.java
│ │ │ ├── OrderReference.java
│ │ │ ├── OrderRefund.java
│ │ │ ├── OrderRefundItem.java
│ │ │ ├── OrderRoute.java
│ │ │ ├── OrderSearchResponse.java
│ │ │ ├── OrderShipment.java
│ │ │ ├── OrderStoredCredential.java
│ │ │ ├── OrderSubscriptionData.java
│ │ │ ├── OrderSubscriptionSequence.java
│ │ │ ├── OrderTax.java
│ │ │ ├── OrderTransaction.java
│ │ │ ├── OrderTransactionRefund.java
│ │ │ ├── OrderTransactionSecurity.java
│ │ │ ├── OrderTypeResponse.java
│ │ │ └── UpdateOrderTransaction.java
│ │ ├── payment/
│ │ │ ├── Payment.java
│ │ │ ├── PaymentAdditionalInfo.java
│ │ │ ├── PaymentAdditionalInfoPayer.java
│ │ │ ├── PaymentAmounts.java
│ │ │ ├── PaymentApplicationData.java
│ │ │ ├── PaymentBankInfo.java
│ │ │ ├── PaymentBankInfoCollector.java
│ │ │ ├── PaymentBankInfoPayer.java
│ │ │ ├── PaymentBarcode.java
│ │ │ ├── PaymentCard.java
│ │ │ ├── PaymentCardholder.java
│ │ │ ├── PaymentCounterCurrency.java
│ │ │ ├── PaymentData.java
│ │ │ ├── PaymentDiscount.java
│ │ │ ├── PaymentExpanded.java
│ │ │ ├── PaymentFee.java
│ │ │ ├── PaymentFeeDetail.java
│ │ │ ├── PaymentInvoicePeriod.java
│ │ │ ├── PaymentItem.java
│ │ │ ├── PaymentMethod.java
│ │ │ ├── PaymentOrder.java
│ │ │ ├── PaymentPayer.java
│ │ │ ├── PaymentPaymentReference.java
│ │ │ ├── PaymentPhone.java
│ │ │ ├── PaymentPointOfInteraction.java
│ │ │ ├── PaymentReceiverAddress.java
│ │ │ ├── PaymentRefund.java
│ │ │ ├── PaymentRules.java
│ │ │ ├── PaymentShipments.java
│ │ │ ├── PaymentStatus.java
│ │ │ ├── PaymentSubscriptionSequence.java
│ │ │ ├── PaymentTax.java
│ │ │ ├── PaymentThreeDSInfo.java
│ │ │ ├── PaymentTransactionData.java
│ │ │ ├── PaymentTransactionDetails.java
│ │ │ ├── PaymentUsersAmountCollector.java
│ │ │ └── PaymentUsersAmountPayer.java
│ │ ├── paymentmethod/
│ │ │ ├── PaymentMethod.java
│ │ │ ├── PaymentMethodFinancialInstitutions.java
│ │ │ ├── PaymentMethodSettings.java
│ │ │ ├── PaymentMethodSettingsBin.java
│ │ │ ├── PaymentMethodSettingsCardNumber.java
│ │ │ └── PaymentMethodSettingsSecurityCode.java
│ │ ├── point/
│ │ │ ├── OperatingMode.java
│ │ │ ├── PointCancelPaymentIntent.java
│ │ │ ├── PointDevice.java
│ │ │ ├── PointDeviceOperatingMode.java
│ │ │ ├── PointDevices.java
│ │ │ ├── PointPaymentIntent.java
│ │ │ ├── PointPaymentIntentAdditionalInfo.java
│ │ │ ├── PointPaymentIntentList.java
│ │ │ ├── PointPaymentIntentListEvent.java
│ │ │ ├── PointPaymentIntentPayment.java
│ │ │ ├── PointSearchPaymentIntent.java
│ │ │ └── PointStatusPaymentIntent.java
│ │ ├── preapproval/
│ │ │ ├── Preapproval.java
│ │ │ └── PreapprovalAutoRecurring.java
│ │ ├── preference/
│ │ │ ├── Preference.java
│ │ │ ├── PreferenceAmounts.java
│ │ │ ├── PreferenceBackUrls.java
│ │ │ ├── PreferenceCategoryDescriptor.java
│ │ │ ├── PreferenceCounterCurrency.java
│ │ │ ├── PreferenceDifferentialPricing.java
│ │ │ ├── PreferenceFreeMethod.java
│ │ │ ├── PreferenceItem.java
│ │ │ ├── PreferencePassenger.java
│ │ │ ├── PreferencePayer.java
│ │ │ ├── PreferencePaymentMethod.java
│ │ │ ├── PreferencePaymentMethods.java
│ │ │ ├── PreferencePaymentType.java
│ │ │ ├── PreferenceReceiverAddress.java
│ │ │ ├── PreferenceRoute.java
│ │ │ ├── PreferenceSearch.java
│ │ │ ├── PreferenceShipments.java
│ │ │ ├── PreferenceTax.java
│ │ │ ├── PreferenceTrack.java
│ │ │ ├── PreferenceTrackValues.java
│ │ │ └── PreferenceUserAmount.java
│ │ └── user/
│ │ └── User.java
│ ├── serialization/
│ │ └── Serializer.java
│ └── webhook/
│ └── WebhookSignatureValidator.java
└── test/
└── java/
└── com/
└── mercadopago/
├── BaseClientIT.java
├── BaseClientTest.java
├── client/
│ ├── MercadoPagoClientTest.java
│ ├── cardtoken/
│ │ ├── CardTokenCardholderTestCreateRequest.java
│ │ ├── CardTokenClientIT.java
│ │ ├── CardTokenClientTest.java
│ │ ├── CardTokenTestClient.java
│ │ └── CardTokenTestCreateRequest.java
│ ├── customer/
│ │ ├── CustomerCardClientTest.java
│ │ ├── CustomerClientIT.java
│ │ └── CustomerClientTest.java
│ ├── identificationtype/
│ │ ├── IdentificationTypeClientIT.java
│ │ └── IdentificationTypeClientTest.java
│ ├── merchantorder/
│ │ ├── MerchantOrderClientIT.java
│ │ └── MerchantOrderClientTest.java
│ ├── oauth/
│ │ └── OauthClientTest.java
│ ├── order/
│ │ ├── OrderClientIT.java
│ │ ├── OrderClientTest.java
│ │ ├── OrderClientWith3DSTest.java
│ │ └── OrderPointConfigTest.java
│ ├── payment/
│ │ ├── PaymentClientIT.java
│ │ ├── PaymentClientTest.java
│ │ ├── PaymentRefundClientIT.java
│ │ └── PaymentRefundClientTest.java
│ ├── paymentmethod/
│ │ ├── PaymentMethodClientIT.java
│ │ └── PaymentMethodClientTest.java
│ ├── point/
│ │ ├── PointClientIT.java
│ │ └── PointClientTest.java
│ ├── preapproval/
│ │ ├── PreapprovalClientIT.java
│ │ └── PreapprovalClientTest.java
│ ├── preference/
│ │ ├── PreferenceClientIT.java
│ │ └── PreferenceClientTest.java
│ └── user/
│ ├── UserClientIT.java
│ └── UserClientTest.java
├── helper/
│ ├── HttpStatusCode.java
│ └── MockHelper.java
├── mock/
│ ├── HttpClientMock.java
│ ├── HttpRequestMatcher.java
│ └── MPDefaultHttpClientMock.java
├── net/
│ ├── MPDefaultHttpClientTest.java
│ └── UrlFormatterTest.java
├── resources/
│ └── mocks/
│ ├── helper/
│ │ └── serializer_iso8601_timestamps.json
│ ├── request/
│ │ ├── advancedPayment/
│ │ │ ├── advanced_payment_base.json
│ │ │ ├── captured.json
│ │ │ ├── money_release_date.json
│ │ │ ├── payment_captured.json
│ │ │ └── status_cancelled.json
│ │ ├── card/
│ │ │ └── card_new.json
│ │ ├── customer/
│ │ │ ├── customer_base.json
│ │ │ └── customer_first_name.json
│ │ ├── merchant/
│ │ │ ├── order_base.json
│ │ │ └── order_updated.json
│ │ ├── payment/
│ │ │ ├── captured.json
│ │ │ ├── payment_3ds.json
│ │ │ ├── payment_base.json
│ │ │ ├── payment_boleto.json
│ │ │ ├── payment_captured.json
│ │ │ ├── payment_pix.json
│ │ │ ├── payment_pse.json
│ │ │ └── status_cancelled.json
│ │ ├── point/
│ │ │ ├── devices_operating_mode.json
│ │ │ └── payment_intent.json
│ │ ├── preapproval/
│ │ │ ├── preapproval_base.json
│ │ │ └── preapproval_update.json
│ │ ├── preference/
│ │ │ ├── preference_base.json
│ │ │ └── preference_updated.json
│ │ ├── refund/
│ │ │ ├── refund.json
│ │ │ └── refund_partial.json
│ │ └── request_generic.json
│ └── response/
│ ├── advancedPayment/
│ │ ├── payment_base.json
│ │ ├── payment_cancelled.json
│ │ ├── payment_captured.json
│ │ ├── payment_updated.json
│ │ └── refund.json
│ ├── card/
│ │ ├── card_all.json
│ │ ├── card_new.json
│ │ └── card_single.json
│ ├── cardtoken/
│ │ └── card_token_base.json
│ ├── customer/
│ │ ├── customer_base.json
│ │ ├── customer_updated.json
│ │ └── search_by_email.json
│ ├── identification/
│ │ └── types.json
│ ├── merchant/
│ │ ├── order_base.json
│ │ ├── order_search.json
│ │ └── order_updated.json
│ ├── oauth/
│ │ ├── oauth_credential.json
│ │ └── oauth_refresh_token.json
│ ├── order/
│ │ ├── capture_order_response.json
│ │ ├── create_order_response.json
│ │ ├── create_refund_partial_response.json
│ │ ├── create_refund_total_response.json
│ │ ├── create_transaction_response.json
│ │ ├── order_search_response.json
│ │ └── update_transaction_response.json
│ ├── payment/
│ │ ├── by_external_reference.json
│ │ ├── payment_3ds.json
│ │ ├── payment_base.json
│ │ ├── payment_boleto.json
│ │ ├── payment_cancelled.json
│ │ ├── payment_captured.json
│ │ ├── payment_card_token_error.json
│ │ ├── payment_pix.json
│ │ ├── payment_pse.json
│ │ └── payment_search.json
│ ├── paymentmethod/
│ │ └── payment_method_base.json
│ ├── point/
│ │ ├── devices_list.json
│ │ ├── devices_operating_mode.json
│ │ ├── payment_intent.json
│ │ ├── payment_intent_delete.json
│ │ ├── payment_intent_list.json
│ │ ├── payment_intent_search.json
│ │ └── payment_intent_status.json
│ ├── preapproval/
│ │ ├── preapproval_base.json
│ │ ├── preapproval_list.json
│ │ └── preapproval_update.json
│ ├── preference/
│ │ ├── preference_base.json
│ │ ├── preference_list.json
│ │ └── preference_updated.json
│ ├── refund/
│ │ ├── refund_all.json
│ │ ├── refund_base.json
│ │ ├── refund_list.json
│ │ └── refund_partial.json
│ ├── response_generic_success.json
│ └── user/
│ └── user_base.json
├── serialization/
│ └── SerializerTest.java
└── webhook/
└── WebhookSignatureValidatorTest.java
SYMBOL INDEX (1021 symbols across 381 files)
FILE: src/main/java/com/mercadopago/MercadoPagoConfig.java
class MercadoPagoConfig (line 36) | public class MercadoPagoConfig {
method getHttpClient (line 169) | public static synchronized MPHttpClient getHttpClient() {
method getJavaVersion (line 185) | public static synchronized String getJavaVersion() {
method getStreamHandler (line 207) | public static StreamHandler getStreamHandler() {
FILE: src/main/java/com/mercadopago/client/MercadoPagoClient.java
class MercadoPagoClient (line 38) | public abstract class MercadoPagoClient {
method MercadoPagoClient (line 71) | public MercadoPagoClient(MPHttpClient httpClient) {
method send (line 95) | protected MPResponse send(MPRequest request) throws MPException, MPApi...
method send (line 116) | protected MPResponse send(MPRequest request, MPRequestOptions requestO...
method send (line 148) | protected MPResponse send(
method send (line 172) | protected MPResponse send(
method search (line 196) | protected MPResponse search(String path, MPSearchRequest request)
method search (line 217) | protected MPResponse search(
method list (line 241) | protected MPResponse list(String path, MPRequestOptions requestOptions)
method list (line 264) | protected MPResponse list(
method buildRequest (line 274) | private MPRequest buildRequest(
method addSocketTimeout (line 294) | private int addSocketTimeout(MPRequest request, MPRequestOptions reque...
method addConnectionTimeout (line 306) | private int addConnectionTimeout(MPRequest request, MPRequestOptions r...
method addConnectionRequestTimeout (line 318) | private int addConnectionRequestTimeout(MPRequest request, MPRequestOp...
method addRequestHeaders (line 330) | private Map<String, String> addRequestHeaders(MPRequest request, MPReq...
method addDefaultHeaders (line 361) | private Map<String, String> addDefaultHeaders(MPRequest request) {
method chooseAccessToken (line 374) | private String chooseAccessToken(MPRequest request) {
method addCustomHeaders (line 378) | private Map<String, String> addCustomHeaders(String uri, MPRequestOpti...
method shouldAddIdempotencyKey (line 393) | private boolean shouldAddIdempotencyKey(MPRequest request) {
method getAccessToken (line 407) | private String getAccessToken(MPRequestOptions requestOptions) {
FILE: src/main/java/com/mercadopago/client/cardtoken/CardTokenClient.java
class CardTokenClient (line 33) | public class CardTokenClient extends MercadoPagoClient {
method CardTokenClient (line 41) | public CardTokenClient() {
method CardTokenClient (line 50) | public CardTokenClient(MPHttpClient httpClient) {
method get (line 66) | public CardToken get(String id) throws MPException, MPApiException {
method get (line 80) | public CardToken get(String id, MPRequestOptions requestOptions)
method create (line 98) | public CardToken create(CardTokenRequest request) throws MPException, ...
method create (line 113) | public CardToken create(CardTokenRequest request, MPRequestOptions req...
FILE: src/main/java/com/mercadopago/client/cardtoken/CardTokenRequest.java
class CardTokenRequest (line 13) | @Builder
FILE: src/main/java/com/mercadopago/client/common/AddressRequest.java
class AddressRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/common/IdentificationRequest.java
class IdentificationRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/common/InvoicePeriod.java
class InvoicePeriod (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/common/PhoneRequest.java
class PhoneRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/common/SubMerchant.java
class SubMerchant (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/common/SubscriptionSequence.java
class SubscriptionSequence (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/customer/CustomerAddressRequest.java
class CustomerAddressRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/customer/CustomerCardClient.java
class CustomerCardClient (line 36) | public class CustomerCardClient extends MercadoPagoClient {
method CustomerCardClient (line 44) | public CustomerCardClient() {
method CustomerCardClient (line 53) | public CustomerCardClient(MPHttpClient httpClient) {
method get (line 70) | public CustomerCard get(String customerId, String cardId) throws MPExc...
method get (line 85) | public CustomerCard get(String customerId, String cardId, MPRequestOpt...
method create (line 109) | public CustomerCard create(String customerId, CustomerCardCreateReques...
method create (line 125) | public CustomerCard create(
method delete (line 153) | public CustomerCard delete(String customerId, String cardId) throws MP...
method delete (line 168) | public CustomerCard delete(String customerId, String cardId, MPRequest...
method listAll (line 193) | public MPResourceList<CustomerCard> listAll(String customerId)
method listAll (line 208) | public MPResourceList<CustomerCard> listAll(String customerId, MPReque...
FILE: src/main/java/com/mercadopago/client/customer/CustomerCardCreateRequest.java
class CustomerCardCreateRequest (line 14) | @Getter
FILE: src/main/java/com/mercadopago/client/customer/CustomerClient.java
class CustomerClient (line 45) | public class CustomerClient extends MercadoPagoClient {
method CustomerClient (line 56) | public CustomerClient() {
method CustomerClient (line 67) | public CustomerClient(MPHttpClient httpClient) {
method get (line 87) | public Customer get(String customerId) throws MPException, MPApiExcept...
method get (line 104) | public Customer get(String customerId, MPRequestOptions requestOptions)
method create (line 132) | public Customer create(CustomerRequest request) throws MPException, MP...
method create (line 149) | public Customer create(CustomerRequest request, MPRequestOptions reque...
method update (line 175) | public Customer update(String customerId, CustomerRequest request)
method update (line 194) | public Customer update(
method delete (line 222) | public Customer delete(String customerId) throws MPException, MPApiExc...
method delete (line 236) | public Customer delete(String customerId, MPRequestOptions requestOpti...
method search (line 266) | public MPResultsResourcesPage<Customer> search(MPSearchRequest request)
method search (line 285) | public MPResultsResourcesPage<Customer> search(
method getCard (line 312) | public CustomerCard getCard(String customerId, String cardId) throws M...
method getCard (line 332) | public CustomerCard getCard(String customerId, String cardId, MPReques...
method createCard (line 351) | public CustomerCard createCard(String customerId, CustomerCardCreateRe...
method createCard (line 372) | public CustomerCard createCard(
method deleteCard (line 392) | public CustomerCard deleteCard(String customerId, String cardId)
method deleteCard (line 413) | public CustomerCard deleteCard(String customerId, String cardId, MPReq...
method listCards (line 431) | public MPResourceList<CustomerCard> listCards(String customerId)
method listCards (line 451) | public MPResourceList<CustomerCard> listCards(String customerId, MPReq...
FILE: src/main/java/com/mercadopago/client/customer/CustomerRequest.java
class CustomerRequest (line 17) | @Getter
FILE: src/main/java/com/mercadopago/client/identificationtype/IdentificationTypeClient.java
class IdentificationTypeClient (line 35) | public class IdentificationTypeClient extends MercadoPagoClient {
method IdentificationTypeClient (line 43) | public IdentificationTypeClient() {
method IdentificationTypeClient (line 52) | public IdentificationTypeClient(MPHttpClient httpClient) {
method list (line 70) | public MPResourceList<IdentificationType> list() throws MPException, M...
method list (line 86) | public MPResourceList<IdentificationType> list(MPRequestOptions reques...
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderClient.java
class MerchantOrderClient (line 43) | public class MerchantOrderClient extends MercadoPagoClient {
method MerchantOrderClient (line 54) | public MerchantOrderClient() {
method MerchantOrderClient (line 63) | public MerchantOrderClient(MPHttpClient httpClient) {
method get (line 82) | public MerchantOrder get(Long id) throws MPException, MPApiException {
method get (line 99) | public MerchantOrder get(Long id, MPRequestOptions requestOptions)
method create (line 128) | public MerchantOrder create(MerchantOrderCreateRequest request)
method create (line 147) | public MerchantOrder create(MerchantOrderCreateRequest request, MPRequ...
method update (line 177) | public MerchantOrder update(Long id, MerchantOrderUpdateRequest request)
method update (line 196) | public MerchantOrder update(
method search (line 227) | public MPElementsResourcesPage<MerchantOrder> search(MPSearchRequest r...
method search (line 246) | public MPElementsResourcesPage<MerchantOrder> search(
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderCreateRequest.java
class MerchantOrderCreateRequest (line 14) | @Getter
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderItemRequest.java
class MerchantOrderItemRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderPayerRequest.java
class MerchantOrderPayerRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderReceiverAddressCityRequest.java
class MerchantOrderReceiverAddressCityRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderReceiverAddressCountryRequest.java
class MerchantOrderReceiverAddressCountryRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderReceiverAddressRequest.java
class MerchantOrderReceiverAddressRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderReceiverAddressStateRequest.java
class MerchantOrderReceiverAddressStateRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderShipmentRequest.java
class MerchantOrderShipmentRequest (line 16) | @Getter
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderShippingEstimatedDeliveryRequest.java
class MerchantOrderShippingEstimatedDeliveryRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderShippingOptionRequest.java
class MerchantOrderShippingOptionRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderShippingSpeedRequest.java
class MerchantOrderShippingSpeedRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/merchantorder/MerchantOrderUpdateRequest.java
class MerchantOrderUpdateRequest (line 14) | @Getter
FILE: src/main/java/com/mercadopago/client/oauth/CreateOauthCredentialRequest.java
class CreateOauthCredentialRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/oauth/OauthClient.java
class OauthClient (line 44) | public class OauthClient extends MercadoPagoClient {
method OauthClient (line 61) | public OauthClient() {
method OauthClient (line 76) | public OauthClient(MPHttpClient httpClient) {
method getAuthorizationURL (line 93) | public String getAuthorizationURL(String appId, String redirectUri)
method getAuthorizationURL (line 112) | public String getAuthorizationURL(
method createCredential (line 152) | public CreateOauthCredential createCredential(String authorizationCode...
method createCredential (line 177) | public CreateOauthCredential createCredential(
method refreshCredential (line 210) | public RefreshOauthCredential refreshCredential(String refreshToken)
method refreshCredential (line 228) | public RefreshOauthCredential refreshCredential(
method getAccessToken (line 248) | private String getAccessToken(MPRequestOptions requestOptions) {
FILE: src/main/java/com/mercadopago/client/oauth/RefreshOauthCredentialRequest.java
class RefreshOauthCredentialRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/order/AdditionalInfoRequest.java
class AdditionalInfoRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderAutomaticPaymentsRequest.java
class OrderAutomaticPaymentsRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderClient.java
class OrderClient (line 43) | public class OrderClient extends MercadoPagoClient {
method OrderClient (line 72) | public OrderClient() {
method OrderClient (line 81) | public OrderClient(MPHttpClient httpClient) {
method create (line 97) | public Order create(OrderCreateRequest request) throws MPException, MP...
method create (line 111) | public Order create(OrderCreateRequest request, MPRequestOptions reque...
method get (line 137) | public Order get(String id) throws MPException, MPApiException {
method get (line 152) | public Order get(String id, MPRequestOptions requestOptions) throws MP...
method process (line 174) | public Order process(String id) throws MPException, MPApiException {
method process (line 190) | public Order process(String id, MPRequestOptions requestOptions)
method createTransaction (line 214) | public OrderTransaction createTransaction(String orderId, OrderTransac...
method createTransaction (line 230) | public OrderTransaction createTransaction(
method updateTransaction (line 259) | public UpdateOrderTransaction updateTransaction(
method updateTransaction (line 279) | public UpdateOrderTransaction updateTransaction(
method cancel (line 313) | public Order cancel(String orderId) throws MPException, MPApiException {
method cancel (line 328) | public Order cancel(String orderId, MPRequestOptions requestOptions)
method capture (line 351) | public Order capture(String orderId) throws MPException, MPApiException {
method capture (line 366) | public Order capture(String orderId, MPRequestOptions requestOptions)
method deleteTransaction (line 390) | public OrderTransaction deleteTransaction(String orderId, String trans...
method deleteTransaction (line 408) | public OrderTransaction deleteTransaction(
method refund (line 433) | public Order refund(String orderId) throws MPException, MPApiException {
method refund (line 447) | public Order refund(String orderId, MPRequestOptions requestOptions)
method refund (line 461) | public Order refund(String orderId, OrderRefundRequest request)
method refund (line 482) | public Order refund(String orderId, OrderRefundRequest request, MPRequ...
method search (line 512) | public OrderSearchResponse search(MPSearchRequest request)
method search (line 527) | public OrderSearchResponse search(MPSearchRequest request, MPRequestOp...
method validateOrderID (line 545) | void validateOrderID(String id) {
method validateTransactionID (line 557) | void validateTransactionID(String id) {
FILE: src/main/java/com/mercadopago/client/order/OrderConfigRequest.java
class OrderConfigRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderCreateRequest.java
class OrderCreateRequest (line 19) | @Builder
FILE: src/main/java/com/mercadopago/client/order/OrderDifferentialPricing.java
class OrderDifferentialPricing (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderInvoicePeriodRequest.java
class OrderInvoicePeriodRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderItemRequest.java
class OrderItemRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderOnlineConfig.java
class OrderOnlineConfig (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderPayerAddressRequest.java
class OrderPayerAddressRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderPayerRequest.java
class OrderPayerRequest (line 14) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderPaymentMethodConfig.java
class OrderPaymentMethodConfig (line 15) | @Builder
FILE: src/main/java/com/mercadopago/client/order/OrderPaymentMethodRequest.java
class OrderPaymentMethodRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderPaymentRequest.java
class OrderPaymentRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderPointConfig.java
class OrderPointConfig (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderReceiverAddressRequest.java
class OrderReceiverAddressRequest (line 9) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderRefundPaymentRequest.java
class OrderRefundPaymentRequest (line 10) | @Builder
FILE: src/main/java/com/mercadopago/client/order/OrderRefundRequest.java
class OrderRefundRequest (line 11) | @Builder
FILE: src/main/java/com/mercadopago/client/order/OrderRouteRequest.java
class OrderRouteRequest (line 10) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderShipmentRequest.java
class OrderShipmentRequest (line 9) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderStoredCredentialRequest.java
class OrderStoredCredentialRequest (line 14) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderSubscriptionDataRequest.java
class OrderSubscriptionDataRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderSubscriptionSequenceRequest.java
class OrderSubscriptionSequenceRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/order/OrderTransactionRequest.java
class OrderTransactionRequest (line 14) | @Builder
FILE: src/main/java/com/mercadopago/client/order/OrderTransactionSecurity.java
class OrderTransactionSecurity (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/order/PassengerIdentification.java
class PassengerIdentification (line 10) | @Getter
FILE: src/main/java/com/mercadopago/client/order/PayerInfo.java
class PayerInfo (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/order/PlatformInfo.java
class PlatformInfo (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/order/PlatformShipment.java
class PlatformShipment (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/order/SellerAddress.java
class SellerAddress (line 10) | @Getter
FILE: src/main/java/com/mercadopago/client/order/SellerIdentification.java
class SellerIdentification (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/order/SellerInfo.java
class SellerInfo (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/order/SellerPhone.java
class SellerPhone (line 10) | @Getter
FILE: src/main/java/com/mercadopago/client/order/ShipmentInfo.java
class ShipmentInfo (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/order/TrackingInfo.java
class TrackingInfo (line 10) | @Getter
FILE: src/main/java/com/mercadopago/client/order/TravelInfo.java
class TravelInfo (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/order/TravelPassengerRequest.java
class TravelPassengerRequest (line 10) | @Getter
FILE: src/main/java/com/mercadopago/client/order/TravelRouteRequest.java
class TravelRouteRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentAdditionalInfoBarcodeRequest.java
class PaymentAdditionalInfoBarcodeRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentAdditionalInfoPayerRequest.java
class PaymentAdditionalInfoPayerRequest (line 15) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentAdditionalInfoRequest.java
class PaymentAdditionalInfoRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentAmountsRequest.java
class PaymentAmountsRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentAuthenticationRequest.java
class PaymentAuthenticationRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentCancelRequest.java
class PaymentCancelRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentCaptureRequest.java
class PaymentCaptureRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentCategoryDescriptorRequest.java
class PaymentCategoryDescriptorRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentClient.java
class PaymentClient (line 48) | public class PaymentClient extends MercadoPagoClient {
method PaymentClient (line 62) | public PaymentClient() {
method PaymentClient (line 73) | public PaymentClient(MPHttpClient httpClient) {
method get (line 90) | public Payment get(Long id) throws MPException, MPApiException {
method get (line 104) | public Payment get(Long id, MPRequestOptions requestOptions) throws MP...
method create (line 124) | public Payment create(PaymentCreateRequest request) throws MPException...
method create (line 139) | public Payment create(PaymentCreateRequest request, MPRequestOptions r...
method cancel (line 165) | public Payment cancel(Long id) throws MPException, MPApiException {
method cancel (line 179) | public Payment cancel(Long id, MPRequestOptions requestOptions)
method capture (line 205) | public Payment capture(Long id) throws MPException, MPApiException {
method capture (line 219) | public Payment capture(Long id, MPRequestOptions requestOptions)
method capture (line 233) | public Payment capture(Long id, BigDecimal amount) throws MPException,...
method capture (line 251) | public Payment capture(Long id, BigDecimal amount, MPRequestOptions re...
method search (line 280) | public MPResultsResourcesPage<Payment> search(MPSearchRequest request)
method search (line 296) | public MPResultsResourcesPage<Payment> search(
method refund (line 319) | public PaymentRefund refund(Long paymentId) throws MPException, MPApiE...
method refund (line 335) | public PaymentRefund refund(Long paymentId, MPRequestOptions requestOp...
method refund (line 351) | public PaymentRefund refund(Long paymentId, BigDecimal amount)
method refund (line 370) | public PaymentRefund refund(Long paymentId, BigDecimal amount, MPReque...
method getRefund (line 386) | public PaymentRefund getRefund(Long paymentId, Long refundId) throws M...
method getRefund (line 403) | public PaymentRefund getRefund(Long paymentId, Long refundId, MPReques...
method listRefunds (line 418) | public MPResourceList<PaymentRefund> listRefunds(Long paymentId)
method listRefunds (line 435) | public MPResourceList<PaymentRefund> listRefunds(Long paymentId, MPReq...
FILE: src/main/java/com/mercadopago/client/payment/PaymentCounterCurrencyRequest.java
class PaymentCounterCurrencyRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentCreateRequest.java
class PaymentCreateRequest (line 17) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentDataRequest.java
class PaymentDataRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentDiscountRequest.java
class PaymentDiscountRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentFeeRequest.java
class PaymentFeeRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentForwardDataRequest.java
class PaymentForwardDataRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentInvoicePeriodRequest.java
class PaymentInvoicePeriodRequest (line 10) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentItemRequest.java
class PaymentItemRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentMerchantServicesRequest.java
class PaymentMerchantServicesRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentMethodRequest.java
class PaymentMethodRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentNetworkTransactionDataRequest.java
class PaymentNetworkTransactionDataRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentOrderRequest.java
class PaymentOrderRequest (line 10) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentPassengerRequest.java
class PaymentPassengerRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentPayerAddressRequest.java
class PaymentPayerAddressRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentPayerPhoneRequest.java
class PaymentPayerPhoneRequest (line 10) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentPayerRequest.java
class PaymentPayerRequest (line 14) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentPaymentReferenceRequest.java
class PaymentPaymentReferenceRequest (line 10) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentPointOfInteractionRequest.java
class PaymentPointOfInteractionRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentReceiverAddressRequest.java
class PaymentReceiverAddressRequest (line 10) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentRefundClient.java
class PaymentRefundClient (line 36) | public class PaymentRefundClient extends MercadoPagoClient {
method PaymentRefundClient (line 47) | public PaymentRefundClient() {
method PaymentRefundClient (line 56) | public PaymentRefundClient(MPHttpClient httpClient) {
method refund (line 75) | public PaymentRefund refund(Long paymentId) throws MPException, MPApiE...
method refund (line 92) | public PaymentRefund refund(Long paymentId, MPRequestOptions requestOp...
method refund (line 109) | public PaymentRefund refund(Long paymentId, BigDecimal amount)
method refund (line 131) | public PaymentRefund refund(Long paymentId, BigDecimal amount, MPReque...
method get (line 162) | public PaymentRefund get(Long paymentId, Long refundId) throws MPExcep...
method get (line 180) | public PaymentRefund get(Long paymentId, Long refundId, MPRequestOptio...
method list (line 207) | public MPResourceList<PaymentRefund> list(Long paymentId) throws MPExc...
method list (line 224) | public MPResourceList<PaymentRefund> list(Long paymentId, MPRequestOpt...
FILE: src/main/java/com/mercadopago/client/payment/PaymentRefundCreateRequest.java
class PaymentRefundCreateRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentRouteRequest.java
class PaymentRouteRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentRulesRequest.java
class PaymentRulesRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentShipmentsRequest.java
class PaymentShipmentsRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentSubscriptionSequenceRequest.java
class PaymentSubscriptionSequenceRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentTaxRequest.java
class PaymentTaxRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentTransactionDataRequest.java
class PaymentTransactionDataRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentTransactionDetailsRequest.java
class PaymentTransactionDetailsRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/payment/PaymentUserAmountRequest.java
class PaymentUserAmountRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/paymentmethod/PaymentMethodClient.java
class PaymentMethodClient (line 35) | public class PaymentMethodClient extends MercadoPagoClient {
method PaymentMethodClient (line 43) | public PaymentMethodClient() {
method PaymentMethodClient (line 52) | public PaymentMethodClient(MPHttpClient httpClient) {
method list (line 70) | public MPResourceList<PaymentMethod> list() throws MPException, MPApiE...
method list (line 86) | public MPResourceList<PaymentMethod> list(MPRequestOptions requestOpti...
FILE: src/main/java/com/mercadopago/client/point/OperatingMode.java
type OperatingMode (line 8) | public enum OperatingMode {
FILE: src/main/java/com/mercadopago/client/point/PointClient.java
class PointClient (line 45) | public class PointClient extends MercadoPagoClient {
method PointClient (line 79) | public PointClient() {
method PointClient (line 88) | public PointClient(MPHttpClient httpClient) {
method createPaymentIntent (line 109) | public PointPaymentIntent createPaymentIntent(String deviceId, PointPa...
method createPaymentIntent (line 129) | public PointPaymentIntent createPaymentIntent(
method getPaymentIntentList (line 160) | public PointPaymentIntentList getPaymentIntentList(PointPaymentIntentL...
method getPaymentIntentList (line 179) | public PointPaymentIntentList getPaymentIntentList(
method cancelPaymentIntent (line 211) | public PointCancelPaymentIntent cancelPaymentIntent(String deviceId, S...
method cancelPaymentIntent (line 230) | public PointCancelPaymentIntent cancelPaymentIntent(
method searchPaymentIntent (line 260) | public PointSearchPaymentIntent searchPaymentIntent(String paymentInte...
method searchPaymentIntent (line 278) | public PointSearchPaymentIntent searchPaymentIntent(
method getPaymentIntentStatus (line 307) | public PointStatusPaymentIntent getPaymentIntentStatus(String paymentI...
method getPaymentIntentStatus (line 325) | public PointStatusPaymentIntent getPaymentIntentStatus(
method getDevices (line 354) | public PointDevices getDevices(MPSearchRequest request) throws MPExcep...
method getDevices (line 371) | public PointDevices getDevices(MPSearchRequest request, MPRequestOptio...
method changeDeviceOperatingMode (line 401) | public PointDeviceOperatingMode changeDeviceOperatingMode(
method changeDeviceOperatingMode (line 420) | public PointDeviceOperatingMode changeDeviceOperatingMode(
FILE: src/main/java/com/mercadopago/client/point/PointDeviceOperatingModeRequest.java
class PointDeviceOperatingModeRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/point/PointPaymentIntentAdditionalInfoRequest.java
class PointPaymentIntentAdditionalInfoRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/point/PointPaymentIntentListRequest.java
class PointPaymentIntentListRequest (line 14) | @Getter
method getParams (line 28) | public Map<String, Object> getParams() {
FILE: src/main/java/com/mercadopago/client/point/PointPaymentIntentPaymentRequest.java
class PointPaymentIntentPaymentRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/point/PointPaymentIntentRequest.java
class PointPaymentIntentRequest (line 14) | @Getter
FILE: src/main/java/com/mercadopago/client/preapproval/PreApprovalAutoRecurringCreateRequest.java
class PreApprovalAutoRecurringCreateRequest (line 14) | @Getter
FILE: src/main/java/com/mercadopago/client/preapproval/PreApprovalAutoRecurringUpdateRequest.java
class PreApprovalAutoRecurringUpdateRequest (line 14) | @Getter
FILE: src/main/java/com/mercadopago/client/preapproval/PreapprovalClient.java
class PreapprovalClient (line 41) | public class PreapprovalClient extends MercadoPagoClient {
method PreapprovalClient (line 52) | public PreapprovalClient() {
method PreapprovalClient (line 61) | public PreapprovalClient(MPHttpClient httpClient) {
method get (line 77) | public Preapproval get(String id) throws MPException, MPApiException {
method get (line 91) | public Preapproval get(String id, MPRequestOptions requestOptions)
method create (line 112) | public Preapproval create(PreapprovalCreateRequest request) throws MPE...
method create (line 127) | public Preapproval create(PreapprovalCreateRequest request, MPRequestO...
method update (line 148) | public Preapproval update(String id, PreapprovalUpdateRequest request)
method update (line 164) | public Preapproval update(
method search (line 191) | public MPResultsResourcesPage<Preapproval> search(MPSearchRequest requ...
method search (line 208) | public MPResultsResourcesPage<Preapproval> search(
FILE: src/main/java/com/mercadopago/client/preapproval/PreapprovalCreateRequest.java
class PreapprovalCreateRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/preapproval/PreapprovalUpdateRequest.java
class PreapprovalUpdateRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferenceAmountsRequest.java
class PreferenceAmountsRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferenceBackUrlsRequest.java
class PreferenceBackUrlsRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferenceCategoryDescriptorRequest.java
class PreferenceCategoryDescriptorRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferenceClient.java
class PreferenceClient (line 44) | public class PreferenceClient extends MercadoPagoClient {
method PreferenceClient (line 55) | public PreferenceClient() {
method PreferenceClient (line 64) | public PreferenceClient(MPHttpClient httpClient) {
method get (line 83) | public Preference get(String id) throws MPException, MPApiException {
method get (line 100) | public Preference get(String id, MPRequestOptions requestOptions)
method create (line 124) | public Preference create(PreferenceRequest request) throws MPException...
method create (line 142) | public Preference create(PreferenceRequest request, MPRequestOptions r...
method update (line 172) | public Preference update(String id, PreferenceRequest request)
method update (line 191) | public Preference update(String id, PreferenceRequest request, MPReque...
method search (line 221) | public MPElementsResourcesPage<PreferenceSearch> search(MPSearchReques...
method search (line 240) | public MPElementsResourcesPage<PreferenceSearch> search(
FILE: src/main/java/com/mercadopago/client/preference/PreferenceCounterCurrencyRequest.java
class PreferenceCounterCurrencyRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferenceDifferentialPricingRequest.java
class PreferenceDifferentialPricingRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferenceFreeMethodRequest.java
class PreferenceFreeMethodRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferenceItemRequest.java
class PreferenceItemRequest (line 14) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferencePassengerRequest.java
class PreferencePassengerRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferencePayerRequest.java
class PreferencePayerRequest (line 18) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferencePaymentMethodRequest.java
class PreferencePaymentMethodRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferencePaymentMethodsRequest.java
class PreferencePaymentMethodsRequest (line 15) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferencePaymentTypeRequest.java
class PreferencePaymentTypeRequest (line 11) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferenceReceiverAddressRequest.java
class PreferenceReceiverAddressRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferenceRequest.java
class PreferenceRequest (line 19) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferenceRouteRequest.java
class PreferenceRouteRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferenceShipmentsRequest.java
class PreferenceShipmentsRequest (line 15) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferenceTaxRequest.java
class PreferenceTaxRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferenceTrackRequest.java
class PreferenceTrackRequest (line 13) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferenceTrackValuesRequest.java
class PreferenceTrackValuesRequest (line 12) | @Getter
FILE: src/main/java/com/mercadopago/client/preference/PreferenceUserAmountRequest.java
class PreferenceUserAmountRequest (line 14) | @Getter
FILE: src/main/java/com/mercadopago/client/user/UserClient.java
class UserClient (line 32) | public class UserClient extends MercadoPagoClient {
method UserClient (line 40) | public UserClient() {
method UserClient (line 49) | public UserClient(MPHttpClient httpClient) {
method get (line 64) | public User get() throws MPException, MPApiException {
method get (line 77) | public User get(MPRequestOptions requestOptions) throws MPException, M...
FILE: src/main/java/com/mercadopago/core/MPRequestOptions.java
class MPRequestOptions (line 26) | @Data
method createDefault (line 50) | public static MPRequestOptions createDefault() {
FILE: src/main/java/com/mercadopago/example/apis/order/CancelOrder.java
class CancelOrder (line 18) | public class CancelOrder {
method main (line 20) | public static void main(String[] args) {
FILE: src/main/java/com/mercadopago/example/apis/order/CaptureOrder.java
class CaptureOrder (line 18) | public class CaptureOrder {
method main (line 20) | public static void main(String[] args) {
FILE: src/main/java/com/mercadopago/example/apis/order/CreateOrder.java
class CreateOrder (line 19) | public class CreateOrder {
method main (line 21) | public static void main(String[] args) {
FILE: src/main/java/com/mercadopago/example/apis/order/CreateOrderPSE.java
class CreateOrderPSE (line 46) | public class CreateOrderPSE {
method main (line 48) | public static void main(String[] args) {
FILE: src/main/java/com/mercadopago/example/apis/order/CreateOrderWith3DS.java
class CreateOrderWith3DS (line 18) | public class CreateOrderWith3DS {
method createOrderWith3DS (line 32) | public static Order createOrderWith3DS(
method main (line 106) | public static void main(String[] args) {
FILE: src/main/java/com/mercadopago/example/apis/order/CreateOrderWithIndustryFields.java
class CreateOrderWithIndustryFields (line 21) | public class CreateOrderWithIndustryFields {
method main (line 22) | public static void main(String[] args) {
FILE: src/main/java/com/mercadopago/example/apis/order/CreateOrderWithPointConfig.java
class CreateOrderWithPointConfig (line 16) | public class CreateOrderWithPointConfig {
method main (line 18) | public static void main(String[] args) {
FILE: src/main/java/com/mercadopago/example/apis/order/CreateTransaction.java
class CreateTransaction (line 18) | public class CreateTransaction{
method main (line 20) | public static void main(String[] args) {
FILE: src/main/java/com/mercadopago/example/apis/order/DeleteTransaction.java
class DeleteTransaction (line 14) | public class DeleteTransaction {
method main (line 16) | public static void main(String[] args) {
FILE: src/main/java/com/mercadopago/example/apis/order/GetOrderById.java
class GetOrderById (line 14) | public class GetOrderById {
method main (line 16) | public static void main(String[] args) {
FILE: src/main/java/com/mercadopago/example/apis/order/ProcessOrderById.java
class ProcessOrderById (line 14) | public class ProcessOrderById {
method main (line 16) | public static void main(String[] args) {
FILE: src/main/java/com/mercadopago/example/apis/order/RefundPartial.java
class RefundPartial (line 16) | public class RefundPartial {
method main (line 18) | public static void main(String[] args) {
FILE: src/main/java/com/mercadopago/example/apis/order/RefundTotal.java
class RefundTotal (line 17) | public class RefundTotal {
method main (line 18) | public static void main(String[] args) {
FILE: src/main/java/com/mercadopago/example/apis/order/UpdateTransaction.java
class UpdateTransaction (line 19) | public class UpdateTransaction {
method main (line 21) | public static void main(String[] args) {
FILE: src/main/java/com/mercadopago/example/apis/payment/Main.java
class Main (line 15) | public class Main {
method main (line 16) | public static void main(String[] args) throws MPException, MPApiExcept...
FILE: src/main/java/com/mercadopago/exceptions/MPApiException.java
class MPApiException (line 28) | @Getter
method MPApiException (line 42) | public MPApiException(String message, MPResponse response) {
method MPApiException (line 53) | public MPApiException(String message, Throwable cause, MPResponse resp...
FILE: src/main/java/com/mercadopago/exceptions/MPException.java
class MPException (line 23) | @Getter
method MPException (line 31) | public MPException(String message) {
method MPException (line 41) | public MPException(String message, Throwable cause) {
method MPException (line 50) | public MPException(Throwable cause) {
FILE: src/main/java/com/mercadopago/exceptions/MPInvalidWebhookSignatureException.java
class MPInvalidWebhookSignatureException (line 16) | @Getter
method MPInvalidWebhookSignatureException (line 33) | public MPInvalidWebhookSignatureException(
FILE: src/main/java/com/mercadopago/exceptions/MPJsonParseException.java
class MPJsonParseException (line 14) | public class MPJsonParseException extends MPException {
method MPJsonParseException (line 20) | public MPJsonParseException(String message) {
method MPJsonParseException (line 30) | public MPJsonParseException(String message, Throwable throwable) {
FILE: src/main/java/com/mercadopago/exceptions/MPMalformedRequestException.java
class MPMalformedRequestException (line 15) | public class MPMalformedRequestException extends MPException {
method MPMalformedRequestException (line 21) | public MPMalformedRequestException(String message) {
method MPMalformedRequestException (line 30) | public MPMalformedRequestException(Throwable cause) {
FILE: src/main/java/com/mercadopago/exceptions/SignatureFailureReason.java
type SignatureFailureReason (line 11) | public enum SignatureFailureReason {
FILE: src/main/java/com/mercadopago/net/Headers.java
class Headers (line 16) | public class Headers {
FILE: src/main/java/com/mercadopago/net/HttpMethod.java
type HttpMethod (line 14) | public enum HttpMethod {
FILE: src/main/java/com/mercadopago/net/HttpStatus.java
class HttpStatus (line 13) | public class HttpStatus {
FILE: src/main/java/com/mercadopago/net/KeepAliveStrategy.java
class KeepAliveStrategy (line 27) | public class KeepAliveStrategy implements ConnectionKeepAliveStrategy {
method getKeepAliveDuration (line 49) | @Override
FILE: src/main/java/com/mercadopago/net/MPDefaultHttpClient.java
class MPDefaultHttpClient (line 79) | public class MPDefaultHttpClient implements MPHttpClient {
method MPDefaultHttpClient (line 116) | public MPDefaultHttpClient() {
method MPDefaultHttpClient (line 129) | protected MPDefaultHttpClient(HttpClient httpClient) {
method createHttpClient (line 142) | private HttpClient createHttpClient() {
method send (line 205) | @Override
method createHttpRequest (line 247) | private HttpRequestBase createHttpRequest(MPRequest mpRequest)
method executeHttpRequest (line 279) | private HttpResponse executeHttpRequest(
method getHeaders (line 311) | private Map<String, List<String>> getHeaders(HttpResponse response) {
method getRequestBase (line 322) | private HttpRequestBase getRequestBase(HttpMethod method, String uri, ...
method getHttpRequestBase (line 341) | private HttpRequestBase getHttpRequestBase(HttpMethod method, String u...
method normalizePayload (line 371) | private HttpEntity normalizePayload(JsonObject payload) throws MPMalfo...
FILE: src/main/java/com/mercadopago/net/MPElementsResourcesPage.java
class MPElementsResourcesPage (line 22) | @Getter
FILE: src/main/java/com/mercadopago/net/MPHttpClient.java
type MPHttpClient (line 20) | public interface MPHttpClient {
method send (line 35) | MPResponse send(MPRequest request) throws MPException, MPApiException;
FILE: src/main/java/com/mercadopago/net/MPRequest.java
class MPRequest (line 26) | @Getter
method buildRequest (line 90) | public static MPRequest buildRequest(
method createIdempotencyKey (line 127) | public String createIdempotencyKey() {
FILE: src/main/java/com/mercadopago/net/MPResource.java
class MPResource (line 21) | @Data
FILE: src/main/java/com/mercadopago/net/MPResourceList.java
class MPResourceList (line 21) | @Getter
FILE: src/main/java/com/mercadopago/net/MPResponse.java
class MPResponse (line 21) | @Getter
FILE: src/main/java/com/mercadopago/net/MPResultsResourcesPage.java
class MPResultsResourcesPage (line 24) | @Data
FILE: src/main/java/com/mercadopago/net/MPSearchRequest.java
class MPSearchRequest (line 28) | @Getter
method getParameters (line 68) | public Map<String, Object> getParameters() {
FILE: src/main/java/com/mercadopago/net/UrlFormatter.java
class UrlFormatter (line 28) | public class UrlFormatter {
method format (line 45) | public static String format(String path, Map<String, Object> queryPara...
method generateFullPath (line 72) | private static String generateFullPath(String path) {
FILE: src/main/java/com/mercadopago/resources/CardToken.java
class CardToken (line 19) | @Getter
FILE: src/main/java/com/mercadopago/resources/ResultsPaging.java
class ResultsPaging (line 22) | @Getter
FILE: src/main/java/com/mercadopago/resources/common/Address.java
class Address (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/common/Identification.java
class Identification (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/common/Phone.java
class Phone (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/common/Source.java
class Source (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/customer/Customer.java
class Customer (line 21) | @Getter
FILE: src/main/java/com/mercadopago/resources/customer/CustomerAddress.java
class CustomerAddress (line 16) | @Getter
FILE: src/main/java/com/mercadopago/resources/customer/CustomerAddressCity.java
class CustomerAddressCity (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/customer/CustomerAddressCountry.java
class CustomerAddressCountry (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/customer/CustomerAddressMunicipality.java
class CustomerAddressMunicipality (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/customer/CustomerAddressNeighborhood.java
class CustomerAddressNeighborhood (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/customer/CustomerAddressState.java
class CustomerAddressState (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/customer/CustomerCard.java
class CustomerCard (line 19) | @Getter
FILE: src/main/java/com/mercadopago/resources/customer/CustomerCardCardholder.java
class CustomerCardCardholder (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/customer/CustomerCardCardholderIdentification.java
class CustomerCardCardholderIdentification (line 16) | @Getter
FILE: src/main/java/com/mercadopago/resources/customer/CustomerCardIssuer.java
class CustomerCardIssuer (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/customer/CustomerCardPaymentMethod.java
class CustomerCardPaymentMethod (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/customer/CustomerCardSecurityCode.java
class CustomerCardSecurityCode (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/customer/CustomerDefaultAddress.java
class CustomerDefaultAddress (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/customer/Identification.java
class Identification (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/identificationtype/IdentificationType.java
class IdentificationType (line 15) | @Getter
FILE: src/main/java/com/mercadopago/resources/merchantorder/MerchantOrder.java
class MerchantOrder (line 19) | @Getter
FILE: src/main/java/com/mercadopago/resources/merchantorder/MerchantOrderCollector.java
class MerchantOrderCollector (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/merchantorder/MerchantOrderItem.java
class MerchantOrderItem (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/merchantorder/MerchantOrderPayer.java
class MerchantOrderPayer (line 12) | @Getter
FILE: src/main/java/com/mercadopago/resources/merchantorder/MerchantOrderPayment.java
class MerchantOrderPayment (line 15) | @Getter
FILE: src/main/java/com/mercadopago/resources/merchantorder/MerchantOrderReceiverAddress.java
class MerchantOrderReceiverAddress (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/merchantorder/MerchantOrderReceiverAddressCity.java
class MerchantOrderReceiverAddressCity (line 12) | @Getter
FILE: src/main/java/com/mercadopago/resources/merchantorder/MerchantOrderReceiverAddressCountry.java
class MerchantOrderReceiverAddressCountry (line 12) | @Getter
FILE: src/main/java/com/mercadopago/resources/merchantorder/MerchantOrderReceiverAddressState.java
class MerchantOrderReceiverAddressState (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/merchantorder/MerchantOrderShipment.java
class MerchantOrderShipment (line 16) | @Getter
FILE: src/main/java/com/mercadopago/resources/merchantorder/MerchantOrderShippingEstimatedDelivery.java
class MerchantOrderShippingEstimatedDelivery (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/merchantorder/MerchantOrderShippingOption.java
class MerchantOrderShippingOption (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/merchantorder/MerchantOrderShippingSpeed.java
class MerchantOrderShippingSpeed (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/oauth/CreateOauthCredential.java
class CreateOauthCredential (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/oauth/OauthCredential.java
class OauthCredential (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/oauth/RefreshOauthCredential.java
class RefreshOauthCredential (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/Order.java
class Order (line 18) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderAttempts.java
class OrderAttempts (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderAutomaticPayments.java
class OrderAutomaticPayments (line 12) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderCategoryDescriptor.java
class OrderCategoryDescriptor (line 10) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderChargeback.java
class OrderChargeback (line 11) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderConfig.java
class OrderConfig (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderDifferentialPricing.java
class OrderDifferentialPricing (line 10) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderDiscountPaymentMethod.java
class OrderDiscountPaymentMethod (line 9) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderDiscounts.java
class OrderDiscounts (line 11) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderExternalCategory.java
class OrderExternalCategory (line 9) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderInstallments.java
class OrderInstallments (line 10) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderInstallmentsAvailable.java
class OrderInstallmentsAvailable (line 9) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderInstallmentsInterestFree.java
class OrderInstallmentsInterestFree (line 10) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderIntegrationData.java
class OrderIntegrationData (line 10) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderInvoicePeriod.java
class OrderInvoicePeriod (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderItem.java
class OrderItem (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderOnlineConfig.java
class OrderOnlineConfig (line 10) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderPaging.java
class OrderPaging (line 10) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderPassenger.java
class OrderPassenger (line 10) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderPayer.java
class OrderPayer (line 11) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderPayment.java
class OrderPayment (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderPaymentDiscount.java
class OrderPaymentDiscount (line 9) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderPaymentMethod.java
class OrderPaymentMethod (line 12) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderPointConfig.java
class OrderPointConfig (line 10) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderReceiverAddress.java
class OrderReceiverAddress (line 9) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderReference.java
class OrderReference (line 9) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderRefund.java
class OrderRefund (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderRefundItem.java
class OrderRefundItem (line 10) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderRoute.java
class OrderRoute (line 10) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderSearchResponse.java
class OrderSearchResponse (line 11) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderShipment.java
class OrderShipment (line 10) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderStoredCredential.java
class OrderStoredCredential (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderSubscriptionData.java
class OrderSubscriptionData (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderSubscriptionSequence.java
class OrderSubscriptionSequence (line 12) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderTax.java
class OrderTax (line 10) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderTransaction.java
class OrderTransaction (line 15) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderTransactionRefund.java
class OrderTransactionRefund (line 12) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderTransactionSecurity.java
class OrderTransactionSecurity (line 10) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/OrderTypeResponse.java
class OrderTypeResponse (line 10) | @Getter
FILE: src/main/java/com/mercadopago/resources/order/UpdateOrderTransaction.java
class UpdateOrderTransaction (line 10) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/Payment.java
class Payment (line 22) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentAdditionalInfo.java
class PaymentAdditionalInfo (line 15) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentAdditionalInfoPayer.java
class PaymentAdditionalInfoPayer (line 15) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentAmounts.java
class PaymentAmounts (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentApplicationData.java
class PaymentApplicationData (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentBankInfo.java
class PaymentBankInfo (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentBankInfoCollector.java
class PaymentBankInfoCollector (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentBankInfoPayer.java
class PaymentBankInfoPayer (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentBarcode.java
class PaymentBarcode (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentCard.java
class PaymentCard (line 16) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentCardholder.java
class PaymentCardholder (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentCounterCurrency.java
class PaymentCounterCurrency (line 15) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentData.java
class PaymentData (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentDiscount.java
class PaymentDiscount (line 15) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentExpanded.java
class PaymentExpanded (line 15) | @Getter
class Gateway (line 25) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentFee.java
class PaymentFee (line 15) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentFeeDetail.java
class PaymentFeeDetail (line 15) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentInvoicePeriod.java
class PaymentInvoicePeriod (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentItem.java
class PaymentItem (line 15) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentMethod.java
class PaymentMethod (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentOrder.java
class PaymentOrder (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentPayer.java
class PaymentPayer (line 18) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentPaymentReference.java
class PaymentPaymentReference (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentPhone.java
class PaymentPhone (line 12) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentPointOfInteraction.java
class PaymentPointOfInteraction (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentReceiverAddress.java
class PaymentReceiverAddress (line 15) | @EqualsAndHashCode(callSuper = true)
FILE: src/main/java/com/mercadopago/resources/payment/PaymentRefund.java
class PaymentRefund (line 19) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentRules.java
class PaymentRules (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentShipments.java
class PaymentShipments (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentStatus.java
class PaymentStatus (line 12) | public class PaymentStatus {
FILE: src/main/java/com/mercadopago/resources/payment/PaymentSubscriptionSequence.java
class PaymentSubscriptionSequence (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentTax.java
class PaymentTax (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentThreeDSInfo.java
class PaymentThreeDSInfo (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentTransactionData.java
class PaymentTransactionData (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentTransactionDetails.java
class PaymentTransactionDetails (line 15) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentUsersAmountCollector.java
class PaymentUsersAmountCollector (line 16) | @Getter
FILE: src/main/java/com/mercadopago/resources/payment/PaymentUsersAmountPayer.java
class PaymentUsersAmountPayer (line 16) | @Getter
FILE: src/main/java/com/mercadopago/resources/paymentmethod/PaymentMethod.java
class PaymentMethod (line 18) | @Getter
FILE: src/main/java/com/mercadopago/resources/paymentmethod/PaymentMethodFinancialInstitutions.java
class PaymentMethodFinancialInstitutions (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/paymentmethod/PaymentMethodSettings.java
class PaymentMethodSettings (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/paymentmethod/PaymentMethodSettingsBin.java
class PaymentMethodSettingsBin (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/paymentmethod/PaymentMethodSettingsCardNumber.java
class PaymentMethodSettingsCardNumber (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/paymentmethod/PaymentMethodSettingsSecurityCode.java
class PaymentMethodSettingsSecurityCode (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/point/OperatingMode.java
type OperatingMode (line 14) | public enum OperatingMode {
FILE: src/main/java/com/mercadopago/resources/point/PointCancelPaymentIntent.java
class PointCancelPaymentIntent (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/point/PointDevice.java
class PointDevice (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/point/PointDeviceOperatingMode.java
class PointDeviceOperatingMode (line 17) | @Getter
FILE: src/main/java/com/mercadopago/resources/point/PointDevices.java
class PointDevices (line 17) | @Getter
FILE: src/main/java/com/mercadopago/resources/point/PointPaymentIntent.java
class PointPaymentIntent (line 19) | @Getter
FILE: src/main/java/com/mercadopago/resources/point/PointPaymentIntentAdditionalInfo.java
class PointPaymentIntentAdditionalInfo (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/point/PointPaymentIntentList.java
class PointPaymentIntentList (line 17) | @Getter
FILE: src/main/java/com/mercadopago/resources/point/PointPaymentIntentListEvent.java
class PointPaymentIntentListEvent (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/point/PointPaymentIntentPayment.java
class PointPaymentIntentPayment (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/point/PointSearchPaymentIntent.java
class PointSearchPaymentIntent (line 19) | @Getter
FILE: src/main/java/com/mercadopago/resources/point/PointStatusPaymentIntent.java
class PointStatusPaymentIntent (line 16) | @Getter
FILE: src/main/java/com/mercadopago/resources/preapproval/Preapproval.java
class Preapproval (line 18) | @Getter
FILE: src/main/java/com/mercadopago/resources/preapproval/PreapprovalAutoRecurring.java
class PreapprovalAutoRecurring (line 15) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/Preference.java
class Preference (line 25) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferenceAmounts.java
class PreferenceAmounts (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferenceBackUrls.java
class PreferenceBackUrls (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferenceCategoryDescriptor.java
class PreferenceCategoryDescriptor (line 16) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferenceCounterCurrency.java
class PreferenceCounterCurrency (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferenceDifferentialPricing.java
class PreferenceDifferentialPricing (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferenceFreeMethod.java
class PreferenceFreeMethod (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferenceItem.java
class PreferenceItem (line 15) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferencePassenger.java
class PreferencePassenger (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferencePayer.java
class PreferencePayer (line 20) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferencePaymentMethod.java
class PreferencePaymentMethod (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferencePaymentMethods.java
class PreferencePaymentMethods (line 16) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferencePaymentType.java
class PreferencePaymentType (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferenceReceiverAddress.java
class PreferenceReceiverAddress (line 15) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferenceRoute.java
class PreferenceRoute (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferenceSearch.java
class PreferenceSearch (line 18) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferenceShipments.java
class PreferenceShipments (line 18) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferenceTax.java
class PreferenceTax (line 14) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferenceTrack.java
class PreferenceTrack (line 16) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferenceTrackValues.java
class PreferenceTrackValues (line 13) | @Getter
FILE: src/main/java/com/mercadopago/resources/preference/PreferenceUserAmount.java
class PreferenceUserAmount (line 16) | @Getter
FILE: src/main/java/com/mercadopago/resources/user/User.java
class User (line 15) | @Getter
FILE: src/main/java/com/mercadopago/serialization/Serializer.java
class Serializer (line 52) | public class Serializer {
method parseDateTime (line 97) | private static OffsetDateTime parseDateTime(JsonElement json) {
method deserializeFromJson (line 159) | public static <T extends MPResource> T deserializeFromJson(Class<T> cl...
method deserializeResultsResourcesPageFromJson (line 184) | public static <T extends MPResource>
method deserializeElementsResourcesPageFromJson (line 210) | public static <T extends MPResource>
method deserializeListFromJson (line 239) | public static <T extends MPResource> MPResourceList<T> deserializeList...
method serializeToJson (line 272) | public static <T> JsonObject serializeToJson(T resource) {
method isJsonValid (line 288) | public static boolean isJsonValid(String json) throws IOException {
FILE: src/main/java/com/mercadopago/webhook/WebhookSignatureValidator.java
class WebhookSignatureValidator (line 37) | public final class WebhookSignatureValidator {
method WebhookSignatureValidator (line 43) | private WebhookSignatureValidator() {
method validate (line 63) | public static void validate(String xSignature, String xRequestId, Stri...
method validate (line 73) | public static void validate(
method validate (line 96) | public static void validate(
method normalize (line 171) | private static String normalize(String value) {
method parseSignatureHeader (line 179) | private static ParsedSignature parseSignatureHeader(String header) {
method buildManifest (line 201) | private static String buildManifest(String dataId, String requestId, S...
method computeHmacHex (line 213) | private static String computeHmacHex(String secret, String message) {
method constantTimeEquals (line 229) | private static boolean constantTimeEquals(String a, String b) {
class ParsedSignature (line 238) | private static final class ParsedSignature {
method ParsedSignature (line 242) | ParsedSignature(String timestamp, Map<String, String> hashes) {
FILE: src/test/java/com/mercadopago/BaseClientIT.java
class BaseClientIT (line 7) | public abstract class BaseClientIT {
method setup (line 12) | @BeforeAll
method buildRequestOptions (line 18) | protected static MPRequestOptions buildRequestOptions() {
method generateTestEmail (line 26) | protected static String generateTestEmail() {
FILE: src/test/java/com/mercadopago/BaseClientTest.java
class BaseClientTest (line 11) | public abstract class BaseClientTest {
method setup (line 20) | @BeforeAll
method buildRequestOptions (line 28) | protected static MPRequestOptions buildRequestOptions() {
FILE: src/test/java/com/mercadopago/client/MercadoPagoClientTest.java
class MercadoPagoClientTest (line 36) | public class MercadoPagoClientTest extends BaseClientTest {
method sendWithBodySuccess (line 47) | @Test
method sendWithIdempotentHeaderIfMethodIsPost (line 67) | @Test
method sendWithoutBodySuccess (line 86) | @Test
method sendWithQueryStringSuccess (line 104) | @Test
method sendWithMPRequestOptionsSuccess (line 132) | @Test
method sendWithRequiredHeaders (line 145) | @Test
method sendInvalidResponseError (line 163) | @Test
method sendHttpStatusCodeError (line 181) | @Test
method searchWithParametersSuccess (line 199) | @Test
method searchWithoutParametersSuccess (line 222) | @Test
method listWithBodySuccess (line 234) | @Test
method listWithoutBodySuccess (line 249) | @Test
method listWithQueryStringSuccess (line 261) | @Test
method listWithMPRequestOptionsSuccess (line 281) | @Test
class TestClient (line 294) | private static class TestClient extends MercadoPagoClient {
method TestClient (line 301) | public TestClient(MPHttpClient httpClient) {
method sendRequest (line 305) | public MPResponse sendRequest(MPRequest request) throws MPException,...
method sendRequest (line 309) | public MPResponse sendRequest(
method searchRequest (line 319) | public MPResponse searchRequest(String path, MPSearchRequest searchR...
method listRequest (line 324) | public MPResponse listRequest(
FILE: src/test/java/com/mercadopago/client/cardtoken/CardTokenCardholderTestCreateRequest.java
class CardTokenCardholderTestCreateRequest (line 7) | @Builder
FILE: src/test/java/com/mercadopago/client/cardtoken/CardTokenClientIT.java
class CardTokenClientIT (line 21) | public class CardTokenClientIT extends BaseClientIT {
method getCardTokenSuccess (line 28) | @Test
method getCardTokenWithRequestOptionsSuccess (line 44) | @Test
method createCardTokenSuccess (line 60) | @Test
method createCardTokenWithRequestOptionsSuccess (line 94) | @Test
method buildCardCreateRequest (line 127) | private CustomerCardCreateRequest buildCardCreateRequest() throws MPEx...
method buildCustomerRequest (line 132) | private CustomerRequest buildCustomerRequest() {
FILE: src/test/java/com/mercadopago/client/cardtoken/CardTokenClientTest.java
class CardTokenClientTest (line 28) | public class CardTokenClientTest extends BaseClientTest {
method getCardTokenSuccess (line 35) | @Test
method getCardTokenWithRequestOptionsSuccess (line 51) | @Test
method createCardTokenSuccess (line 74) | @Test
method createCardTokenWithRequestOptionsSuccess (line 90) | @Test
method buildCardTokenRequest (line 113) | private CardTokenRequest buildCardTokenRequest() {
method assertCardTokenFields (line 121) | private void assertCardTokenFields(CardToken token) {
FILE: src/test/java/com/mercadopago/client/cardtoken/CardTokenTestClient.java
class CardTokenTestClient (line 19) | public class CardTokenTestClient extends MercadoPagoClient {
method CardTokenTestClient (line 29) | public CardTokenTestClient() {
method CardTokenTestClient (line 38) | public CardTokenTestClient(MPHttpClient httpClient) {
method createTestCardToken (line 49) | public CardToken createTestCardToken(String paymentStatus) throws MPEx...
FILE: src/test/java/com/mercadopago/client/cardtoken/CardTokenTestCreateRequest.java
class CardTokenTestCreateRequest (line 6) | @Builder
FILE: src/test/java/com/mercadopago/client/customer/CustomerCardClientTest.java
class CustomerCardClientTest (line 27) | public class CustomerCardClientTest extends BaseClientTest {
method getCardSuccess (line 38) | @Test
method getCardWithRequestOptionsSuccess (line 53) | @Test
method createCardSuccess (line 68) | @Test
method createCardWithRequestOptionsSuccess (line 83) | @Test
method deleteCardSuccess (line 100) | @Test
method deleteCardWithRequestOptionsSuccess (line 115) | @Test
method listAllCardsSuccess (line 131) | @Test
method listAllCardsWithRequestOptionsSuccess (line 150) | @Test
method buildCustomerCardCreateRequest (line 170) | private CustomerCardCreateRequest buildCustomerCardCreateRequest() {
method assertCustomerCardFields (line 177) | private void assertCustomerCardFields(CustomerCard card) {
FILE: src/test/java/com/mercadopago/client/customer/CustomerClientIT.java
class CustomerClientIT (line 25) | public class CustomerClientIT extends BaseClientIT {
method getSuccess (line 30) | @Test
method getWithRequestOptionsSuccess (line 48) | @Test
method createSuccess (line 66) | @Test
method createWithRequestOptionsSuccess (line 83) | @Test
method updateSuccess (line 100) | @Test
method updateWithRequestOptionsSuccess (line 122) | @Test
method deleteSuccess (line 145) | @Test
method deleteWithRequestOptionsSuccess (line 162) | @Test
method searchSuccess (line 179) | @Test
method getCardSuccess (line 202) | @Test
method getCardWithRequestOptionsSuccess (line 225) | @Test
method createCardSuccess (line 250) | @Test
method createCardWithRequestOptionsSuccess (line 272) | @Test
method deleteCardSuccess (line 295) | @Test
method deleteCardWithRequestOptionsSuccess (line 317) | @Test
method listCardsSuccess (line 341) | @Test
method listCardsWithRequestOptionsSuccess (line 363) | @Test
FILE: src/test/java/com/mercadopago/client/customer/CustomerClientTest.java
class CustomerClientTest (line 35) | public class CustomerClientTest extends BaseClientTest {
method getSuccess (line 40) | @Test
method getWithRequestOptionsSuccess (line 55) | @Test
method createSuccess (line 71) | @Test
method createWithRequestOptionsSuccess (line 86) | @Test
method updateSuccess (line 103) | @Test
method updateWithRequestOptionsSuccess (line 118) | @Test
method deleteSuccess (line 134) | @Test
method deleteWithRequestOptionsSuccess (line 149) | @Test
method searchSuccess (line 165) | @Test
method searchWithRequestOptionsSuccess (line 188) | @Test
method getCardSuccess (line 212) | @Test
method getCardWithRequestOptionsSuccess (line 226) | @Test
method createCardSuccess (line 241) | @Test
method createCardWithRequestOptionsSuccess (line 256) | @Test
method deleteCardSuccess (line 273) | @Test
method deleteCardWithRequestOptionsSuccess (line 287) | @Test
method listCardsSuccess (line 304) | @Test
method listCardsWithRequestOptionsSuccess (line 320) | @Test
method buildCustomerRequest (line 336) | private CustomerRequest buildCustomerRequest() {
method buildCustomerCardCreateRequest (line 353) | private CustomerCardCreateRequest buildCustomerCardCreateRequest() {
method assertCustomerFields (line 360) | private void assertCustomerFields(Customer customer) {
FILE: src/test/java/com/mercadopago/client/identificationtype/IdentificationTypeClientIT.java
class IdentificationTypeClientIT (line 17) | class IdentificationTypeClientIT extends BaseClientIT {
method listSuccess (line 20) | @Test
method testListWithRequestOptionsSuccess (line 34) | @Test
FILE: src/test/java/com/mercadopago/client/identificationtype/IdentificationTypeClientTest.java
class IdentificationTypeClientTest (line 23) | class IdentificationTypeClientTest extends BaseClientTest {
method listSuccess (line 28) | @Test
method testListWithRequestOptionsSuccess (line 41) | @Test
method assertIdentificationTypes (line 54) | private void assertIdentificationTypes(MPResourceList<IdentificationTy...
FILE: src/test/java/com/mercadopago/client/merchantorder/MerchantOrderClientIT.java
class MerchantOrderClientIT (line 36) | class MerchantOrderClientIT extends BaseClientIT {
method createSuccess (line 41) | @Test
method createWithRequestOptionsSuccess (line 63) | @Test
method getSuccess (line 85) | @Test
method getWithRequestOptionsSuccess (line 108) | @Test
method updateSuccess (line 132) | @Test
method updateWithRequestOptionsSuccess (line 163) | @Test
method searchSuccess (line 195) | @Test
method searchWithRequestOptionsSuccess (line 221) | @Test
method buildPreferenceRequest (line 248) | private PreferenceRequest buildPreferenceRequest() {
FILE: src/test/java/com/mercadopago/client/merchantorder/MerchantOrderClientTest.java
class MerchantOrderClientTest (line 34) | class MerchantOrderClientTest extends BaseClientTest {
method createSuccess (line 49) | @Test
method createWithRequestOptionsSuccess (line 71) | @Test
method getSuccess (line 93) | @Test
method getWithRequestOptionsSuccess (line 107) | @Test
method updateSuccess (line 121) | @Test
method updateWithRequestOptionsSuccess (line 146) | @Test
method searchSuccess (line 172) | @Test
method searchWithRequestOptionsSuccess (line 194) | @Test
method assertMerchantOrderFields (line 217) | private void assertMerchantOrderFields(MerchantOrder merchantOrder) {
FILE: src/test/java/com/mercadopago/client/oauth/OauthClientTest.java
class OauthClientTest (line 30) | public class OauthClientTest extends BaseClientTest {
method getAuthorizationURLSuccess (line 43) | @Test
method getAuthorizationURLWithRequestOptionsSuccess (line 68) | @Test
method createCredentialSuccess (line 94) | @Test
method createCredentialWithRequestOptionsSuccess (line 109) | @Test
method refreshCredentialSuccess (line 133) | @Test
method refreshCredentialWithRequestOptionsSuccess (line 146) | @Test
method assertAuthorizationUrlComponents (line 169) | private void assertAuthorizationUrlComponents(String authorizationURL)...
method assertCreateOauthCredentialFields (line 180) | private void assertCreateOauthCredentialFields(CreateOauthCredential c...
method assertRefreshOauthCredentialFields (line 190) | private void assertRefreshOauthCredentialFields(RefreshOauthCredential...
FILE: src/test/java/com/mercadopago/client/order/OrderClientIT.java
class OrderClientIT (line 22) | public class OrderClientIT extends BaseClientIT {
method createOrderSuccess (line 26) | @Test
method getOrderSuccess (line 72) | @Test
method processOrderSuccess (line 115) | @Test
method captureOrderSuccess (line 159) | @Test
method cancelOrderSuccess (line 204) | @Test
method totalRefundOrderSuccess (line 247) | @Test
method partialRefundOrderSuccess (line 291) | @Test
method createOrderTransactionSuccess (line 343) | @Test
method updateOrderTransactionSuccess (line 390) | @Test
method deleteOrderTransactionSuccess (line 439) | @Test
FILE: src/test/java/com/mercadopago/client/order/OrderClientTest.java
class OrderClientTest (line 32) | class OrderClientTest extends BaseClientTest {
method createSuccess (line 47) | @Test
method getMinimumOrderCreateRequest (line 64) | private static OrderCreateRequest getMinimumOrderCreateRequest() {
method getSuccess (line 89) | @Test
method processSuccess (line 101) | @Test
method processWithNullIdThrowsException (line 113) | @Test
method processWithEmptyIdThrowsException (line 124) | @Test
method createTransactionWithRequestOptionsSuccess (line 135) | @Test
method deleteTransactionSuccessWithValidIds (line 165) | @Test
method updateTransactionSuccessWithValidIds (line 180) | @Test
method captureSuccess (line 198) | @Test
method refundTotalSuccess (line 213) | @Test
method refundPartialSuccess (line 229) | @Test
method refundWithValidRequestPayload (line 257) | @Test
method validOrderIDWithValidId (line 277) | @Test
method validOrderIDWithNullIdThrowsException (line 285) | @Test
method validOrderIDWithEmptyIdThrowsException (line 294) | @Test
method validTransactionIDWithValidId (line 303) | @Test
method validTransactionIDWithNullIdThrowsException (line 311) | @Test
method validTransactionIDWithEmptyIdThrowsException (line 319) | @Test
method captureModeIsAutomaticAsync (line 329) | @Test
method captureModeIsManual (line 351) | @Test
method orderHasAdditionalInfo (line 372) | @Test
method orderHasPaymentMethodIdBolbradesco (line 427) | @Test
method orderHasPaymentMethodIdBoleto (line 465) | @Test
method searchSuccess (line 502) | @Test
method searchWithRequestOptionsSuccess (line 522) | @Test
FILE: src/test/java/com/mercadopago/client/order/OrderClientWith3DSTest.java
class OrderClientWith3DSTest (line 18) | public class OrderClientWith3DSTest extends BaseClientIT {
method testCreateOrderWith3DS_Success (line 22) | @Test
method testTransactionSecurityBuilder (line 90) | @Test
method testOrderOnlineConfigWith3DS (line 118) | @Test
FILE: src/test/java/com/mercadopago/client/order/OrderPointConfigTest.java
class OrderPointConfigTest (line 7) | class OrderPointConfigTest {
method testOrderPointConfigBuilder (line 9) | @Test
method testOrderPointConfigMinimalBuilder (line 23) | @Test
FILE: src/test/java/com/mercadopago/client/payment/PaymentClientIT.java
class PaymentClientIT (line 39) | public class PaymentClientIT extends BaseClientIT {
method createSuccess (line 44) | @Test
method createPaymentWithCustomizedHeadersWithSuccess (line 60) | @Test
method createWithRequestOptionsSuccess (line 90) | @Test
method getSuccess (line 106) | @Test
method getWithRequestOptionsSuccess (line 124) | @Test
method cancelSuccess (line 142) | @Test
method cancelWithRequestOptionsSuccess (line 164) | @Test
method captureSuccess (line 186) | @Test
method captureWithRequestOptionsSuccess (line 204) | @Test
method searchSuccess (line 223) | @Test
method searchWithRequestOptionsSuccess (line 239) | @Test
method refundPartialSuccess (line 256) | @Test
method refundPartialWithRequestOptionsSuccess (line 278) | @Test
method refundTotalSuccess (line 301) | @Test
method refundTotalWithRequestOptionsSuccess (line 322) | @Test
method getRefundSuccess (line 344) | @Test
method getRefundWithRequestOptionsSuccess (line 367) | @Test
method listRefundsSuccess (line 392) | @Test
method listRefundsWithRequestOptionsSuccess (line 416) | @Test
method newPayment (line 442) | private PaymentCreateRequest newPayment(String paymentStatus) throws M...
FILE: src/test/java/com/mercadopago/client/payment/PaymentClientTest.java
class PaymentClientTest (line 48) | public class PaymentClientTest extends BaseClientTest {
method createSuccess (line 83) | @Test
method createWithThreeDSecureSuccess (line 98) | @Test
method createWithRequestOptionsSuccess (line 118) | @Test
method createPixSuccess (line 133) | @Test
method createPixWithRequestOptionsSuccess (line 154) | @Test
method createBoletoWithDiscountFineInterestSuccess (line 175) | @Test
method createPsePaymentSuccess (line 213) | @Test
method getSuccess (line 234) | @Test
method getWithRequestOptionsSuccess (line 247) | @Test
method cancelSuccess (line 260) | @Test
method cancelWithRequestOptionsSuccess (line 280) | @Test
method captureSuccess (line 300) | @Test
method captureWithRequestOptionsSuccess (line 321) | @Test
method searchSuccess (line 341) | @Test
method searchWithRequestOptionsSuccess (line 360) | @Test
method refundPartialSuccess (line 380) | @Test
method refundPartialWithRequestOptionsSuccess (line 398) | @Test
method refundTotalSuccess (line 418) | @Test
method refundTotalWithRequestOptionsSuccess (line 429) | @Test
method getRefundSuccess (line 442) | @Test
method getRefundWithRequestOptionsSuccess (line 453) | @Test
method listRefundsSuccess (line 465) | @Test
method listRefundsWithRequestOptionsSuccess (line 479) | @Test
method assertRefundFields (line 495) | private void assertRefundFields(PaymentRefund refund) {
method createCardPayment (line 510) | private Payment createCardPayment() throws IOException, MPException, M...
method createCardPayment (line 514) | private Payment createCardPayment(MPRequestOptions requestOptions)
method createCardPaymentWith3ds (line 519) | private Payment createCardPaymentWith3ds() throws IOException, MPExcep...
method createPixPayment (line 523) | private Payment createPixPayment() throws IOException, MPException, MP...
method createPixPayment (line 527) | private Payment createPixPayment(MPRequestOptions requestOptions)
method createBoletoPayment (line 532) | private Payment createBoletoPayment() throws IOException, MPException,...
method createPsePayment (line 536) | private Payment createPsePayment() throws IOException, MPException, MP...
method createPayment (line 540) | private Payment createPayment(String paymentMethod, MPRequestOptions r...
method assertPaymentFields (line 574) | private void assertPaymentFields(Payment payment) {
method newCardPayment (line 688) | private PaymentCreateRequest newCardPayment(boolean with3ds) {
method newPixPayment (line 774) | private PaymentCreateRequest newPixPayment() {
method newBoletoPayment (line 786) | private PaymentCreateRequest newBoletoPayment() {
method newPsePayment (line 892) | private PaymentCreateRequest newPsePayment() {
FILE: src/test/java/com/mercadopago/client/payment/PaymentRefundClientIT.java
class PaymentRefundClientIT (line 30) | class PaymentRefundClientIT extends BaseClientIT {
method refundSuccess (line 37) | @Test
method refundWithRequestOptionsSuccess (line 55) | @Test
method refundPartialSuccess (line 74) | @Test
method refundPartialWithRequestOptionsSuccess (line 93) | @Test
method getRefundSuccess (line 113) | @Test
method getRefundWithRequestOptionsSuccess (line 132) | @Test
method listRefundsSuccess (line 153) | @Test
method listRefundsWithRequestOptionsSuccess (line 172) | @Test
method newPayment (line 192) | private PaymentCreateRequest newPayment() throws MPException, MPApiExc...
FILE: src/test/java/com/mercadopago/client/payment/PaymentRefundClientTest.java
class PaymentRefundClientTest (line 30) | class PaymentRefundClientTest extends BaseClientTest {
method refundSuccess (line 45) | @Test
method refundWithRequestOptionsSuccess (line 57) | @Test
method refundPartialSuccess (line 69) | @Test
method refundPartialWithRequestOptionsSuccess (line 87) | @Test
method getRefundSuccess (line 106) | @Test
method getRefundWithRequestOptionsSuccess (line 117) | @Test
method listRefundsSuccess (line 128) | @Test
method listRefundsWithRequestOptionsSuccess (line 142) | @Test
method assertRefundFields (line 157) | private void assertRefundFields(PaymentRefund refund) {
FILE: src/test/java/com/mercadopago/client/paymentmethod/PaymentMethodClientIT.java
class PaymentMethodClientIT (line 17) | class PaymentMethodClientIT extends BaseClientIT {
method listSuccess (line 20) | @Test
method listSuccessWithRequestOptions (line 34) | @Test
FILE: src/test/java/com/mercadopago/client/paymentmethod/PaymentMethodClientTest.java
class PaymentMethodClientTest (line 27) | class PaymentMethodClientTest extends BaseClientTest {
method listSuccess (line 32) | @Test
method listSuccessWithRequestOptions (line 45) | @Test
method assertPaymentMethodFields (line 58) | private void assertPaymentMethodFields(MPResourceList<PaymentMethod> p...
FILE: src/test/java/com/mercadopago/client/point/PointClientIT.java
class PointClientIT (line 28) | class PointClientIT extends BaseClientIT {
method createPaymentIntentSuccess (line 33) | @Test
method createPaymentIntentWithRequestOptionsSuccess (line 50) | @Test
method getPaymentIntentListSuccess (line 68) | @Test
method getPaymentIntentListWithRequestOptionsSuccess (line 84) | @Test
method cancelPaymentIntentSuccess (line 100) | @Test
method cancelPaymentIntentWithRequestOptionsSuccess (line 118) | @Test
method searchPaymentIntentSuccess (line 136) | @Test
method searchPaymentIntentWithRequestOptionsSuccess (line 156) | @Test
method getPaymentIntentStatusSuccess (line 176) | @Test
method getPaymentIntentStatusWithRequestOptionsSuccess (line 196) | @Test
method getDevicesSuccess (line 216) | @Test
method getDevicesWithRequestOptionsSuccess (line 234) | @Test
method changeDeviceOperatingModeSuccess (line 253) | @Test
method changeDeviceOperatingModeWithRequestOptionsSuccess (line 272) | @Test
method assertPaymentIntentFields (line 291) | private void assertPaymentIntentFields(PointPaymentIntent paymentInten...
method buildPaymentIntentRequest (line 305) | private PointPaymentIntentRequest buildPaymentIntentRequest() {
method newPaymentIntentListRequest (line 327) | private PointPaymentIntentListRequest newPaymentIntentListRequest() {
method newSearchDevicesRequest (line 333) | private MPSearchRequest newSearchDevicesRequest() {
FILE: src/test/java/com/mercadopago/client/point/PointClientTest.java
class PointClientTest (line 41) | class PointClientTest extends BaseClientTest {
method createPaymentIntentSuccess (line 62) | @Test
method createPaymentIntentWithRequestOptionsSuccess (line 82) | @Test
method getPaymentIntentListSuccess (line 103) | @Test
method getPaymentIntentListWithRequestOptionsSuccess (line 118) | @Test
method cancelPaymentIntentSuccess (line 134) | @Test
method cancelPaymentIntentWithRequestOptionsSuccess (line 149) | @Test
method searchPaymentIntentSuccess (line 165) | @Test
method searchPaymentIntentWithRequestOptionsSuccess (line 179) | @Test
method getPaymentIntentStatusSuccess (line 195) | @Test
method getPaymentIntentStatusWithRequestOptionsSuccess (line 212) | @Test
method getDevicesSuccess (line 231) | @Test
method getDevicesWithRequestOptionsSuccess (line 245) | @Test
method changeDeviceOperatingModeSuccess (line 259) | @Test
method changeDeviceOperatingModeWithRequestOptionsSuccess (line 282) | @Test
method assertPaymentIntentFields (line 306) | private void assertPaymentIntentFields(PointPaymentIntent paymentInten...
method assertPaymentIntentListFields (line 322) | private void assertPaymentIntentListFields(PointPaymentIntentList paym...
method assertSearchPaymentIntentFields (line 351) | private void assertSearchPaymentIntentFields(PointSearchPaymentIntent ...
method assertSearchDevicesFields (line 368) | private void assertSearchDevicesFields(PointDevices pointDevices) {
method newPaymentIntentRequest (line 378) | private PointPaymentIntentRequest newPaymentIntentRequest() {
method newPaymentIntentListRequest (line 401) | private PointPaymentIntentListRequest newPaymentIntentListRequest() {
method newSearchDevicesRequest (line 407) | private MPSearchRequest newSearchDevicesRequest() {
FILE: src/test/java/com/mercadopago/client/preapproval/PreapprovalClientIT.java
class PreapprovalClientIT (line 21) | class PreapprovalClientIT extends BaseClientIT {
method getSuccess (line 25) | @Test
method getWithRequestOptionsSuccess (line 43) | @Test
method createSuccess (line 62) | @Test
method createWithRequestOptionsSuccess (line 78) | @Test
method updateSuccess (line 96) | @Test
method updateWithRequestOptionsSuccess (line 117) | @Test
method searchSuccess (line 140) | @Test
method searchWithRequestOptionsSuccess (line 157) | @Test
method generatePreapprovalRequest (line 178) | private PreapprovalCreateRequest generatePreapprovalRequest() {
FILE: src/test/java/com/mercadopago/client/preapproval/PreapprovalClientTest.java
class PreapprovalClientTest (line 31) | class PreapprovalClientTest extends BaseClientTest {
method getSuccess (line 51) | @Test
method getWithRequestOptionsSuccess (line 65) | @Test
method createSuccess (line 79) | @Test
method createWithRequestOptionsSuccess (line 99) | @Test
method updateSuccess (line 119) | @Test
method updateWithRequestOptionsSuccess (line 140) | @Test
method searchSuccess (line 161) | @Test
method searchWithRequestOptionsSuccess (line 182) | @Test
method assertPreapprovalFields (line 204) | private void assertPreapprovalFields(Preapproval preapproval, boolean ...
method buildPreapprovalCreateRequest (line 230) | private PreapprovalCreateRequest buildPreapprovalCreateRequest() {
FILE: src/test/java/com/mercadopago/client/preference/PreferenceClientIT.java
class PreferenceClientIT (line 31) | class PreferenceClientIT extends BaseClientIT {
method getSuccess (line 34) | @Test
method getWithRequestOptionsSuccess (line 52) | @Test
method createSuccess (line 70) | @Test
method createWithRequestOptionsSuccess (line 86) | @Test
method updateSuccess (line 111) | @Test
method updateWithRequestOptionsSuccess (line 131) | @Test
method searchSuccess (line 152) | @Test
method searchWithRequestOptionsSuccess (line 168) | @Test
method buildPreferenceRequest (line 185) | private PreferenceRequest buildPreferenceRequest() {
method buildUpdatePreferenceRequest (line 267) | private PreferenceRequest buildUpdatePreferenceRequest() {
FILE: src/test/java/com/mercadopago/client/preference/PreferenceClientTest.java
class PreferenceClientTest (line 38) | class PreferenceClientTest extends BaseClientTest {
method getSuccess (line 55) | @Test
method getWithRequestOptionsSuccess (line 68) | @Test
method createSuccess (line 81) | @Test
method createWithRequestOptionsSuccess (line 99) | @Test
method updateSuccess (line 117) | @Test
method updateWithRequestOptionsSuccess (line 136) | @Test
method searchSuccess (line 156) | @Test
method searchWithRequestOptionsSuccess (line 170) | @Test
method assertPreferenceFields (line 185) | private void assertPreferenceFields(Preference preference) {
method assertPreferenceSearchFields (line 251) | private void assertPreferenceSearchFields(PreferenceSearch preference) {
method newPreference (line 276) | private PreferenceRequest newPreference() {
method updatedPreference (line 361) | private PreferenceRequest updatedPreference() {
FILE: src/test/java/com/mercadopago/client/user/UserClientIT.java
class UserClientIT (line 15) | class UserClientIT extends BaseClientIT {
method getUserSuccess (line 18) | @Test
method getUserWithOptionsSuccess (line 32) | @Test
FILE: src/test/java/com/mercadopago/client/user/UserClientTest.java
class UserClientTest (line 22) | class UserClientTest extends BaseClientTest {
method getUserSuccess (line 24) | @Test
method getUserWithOptionsSuccess (line 38) | @Test
method assertUserFields (line 53) | private void assertUserFields(User user) {
FILE: src/test/java/com/mercadopago/helper/HttpStatusCode.java
class HttpStatusCode (line 4) | public class HttpStatusCode {
FILE: src/test/java/com/mercadopago/helper/MockHelper.java
class MockHelper (line 38) | public class MockHelper {
method generateHttpResponseFromFile (line 62) | public static HttpResponse generateHttpResponseFromFile(String mockFil...
method generateHttpResponse (line 76) | public static HttpResponse generateHttpResponse(int statusCode) {
method generateHttpResponseFromString (line 89) | public static HttpResponse generateHttpResponseFromString(String respo...
method generateJsonElement (line 108) | public static JsonElement generateJsonElement(String mockFile) throws ...
method areHeadersValid (line 116) | public static boolean areHeadersValid(Header[] headers, String method) {
method hasMandatoryHeaders (line 120) | private static boolean hasMandatoryHeaders(Header[] headers, String me...
method haveMandatoryHeadersCorrectValues (line 144) | private static boolean haveMandatoryHeadersCorrectValues(Header[] head...
method generateJsonElementFromUriRequest (line 182) | public static JsonElement generateJsonElementFromUriRequest(HttpUriReq...
method readRequestFile (line 198) | public static String readRequestFile(String mockFile) throws IOExcepti...
method readResponseFile (line 202) | public static String readResponseFile(String mockFile) throws IOExcept...
method readFile (line 214) | public static String readFile(String mockFile, String path) throws IOE...
method parseJson (line 226) | private static JsonElement parseJson(InputStream content) {
method inputStreamToString (line 239) | private static String inputStreamToString(InputStream is) throws MPExc...
FILE: src/test/java/com/mercadopago/mock/HttpClientMock.java
class HttpClientMock (line 17) | @Getter
method HttpClientMock (line 24) | public HttpClientMock() {
method getParams (line 28) | @Override
method getConnectionManager (line 33) | @Override
method execute (line 38) | @Override
method execute (line 43) | @Override
method execute (line 50) | @Override
method execute (line 55) | @Override
method execute (line 61) | @Override
method execute (line 67) | @Override
method execute (line 76) | @Override
method execute (line 83) | @Override
FILE: src/test/java/com/mercadopago/mock/HttpRequestMatcher.java
class HttpRequestMatcher (line 6) | public class HttpRequestMatcher implements ArgumentMatcher<HttpRequestBa...
method HttpRequestMatcher (line 9) | public HttpRequestMatcher(HttpRequestBase httpRequest) {
method matches (line 13) | @Override
FILE: src/test/java/com/mercadopago/mock/MPDefaultHttpClientMock.java
class MPDefaultHttpClientMock (line 7) | public class MPDefaultHttpClientMock extends MPDefaultHttpClient {
method MPDefaultHttpClientMock (line 14) | public MPDefaultHttpClientMock(HttpClient httpClientMock) {
FILE: src/test/java/com/mercadopago/net/MPDefaultHttpClientTest.java
class MPDefaultHttpClientTest (line 23) | class MPDefaultHttpClientTest extends BaseClientTest {
method createDefaultHttpClientSuccess (line 27) | @Test
method sendSuccess (line 33) | @Test
method sendWithCustomOptionsSuccess (line 54) | @Test
method sendWithIOException (line 82) | @Test
FILE: src/test/java/com/mercadopago/net/UrlFormatterTest.java
class UrlFormatterTest (line 13) | class UrlFormatterTest {
method formatSuccess (line 15) | private static Stream<Arguments> formatSuccess() throws MPException {
method formatSuccess (line 51) | @ParameterizedTest
FILE: src/test/java/com/mercadopago/serialization/SerializerTest.java
class SerializerTest (line 30) | public class SerializerTest {
method init (line 35) | @BeforeEach
method isJsonValidWithValidJson (line 40) | @Test
method isJsonValidWithInvalidJson (line 45) | @Test
method deserializeFromJsonSuccess (line 50) | @Test
method deserializeFromJsonErrorThrowsMPJsonParseException (line 58) | @Test
method deserializeResultsResourcesPageFromJsonSuccess (line 65) | @Test
method deserializeResultsResourcesPageFromJsonErrorThrowsJsonParseException (line 76) | @Test
method deserializeElementsResourcesPageFromJsonSuccess (line 84) | @Test
method deserializeElementsResourcesPageFromJsonErrorThrowsJsonParseException (line 95) | @Test
method deserializeListFromJsonSuccess (line 103) | @Test
method deserializeListFromJsonErrorThrowsMPJsonParseException (line 113) | @Test
method serializeToJsonSuccess (line 120) | @Test
method deserializeListFromJsonIso8601Timestamps (line 129) | @Test
class Iso8601Timestamps (line 143) | private static class Iso8601Timestamps extends MPResource {
FILE: src/test/java/com/mercadopago/webhook/WebhookSignatureValidatorTest.java
class WebhookSignatureValidatorTest (line 18) | class WebhookSignatureValidatorTest {
method computeHash (line 26) | private static String computeHash(String dataId, String requestId, Str...
method buildHeader (line 50) | private static String buildHeader(String hash) {
method buildHeader (line 54) | private static String buildHeader(String hash, String ts) {
method validHash (line 58) | private static String validHash() {
method happyPathLowercase (line 63) | @Test
method uppercaseDataIdIsLowercased (line 70) | @Test
method malformedHeaderThrowsMalformed (line 77) | @Test
method missingHeaderThrowsMissingHeader (line 86) | @Test
method missingTsThrowsMissingTimestamp (line 94) | @Test
method missingV1ThrowsMissingHash (line 102) | @Test
method tamperedHashThrowsSignatureMismatch (line 111) | @Test
method timestampOutsideToleranceThrows (line 121) | @Test
method timestampWithinTolerancePasses (line 131) | @Test
method dataIdAbsentExcludesIdPair (line 141) | @Test
method requestIdAbsentExcludesRequestIdPair (line 149) | @Test
method bothAbsentYieldsTsOnly (line 157) | @Test
method nonPaymentTopicUsesSameAlgorithm (line 165) | @Test
method supportsV1WhenBothPresent (line 173) | @Test
method onlyV2InHeaderOnlyV1SupportedThrowsMissingHash (line 181) | @Test
method nullSecretThrowsNpe (line 190) | @Test
Condensed preview — 485 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,265K chars).
[
{
"path": ".code_quality/checkstyle_rules.xml",
"chars": 18502,
"preview": "<?xml version=\"1.0\"?>\n<!DOCTYPE module PUBLIC\n \"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN\"\n \"htt"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.yml",
"chars": 4918,
"preview": "name: 🐛 Bug Report\ndescription: Report a bug or unexpected behavior in the SDK\ntitle: \"[BUG]: \"\nlabels: [\"bug\", \"needs-t"
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 390,
"preview": "blank_issues_enabled: false\ncontact_links:\n - name: Support Center Mercado Pago - ES\n url: https://www.mercadopago.c"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.yml",
"chars": 2712,
"preview": "name: ✨ Feature Request\ndescription: Propose a new feature for the Mercado Pago SDK\ntitle: \"[FEATURE]: \"\nlabels: [\"enhan"
},
{
"path": ".github/ISSUE_TEMPLATE/question.yml",
"chars": 2929,
"preview": "name: 💬 Question\ndescription: Ask a question about the Mercado Pago SDK\ntitle: \"[QUESTION]: \"\nlabels: [\"question\", \"need"
},
{
"path": ".github/workflows/main.yml",
"chars": 912,
"preview": "# This workflow will build a Java project with Maven\n# For more information see: https://help.github.com/actions/languag"
},
{
"path": ".github/workflows/maven-publish-release.yml",
"chars": 1247,
"preview": "# This workflow will build a package using Maven and then publish it to GitHub packages when a release is created\n# For "
},
{
"path": ".github/workflows/maven-publish-snapshot.yml",
"chars": 1338,
"preview": "# This workflow will build a package using Maven and then publish it to GitHub packages when a release is created\n# For "
},
{
"path": ".gitignore",
"chars": 378,
"preview": "settings.xml\n.idea/\n.vscode/\nout/\n*.iml\ntarget/\nmaven-central-deploy.log\n*.jks\n*.cer\n*.pem\n.DS_Store\n.classpath\n.setting"
},
{
"path": ".pre-commit-config.yaml",
"chars": 508,
"preview": "repos:\n # Websec hook is MANDATORY, DO NOT comment it.\n - repo: https://github.com/melisource/fury_websec-git-hooks\n "
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 3142,
"preview": "# Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and"
},
{
"path": "CODING_GUIDELINES.md",
"chars": 5285,
"preview": "# Coding Guidelines\n\nThe Mercado Pago Java SDK is a collaborative effort from the start. The SDK team thinks that contri"
},
{
"path": "CONTRIBUTING.md",
"chars": 4816,
"preview": "# Contributing to the Mercado Pago Java SDK\n\nThank you for your interest in contributing to the Mercado Pago Java SDK!\n\n"
},
{
"path": "LICENSE",
"chars": 1079,
"preview": "MIT License\n\nCopyright (c) 2021 MercadoPago Developers\n\nPermission is hereby granted, free of charge, to any person obta"
},
{
"path": "PULL_REQUEST_TEMPLATE.md",
"chars": 323,
"preview": "## Cambios realizados para el feature:\n * item 1\n\n## Cambios generales\n * item 1\n \n## Issues cerrados\n * Closes #XX\n \n\n#"
},
{
"path": "README.md",
"chars": 5988,
"preview": "# Mercado Pago SDK for Java\n\n[](htt"
},
{
"path": "SUPPORT.md",
"chars": 4452,
"preview": "# 🆘 Support and Help\n\n> **Quick guide:** Have a bug? → [Bug Report](../../issues/new/choose) | Questions? → [Question](."
},
{
"path": "build-gradle.sh",
"chars": 1678,
"preview": "#!/bin/sh\nVERSION=\"7.6.1\"\nBREW_VERSION=${VERSION:0:1}\nINSTALL_DIR=gradle\nCMD=$(which gradle)\n\ncheck_gradle_installed() {"
},
{
"path": "maven-central-deploy.sh",
"chars": 419,
"preview": "#!/usr/bin/env bash\n!/bin/bash\n# Deploy maven artefact in current directory into Maven central repository\n# using maven-"
},
{
"path": "mp_ref_report.md",
"chars": 7292,
"preview": "# MP API Reference Audit Report — Java SDK\n_Generado: 2026-04-24_\n\n## Resumen\n| Categoria | Cantidad |\n|-----------|----"
},
{
"path": "pom.xml",
"chars": 10462,
"preview": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n xsi:sc"
},
{
"path": "src/main/java/com/mercadopago/MercadoPagoConfig.java",
"chars": 7882,
"preview": "package com.mercadopago;\n\nimport com.mercadopago.net.MPDefaultHttpClient;\nimport com.mercadopago.net.MPHttpClient;\nimpor"
},
{
"path": "src/main/java/com/mercadopago/client/MercadoPagoClient.java",
"chars": 18481,
"preview": "package com.mercadopago.client;\n\nimport static java.util.Objects.nonNull;\nimport static org.apache.commons.collections4."
},
{
"path": "src/main/java/com/mercadopago/client/cardtoken/CardTokenClient.java",
"chars": 5028,
"preview": "package com.mercadopago.client.cardtoken;\n\nimport static com.mercadopago.MercadoPagoConfig.getStreamHandler;\n\nimport com"
},
{
"path": "src/main/java/com/mercadopago/client/cardtoken/CardTokenRequest.java",
"chars": 829,
"preview": "package com.mercadopago.client.cardtoken;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request DTO used to crea"
},
{
"path": "src/main/java/com/mercadopago/client/common/AddressRequest.java",
"chars": 1163,
"preview": "package com.mercadopago.client.common;\n\nimport lombok.Getter;\nimport lombok.experimental.SuperBuilder;\n\n/**\n * Request D"
},
{
"path": "src/main/java/com/mercadopago/client/common/IdentificationRequest.java",
"chars": 651,
"preview": "package com.mercadopago.client.common;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request DTO representing a "
},
{
"path": "src/main/java/com/mercadopago/client/common/InvoicePeriod.java",
"chars": 684,
"preview": "package com.mercadopago.client.common;\n\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request DTO representing t"
},
{
"path": "src/main/java/com/mercadopago/client/common/PhoneRequest.java",
"chars": 613,
"preview": "package com.mercadopago.client.common;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request DTO representing a "
},
{
"path": "src/main/java/com/mercadopago/client/common/SubMerchant.java",
"chars": 1968,
"preview": "package com.mercadopago.client.common;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request DTO representing su"
},
{
"path": "src/main/java/com/mercadopago/client/common/SubscriptionSequence.java",
"chars": 715,
"preview": "package com.mercadopago.client.common;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request DTO representing th"
},
{
"path": "src/main/java/com/mercadopago/client/customer/CustomerAddressRequest.java",
"chars": 766,
"preview": "package com.mercadopago.client.customer;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request DTO representing "
},
{
"path": "src/main/java/com/mercadopago/client/customer/CustomerCardClient.java",
"chars": 9182,
"preview": "package com.mercadopago.client.customer;\n\nimport static com.mercadopago.MercadoPagoConfig.getStreamHandler;\n\nimport com."
},
{
"path": "src/main/java/com/mercadopago/client/customer/CustomerCardCreateRequest.java",
"chars": 930,
"preview": "package com.mercadopago.client.customer;\n\nimport com.mercadopago.resources.customer.CustomerCardIssuer;\nimport lombok.Bu"
},
{
"path": "src/main/java/com/mercadopago/client/customer/CustomerClient.java",
"chars": 19470,
"preview": "package com.mercadopago.client.customer;\n\nimport static com.mercadopago.MercadoPagoConfig.getStreamHandler;\nimport stati"
},
{
"path": "src/main/java/com/mercadopago/client/customer/CustomerRequest.java",
"chars": 1751,
"preview": "package com.mercadopago.client.customer;\n\nimport com.mercadopago.client.common.IdentificationRequest;\nimport com.mercado"
},
{
"path": "src/main/java/com/mercadopago/client/identificationtype/IdentificationTypeClient.java",
"chars": 4066,
"preview": "package com.mercadopago.client.identificationtype;\n\nimport static com.mercadopago.MercadoPagoConfig.getStreamHandler;\nim"
},
{
"path": "src/main/java/com/mercadopago/client/merchantorder/MerchantOrderClient.java",
"chars": 10890,
"preview": "package com.mercadopago.client.merchantorder;\n\nimport static com.mercadopago.MercadoPagoConfig.getStreamHandler;\nimport "
},
{
"path": "src/main/java/com/mercadopago/client/merchantorder/MerchantOrderCreateRequest.java",
"chars": 1656,
"preview": "package com.mercadopago.client.merchantorder;\n\nimport java.util.List;\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n"
},
{
"path": "src/main/java/com/mercadopago/client/merchantorder/MerchantOrderItemRequest.java",
"chars": 1198,
"preview": "package com.mercadopago.client.merchantorder;\n\nimport java.math.BigDecimal;\nimport lombok.Builder;\nimport lombok.Getter;"
},
{
"path": "src/main/java/com/mercadopago/client/merchantorder/MerchantOrderPayerRequest.java",
"chars": 592,
"preview": "package com.mercadopago.client.merchantorder;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request DTO represen"
},
{
"path": "src/main/java/com/mercadopago/client/merchantorder/MerchantOrderReceiverAddressCityRequest.java",
"chars": 599,
"preview": "package com.mercadopago.client.merchantorder;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request DTO represen"
},
{
"path": "src/main/java/com/mercadopago/client/merchantorder/MerchantOrderReceiverAddressCountryRequest.java",
"chars": 630,
"preview": "package com.mercadopago.client.merchantorder;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request DTO represen"
},
{
"path": "src/main/java/com/mercadopago/client/merchantorder/MerchantOrderReceiverAddressRequest.java",
"chars": 1975,
"preview": "package com.mercadopago.client.merchantorder;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request DTO represen"
},
{
"path": "src/main/java/com/mercadopago/client/merchantorder/MerchantOrderReceiverAddressStateRequest.java",
"chars": 639,
"preview": "package com.mercadopago.client.merchantorder;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request DTO represen"
},
{
"path": "src/main/java/com/mercadopago/client/merchantorder/MerchantOrderShipmentRequest.java",
"chars": 2224,
"preview": "package com.mercadopago.client.merchantorder;\n\nimport java.time.OffsetDateTime;\nimport java.util.List;\nimport java.util."
},
{
"path": "src/main/java/com/mercadopago/client/merchantorder/MerchantOrderShippingEstimatedDeliveryRequest.java",
"chars": 794,
"preview": "package com.mercadopago.client.merchantorder;\n\nimport java.time.OffsetDateTime;\nimport lombok.Builder;\nimport lombok.Get"
},
{
"path": "src/main/java/com/mercadopago/client/merchantorder/MerchantOrderShippingOptionRequest.java",
"chars": 1372,
"preview": "package com.mercadopago.client.merchantorder;\n\nimport java.math.BigDecimal;\nimport lombok.Builder;\nimport lombok.Getter;"
},
{
"path": "src/main/java/com/mercadopago/client/merchantorder/MerchantOrderShippingSpeedRequest.java",
"chars": 711,
"preview": "package com.mercadopago.client.merchantorder;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request DTO represen"
},
{
"path": "src/main/java/com/mercadopago/client/merchantorder/MerchantOrderUpdateRequest.java",
"chars": 1551,
"preview": "package com.mercadopago.client.merchantorder;\n\nimport java.util.List;\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n"
},
{
"path": "src/main/java/com/mercadopago/client/oauth/CreateOauthCredentialRequest.java",
"chars": 1307,
"preview": "package com.mercadopago.client.oauth;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request DTO used to exchange"
},
{
"path": "src/main/java/com/mercadopago/client/oauth/OauthClient.java",
"chars": 10976,
"preview": "package com.mercadopago.client.oauth;\n\nimport static com.mercadopago.MercadoPagoConfig.getStreamHandler;\n\nimport com.mer"
},
{
"path": "src/main/java/com/mercadopago/client/oauth/RefreshOauthCredentialRequest.java",
"chars": 1106,
"preview": "package com.mercadopago.client.oauth;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request DTO used to refresh "
},
{
"path": "src/main/java/com/mercadopago/client/order/AdditionalInfoRequest.java",
"chars": 852,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object containing su"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderAutomaticPaymentsRequest.java",
"chars": 777,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n// API version: 1ff4822a-2dfd-4393-"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderClient.java",
"chars": 23286,
"preview": "package com.mercadopago.client.order;\n\nimport static com.mercadopago.MercadoPagoConfig.getStreamHandler;\nimport static c"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderConfigRequest.java",
"chars": 772,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n// API version: 1ff4822a-2dfd-4393-8"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderCreateRequest.java",
"chars": 2558,
"preview": "package com.mercadopago.client.order;\n\nimport com.mercadopago.net.MPResource;\nimport lombok.Builder;\nimport lombok.Gette"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderDifferentialPricing.java",
"chars": 503,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object for different"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderInvoicePeriodRequest.java",
"chars": 577,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n// API version: 1ff4822a-2dfd-4393-"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderItemRequest.java",
"chars": 1180,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Getter;\n\n// API version: acd67b14-97c4-4a4a-840d-0a018c09654f\n\n/**\n"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderOnlineConfig.java",
"chars": 1216,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n// API version: 1ff4822a-2dfd-4393-"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderPayerAddressRequest.java",
"chars": 749,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n// API version: acd67b14-97c4-4a4a-"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderPayerRequest.java",
"chars": 1142,
"preview": "package com.mercadopago.client.order;\n\nimport com.mercadopago.client.common.IdentificationRequest;\nimport com.mercadopag"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderPaymentMethodConfig.java",
"chars": 1490,
"preview": "package com.mercadopago.client.order;\n\nimport com.mercadopago.resources.order.OrderInstallments;\nimport lombok.Builder;\n"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderPaymentMethodRequest.java",
"chars": 1120,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n// API version: 1ff4822a-2dfd-4393-"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderPaymentRequest.java",
"chars": 1126,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n// API version: 1ff4822a-2dfd-4393-"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderPointConfig.java",
"chars": 731,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n// API version: 1ff4822a-2dfd-4393-"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderReceiverAddressRequest.java",
"chars": 773,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Getter;\n\n/**\n * Request object representing the receiver's address "
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderRefundPaymentRequest.java",
"chars": 498,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object representing "
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderRefundRequest.java",
"chars": 491,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\nimport java.util.List;\n\n/**\n * Reque"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderRouteRequest.java",
"chars": 752,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Getter;\n\n/**\n * Request object representing a travel route leg with"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderShipmentRequest.java",
"chars": 782,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Getter;\n\n/**\n * Request object containing shipment details for an o"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderStoredCredentialRequest.java",
"chars": 931,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n// API version: 1ff4822a-2dfd-4393-"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderSubscriptionDataRequest.java",
"chars": 907,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n// API version: 1ff4822a-2dfd-4393-"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderSubscriptionSequenceRequest.java",
"chars": 617,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n// API version: 1ff4822a-2dfd-4393-"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderTransactionRequest.java",
"chars": 508,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\nimport java.util.List;\n\n// API vers"
},
{
"path": "src/main/java/com/mercadopago/client/order/OrderTransactionSecurity.java",
"chars": 661,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Configuration for 3D Secure "
},
{
"path": "src/main/java/com/mercadopago/client/order/PassengerIdentification.java",
"chars": 498,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Identification document for "
},
{
"path": "src/main/java/com/mercadopago/client/order/PayerInfo.java",
"chars": 1077,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Additional payer information"
},
{
"path": "src/main/java/com/mercadopago/client/order/PlatformInfo.java",
"chars": 711,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Platform-level information w"
},
{
"path": "src/main/java/com/mercadopago/client/order/PlatformShipment.java",
"chars": 860,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Shipment information managed"
},
{
"path": "src/main/java/com/mercadopago/client/order/SellerAddress.java",
"chars": 829,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Physical address of the sell"
},
{
"path": "src/main/java/com/mercadopago/client/order/SellerIdentification.java",
"chars": 544,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Identification document of t"
},
{
"path": "src/main/java/com/mercadopago/client/order/SellerInfo.java",
"chars": 1435,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Seller information within th"
},
{
"path": "src/main/java/com/mercadopago/client/order/SellerPhone.java",
"chars": 448,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Phone contact information fo"
},
{
"path": "src/main/java/com/mercadopago/client/order/ShipmentInfo.java",
"chars": 579,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Shipment information within "
},
{
"path": "src/main/java/com/mercadopago/client/order/TrackingInfo.java",
"chars": 534,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Tracking information for a p"
},
{
"path": "src/main/java/com/mercadopago/client/order/TravelInfo.java",
"chars": 610,
"preview": "package com.mercadopago.client.order;\n\nimport java.util.List;\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Trave"
},
{
"path": "src/main/java/com/mercadopago/client/order/TravelPassengerRequest.java",
"chars": 581,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object representing "
},
{
"path": "src/main/java/com/mercadopago/client/order/TravelRouteRequest.java",
"chars": 778,
"preview": "package com.mercadopago.client.order;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object representing "
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentAdditionalInfoBarcodeRequest.java",
"chars": 697,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object containing "
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentAdditionalInfoPayerRequest.java",
"chars": 1668,
"preview": "package com.mercadopago.client.payment;\n\nimport com.mercadopago.client.common.AddressRequest;\nimport com.mercadopago.cli"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentAdditionalInfoRequest.java",
"chars": 979,
"preview": "package com.mercadopago.client.payment;\n\nimport java.util.List;\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Req"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentAmountsRequest.java",
"chars": 637,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object defining th"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentAuthenticationRequest.java",
"chars": 1212,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object containing "
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentCancelRequest.java",
"chars": 539,
"preview": "package com.mercadopago.client.payment;\n\nimport static com.mercadopago.resources.payment.PaymentStatus.CANCELLED;\n\nimpor"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentCaptureRequest.java",
"chars": 636,
"preview": "package com.mercadopago.client.payment;\n\nimport java.math.BigDecimal;\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentCategoryDescriptorRequest.java",
"chars": 629,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object providing c"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentClient.java",
"chars": 18971,
"preview": "package com.mercadopago.client.payment;\n\nimport static com.mercadopago.MercadoPagoConfig.getStreamHandler;\nimport static"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentCounterCurrencyRequest.java",
"chars": 456,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object specifying "
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentCreateRequest.java",
"chars": 4853,
"preview": "package com.mercadopago.client.payment;\n\nimport java.math.BigDecimal;\nimport java.time.OffsetDateTime;\nimport java.util."
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentDataRequest.java",
"chars": 599,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object containing "
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentDiscountRequest.java",
"chars": 698,
"preview": "package com.mercadopago.client.payment;\n\nimport java.math.BigDecimal;\nimport java.time.LocalDate;\nimport lombok.Builder;"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentFeeRequest.java",
"chars": 518,
"preview": "package com.mercadopago.client.payment;\n\nimport java.math.BigDecimal;\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentForwardDataRequest.java",
"chars": 725,
"preview": "package com.mercadopago.client.payment;\n\nimport com.mercadopago.client.common.SubMerchant;\nimport lombok.Builder;\nimport"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentInvoicePeriodRequest.java",
"chars": 477,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object defining th"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentItemRequest.java",
"chars": 1568,
"preview": "package com.mercadopago.client.payment;\n\nimport java.math.BigDecimal;\nimport java.time.OffsetDateTime;\nimport lombok.Bui"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentMerchantServicesRequest.java",
"chars": 590,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object configuring"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentMethodRequest.java",
"chars": 602,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object specifying "
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentNetworkTransactionDataRequest.java",
"chars": 508,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object containing "
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentOrderRequest.java",
"chars": 462,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object identifying"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentPassengerRequest.java",
"chars": 712,
"preview": "package com.mercadopago.client.payment;\n\nimport com.mercadopago.client.common.IdentificationRequest;\nimport lombok.Build"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentPayerAddressRequest.java",
"chars": 548,
"preview": "package com.mercadopago.client.payment;\n\nimport com.mercadopago.client.common.AddressRequest;\nimport lombok.Getter;\nimpo"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentPayerPhoneRequest.java",
"chars": 456,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object representin"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentPayerRequest.java",
"chars": 1481,
"preview": "package com.mercadopago.client.payment;\n\nimport com.mercadopago.client.common.IdentificationRequest;\nimport lombok.Build"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentPaymentReferenceRequest.java",
"chars": 415,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object containing "
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentPointOfInteractionRequest.java",
"chars": 825,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object describing "
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentReceiverAddressRequest.java",
"chars": 857,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object representin"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentRefundClient.java",
"chars": 10428,
"preview": "package com.mercadopago.client.payment;\n\nimport static com.mercadopago.MercadoPagoConfig.getStreamHandler;\nimport static"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentRefundCreateRequest.java",
"chars": 515,
"preview": "package com.mercadopago.client.payment;\n\nimport java.math.BigDecimal;\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentRouteRequest.java",
"chars": 890,
"preview": "package com.mercadopago.client.payment;\n\nimport java.time.OffsetDateTime;\nimport lombok.Builder;\nimport lombok.Getter;\n\n"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentRulesRequest.java",
"chars": 760,
"preview": "package com.mercadopago.client.payment;\n\nimport java.util.List;\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Req"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentShipmentsRequest.java",
"chars": 716,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object containing "
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentSubscriptionSequenceRequest.java",
"chars": 531,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object representin"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentTaxRequest.java",
"chars": 715,
"preview": "package com.mercadopago.client.payment;\n\nimport java.math.BigDecimal;\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n"
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentTransactionDataRequest.java",
"chars": 1088,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object containing "
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentTransactionDetailsRequest.java",
"chars": 486,
"preview": "package com.mercadopago.client.payment;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object containing "
},
{
"path": "src/main/java/com/mercadopago/client/payment/PaymentUserAmountRequest.java",
"chars": 581,
"preview": "package com.mercadopago.client.payment;\n\nimport java.math.BigDecimal;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**"
},
{
"path": "src/main/java/com/mercadopago/client/paymentmethod/PaymentMethodClient.java",
"chars": 3903,
"preview": "package com.mercadopago.client.paymentmethod;\n\nimport static com.mercadopago.MercadoPagoConfig.getStreamHandler;\nimport "
},
{
"path": "src/main/java/com/mercadopago/client/point/OperatingMode.java",
"chars": 393,
"preview": "package com.mercadopago.client.point;\n\n/**\n * Enum representing the operating modes available for a MercadoPago Point de"
},
{
"path": "src/main/java/com/mercadopago/client/point/PointClient.java",
"chars": 19924,
"preview": "package com.mercadopago.client.point;\n\nimport static com.mercadopago.MercadoPagoConfig.getStreamHandler;\nimport static c"
},
{
"path": "src/main/java/com/mercadopago/client/point/PointDeviceOperatingModeRequest.java",
"chars": 451,
"preview": "package com.mercadopago.client.point;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object to change the"
},
{
"path": "src/main/java/com/mercadopago/client/point/PointPaymentIntentAdditionalInfoRequest.java",
"chars": 694,
"preview": "package com.mercadopago.client.point;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Additional information for a"
},
{
"path": "src/main/java/com/mercadopago/client/point/PointPaymentIntentListRequest.java",
"chars": 837,
"preview": "package com.mercadopago.client.point;\n\nimport java.time.LocalDate;\nimport java.util.HashMap;\nimport java.util.Map;\nimpor"
},
{
"path": "src/main/java/com/mercadopago/client/point/PointPaymentIntentPaymentRequest.java",
"chars": 864,
"preview": "package com.mercadopago.client.point;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Payment configuration for a "
},
{
"path": "src/main/java/com/mercadopago/client/point/PointPaymentIntentRequest.java",
"chars": 923,
"preview": "package com.mercadopago.client.point;\n\nimport java.math.BigDecimal;\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n *"
},
{
"path": "src/main/java/com/mercadopago/client/preapproval/PreApprovalAutoRecurringCreateRequest.java",
"chars": 1035,
"preview": "package com.mercadopago.client.preapproval;\n\nimport java.math.BigDecimal;\nimport java.time.OffsetDateTime;\nimport lombok"
},
{
"path": "src/main/java/com/mercadopago/client/preapproval/PreApprovalAutoRecurringUpdateRequest.java",
"chars": 777,
"preview": "package com.mercadopago.client.preapproval;\n\nimport java.math.BigDecimal;\nimport java.time.OffsetDateTime;\nimport lombok"
},
{
"path": "src/main/java/com/mercadopago/client/preapproval/PreapprovalClient.java",
"chars": 9401,
"preview": "package com.mercadopago.client.preapproval;\n\nimport static com.mercadopago.MercadoPagoConfig.getStreamHandler;\nimport st"
},
{
"path": "src/main/java/com/mercadopago/client/preapproval/PreapprovalCreateRequest.java",
"chars": 1144,
"preview": "package com.mercadopago.client.preapproval;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object to crea"
},
{
"path": "src/main/java/com/mercadopago/client/preapproval/PreapprovalUpdateRequest.java",
"chars": 1011,
"preview": "package com.mercadopago.client.preapproval;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Request object to upda"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferenceAmountsRequest.java",
"chars": 688,
"preview": "package com.mercadopago.client.preference;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Amount breakdown for a "
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferenceBackUrlsRequest.java",
"chars": 624,
"preview": "package com.mercadopago.client.preference;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Callback URLs that the "
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferenceCategoryDescriptorRequest.java",
"chars": 755,
"preview": "package com.mercadopago.client.preference;\n\nimport java.time.OffsetDateTime;\nimport lombok.Builder;\nimport lombok.Getter"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferenceClient.java",
"chars": 10871,
"preview": "package com.mercadopago.client.preference;\n\nimport static com.mercadopago.MercadoPagoConfig.getStreamHandler;\nimport sta"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferenceCounterCurrencyRequest.java",
"chars": 426,
"preview": "package com.mercadopago.client.preference;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Counter-currency config"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferenceDifferentialPricingRequest.java",
"chars": 439,
"preview": "package com.mercadopago.client.preference;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Differential pricing co"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferenceFreeMethodRequest.java",
"chars": 434,
"preview": "package com.mercadopago.client.preference;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Shipping method offered"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferenceItemRequest.java",
"chars": 1404,
"preview": "package com.mercadopago.client.preference;\n\nimport java.math.BigDecimal;\nimport lombok.Builder;\nimport lombok.Getter;\n\n/"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferencePassengerRequest.java",
"chars": 663,
"preview": "package com.mercadopago.client.preference;\n\nimport com.mercadopago.client.common.IdentificationRequest;\nimport lombok.Bu"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferencePayerRequest.java",
"chars": 1683,
"preview": "package com.mercadopago.client.preference;\n\nimport com.mercadopago.client.common.AddressRequest;\nimport com.mercadopago."
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferencePaymentMethodRequest.java",
"chars": 436,
"preview": "package com.mercadopago.client.preference;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Identifies a specific p"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferencePaymentMethodsRequest.java",
"chars": 1134,
"preview": "package com.mercadopago.client.preference;\n\nimport java.util.List;\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * "
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferencePaymentTypeRequest.java",
"chars": 446,
"preview": "package com.mercadopago.client.preference;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Identifies a specific p"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferenceReceiverAddressRequest.java",
"chars": 943,
"preview": "package com.mercadopago.client.preference;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Receiver's shipping add"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferenceRequest.java",
"chars": 3581,
"preview": "package com.mercadopago.client.preference;\n\nimport java.math.BigDecimal;\nimport java.time.OffsetDateTime;\nimport java.ut"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferenceRouteRequest.java",
"chars": 862,
"preview": "package com.mercadopago.client.preference;\n\nimport java.time.OffsetDateTime;\nimport lombok.Builder;\nimport lombok.Getter"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferenceShipmentsRequest.java",
"chars": 1497,
"preview": "package com.mercadopago.client.preference;\n\nimport java.math.BigDecimal;\nimport java.util.List;\nimport lombok.Builder;\ni"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferenceTaxRequest.java",
"chars": 478,
"preview": "package com.mercadopago.client.preference;\n\nimport java.math.BigDecimal;\nimport lombok.Builder;\nimport lombok.Getter;\n\n/"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferenceTrackRequest.java",
"chars": 607,
"preview": "package com.mercadopago.client.preference;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Advertising or analytic"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferenceTrackValuesRequest.java",
"chars": 667,
"preview": "package com.mercadopago.client.preference;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n/**\n * Tracking parameter valu"
},
{
"path": "src/main/java/com/mercadopago/client/preference/PreferenceUserAmountRequest.java",
"chars": 575,
"preview": "package com.mercadopago.client.preference;\n\nimport java.math.BigDecimal;\n\nimport lombok.Builder;\nimport lombok.Getter;\n\n"
},
{
"path": "src/main/java/com/mercadopago/client/user/UserClient.java",
"chars": 3218,
"preview": "package com.mercadopago.client.user;\n\nimport static com.mercadopago.MercadoPagoConfig.getStreamHandler;\n\nimport com.merc"
},
{
"path": "src/main/java/com/mercadopago/core/MPRequestOptions.java",
"chars": 2007,
"preview": "package com.mercadopago.core;\n\nimport java.util.Map;\nimport lombok.Builder;\nimport lombok.Data;\n\n/**\n * Per-request conf"
},
{
"path": "src/main/java/com/mercadopago/example/apis/order/CancelOrder.java",
"chars": 1417,
"preview": "package com.mercadopago.example.apis.order;\n\nimport com.mercadopago.MercadoPagoConfig;\nimport com.mercadopago.client.ord"
},
{
"path": "src/main/java/com/mercadopago/example/apis/order/CaptureOrder.java",
"chars": 3143,
"preview": "package com.mercadopago.example.apis.order;\n\nimport com.mercadopago.MercadoPagoConfig;\nimport com.mercadopago.client.ord"
},
{
"path": "src/main/java/com/mercadopago/example/apis/order/CreateOrder.java",
"chars": 3418,
"preview": "package com.mercadopago.example.apis.order;\n\nimport com.mercadopago.MercadoPagoConfig;\nimport com.mercadopago.client.ord"
},
{
"path": "src/main/java/com/mercadopago/example/apis/order/CreateOrderPSE.java",
"chars": 5161,
"preview": "package com.mercadopago.example.apis.order;\n\nimport com.mercadopago.MercadoPagoConfig;\nimport com.mercadopago.client.ord"
},
{
"path": "src/main/java/com/mercadopago/example/apis/order/CreateOrderWith3DS.java",
"chars": 6452,
"preview": "package com.mercadopago.example.apis.order;\n\nimport com.mercadopago.MercadoPagoConfig;\nimport com.mercadopago.client.ord"
},
{
"path": "src/main/java/com/mercadopago/example/apis/order/CreateOrderWithIndustryFields.java",
"chars": 7570,
"preview": "package com.mercadopago.example.apis.order;\n\nimport com.mercadopago.MercadoPagoConfig;\nimport com.mercadopago.client.ord"
},
{
"path": "src/main/java/com/mercadopago/example/apis/order/CreateOrderWithPointConfig.java",
"chars": 3831,
"preview": "package com.mercadopago.example.apis.order;\n\nimport com.mercadopago.MercadoPagoConfig;\nimport com.mercadopago.client.ord"
},
{
"path": "src/main/java/com/mercadopago/example/apis/order/CreateTransaction.java",
"chars": 2433,
"preview": "package com.mercadopago.example.apis.order;\n\nimport com.mercadopago.MercadoPagoConfig;\nimport com.mercadopago.client.ord"
},
{
"path": "src/main/java/com/mercadopago/example/apis/order/DeleteTransaction.java",
"chars": 1322,
"preview": "package com.mercadopago.example.apis.order;\n\nimport com.mercadopago.MercadoPagoConfig;\nimport com.mercadopago.client.ord"
},
{
"path": "src/main/java/com/mercadopago/example/apis/order/GetOrderById.java",
"chars": 930,
"preview": "package com.mercadopago.example.apis.order;\n\nimport com.mercadopago.MercadoPagoConfig;\nimport com.mercadopago.client.ord"
},
{
"path": "src/main/java/com/mercadopago/example/apis/order/ProcessOrderById.java",
"chars": 1070,
"preview": "package com.mercadopago.example.apis.order;\n\nimport com.mercadopago.MercadoPagoConfig;\nimport com.mercadopago.client.ord"
},
{
"path": "src/main/java/com/mercadopago/example/apis/order/RefundPartial.java",
"chars": 1960,
"preview": "package com.mercadopago.example.apis.order;\n\nimport com.mercadopago.MercadoPagoConfig;\nimport com.mercadopago.client.ord"
},
{
"path": "src/main/java/com/mercadopago/example/apis/order/RefundTotal.java",
"chars": 1368,
"preview": "package com.mercadopago.example.apis.order;\n\nimport com.mercadopago.MercadoPagoConfig;\nimport com.mercadopago.client.ord"
},
{
"path": "src/main/java/com/mercadopago/example/apis/order/UpdateTransaction.java",
"chars": 1985,
"preview": "package com.mercadopago.example.apis.order;\n\nimport com.mercadopago.MercadoPagoConfig;\nimport com.mercadopago.client.ord"
},
{
"path": "src/main/java/com/mercadopago/example/apis/payment/Main.java",
"chars": 6313,
"preview": "package com.mercadopago.example.apis.payment;\n\nimport com.mercadopago.MercadoPagoConfig;\nimport com.mercadopago.client.c"
},
{
"path": "src/main/java/com/mercadopago/exceptions/MPApiException.java",
"chars": 2093,
"preview": "package com.mercadopago.exceptions;\n\nimport com.mercadopago.net.MPResponse;\nimport lombok.Getter;\n\n/**\n * Exception thro"
},
{
"path": "src/main/java/com/mercadopago/exceptions/MPException.java",
"chars": 1641,
"preview": "package com.mercadopago.exceptions;\n\nimport lombok.Getter;\n\n/**\n * Base checked exception for SDK-side errors in the Mer"
},
{
"path": "src/main/java/com/mercadopago/exceptions/MPInvalidWebhookSignatureException.java",
"chars": 1557,
"preview": "package com.mercadopago.exceptions;\n\nimport lombok.Getter;\n\n/**\n * Exception thrown by {@link com.mercadopago.webhook.We"
},
{
"path": "src/main/java/com/mercadopago/exceptions/MPJsonParseException.java",
"chars": 1216,
"preview": "package com.mercadopago.exceptions;\n\n/**\n * Exception thrown when JSON serialization or deserialization fails within the"
},
{
"path": "src/main/java/com/mercadopago/exceptions/MPMalformedRequestException.java",
"chars": 1092,
"preview": "package com.mercadopago.exceptions;\n\n/**\n * Exception thrown when an API request cannot be constructed due to invalid or"
},
{
"path": "src/main/java/com/mercadopago/exceptions/SignatureFailureReason.java",
"chars": 1309,
"preview": "package com.mercadopago.exceptions;\n\n/**\n * Enumerates the reasons why\n * {@link com.mercadopago.webhook.WebhookSignatur"
},
{
"path": "src/main/java/com/mercadopago/net/Headers.java",
"chars": 3343,
"preview": "package com.mercadopago.net;\n\n/**\n * Defines standard HTTP header name constants used throughout the MercadoPago SDK.\n *"
},
{
"path": "src/main/java/com/mercadopago/net/HttpMethod.java",
"chars": 836,
"preview": "package com.mercadopago.net;\n\n/**\n * Enumerates the HTTP methods supported by the MercadoPago SDK for communicating with"
},
{
"path": "src/main/java/com/mercadopago/net/HttpStatus.java",
"chars": 1849,
"preview": "package com.mercadopago.net;\n\n/**\n * Defines commonly used HTTP status code constants for the MercadoPago SDK.\n *\n * <p>"
},
{
"path": "src/main/java/com/mercadopago/net/KeepAliveStrategy.java",
"chars": 2709,
"preview": "package com.mercadopago.net;\n\nimport org.apache.http.HeaderElement;\nimport org.apache.http.HeaderElementIterator;\nimport"
},
{
"path": "src/main/java/com/mercadopago/net/MPDefaultHttpClient.java",
"chars": 15267,
"preview": "package com.mercadopago.net;\n\nimport static com.mercadopago.MercadoPagoConfig.getStreamHandler;\nimport static com.mercad"
},
{
"path": "src/main/java/com/mercadopago/net/MPElementsResourcesPage.java",
"chars": 1380,
"preview": "package com.mercadopago.net;\n\nimport java.util.List;\nimport lombok.Getter;\n\n/**\n * Represents a paginated API response w"
},
{
"path": "src/main/java/com/mercadopago/net/MPHttpClient.java",
"chars": 1610,
"preview": "package com.mercadopago.net;\n\nimport com.mercadopago.exceptions.MPApiException;\nimport com.mercadopago.exceptions.MPExce"
},
{
"path": "src/main/java/com/mercadopago/net/MPRequest.java",
"chars": 4918,
"preview": "package com.mercadopago.net;\n\nimport com.google.gson.JsonObject;\nimport com.mercadopago.core.MPRequestOptions;\nimport ja"
},
{
"path": "src/main/java/com/mercadopago/net/MPResource.java",
"chars": 938,
"preview": "package com.mercadopago.net;\n\nimport lombok.Data;\n\n/**\n * Base class for all MercadoPago API resource objects.\n *\n * <p>"
},
{
"path": "src/main/java/com/mercadopago/net/MPResourceList.java",
"chars": 858,
"preview": "package com.mercadopago.net;\n\nimport java.util.List;\nimport lombok.Getter;\nimport lombok.Setter;\n\n/**\n * Represents a li"
},
{
"path": "src/main/java/com/mercadopago/net/MPResponse.java",
"chars": 1283,
"preview": "package com.mercadopago.net;\n\nimport java.util.List;\nimport java.util.Map;\nimport lombok.AllArgsConstructor;\nimport lomb"
},
{
"path": "src/main/java/com/mercadopago/net/MPResultsResourcesPage.java",
"chars": 1223,
"preview": "package com.mercadopago.net;\n\nimport com.mercadopago.resources.ResultsPaging;\nimport java.util.List;\nimport lombok.Data;"
},
{
"path": "src/main/java/com/mercadopago/net/MPSearchRequest.java",
"chars": 2676,
"preview": "package com.mercadopago.net;\n\nimport java.util.HashMap;\nimport java.util.Map;\nimport java.util.Objects;\nimport lombok.Bu"
},
{
"path": "src/main/java/com/mercadopago/net/UrlFormatter.java",
"chars": 3118,
"preview": "package com.mercadopago.net;\n\nimport com.mercadopago.MercadoPagoConfig;\nimport com.mercadopago.exceptions.MPException;\ni"
}
]
// ... and 285 more files (download for full content)
About this extraction
This page contains the full source code of the mercadopago/sdk-java GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 485 files (1.1 MB), approximately 284.4k tokens, and a symbol index with 1021 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.