Referencia de la API de Wire4
Cliente sdk para trabajar con el api de wire4
Wire4 es una API - Fintech de Banco Monex con la que podrás administrar transferencias SPEI
- Versión del API de Wire4: 1.0.0
- Versión del paquete SDK: 1.1.4
PHP 5.5 o posterior
Para instalar via Composer, agrega lo siguiente a composer.json
:
{
"repositories": [
{
"type": "git",
"url": "https://github.com/wire4/wire4-api-sdk-php.git"
}
],
"require": {
"wire4/wire4-api-sdk-php": "dev-master"
}
}
Ejecuta el siguiente comando:
composer install
o simplemente ejecuta desde la línea de comandos la siguiente línea:
composer require wire4/wire4-api-sdk-php dev-master
Una vez que se instalo el cliente en tu proyecto importa el autoload.php
require_once('/path/to/wire4-php-client/vendor/autoload.php');
Por favor sigue el procedimiento de instalación (Instalacion y uso) y ejecuta el siguiente código de ejemplo reemplazando las credenciales de aplicación por tus datos. Toma en cuanta que estos son ejemplos que te servirán de referencia y que pueden cambiar pero debes crear una cuenta en wire4.mx para obtener tus datos de aplicación.
<?php
require_once(__DIR__ . '/vendor/autoload.php');
$accessToken= "";
try {
// Create the authenticator to obtain access token
$oauth = new \mx\wire4\auth\OAuthWire4 (
'YOUR_OAUTH_CONSUMER_KEY', //REPLACE THIS WITH YOUR DATA
'YOUR_OAUTH_CONSUMER_SECRET', //REPLACE THIS WITH YOUR DATA
\mx\wire4\auth\Environment::SANDBOX); // O \mx\wire4\auth\Environment::PRODUCTION
// Obtain an access token use application flow and scope "general"
$accessToken= $oauth->obtainAccessTokenApp("general");
} catch(OAuthException $e) {
echo "Respuesta: ". $e->lastResponse . "\n";
}
$apiInstance = new \mx\wire4\client\api\ComprobanteElectrnicoDePagoCEPApi(
// If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
// This is optional, `GuzzleHttp\Client` will be used as default.
new GuzzleHttp\Client()
);
$body = new \mx\wire4\client\model\CepSearchBanxico(); // \mx\wire4\client\model\CepSearchBanxico | Información para buscar un CEP
try {
$result = $apiInstance->obtainTransactionCepUsingPOST($body,$accessToken);
print_r($result);
} catch (Exception $e) {
echo 'Exception when calling ComprobanteElectrnicoDePagoCEPApi->obtainTransactionCepUsingPOST: ', $e->getMessage(), PHP_EOL;
}
?>
En el proyecto de github https://github.com/wire4/wire4-api-sdk-php encontrarás una sección de ejemplos (examples) que ilustra el uso del sdk en cada uno de los recursos disponibles en el api, sin embargo, para más detalle o la forma en como puedes utilizar cada uno de los métodos de la API te recomendamos revisar la documentación en la sección de "Referencia" en https://developers.wire4.mx
Todos los URIs son relativos a https://sandbox-api.wire4.mx/wire4/1.0.0 en el ambiente de sandbox o https://api.wire4.mx/wire4/1.0.0 para el ambiente de producción.
Clase | Metodo | HTTP request | Descripción |
---|---|---|---|
AutorizacinDeDepsitosApi | getDepositAuthConfigurations | GET /subscriptions/{subscription}/configurations/deposit-authorization | Consulta autorización de depósitos |
AutorizacinDeDepsitosApi | putDepositAuthConfigurations | PUT /subscriptions/{subscription}/configurations/deposit-authorization | Habilita / Deshabilita la autorización de depósitos |
ComprobanteElectrnicoDePagoCEPApi | obtainTransactionCepUsingPOST | POST /ceps | Consulta de CEP |
ContactoApi | sendContactUsingPOST | POST /contact | Solicitud de contacto |
ContractsDetailsApi | createAuthorization | POST /onboarding/accounts/authorize | Devuelve la URL para autorización del usuario Monex |
ContractsDetailsApi | obtainAuthorizedUsers | GET /onboarding/accounts/{requestId}/authorized-users | Obtiene los usuarios autorizados |
ContractsDetailsApi | obtainAuthorizedUsersByContract | GET /onboarding/accounts/authorized-users | Obtiene los usuarios autorizados por contrato |
ContractsDetailsApi | obtainContractDetails | POST /onboarding/accounts/details | Obtiene los detalles de la empresa del contrato |
CuentasDeBeneficiariosSPEIApi | authorizeAccountsPendingPUT | PUT /subscriptions/{subscription}/beneficiaries/pending | Solicitud para agrupar cuentas de beneficiarios SPEI/SPID en estado pendiente. |
CuentasDeBeneficiariosSPEIApi | deleteAccountUsingDELETE | DELETE /subscriptions/{subscription}/beneficiaries/spei/{account} | Elimina la cuenta del beneficiario |
CuentasDeBeneficiariosSPEIApi | getAvailableRelationshipsMonexUsingGET | GET /subscriptions/{subscription}/beneficiaries/relationships | Consulta de relaciones |
CuentasDeBeneficiariosSPEIApi | getBeneficiariesByRequestId | GET /subscriptions/{subscription}/beneficiaries/spei/{requestId} | Consulta los beneficiarios por el identificador de la petición de registro |
CuentasDeBeneficiariosSPEIApi | getBeneficiariesForAccountUsingGET | GET /subscriptions/{subscription}/beneficiaries/spei | Consulta los beneficiarios registrados |
CuentasDeBeneficiariosSPEIApi | preRegisterAccountsUsingPOST | POST /subscriptions/{subscription}/beneficiaries/spei | Pre-registro de cuentas de beneficiarios SPEI®. |
CuentasDeBeneficiariosSPEIApi | removeBeneficiariesPendingUsingDELETE | DELETE /subscriptions/{subscription}/beneficiaries/spei/request/{requestId} | Eliminación de beneficiarios SPEI® sin confirmar |
CuentasDeBeneficiariosSPEIApi | updateAmountLimitAccountUsingPUT | PUT /subscriptions/{subscription}/beneficiaries/spei/{account} | Solicitud para actualizar el monto límite de una cuenta |
CuentasDeBeneficiariosSPIDApi | getSpidBeneficiariesForAccount | GET /subscriptions/{subscription}/beneficiaries/spid | Consulta los beneficiarios SPID registrados |
CuentasDeBeneficiariosSPIDApi | preRegisterAccountsUsingPOST1 | POST /subscriptions/{subscription}/beneficiaries/spid | Pre-registro de cuentas de beneficiarios SPID® |
DepositantesApi | getDepositantsUsingGET | GET /subscriptions/{subscription}/depositants | Consulta de cuentas de depositantes |
DepositantesApi | registerDepositantsUsingPOST | POST /subscriptions/{subscription}/depositants | Registra un nuevo depositante |
EmpresasCoDiApi | obtainCompanies | GET /codi/companies | Consulta de empresas CODI® |
EmpresasCoDiApi | registerCompanyUsingPOST | POST /codi/companies | Registro de empresas CODI® |
FacturasApi | billingsReportByIdUsingGET | GET /billings/{id} | Consulta de facturas por identificador |
FacturasApi | billingsReportUsingGET | GET /billings | Consulta de facturas |
InstitucionesApi | getAllInstitutionsUsingGET | GET /institutions | Consulta de instituciones bancarias |
LmitesDeMontosApi | obtainConfigurationsLimits | GET /subscriptions/{suscription}/configurations | Consulta de configuraciones |
LmitesDeMontosApi | updateConfigurations | PUT /subscriptions/{suscription}/configurations | Actualiza configuraciones por suscripción |
OperacionesCoDiApi | consultCodiOperations | POST /codi/charges | Consulta de operaciones |
PeticionesDePagoPorCoDiApi | consultCodiRequestByOrderId | GET /codi/sales-point/charges | Consulta información de petición por orderId |
PeticionesDePagoPorCoDiApi | generateCodiCodeQR | POST /codi/sales-point/charges | Genera código QR |
PuntosDeVentaCoDiApi | createSalesPoint | POST /codi/companies/salespoint | Registro de punto de venta. |
PuntosDeVentaCoDiApi | obtainSalePoints | GET /codi/companies/salespoint | Consulta de puntos de venta |
SaldoApi | getBalanceUsingGET | GET /subscriptions/{subscription}/balance | Consulta los saldo de una cuenta |
SuscripcionesApi | changeSubscriptionStatusUsingPUT | PUT /subscriptions/{subscription}/status | Cambia el estatus de la suscripción |
SuscripcionesApi | changeSubscriptionUseUsingPATCH | PATCH /subscriptions/{subscription} | Cambia el uso de la suscripción |
SuscripcionesApi | preEnrollmentMonexUserUsingPOST | POST /subscriptions/pre-subscription | Pre-registro de una suscripción |
SuscripcionesApi | removeEnrollmentUserUsingDELETE | DELETE /subscriptions/{subscription} | Elimina suscripción por su identificador. |
SuscripcionesApi | removeSubscriptionPendingStatusUsingDELETE | DELETE /subscriptions/pre-subscription/{subscription} | Elimina pre-registro de suscripción |
TransferenciasSPEIApi | createAuthorizationTransactionsGroup | POST /subscriptions/{subscription}/transactions/group | Agrupa transacciones bajo un request_id |
TransferenciasSPEIApi | dropTransactionsPendingUsingDELETE | DELETE /subscriptions/{subscription}/transactions/outcoming/spei/request/{requestId} | Eliminación de transferencias SPEI® pendientes |
TransferenciasSPEIApi | incomingSpeiTransactionsReportUsingGET | GET /subscriptions/{subscription}/transactions/incoming/spei | Consulta de transferencias recibidas |
TransferenciasSPEIApi | outCommingSpeiRequestIdTransactionsReportUsingGET | GET /subscriptions/{subscription}/transactions/outcoming/spei/{requestId} | Consulta de transferencias de salida por identificador de petición |
TransferenciasSPEIApi | outgoingSpeiTransactionsReportUsingGET | GET /subscriptions/{subscription}/transactions/outcoming/spei | Consulta de transferencias realizadas |
TransferenciasSPEIApi | registerOutgoingSpeiTransactionUsingPOST | POST /subscriptions/{subscription}/transactions/outcoming/spei | Registro de transferencias |
TransferenciasSPIDApi | getSpidClassificationsUsingGET | GET /subscriptions/{subscription}/beneficiaries/spid/classifications | Consulta de clasificaciones para operaciones SPID® |
TransferenciasSPIDApi | registerOutgoingSpidTransactionUsingPOST | POST /subscriptions/{subscription}/transactions/outcoming/spid | Registro de transferencias SPID® |
WebhooksApi | getWebhook | GET /webhooks/{id} | Consulta de Webhook |
WebhooksApi | getWebhooks | GET /webhooks | Consulta la lista de Webhooks |
WebhooksApi | registerWebhook | POST /webhooks | Alta de Webhook |
- Account
- AccountDetail
- AccountReassigned
- AccountRequest
- AccountResponse
- AccountSpid
- AddressCompany
- AmountRequest
- AuthorizationTransactionGroup
- AuthorizedBeneficiariesResponse
- AuthorizedUsers
- Balance
- BalanceListResponse
- BeneficiariesQueryRegisterStatus
- BeneficiariesResponse
- BeneficiaryInstitution
- Billing
- BillingTransaction
- CepResponse
- CepSearchBanxico
- CertificateRequest
- CodiCodeQrResponseDTO
- CodiCodeRequestDTO
- CodiOperationResponseDTO
- CodiOperationsFiltersRequestDTO
- CompanyRegistered
- CompanyRequested
- Compay
- ConfigurationsLimits
- ContactRequest
- ContractDetailRequest
- ContractDetailResponse
- Deposit
- DepositAuthorizationRequest
- Depositant
- DepositantsRegister
- DepositantsResponse
- DepositsAuthorizationResponse
- DetailedErrorResponse
- ErrorResponse
- GetDepositants
- Institution
- InstitutionsList
- Item
- MessageAccountBeneficiary
- MessageCEP
- MessageCodiAction
- MessageConfigurationsLimits
- MessageDepositAuthorizationRequest
- MessageDepositReceived
- MessageInstitution
- MessagePayment
- MessagePaymentStatePending
- MessageRequestChanged
- MessageSalesPoint
- MessageSubscription
- MessageUserAuthorized
- MessageWebHook
- Operations
- PagerResponseDto
- Payment
- PaymentCODI
- PaymentRequestCodiResponseDTO
- PaymentsRequestId
- Person
- PreEnrollmentData
- PreEnrollmentResponse
- PreMonexAuthorization
- Relationship
- RelationshipsResponse
- SalesPoint
- SalesPointFound
- SalesPointRequest
- SalesPointRespose
- ServiceBanking
- SpidBeneficiariesResponse
- SpidBeneficiaryResponse
- SpidClassificationDTO
- SpidClassificationsResponseDTO
- SubscriptionChangeStatusRequest
- TokenRequiredResponse
- TransactionErrorCode
- TransactionOutgoing
- TransactionOutgoingSpid
- TransactionsOutgoingRegister
- UpdateConfigurationsRequestDTO
- UrlsRedirect
- UseServiceBanking
- UserCompany
- WebHookDepositAuthorizationRequest
- WebHookDepositAuthorizationResponse
- Webhook
- WebhookRequest
- WebhookResponse
- WebhooksList
Te recomendamos revisar la documentación de Referencia de wire4 para mas detalle, no obstante te dejamos un ejemplo de validación de firmas para este cliente.
$message = "{\"id\":\"evt_641296342fdbf2db40ce674dde4881b87ada81b1695ae1c54666578272c1cd10\",\"object\":\"spid_outgoing\",\"api_version\":\"1.0.0\",\"created\":\"2019-12-05T11:55:10.058-06:00\",\"data\":{\"account\":\"8999998\",\"amount\":120.25,\"currency_code\":\"USD\",\"monex_description\":\"Nombre Receptor: BANAMEX | Monto Pago: 120.25 | Cuenta beneficiaria: 112680000189999984 | Nombre Beneficiario: notificar@wire4.mx | Clave de Rastreo: | Referencia Numerica: 1234567 | Concepto del pago: Transfer out test 1 | Fecha Confirmacion de Liquidacion: 05-12-2019 11:55:10\",\"detention_message\":\"Cuenta de beneficiario, no existe\",\"payment_order_id\":1427991983,\"status_code\":\"FAILED\",\"transaction_id\":704814938,\"beneficiary_account\":\"112680000189999984\",\"beneficiary_bank\":{\"key\":\"40112\",\"name\":\"BMONEX\",\"company_name\":\"BANCO MONEX S.A. INSTITUCION DE BANCA MULTIPLE, MONEX GRUPO FINANCIERO\",\"rfc\":\"BMI9704113PA\"},\"beneficiary_name\":\"notificar@wire4.mx\",\"concept\":\"Transfer out test 1\",\"order_id\":\"8A736A1D-ECA6-4959-93FE-794365F53E24\",\"reference\":1234567,\"request_id\":\"7dbf528d-b395-4779-924e-b182a4de17a5\",\"cep\":{}},\"livemode\":false,\"pending_webhooks\":0,\"request\":\"8A736A1D-ECA6-4959-93FE-794365F53E24\",\"type\":\"TRANSACTION.OUTGOING.SPID.RECEIVED\"}";
$referenceString = "7c088d16a8a25f1640e95dfdce65770cb0a31dc0e71a9749bba1e4e114201efb6e78c50bea3d8d9337b8ea63b2a8abf5b1e03d0cf9dda6f8e83a509d1ac11908";
$key = "wh_6b5cb70ab7fd489a8bd0c9d06513008"; //Lo encontraras en la consola de administracion de wire4.mx una vez que estes registrado y hayas dado de alta un webhook, reemplaza este valor
$signResult = \mx\wire4\webhooks\sign\UtilsCompute::toExadecimal(
\mx\wire4\webhooks\sign\UtilsCompute::computeHmacSha512($message, $key));
var_dump($signResult);
if( ! \mx\wire4\webhooks\sign\UtilsCompute::compareSignatures($referenceString,$signResult) ) {
echo "Las firmas no son iguales:";
} else {
echo "Las validacion de firmas es correcta";
}
echo "\noriginal:".$referenceString;
echo "\nresultado:".$signResult;
- Type: OAuth
- Flow: application
- Authorization URL Sandbox: https://sandbox-api.wire4.mx/token
- Authorization URL Producción: https://api.wire4.mx/token
- Scopes:
- ****
general
:
- Type: OAuth
- Flow: password
- Authorization URL Sandbox: https://sandbox-api.wire4.mx/token
- Authorization URL Producción: https://api.wire4.mx/token
- Scopes:
- **** spei_admin:
- Type: OAuth
- Flow: password
- Authorization URL Sandbox: https://sandbox-api.wire4.mx/token
- Authorization URL Producción: https://api.wire4.mx/token
- Scopes:
- **** spid_admin:
Wire4 Todos los derechos reservados 2019. Politicas de privacidad - Términos y condiciones https://wire4.mx/#/policies/use-policies