Cost+Docs

Carduri (Visa și Mastercard)

Acceptați plăți cu carduri de credit și debit

Prezentare generală

Acceptați plăți cu carduri de credit și debit prin API-ul Cost+ folosind metoda de plată credit-card.

{
  "transactions": [
    {
      "payment_method": "credit-card"
    }
  ]
}

Branduri de carduri suportate

BrandTip
AmexCredit
MastercardCredit / Debit
MaestroDebit
VisaCredit / Debit
V PayDebit

Opțiuni de configurare

Descriptor dinamic

Folosiți câmpul dynamic_descriptor pentru a seta un text personalizat care apare pe extrasul bancar sau de card al clientului.

{
  "transactions": [
    {
      "payment_method": "credit-card",
      "payment_method_details": {
        "dynamic_descriptor": "My Store Order 123"
      }
    }
  ]
}

Utilizarea numelui clientului ca nume de titular de card

Setați use_customer_name_as_cardholder_name la true pentru a utiliza automat numele clientului din comandă ca nume de titular de card.

{
  "transactions": [
    {
      "payment_method": "credit-card",
      "payment_method_details": {
        "use_customer_name_as_cardholder_name": true
      }
    }
  ]
}

Formular personalizat de introducere a cardului

Dacă doriți să construiți propriul formular de introducere a cardului în loc să folosiți pagina de plată găzduită, urmați acești patru pași.

Pasul 1: Creați o comandă cu un token de configurare

Creați o comandă și includeți setup_token: true în payment_method_details al tranzacției. Aceasta îi spune lui Cost+ să genereze un token de configurare pe care îl puteți folosi pentru a tokeniza în siguranță detaliile cardului.

curl -X POST https://api.costplus.online/v1/orders \
  -u your-api-key: \
  -H "Content-Type: application/json" \
  -d '{
    "currency": "EUR",
    "amount": 5000,
    "merchant_order_id": "order-001",
    "transactions": [
      {
        "payment_method": "credit-card",
        "payment_method_details": {
          "setup_token": true
        }
      }
    ],
    "return_url": "https://example.com/return",
    "webhook_url": "https://example.com/webhook"
  }'

Răspunsul va include o valoare setup_token în payment_method_details al tranzacției:

{
  "id": "order-uuid",
  "transactions": [
    {
      "id": "txn-uuid",
      "payment_method": "credit-card",
      "payment_method_details": {
        "setup_token": "st_abc123..."
      }
    }
  ]
}

Pasul 2: Tokenizați detaliile cardului

Trimiteți PAN-ul cardului, data de expirare și tokenul de configurare la endpoint-ul de tokenizare. Aceasta stochează în siguranță cardul și returnează un vault_token.

curl -X POST https://api.costplus.online/v1/tokens/ \
  -H "Content-Type: application/json" \
  -d '{
    "pan": "4111111111111111",
    "expiry_date": "1228",
    "setup_token": "st_abc123..."
  }'

Răspuns:

{
  "vault_token": "vt_xyz789..."
}

Pasul 3: Autentificați tranzacția

Trimiteți vault_token și cvc la endpoint-ul de autentificare. Dacă 3D Secure este necesar, veți primi un redirect_url pentru a redirecționa clientul către pagina de autentificare a băncii.

curl -X POST https://api.costplus.online/v1/orders/{order_id}/transactions/{transaction_id}/authenticate/ \
  -u your-api-key: \
  -H "Content-Type: application/json" \
  -d '{
    "vault_token": "vt_xyz789...",
    "cvc": "123"
  }'

Răspuns:

{
  "redirect_url": "https://3ds.bank.example.com/auth?id=..."
}

Redirecționați clientul la redirect_url pentru a finaliza autentificarea 3D Secure. După ce clientul finalizează (sau anulează) autentificarea, va fi redirecționat înapoi la return_url.

Pasul 4: Verificați statusul comenzii

După ce clientul revine de la 3D Secure, verificați comanda pentru a afla statusul final.

curl -X GET https://api.costplus.online/v1/orders/{order_id} \
  -u your-api-key:

Statusul comenzii va trece la una dintre:

StatusSemnificație
completedPlata a fost efectuată cu succes
cancelledClientul a anulat sau autentificarea a eșuat
errorA apărut o eroare în timpul procesării
expiredComanda a expirat înainte de finalizare

Pentru fluxuri de autorizare și captură manuală cu plăți prin card, consultați ghidul Autorizare / Captură / Anulare.

On this page