Registrar Plan

Permite registrar un plan de cobro con la periodicidad de la suscripción y recordatorio de pago oportuno hacia el usuario

Método: POST

Campo

Tipo

Requerido

Descripción

merchant

string

Nombre asignado para el comercio en Payvalida. Se entrega con las credenciales.

interval

string

La frecuencia con la que se paga un plan. Valores permitidos: - month - week - day

interval_count

string

El número de intervalos (especificados en el atributo interval) entre los pagos del plan. Por ejemplo, si interval=month e interval_count=1, se pagará mensualmente. Si interval=month e interval_count=3, se pagará cada 3 meses. Si interval=week e interval_count=1, se pagará semanalmente.

amount

string

Valor del plan. Puede tener máximo 2 números decimales.

description

string

Descripción corta del plan. No incluir caracteres especiales.

method

string

no

Método de pago para la orden. Si no se envía la orden se podrá pagar por cualquiera de los métodos de pago activos para el comercio en Payválida.

checksum

string

Cadena de comprobación con SHA512 (merchant+amount+interval+interval_count+ FIXED_HASH)

Ejemplos

  • Go

package main

import (
	"bytes"
	"crypto/sha512"
	"encoding/hex"
	"fmt"
	"io/ioutil"
	"net/http"
	"time"
)

func main() {
	url := "https://api-test.payvalida.com/v4/subscriptions/plans"

	merchant := "kuanto"
	interval := "month"
	intervalCount := "1"
	amount := "12000"
	fixedHash := "FIXED_HASH"

	checksum := createChecksum(merchant, amount, interval, intervalCount, fixedHash)

	payload := []byte(fmt.Sprintf(`{
		"merchant": "%s",
		"interval": "%s",
		"interval_count": "%s",
		"amount": "%s",
		"description": "",
		"checksum": "%s"
	}`, merchant, interval, intervalCount, amount, checksum))

	req, err := http.NewRequest("POST", url, bytes.NewBuffer(payload))
	if err != nil {
		fmt.Println("Error creating request:", err)
		return
	}

	req.Header.Set("Content-Type", "application/json")

	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		fmt.Println("Error sending request:", err)
		return
	}

	defer resp.Body.Close()

	// Read response body
	responseData, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("Error reading response body:", err)
		return
	}

	// Print response data
	fmt.Println("Response:", string(responseData))
}

func createChecksum(merchant string, amount, interval, intervalCount, fixedHash string) string {
	checksumData := merchant + amount + interval + intervalCount + fixedHash
	hash := sha512.Sum512([]byte(checksumData))
	checksum := hex.EncodeToString(hash[:])
	return checksum
}
  • PHP

  • Javascript

  • Java

  • Python

Last updated