Skip to main content

Stripe

Gestionarea contului Stripe Connect si payout-uri.

Autentificare:

  • GET /stripe/pk este public.
  • Restul endpoint-urilor Stripe necesita Authorization: Bearer <token>.

POST /stripe/accounts

Creeaza un cont conectat pentru utilizatorul autentificat.

curl -X POST https://api.paylinks.ro/api/v1/stripe/accounts \
-H "Authorization: Bearer YOUR_TOKEN"

Raspuns (200):

{
"id": "acct_1234567890",
"account": {
"id": "acct_1234567890"
}
}

GET /stripe/accounts/me

Asigura existenta contului conectat al utilizatorului curent si il returneaza.

curl https://api.paylinks.ro/api/v1/stripe/accounts/me \
-H "Authorization: Bearer YOUR_TOKEN"

Raspuns (200):

{
"id": "acct_1234567890",
"account": {
"id": "acct_1234567890"
}
}

GET /stripe/accounts/:id

Obtine detalii despre contul tau conectat.

curl https://api.paylinks.ro/api/v1/stripe/accounts/acct_1234567890 \
-H "Authorization: Bearer YOUR_TOKEN"

Raspuns (200):

{
"account": {
"id": "acct_1234567890"
}
}

PUT /stripe/accounts/:id

Actualizeaza detaliile contului conectat (identitate, profil business, cont bancar, ToS).

curl -X PUT https://api.paylinks.ro/api/v1/stripe/accounts/acct_1234567890 \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"individual": {
"first_name": "Andrei",
"last_name": "Bucur",
"email": "[email protected]",
"address": {
"line1": "Str. Lalelelor 10",
"city": "Bucuresti",
"postal_code": "010101",
"country": "RO"
}
},
"business_type": "individual"
}'

Raspuns (200):

{
"account": {
"id": "acct_1234567890"
},
"isOnboarded": false,
"charges_enabled": false,
"payouts_enabled": false,
"details_submitted": true,
"requirements": {
"currently_due": ["individual.id_number"],
"eventually_due": [],
"past_due": [],
"pending_verification": [],
"disabled_reason": null,
"current_deadline": null,
"errors": []
}
}

GET /stripe/accounts/me/requirements

Obtine starea curenta de onboarding/verificare.

curl https://api.paylinks.ro/api/v1/stripe/accounts/me/requirements \
-H "Authorization: Bearer YOUR_TOKEN"

Raspuns (200):

{
"hasAccount": true,
"isOnboarded": false,
"charges_enabled": false,
"payouts_enabled": false,
"details_submitted": true,
"requirements": {
"currently_due": ["individual.id_number"],
"eventually_due": [],
"past_due": [],
"pending_verification": [],
"disabled_reason": null,
"current_deadline": null,
"errors": []
}
}

Cand nu exista cont conectat:

{
"hasAccount": false,
"isOnboarded": false,
"requirements": null
}

POST /stripe/account-link

Creeaza un link Stripe pentru onboarding.

curl -X POST https://api.paylinks.ro/api/v1/stripe/account-link \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"refreshUrl": "https://paylinks.ro/dashboard/settings",
"returnUrl": "https://paylinks.ro/dashboard/settings"
}'

Raspuns (200):

{ "url": "https://connect.stripe.com/setup/..." }

POST /stripe/accounts/:id/account-session

Creeaza o sesiune embedded pentru cont.

curl -X POST https://api.paylinks.ro/api/v1/stripe/accounts/acct_1234567890/account-session \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"component":"management"}'

Corpul cererii:

CampTipObligatoriuDescriere
componentstringNuonboarding (implicit) sau management

Raspuns (200):

{ "client_secret": "seti_..._secret_..." }

GET /stripe/pk

Obtine cheia publica Stripe (endpoint public).

curl https://api.paylinks.ro/api/v1/stripe/pk

Raspuns (200):

{ "publishableKey": "pk_live_..." }

GET /stripe/balance

Obtine sumarul soldului contului conectat in moneda selectata.

curl https://api.paylinks.ro/api/v1/stripe/balance \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "X-Currency: RON"

Raspuns (200):

{
"currency": "RON",
"available": 4999,
"pending": 499,
"totalTransferred": 30000,
"processing": 250,
"minimumPayoutMajor": 200,
"reservedForFees": 10
}

Daca nu exista cont conectat:

{
"currency": "RON",
"available": 0,
"pending": 0,
"totalTransferred": 0,
"minimumPayoutMajor": 200
}

GET /stripe/payouts

Listeaza payout-urile contului conectat.

curl "https://api.paylinks.ro/api/v1/stripe/payouts?limit=10" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "X-Currency: RON"

Parametri query:

ParametruTipImplicitDescriere
limitinteger50Numar elemente (max 100)
startingAfterstringID payout Stripe pentru paginare

Raspuns (200):

{
"items": [
{
"id": "po_1234567890",
"amountMinor": 100000,
"currency": "RON",
"status": "paid",
"created": "2026-02-17T10:00:00.000Z",
"arrivalDate": "2026-02-18T00:00:00.000Z",
"method": "standard",
"statementDescriptor": null
}
]
}

POST /stripe/payouts

Creeaza un payout manual din soldul disponibil.

curl -X POST https://api.paylinks.ro/api/v1/stripe/payouts \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"currency":"RON","statementDescriptor":"PAYLINKS"}'

Corpul cererii:

CampTipObligatoriuDescriere
currencystringNuRON, EUR sau GBP
statementDescriptorstringNuMax 22 caractere

Raspuns (200):

{
"payout": {
"id": "po_1234567890",
"amount": 499900,
"currency": "ron",
"status": "pending"
}
}