Download the PHP package kuti-pe/kuti-php without Composer
On this page you can find all versions of the php package kuti-pe/kuti-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package kuti-php
kuti-pe/kuti-php
SDK oficial de KUTI para PHP. Crea sesiones de checkout, consulta el estado de un pago y verifica webhooks — sin reimplementar auth, manejo de errores ni firma HMAC a mano.
Nunca expongas tu secret key (
kuti_live_.../kuti_test_...) en código que se sirva al navegador. Este SDK solo debe usarse desde tu backend.
Instalación
Quickstart
Clientes y campos personalizados
El cliente tiene la misma forma en customers->create, en el customer de un cobro y en el de
una checkout session. customFields son los campos que el negocio definió en
Ajustes → Clientes → Campos (la key de cada campo):
Confirmar un pago
Verificar un webhook
Manejo de errores
Todas las excepciones de la API extienden KutiApiException (getStatus(), getKutiCode(), getRequestId(), getDocUrl(), getDetails()). Hay subclases para los casos más comunes:
Los GET y los create() con idempotencyKey se reintentan automáticamente en errores de red o 429/503. Un create() sin idempotencyKey nunca se reintenta, para no duplicar un cobro.
Cliente HTTP
Por defecto se usa Guzzle. Si ya tienes tu propio cliente configurado (proxy, logging, etc.), puedes inyectarlo — solo debe implementar GuzzleHttp\ClientInterface:
Links de pago
Un enlace permanente que pagan muchas personas (curso, entrada, donación). Cada pago es un cobro
normal con paymentLinkId.
Enviar el cobro al crearlo
API
new KutiClient(string $secretKey, ?string $baseUrl = null, ?ClientInterface $httpClient = null)$kuti->customers->create(CustomerInput $customer, ?array $metadata)/retrieve($id)/update($id, array $params)/list(array $params)/delete($id)$kuti->checkoutSessions->create(...)— Checkout.js$kuti->paymentIntents->create(...)— cobro directo$kuti->paymentIntents->list(...)— filtrosstatus,q,customerId,source(single | link | recurring),paymentLinkId$kuti->paymentIntents->retrieve(string $id)$kuti->paymentIntents->cancel(string $id)$kuti->paymentIntents->sendWhatsApp(...)$kuti->paymentLinks->create(array $params)/retrieve($id)/update($id, array $params)/list(array $params)/activate($id)/deactivate($id)/checkSlug($slug, $exceptId)Webhooks::verifySignature($payload, $signatureHeader, $timestampHeader, $secret, $toleranceSeconds = 300)