[[braintree-component]]
= Braintree Component
//THIS FILE IS COPIED: EDIT THE SOURCE FILE:
:page-source: components/camel-braintree/src/main/docs/braintree-component.adoc
:docTitle: Braintree
:artifactId: camel-braintree
:description: Process payments using Braintree Payments.
:since: 2.17
:supportLevel: Stable
:component-header: Both producer and consumer are supported

*Since Camel {since}*

*{component-header}*

The Braintree component provides access to
https://www.braintreepayments.com/[Braintree Payments] trough through
theirs https://developers.braintreepayments.com/start/hello-server/java[Java
SDK].

All client applications need API credential in order to process
payments. In order to use camel-braintree with your account, you'll need
to create a new
https://www.braintreepayments.com/get-started[Sandbox] or https://www.braintreepayments.com/signup[Production]
account.


Maven users will need to add the following dependency to their pom.xml
for this component:


[source,xml]
--------------------------------------------
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-braintree</artifactId>
    <version>${camel-version}</version>
</dependency>
--------------------------------------------

 

== Braintree Options




// component options: START
The Braintree component supports 4 options, which are listed below.



[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing. | false | boolean
| *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
| *configuration* (advanced) | Component configuration |  | BraintreeConfiguration
|===
// component options: END





// endpoint options: START
The Braintree endpoint is configured using URI syntax:

----
braintree:apiName/methodName
----

with the following path and query parameters:

=== Path Parameters (2 parameters):


[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *apiName* | *Required* What kind of operation to perform. The value can be one of: ADDON, ADDRESS, CLIENTTOKEN, CREDITCARDVERIFICATION, CUSTOMER, DISCOUNT, DISPUTE, DOCUMENTUPLOAD, MERCHANTACCOUNT, PAYMENTMETHOD, PAYMENTMETHODNONCE, PLAN, REPORT, SETTLEMENTBATCHSUMMARY, SUBSCRIPTION, TRANSACTION, WEBHOOKNOTIFICATION |  | BraintreeApiName
| *methodName* | What sub operation to use for the selected operation |  | String
|===


=== Query Parameters (34 parameters):


[width="100%",cols="2,5,^1,2",options="header"]
|===
| Name | Description | Default | Type
| *environment* (common) | The environment Either SANDBOX or PRODUCTION |  | String
| *inBody* (common) | Sets the name of a parameter to be passed in the exchange In Body |  | String
| *merchantId* (common) | The merchant id provided by Braintree. |  | String
| *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
| *sendEmptyMessageWhenIdle* (consumer) | If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead. | false | boolean
| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. The value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
| *pollStrategy* (consumer) | A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel. |  | PollingConsumerPollStrategy
| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing. | false | boolean
| *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
| *httpReadTimeout* (advanced) | Set read timeout for http calls. |  | Integer
| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
| *httpLogLevel* (logging) | Set logging level for http calls, see java.util.logging.Level. The value can be one of: OFF, SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST, ALL |  | String
| *httpLogName* (logging) | Set log category to use to log http calls. | Braintree | String
| *logHandlerEnabled* (logging) | Sets whether to enable the BraintreeLogHandler. It may be desirable to set this to 'false' where an existing JUL - SLF4J logger bridge is on the classpath. This option can also be configured globally on the BraintreeComponent. | true | boolean
| *proxyHost* (proxy) | The proxy host |  | String
| *proxyPort* (proxy) | The proxy port |  | Integer
| *backoffErrorThreshold* (scheduler) | The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in. |  | int
| *backoffIdleThreshold* (scheduler) | The number of subsequent idle polls that should happen before the backoffMultipler should kick-in. |  | int
| *backoffMultiplier* (scheduler) | To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again. When this option is in use then backoffIdleThreshold and/or backoffErrorThreshold must also be configured. |  | int
| *delay* (scheduler) | Milliseconds before the next poll. | 500 | long
| *greedy* (scheduler) | If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages. | false | boolean
| *initialDelay* (scheduler) | Milliseconds before the first poll starts. | 1000 | long
| *repeatCount* (scheduler) | Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever. | 0 | long
| *runLoggingLevel* (scheduler) | The consumer logs a start/complete log line when it polls. This option allows you to configure the logging level for that. The value can be one of: TRACE, DEBUG, INFO, WARN, ERROR, OFF | TRACE | LoggingLevel
| *scheduledExecutorService* (scheduler) | Allows for configuring a custom/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool. |  | ScheduledExecutorService
| *scheduler* (scheduler) | To use a cron scheduler from either camel-spring or camel-quartz component. The value can be one of: none, spring, quartz | none | String
| *schedulerProperties* (scheduler) | To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler. |  | Map
| *startScheduler* (scheduler) | Whether the scheduler should be auto started. | true | boolean
| *timeUnit* (scheduler) | Time unit for initialDelay and delay options. The value can be one of: NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS | MILLISECONDS | TimeUnit
| *useFixedDelay* (scheduler) | Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details. | true | boolean
| *accessToken* (security) | The access token granted by a merchant to another in order to process transactions on their behalf. Used in place of environment, merchant id, public key and private key fields. |  | String
| *privateKey* (security) | The private key provided by Braintree. |  | String
| *publicKey* (security) | The public key provided by Braintree. |  | String
|===
// endpoint options: END



== URI format

 

[source,java]
---------------------------------------------
braintree://endpoint-prefix/endpoint?[options]
---------------------------------------------

 

Endpoint prefix can be one of:

* addOn
* address
* clientToken
* creditCardverification
* customer
* discount
* dispute
* documentUpload
* merchantAccount
* paymentmethod
* paymentmethodNonce
* plan
* report
* settlementBatchSummary
* subscription
* transaction
* webhookNotification

 

== BraintreeComponent

The Braintree Component can be configured with the options below. These
options can be provided using the component's bean
property *configuration* of
type *org.apache.camel.component.braintree.BraintreeConfiguration*.

[cols="<,<,<",options="header",]
|=======================================================================
|Option |Type |Description
|environment |String |Value that specifies where requests should be
directed – sandbox or production

|merchantId |String |A unique identifier for your gateway account, which
is different than your merchant account ID

|publicKey |String |User-specific public identifier

|privateKey |String |User-specific secure identifier that should not be
shared – even with us!

|accessToken |String |Token granted to a merchant using Braintree Auth
allowing them to process transactions on another's behalf. Used in place
of the environment, merchantId, publicKey and privateKey options.
|=======================================================================

All the options above are provided by Braintree Payments

== Producer Endpoints:

Producer endpoints can use endpoint prefixes followed by endpoint names
and associated options described next. A shorthand alias can be used for
some endpoints. The endpoint URI MUST contain a prefix.

Endpoint options that are not mandatory are denoted by []. When there
are no mandatory options for an endpoint, one of the set of [] options
MUST be provided. Producer endpoints can also use a special
option *inBody* that in turn should contain the name of the endpoint
option whose value will be contained in the Camel Exchange In message.

Any of the endpoint options can be provided in either the endpoint URI,
or dynamically in a message header. The message header name must be of
the format *CamelBraintree.<option>*. Note that the *inBody* option
overrides message header, i.e. the endpoint option *inBody=option* would
override a *CamelBraintree.option* header.

For more information on the endpoints and options see Braintree
references
at https://developers.braintreepayments.com/reference/overview[https://developers.braintreepayments.com/reference/overview]

 

=== Endpoint prefix _addOn_

The following endpoints can be invoked with the prefix *addOn* as
follows:

 

[source,java]
--------------------------
braintree://addOn/endpoint
--------------------------

[cols="<,<,<,<",options="header",]
|====================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|all |  |  |List<com.braintreegateway.Addon>
|====================================================

=== Endpoint prefix _address_

The following endpoints can be invoked with the prefix *address* as
follows:

 

[source,java]
--------------------------------------
braintree://address/endpoint?[options]
--------------------------------------

[cols="<,<,<,<",options="header",]
|=======================================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|create |  |customerId, request
|com.braintreegateway.Result<com.braintreegateway.Address>

|delete |  |customerId, id
|com.braintreegateway.Result<com.braintreegateway.Address> 

|find |  |customerId, id |com.braintreegateway.Address

|update |  |customerId, id, request
|com.braintreegateway.Result<com.braintreegateway.Address> 
|=======================================================================

[[Braintree-URIOptionsforaddress]]
URI Options for _address_

[cols="<,<",options="header",]
|============================================
|Name |Type
|customerId |String
|request |com.braintreegateway.AddressRequest
|id |String
|============================================

=== Endpoint prefix _clientToken_

The following endpoints can be invoked with the prefix *clientToken* as
follows:

 

[source,java]
------------------------------------------
braintree://clientToken/endpoint?[options]
------------------------------------------

[cols="<,<,<,<",options="header",]
|====================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|generate |  | request |String
|====================================================

[[Braintree-URIOptionsforclientToken]]
URI Options for _clientToken_

[cols="<,<",options="header",]
|================================================
|Name |Type
|request |com.braintreegateway.ClientTokenrequest
|================================================

=== Endpoint prefix _creditCardVerification_

The following endpoints can be invoked with the
prefix *creditCardverification* as follows:

 

[source,java]
-----------------------------------------------------
braintree://creditCardVerification/endpoint?[options]
-----------------------------------------------------

[cols="<,<,<,<",options="header",]
|=======================================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|find |  | id |com.braintreegateway.CreditCardVerification

|search |  |query
|com.braintreegateway.ResourceCollection<com.braintreegateway.CreditCardVerification>
|=======================================================================

[[Braintree-URIOptionsforcreditCardVerification]]
URI Options for _creditCardVerification_

[cols="<,<",options="header",]
|===============================================================
|Name |Type
|id |String
|query |com.braintreegateway.CreditCardVerificationSearchRequest
|===============================================================

=== Endpoint prefix _customer_

The following endpoints can be invoked with the prefix *customer* as
follows:

 

[source,java]
---------------------------------------
braintree://customer/endpoint?[options]
---------------------------------------

[cols="<,<,<,<",options="header",]
|=======================================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|all |  |  | 

|create |  |request
|com.braintreegateway.Result<com.braintreegateway.Customer>

|delete |  |id
|com.braintreegateway.Result<com.braintreegateway.Customer>

|find |  |id |com.braintreegateway.Customer

|search |  |query
|com.braintreegateway.ResourceCollection<com.braintreegateway.Customer>

|update |  |id, request
|com.braintreegateway.Result<com.braintreegateway.Customer>
|=======================================================================

[[Braintree-URIOptionsforcustomer]]
URI Options for _customer_

[cols="<,<",options="header",]
|=================================================
|Name |Type
|id |String
|request |com.braintreegateway.CustomerRequest
|query |com.braintreegateway.CustomerSearchRequest
|=================================================

=== Endpoint prefix _discount_

The following endpoints can be invoked with the prefix *discount* as
follows:

 

[source,java]
-----------------------------
braintree://discount/endpoint
-----------------------------

[cols="<,<,<,<",options="header",]
|====================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|all |  |  |List<com.braintreegateway.Discount>
|====================================================

 +

 +

=== Endpoint prefix _dispute_

The following endpoints can be invoked with the prefix *dispute* as
follows:

[source,java]
----------------------------------------------
braintree://dispute/endpoint?[options]
----------------------------------------------

[cols="<,<,<,<",options="header",]
|=======================================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|accept |  |id
|com.braintreegateway.Result

|addFileEvidence |  |disputeId, documentId
|com.braintreegateway.Result<DisputeEvidence>

|addFileEvidence |  |disputeId, fileEvidenceRequest
|com.braintreegateway.Result<DisputeEvidence>

|addTextEvidence |  |disputeId, content
|com.braintreegateway.Result<DisputeEvidence>

|addTextEvidence |  |disputeId, textEvidenceRequest
|com.braintreegateway.Result<DisputeEvidence>

|finalize |  |id
|com.braintreegateway.Result

|find |  |id
|com.braintreegateway.Dispute

|removeEvidence |  |id
|com.braintreegateway.Result

|search |  | disputeSearchRequest
|com.braintreegateway.PaginatedCollection<com.braintreegateway.Dispute>
|=======================================================================

[[Braintree-URIOptionsfordispute]]
URI Options for _dispute_

[cols="<,<",options="header",]
|==========================================================
|Name |Type
|id |String
|disputeId |String
|documentId |String
|fileEvidenceRequest |com.braintreegateway.FileEvidenceRequest
|content |String |
|textEvidenceRequest |com.braintreegateway.TextEvidenceRequest
|disputeSearchRequest |com.braintreegateway.DisputeSearchRequest
|==========================================================


=== Endpoint prefix _documentUpload_

The following endpoints can be invoked with the prefix *documentUpload* as
follows:

[source,java]
----------------------------------------------
braintree://documentUpload/endpoint?[options]
----------------------------------------------

[cols="<,<,<,<",options="header",]
|=======================================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|create |  |request
|com.braintreegateway.Result<com.braintreegateway.DocumentUpload>
|=======================================================================

[[Braintree-URIOptionsfordocumentUpload]]
URI Options for _documentUpload_

[cols="<,<",options="header",]
|==========================================================
|Name |Type
|request |com.braintreegateway.DocumentUploadRequest
|==========================================================


=== Endpoint prefix _merchantAccount_

The following endpoints can be invoked with the
prefix *merchantAccount* as follows:

 

[source,java]
----------------------------------------------
braintree://merchantAccount/endpoint?[options]
----------------------------------------------

[cols="<,<,<,<",options="header",]
|=======================================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|create |  |request
|com.braintreegateway.Result<com.braintreegateway.MerchantAccount>

|createForCurrency |  |currencyRequest
|com.braintreegateway.Result<com.braintreegateway.MerchantAccount>

|find |  |id |com.braintreegateway.MerchantAccount

|update |  |id, request
|com.braintreegateway.Result<com.braintreegateway.MerchantAccount>
|=======================================================================

[[Braintree-URIOptionsformerchantAccount]]
URI Options for _merchantAccount_

[cols="<,<",options="header",]
|====================================================
|Name |Type
|id |String
|request |com.braintreegateway.MerchantAccountRequest
|currencyRequest |com.braintreegateway.MerchantAccountCreateForCurrencyRequest
|====================================================

=== Endpoint prefix _paymentMethod_

The following endpoints can be invoked with the
prefix *paymentMethod* as follows:

 

[source,java]
--------------------------------------------
braintree://paymentMethod/endpoint?[options]
--------------------------------------------

[cols="<,<,<,<",options="header",]
|=======================================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|create |  |request
|com.braintreegateway.Result<com.braintreegateway.PaymentMethod>

|delete |  |token, deleteRequest
|com.braintreegateway.Result<com.braintreegateway.PaymentMethod>

|find |  |token |com.braintreegateway.PaymentMethod

|update |  |token, request
|com.braintreegateway.Result<com.braintreegateway.PaymentMethod>
|=======================================================================

[[Braintree-URIOptionsforpaymentMethod]]
URI Options for _paymentMethod_

[cols="<,<",options="header",]
|==================================================
|Name |Type
|token |String
|request |com.braintreegateway.PaymentMethodRequest
|deleteRequest |com.braintreegateway.PaymentMethodDeleteRequest
|==================================================

=== Endpoint prefix _paymentMethodNonce_

The following endpoints can be invoked with the
prefix *paymentMethodNonce* as follows:

 

[source,java]
-------------------------------------------------
braintree://paymentMethodNonce/endpoint?[options]
-------------------------------------------------

[cols="<,<,<,<",options="header",]
|=======================================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|create |  |paymentMethodToken
|com.braintreegateway.Result<com.braintreegateway.PaymentMethodNonce>

|find |  |paymentMethodNonce |com.braintreegateway.PaymentMethodNonce
|=======================================================================

[[Braintree-URIOptionsforpaymentMethodNonce]]
URI Options for _paymentMethodNonce_

[cols="<,<",options="header",]
|==========================
|Name |Type
|paymentMethodToken |String
|paymentMethodNonce |String
|==========================

=== Endpoint prefix _plan_

The following endpoints can be invoked with the prefix *plan* as
follows:

 

[source,java]
-------------------------
braintree://plan/endpoint
-------------------------

[cols="<,<,<,<",options="header",]
|====================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|all |  |  |List<com.braintreegateway.Plan>
|====================================================


=== Endpoint prefix _report_

The following endpoints can be invoked with the prefix *report* as
follows:

[source,java]
---------------------------------
braintree://plan/report?[options]
---------------------------------

[cols="<,<,<,<",options="header",]
|==============================================================================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|transactionLevelFees |  | request |com.braintreegateway.Result<com.braintreegateway.TransactionLevelFeeReport>
|==============================================================================================================

[[Braintree-URIOptionsfortreport]]
URI Options for _report_

[cols="<,<",options="header",]
|==============================================================
|Name |Type
|request |com.braintreegateway.TransactionLevelFeeReportRequest
|==============================================================


=== Endpoint prefix _settlementBatchSummary_

The following endpoints can be invoked with the
prefix *settlementBatchSummary* as follows:

 

[source,java]
-----------------------------------------------------
braintree://settlementBatchSummary/endpoint?[options]
-----------------------------------------------------

[cols="<,<,<,<",options="header",]
|=======================================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|generate |  | request
|com.braintreegateway.Result<com.braintreegateway.SettlementBatchSummary>
|=======================================================================

[[Braintree-URIOptionsforsettlementBatchSummary]]
URI Options for _settlementBatchSummary_

[cols="<,<",options="header",]
|==========================
|Name |Type
|settlementDate |Calendar
|groupByCustomField |String
|==========================

=== Endpoint prefix _subscription_

The following endpoints can be invoked with the prefix *subscription* as
follows:

 

[source,java]
-------------------------------------------
braintree://subscription/endpoint?[options]
-------------------------------------------

[cols="<,<,<,<",options="header",]
|=======================================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|cancel |  | id
| com.braintreegateway.Result<com.braintreegateway.Subscription>

|create |  |request
|com.braintreegateway.Result<com.braintreegateway.Subscription>

|delete |  |customerId, id
|com.braintreegateway.Result<com.braintreegateway.Subscription>

|find |  |id |com.braintreegateway.Subscription

|retryCharge |  |subscriptionId, amount
|com.braintreegateway.Result<com.braintreegateway.Transaction>

|search |  |searchRequest
|com.braintreegateway.ResourceCollection<com.braintreegateway.Subscription>

|update |  |id, request
|com.braintreegateway.Result<com.braintreegateway.Subscription>
|=======================================================================

[[Braintree-URIOptionsforsubscription]]
URI Options for _subscription_

[cols="<,<",options="header",]
|==============================================================
|Name |Type
|id |String
|request |com.braintreegateway.SubscriptionRequest
|customerId |String
|subscriptionId |String
|amount |BigDecimal
|searchRequest |com.braintreegateway.SubscriptionSearchRequest.
|==============================================================

 

=== Endpoint prefix _transaction_

The following endpoints can be invoked with the prefix *transaction* as
follows:

 

[source,java]
------------------------------------------
braintree://transaction/endpoint?[options]
------------------------------------------

[cols="<,<,<,<",options="header",]
|=======================================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|cancelRelease |  |id
|com.braintreegateway.Result<com.braintreegateway.Transaction>

|cloneTransaction |  |id, cloneRequest
|com.braintreegateway.Result<com.braintreegateway.Transaction>

|credit |  |request
|com.braintreegateway.Result<com.braintreegateway.Transaction>

|find |  |id |com.braintreegateway.Transaction

|holdInEscrow |  |id
|com.braintreegateway.Result<com.braintreegateway.Transaction>

|releaseFromEscrow |  |id
|com.braintreegateway.Result<com.braintreegateway.Transaction>

|refund |  |id, amount, refundRequest
|com.braintreegateway.Result<com.braintreegateway.Transaction>

|sale |  |request
|com.braintreegateway.Result<com.braintreegateway.Transaction>

|search |  |query
|com.braintreegateway.ResourceCollection<com.braintreegateway.Transaction>

|submitForPartialSettlement |  |id, amount
|com.braintreegateway.Result<com.braintreegateway.Transaction>

|submitForSettlement |  |id, amount, request
|com.braintreegateway.Result<com.braintreegateway.Transaction>

|voidTransaction |  |id
|com.braintreegateway.Result<com.braintreegateway.Transaction>
|=======================================================================

[[Braintree-URIOptionsfortransaction]]
URI Options for _transaction_

[cols="<,<",options="header",]
|==========================================================
|Name |Type
|id |String
|request |com.braintreegateway.TransactionCloneRequest
|cloneRequest |com.braintreegateway.TransactionCloneRequest
|refundRequest |com.braintreegateway.TransactionRefundRequest
|amount |BigDecimal
|query |com.braintreegateway.TransactionSearchRequest
|==========================================================

=== Endpoint prefix _webhookNotification_

The following endpoints can be invoked with the
prefix *webhookNotification* as follows:

 

[source,java]
--------------------------------------------------
braintree://webhookNotification/endpoint?[options]
--------------------------------------------------

[cols="<,<,<,<",options="header",]
|=======================================================================
|Endpoint |Shorthand Alias |Options |Result Body Type
|parse |  | signature, payload |com.braintreegateway.WebhookNotification
|verify |  |challenge |String
|=======================================================================

[[Braintree-URIOptionsforwebhookNotification]]
URI Options for _webhookNotification_

[cols="<,<",options="header",]
|=================
|Name |Type
|signature |String
|payload |String
|challenge |String
|=================

 

== Consumer Endpoints

Any of the producer endpoints can be used as a consumer endpoint.
Consumer endpoints can
use http://camel.apache.org/polling-consumer.html#PollingConsumer-ScheduledPollConsumerOptions[Scheduled
Poll Consumer Options] to schedule endpoint invocation.
By default Consumer endpoints that return an array or
collection will generate one exchange per element, and their routes will
be executed once for each exchange. To change this behavior use the
property *splitResults=true* to return a single exchange for
the entire list or array. 

== Message Headers

Any URI option can be provided in a message header for producer
endpoints with a *CamelBraintree.* prefix.

== Message body

All result message bodies utilize objects provided by the Braintree Java
SDK. Producer endpoints can specify the option name for incoming message
body in the *inBody* endpoint parameter.

 

 

== Examples

*Blueprint*

[source,xml]
--------------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
           xsi:schemaLocation="
             http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.0.0.xsd
             http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
             http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">


    <cm:property-placeholder id="placeholder" persistent-id="camel.braintree">
    </cm:property-placeholder>

    <bean id="braintree" class="org.apache.camel.component.braintree.BraintreeComponent">
        <property name="configuration">
            <bean class="org.apache.camel.component.braintree.BraintreeConfiguration">
                <property name="environment" value="${environment}"/>
                <property name="merchantId" value="${merchantId}"/>
                <property name="publicKey" value="${publicKey}"/>
                <property name="privateKey" value="${privateKey}"/>
            </bean>
        </property>
    </bean>

    <camelContext trace="true" xmlns="http://camel.apache.org/schema/blueprint" id="braintree-example-context">
        <route id="braintree-example-route">
            <from uri="direct:generateClientToken"/>
            <to uri="braintree://clientToken/generate"/>
            <to uri="stream:out"/>
        </route>
    </camelContext>

</blueprint>
--------------------------------------------------------------------------------------------------------------------------------------------


include::camel-spring-boot::page$braintree-starter.adoc[]
