/// <summary>
        /// Registro de transferencias SPID® Registra un conjunto de transferencias a realizar en la cuenta del cliente Monex relacionada a la suscripción. En la respuesta se proporcionará una dirección URL que lo llevará al centro de autorización para que las transferencias sean confirmadas (autorizadas) por el cliente para que se efectúen, para ello debe ingresar la llave electrónica (Token).&lt;br&gt; Nota: Debe considerar que el concepto de cada una de las transacciones solo debe contener caracteres alfanuméricos por lo que en caso de que se reciban caracteres como ñ o acentos serán sustituidos por n o en su caso por la letra sin acento. Los caracteres no alfanuméricos como pueden ser caracteres especiales serán eliminados.
        /// </summary>
        /// <exception cref="MX.Wire4.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body">Información de las transferencias SPID de salida</param>
        /// <param name="authorization">Header para token</param>
        /// <param name="subscription">Es el identificador de la suscripción a esta API.</param>
        /// <returns>Task of TokenRequiredResponse</returns>
        public async System.Threading.Tasks.Task <TokenRequiredResponse> RegisterOutgoingSpidTransactionUsingPOSTAsync(TransactionOutgoingSpid body, string authorization, string subscription)
        {
            ApiResponse <TokenRequiredResponse> localVarResponse = await RegisterOutgoingSpidTransactionUsingPOSTAsyncWithHttpInfo(body, authorization, subscription);

            return(localVarResponse.Data);
        }
        /// <summary>
        /// Registro de transferencias SPID® Registra un conjunto de transferencias a realizar en la cuenta del cliente Monex relacionada a la suscripción. En la respuesta se proporcionará una dirección URL que lo llevará al centro de autorización para que las transferencias sean confirmadas (autorizadas) por el cliente para que se efectúen, para ello debe ingresar la llave electrónica (Token).&lt;br&gt; Nota: Debe considerar que el concepto de cada una de las transacciones solo debe contener caracteres alfanuméricos por lo que en caso de que se reciban caracteres como ñ o acentos serán sustituidos por n o en su caso por la letra sin acento. Los caracteres no alfanuméricos como pueden ser caracteres especiales serán eliminados.
        /// </summary>
        /// <exception cref="MX.Wire4.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body">Información de las transferencias SPID de salida</param>
        /// <param name="authorization">Header para token</param>
        /// <param name="subscription">Es el identificador de la suscripción a esta API.</param>
        /// <returns>Task of ApiResponse (TokenRequiredResponse)</returns>
        public async System.Threading.Tasks.Task <ApiResponse <TokenRequiredResponse> > RegisterOutgoingSpidTransactionUsingPOSTAsyncWithHttpInfo(TransactionOutgoingSpid body, string authorization, string subscription)
        {
            // verify the required parameter 'body' is set
            if (body == null)
            {
                throw new ApiException(400, "Missing required parameter 'body' when calling TransferenciasSPIDApi->RegisterOutgoingSpidTransactionUsingPOST");
            }
            // verify the required parameter 'authorization' is set
            if (authorization == null)
            {
                throw new ApiException(400, "Missing required parameter 'authorization' when calling TransferenciasSPIDApi->RegisterOutgoingSpidTransactionUsingPOST");
            }
            // verify the required parameter 'subscription' is set
            if (subscription == null)
            {
                throw new ApiException(400, "Missing required parameter 'subscription' when calling TransferenciasSPIDApi->RegisterOutgoingSpidTransactionUsingPOST");
            }

            var    localVarPath         = "/subscriptions/{subscription}/transactions/outcoming/spid";
            var    localVarPathParams   = new Dictionary <String, String>();
            var    localVarQueryParams  = new List <KeyValuePair <String, String> >();
            var    localVarHeaderParams = new Dictionary <String, String>(this.Configuration.DefaultHeader);
            var    localVarFormParams   = new Dictionary <String, String>();
            var    localVarFileParams   = new Dictionary <String, FileParameter>();
            Object localVarPostBody     = null;

            // to determine the Content-Type header
            String[] localVarHttpContentTypes = new String[] {
                "application/json"
            };
            String localVarHttpContentType = this.Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes);

            // to determine the Accept header
            String[] localVarHttpHeaderAccepts = new String[] {
                "application/json"
            };
            String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts);

            if (localVarHttpHeaderAccept != null)
            {
                localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept);
            }

            if (subscription != null)
            {
                localVarPathParams.Add("subscription", this.Configuration.ApiClient.ParameterToString(subscription));                       // path parameter
            }
            if (authorization != null)
            {
                localVarHeaderParams.Add("Authorization", this.Configuration.ApiClient.ParameterToString(authorization));                        // header parameter
            }
            if (body != null && body.GetType() != typeof(byte[]))
            {
                localVarPostBody = this.Configuration.ApiClient.Serialize(body); // http body (model) parameter
            }
            else
            {
                localVarPostBody = body; // byte array
            }

            // make the HTTP request
            IRestResponse localVarResponse = (IRestResponse)await this.Configuration.ApiClient.CallApiAsync(localVarPath,
                                                                                                            Method.POST, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams,
                                                                                                            localVarPathParams, localVarHttpContentType);

            int localVarStatusCode = (int)localVarResponse.StatusCode;

            if (ExceptionFactory != null)
            {
                Exception exception = ExceptionFactory("RegisterOutgoingSpidTransactionUsingPOST", localVarResponse);
                if (exception != null)
                {
                    throw exception;
                }
            }

            return(new ApiResponse <TokenRequiredResponse>(localVarStatusCode,
                                                           localVarResponse.Headers.ToDictionary(x => x.Name, x => string.Join(",", x.Value)),
                                                           (TokenRequiredResponse)this.Configuration.ApiClient.Deserialize(localVarResponse, typeof(TokenRequiredResponse))));
        }
        /// <summary>
        /// Registro de transferencias SPID® Registra un conjunto de transferencias a realizar en la cuenta del cliente Monex relacionada a la suscripción. En la respuesta se proporcionará una dirección URL que lo llevará al centro de autorización para que las transferencias sean confirmadas (autorizadas) por el cliente para que se efectúen, para ello debe ingresar la llave electrónica (Token).&lt;br&gt; Nota: Debe considerar que el concepto de cada una de las transacciones solo debe contener caracteres alfanuméricos por lo que en caso de que se reciban caracteres como ñ o acentos serán sustituidos por n o en su caso por la letra sin acento. Los caracteres no alfanuméricos como pueden ser caracteres especiales serán eliminados.
        /// </summary>
        /// <exception cref="MX.Wire4.Client.ApiException">Thrown when fails to make API call</exception>
        /// <param name="body">Información de las transferencias SPID de salida</param>
        /// <param name="authorization">Header para token</param>
        /// <param name="subscription">Es el identificador de la suscripción a esta API.</param>
        /// <returns>TokenRequiredResponse</returns>
        public TokenRequiredResponse RegisterOutgoingSpidTransactionUsingPOST(TransactionOutgoingSpid body, string authorization, string subscription)
        {
            ApiResponse <TokenRequiredResponse> localVarResponse = RegisterOutgoingSpidTransactionUsingPOSTWithHttpInfo(body, authorization, subscription);

            return(localVarResponse.Data);
        }